作者:【吴业亮】云计算开发工程师
博客:http://blog.youkuaiyun.com/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
- 配置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 = rabbit
auth_strategy = keystone
my_ip = 192.10.10.87
glance_host = mitaka
enabled_backends = lvm,nfs
glance_api_servers = http://mitaka:9292
nfs_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:5000
auth_url = http://mitaka:35357
memcached_servers = mitaka:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = cinder
password = Changeme_123
[matchmaker_redis]
[oslo_concurrency]
lock_path = /var/lib/cinder/tmp
[oslo_messaging_amqp]
[oslo_messaging_notifications]
[oslo_messaging_rabbit]
rabbit_host = mitaka
rabbit_userid = openstack
rabbit_password = Changeme_123
[oslo_middleware]
[oslo_policy]
[oslo_reports]
[oslo_versionedobjects]
[ssl]
[lvm]
volume_driver = cinder.volume.drivers.lvm.LVMVolumeDriver
volume_group = cinder-volumes
iscsi_protocol = iscsi
iscsi_helper = lioadm
volume_backend_name=LVM
[nfs]
volume_driver = cinder.volume.drivers.nfs.NfsDriver
nfs_shares_config = /etc/cinder/nfsshares
volume_backend_name = nfs