cinder
提供块存储服务,管理openstack中的块存储资源,为云平台提供持久的块存储服务,通过驱动的方式可以接入不同种类的后端存储。
cinder对接nfs
关闭防火墙和selinux
root@localhost yum.repos.d\]# systemctl stop firewalld \[root@localhost yum.repos.d\]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. \[root@localhost yum.repos.d\]# vim /etc/selinux/config \[root@localhost yum.repos.d\]# setenforce 0
配置NFS服务
确认nfs主机有没有按照nfs的包
root@nfs \~\]# rpm -qa \| grep nfs libnfsidmap-2.3.3-59.el8.x86_64 sssd-nfs-idmap-2.9.1-2.el8.x86_64 nfs-utils-2.3.3-59.el8.x86_64
如果没有安装,把nfs的包安装上。
yum install -y nfs-utils
启动nfs服务
root@localhost \~\]# systemctl start nfs-server.service \[root@localhost \~\]# systemctl enable nfs-server.service Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.
配置共享目录
当前环境,单独准备了一个20G磁盘,作为nfs后端存储来使用。

对这个磁盘分区格式化
root@localhost \~\]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x34c3a685 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
Using default response p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):
将使用默认值 41943039
分区 1 已设置为 Linux 类型,大小设为 20 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
root@localhost \~\]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1310720 inodes, 5242624 blocks
262131 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=2153775104
160 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
root@localhost \~\]# mkdir /nfs0425 \[root@localhost \~\]# mount /dev/sdb1 /nfs0425/ \[root@localhost \~\]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 20G 0 part /nfs0425
sr0 11:0 1 4.4G 0 rom /mnt/cdrom
配置共享目录
vim /etc/exports
/nfs0425 192.168.126.0/24(rw,no_root_squash)

重启nfs服务
root@localhost \~\]# systemctl restart nfs-server.service
配置客户端
客户端启动nfs服务
计算节点和控制节点都需要开启nfs服务。
客户端挂载测试
root@controller \~\]# mkdir /nfstest \[root@controller \~\]# mount -t nfs 192.168.126.190:/nfs0425 /nfstest/ \[root@controller \~\]# cd /nfstest/ \[root@controller nfstest\]# ls lost+found \[root@controller nfstest\]# touch 123.txt \[root@controller nfstest\]# echo "1111" \> 123.txt \[root@controller nfstest\]# df -TH

测试完之后,卸载磁盘
root@controller \~\]# umount /nfstest
配置cinder挂载目录

修改权限
root@Controller cinder\]# ll -lathr \[root@Controller cinder\]# chown .cinder cindernfs \[root@Controller cinder\]# ll -lathr \[root@Controller cinder\]# chmod 640 cindernfs \[root@Controller cinder\]# ll -lathr
配置cinder后端存储
root@controller \~\]# vim /etc/cinder/cinder.conf { 436 enabled_backends=lvm,nfs \[nfs
volume_backend_name=nfs
volume_driver=cinder.volume.drivers.nfs.NFSVolumeDriver
nfs_shares_config=/etc/cinder/cindernfs
}
配置结束后,重启服务
root@Controller \~\]# systemctl restart openstack-cinder-\*
glance
提供镜像服务,管理openstack中的镜像,镜像为用户发放实例提供模板选择,通过glance可以上传、下载、查询镜像。
glance对接swift
备份配置文件

3057 stores=file,http,swift
3111 default_store=swift
3982 swift_store_region = RegionOne
4032 swift_store_endpoint_type = publicURL
4090 swift_store_container = glance0411
4118 swift_store_large_object_size = 5120
4142 swift_store_large_object_chunk_size = 200
4160 swift_store_create_container_on_put = True
4182 swift_store_multi_tenant = True
4230 swift_store_admin_tenants = services
4382 swift_store_auth_version = 2
身份认证地址,到环境变量获取。
root@Controller \~\]# cat keystonerc_admin unset OS_SERVICE_TOKEN export OS_USERNAME=admin export OS_PASSWORD='redhat' export OS_REGION_NAME=RegionOne export OS_AUTH_URL=http://192.168.100.10:5000/v3 export PS1='\[\\u@\\h \\W(keystone_admin)\]\\$ ' export OS_PROJECT_NAME=admin export OS_USER_DOMAIN_NAME=Default export OS_PROJECT_DOMAIN_NAME=Default export OS_IDENTITY_API_VERSION=3 4391 swift_store_auth_address = [http://192.168.100.10:5000/v3](http://192.168.100.10:5000/v3 "http://192.168.100.10:5000/v3") 4399 swift_store_user = swift 密码在应答文件1113行查找 4408 swift_store_key = e19946e2754c4a62