第九步:使用nfs作为cinder-controller后端存储

简介

无论是分布式存储还是商业存储,都支持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节点上,系统盘就不需要进行拷贝了,提高了虚拟机的迁移速度
原文地址:https://www.cnblogs.com/dongzhanyi123/p/13299964.html