简介
无论是分布式存储还是商业存储,都支持nfs协议;
之前是lvm作为cinder-controller后端存储,现在把cinder-controller后端存储换成nfs,则也不需要安装openstack-cinder服务
NFS服务器
1、yum install nfs-utils -y
2、mkdir /data/cinder -p #用于存放cinder-controller创建的卷
3、vim /etc/exports
/data/cinder *(rw,no_root_squash)
4、systemctl restart nfs
cinder-controller节点
配置cinder-controller节点使用nfs
1、vim /etc/cinder/cinder.conf
[DEFAULT]
enabled_backends = nfs #告诉cinder-controller,使用nfs作为后端存储
#state_path = /var/lib/cinder #$state_path 这个变量定义了NFS的挂载路径
[nfs] #如果想使用nfs作为后端存储,必须在/usr/lib/python2.7/site-packages/cinder/下,有nfs驱动才可
volume_backend_name = openstack-NFS #指定后端存储名称,用以区分不同的后端存储,如使用lvm或者nfs
volume_driver = cinder.volume.drivers.nfs.NfsDriver #指定NFS驱动;通过NFS驱动程序,实现卷的创建、管理、删除,包括卷的拉伸
nfs_shares_config = /etc/cinder/nfs_shares #定义NFS挂载的配置文件路径,cinder服务需要有权限读取文件
nfs_mount_point_base = $state_path/mnt #$state_path为cinder的变量,定义NFS挂载点
2、vim /etc/cinder/nfs_shares #编辑nfs挂载的配置文件
172.31.7.105:/data/cinder #指定NFS地址及共享目录
3、chown root.cinder /etc/cinder/nfs_shares #修改文件的权限
4、systemctl restart openstack-cinder-api.service openstack-cinder-scheduler.service
5、tail -f /var/log/cinder/*.log #日志不能有报错
6、systemctl restart openstack-cinder-volume.service #controller节点上必须开启此服务,将controller也变为一个存储节点
7、systemctl enable openstack-cinder-volume.service
8、df -TH #查看是否自动挂载NFS
9、cinder service-list #列出cinder的后端存储服务
controller-创建类型
当有LVM及NFS两个后端存储,创建卷的时候需要通过类型来指定是基于哪个后端存储创建卷
1、cinder type-create lvm #创建个类型名为lvm
2、cinder type-create nfs #创建个类型名为nfs
3、cinder type-key lvm set volume_backend_name=Openstack-lvm
#将lvm类型与lvm后端存储进行关联;Openstack-lvm这个后端存储名称为cinder存储节点配置文件中给lvm模块所设置的名称
4、cinder type-key lvm set volume_backend_name=openstack-NFS
#将nfs类型与NFS后端存储进行关联;openstack-NFS这个后端存储名称为cinder控制节点配置文件中给nfs模块所设置的名称
5、这样在创建卷的时候,就可以根据类型选择所关联的后端存储服务(46)
6、ll /data/cinder #在nfs服务器的此目录下,会有一个以卷的ID为命名的块设备(data)文件
7、剩下的步骤与lvm后端存储操作一样,将卷与虚拟机关联,然后格式化文件系统、挂载磁盘就可以使用
8、虽然后端存储使用的是NFS(基于网络的文件系统),但cinder使用的是iscsi协议,他会把设备以块儿设备的方式共享给服务器使用;块儿设备需要先格式化文件系统才可以使用
##
注意:
1、通过iscsi协议在nfs文件系统上模拟出块设备,所以只要是块儿设备都可以进行空间拉伸,块儿设备有独立的存储,独立的文件系统;但是文件系统不能进行拉伸,共享出来的如果只是个目录,则无法进行拉伸
2、当有cinder后端存储后,之后创建的所有虚拟机的系统盘都会放到cinder的后端存储上,这样在虚拟机迁移的时候,只需要把一个node节点上的计算资源(cpu、内存)拷贝到另一个node节点上,系统盘就不需要进行拷贝了,提高了虚拟机的迁移速度