cinder后端采用nfs存储

来源:互联网 发布:俄罗斯淘宝网站 编辑:程序博客网 时间:2024/06/03 10:18

作者:【吴业亮】云计算开发工程师
博客:http://blog.csdn.net/wylfengyujiancheng
一、nfs服务器配置
1、安装软件包

# yum install nfs* -y

2、创建共享目录

# mkdir /data

3、赋予权限

# chown 165:165 /data# chmod 777 data/

4、配置NFS

echo '/data  192.168.5.0/24(rw,sync,all_squash,anonuid=165,anongid=165)' >/etc/exports

192.168.5.0/24为共享存储的网段
5、启动服务,并设置开机启动

# service rpcbind start# service nfs-server start# chkconfig  rpcbind on# chkconfig nfs-server  on

二、openstack的controller节点上
1、安装软件包

# yum install nfs* -y

2、创建/etc/cinder/nfsshares文件,并写入如下内容

#echo '192.168.5.29:/data'  > /etc/cinder/nfsshares

格式:
HOST 填写IP地址或是NFS服务器的主机名。
SHARE使已经存在的且可访问的NFS共享的绝对路径。
具体可以用showmount -e 192.168.5.29查看

3、设置/etc/cinder/nfsshares的属主为root用户,组为cinder。

# chown root:cinder /etc/cinder/nfsshares

4、设置/etc/cinder/nfsshares为可由组cinder成员可读

# chmod 0640 /etc/cinder/nfsshares

5、配置/etc/cinder/cinder.conf

# openstack-config --set /etc/cinder/cinder.conf nfs nfs_shares_config /etc/cinder/nfsshares

6、(可选),添加额外的NFS挂载点属性需要在你的环境中设置/etc/cinder/
cinder.conf的nfs_mount_options 键值。如果你的NFS共享无须任何额外的挂载属性(或
者是你不能确定)的话,请忽略此步。

# openstack-config --set /etc/cinder/cinder.conf \nfs nfs_mount_options OPTIONS
  1. 配置cinder 卷服务使用正确的卷驱动
# openstack-config --set /etc/cinder/cinder.conf \nfs volume_driver cinder.volume.drivers.nfs.NfsDriver

设置volume_backend_name

 # openstack-config --set /etc/cinder/cinder.conf \nfs  volume_backend_name   nfs

8、(可选)配置卷是否作为稀疏文件创建并按需要分配或完全预先分配

# openstack-config --set /etc/cinder/cinder.conf \nfs   nfs_sparsed_volumes false

nfs_sparsed_volumes 配置关键字定义了卷是否作为稀疏文件创建并按需要分
配或完全预先分配。默认和建议的值为 true,它会保证卷初始化创建为稀疏文
件。
设置 nfs_sparsed_volumes为false的结果就是在卷创建的时候就完全分配了。
这会导致卷创建时间的延长。
如果客户端主机启用了SELinux,若此主机需要访问NFS共享上的实例的话就需要
设置virt_use_nfs布尔值。以root用户运行下面的命令:

# setsebool -P virt_use_nfs on

9、启用lvm和nfs的backends(可以同时启用多种后端存储,以逗号隔开)

# openstack-config --set /etc/cinder/cinder.conf \DEFAULT  enabled_backends  lvm,nfs

9、重启cinder 卷服务:

# service openstack-cinder-volume restart

10、在使用multi-backends创建盘之前,需要先创建盘的类型,dashboard及命令行cinder type-create都可以创建
创建lvm

# cinder --os-username admin --os-tenant-name admin type-create lvm# cinder --os-username admin --os-tenant-name admin type-key lvm set volume_backend_name=LVM# cinder --os-username admin --os-tenant-name admin extra-specs-list (just to check the settings are there)

创建nfs

# cinder --os-username admin --os-tenant-name admin type-create nfs# cinder --os-username admin --os-tenant-name admin type-key nfs  set volume_backend_name=nfs# cinder --os-username admin --os-tenant-name admin extra-specs-list (just to check the settings are there)

dashboard显示结果:
这里写图片描述
这里写图片描述
11、创建卷
这里写图片描述
在nfs-server上查看
这里写图片描述
默认挂载点在/var/lib/cinder/mnt,如需修改挂载点

# openstack-config --set /etc/cinder/cinder.conf  nfs nfs_mount_point_base  目录名称

这里写图片描述
配置文件如下:

[root@mitaka fdb4b811b5de566577500e474058b200]# cat /etc/cinder/cinder.conf | grep -v ^# | grep -v ^$[DEFAULT]rpc_backend = rabbitauth_strategy = keystonemy_ip = 192.10.10.87glance_host = mitakaenabled_backends = lvm,nfsglance_api_servers = http://mitaka:9292nfs_shares_config = /etc/cinder/nfs_shares[BACKEND][BRCD_FABRIC_EXAMPLE][CISCO_FABRIC_EXAMPLE][COORDINATION][FC-ZONE-MANAGER][KEYMGR][cors][cors.subdomain][database]connection = mysql+pymysql://cinder:Changeme_123@mitaka/cinder[keystone_authtoken]auth_uri = http://mitaka:5000auth_url = http://mitaka:35357memcached_servers = mitaka:11211auth_type = passwordproject_domain_name = defaultuser_domain_name = defaultproject_name = serviceusername = cinderpassword = Changeme_123[matchmaker_redis][oslo_concurrency]lock_path = /var/lib/cinder/tmp[oslo_messaging_amqp][oslo_messaging_notifications][oslo_messaging_rabbit]rabbit_host = mitakarabbit_userid = openstackrabbit_password = Changeme_123[oslo_middleware][oslo_policy][oslo_reports][oslo_versionedobjects][ssl][lvm]volume_driver = cinder.volume.drivers.lvm.LVMVolumeDrivervolume_group = cinder-volumesiscsi_protocol = iscsiiscsi_helper = lioadmvolume_backend_name=LVM[nfs]volume_driver = cinder.volume.drivers.nfs.NfsDrivernfs_shares_config = /etc/cinder/nfssharesvolume_backend_name = nfs

参考:
http://docs.openstack.org/admin-guide/

0 0
原创粉丝点击