本文主要是介绍OpenStack Cinder 与各种后端存储技术的集成叙述与实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Cinder项目为管理快设备而生,它最重要的地方就是如何做到和各种存储后端就到完美适配,用好后端存储的功能,本文为Cinder 多种后端存储(LVM, FC+SAN, iSCSI+SAN, NFS, VMWARE, Glusterfs)的场景总结, 以防自己将来忘记,欢迎交流, 共同成长
1.LVM
开始OpenStack Cinder实践之旅的入门存储, cinder.conf 什么都不配,默认就是使用LVM, LVM的原理
先把分区用pvcreate做成物理卷, 再把多个物理卷做成一个卷组,然后创建volume的时候就通过lvcreate分配lvm逻辑卷。
做部署时,用dd在当前目录创建一个设定大小(本例中为10G)的文件(cinder-volumes),然后通过losetup命令把他影射为loop device(虚拟快设备),然后基于这个快设备建立逻辑卷, 然后就是建立vg, 建立vg的时候可以一次包含多个pv,本例只使用了一个。
dd if=/dev/zero of=/vol/cinder-volumes bs=1 count=0 seek=10G
# Mount the file.
loopdev=`losetup -f`
losetup $loopdev /vol/cinder-volumes
# Initialize as a physical volume.
pvcreate $loopdev
# Create the volume group.
vgcreate cinder-volumes $loopdev
# Verify the volume has been created correctly.
pvscan
建立好volume group后,使用cinder.conf的初始配置即可, 注意多节点时要配置好iscsi_ip_address为提供存储服务节点的管理ip
重启cinder-volume服务
就可以进行正常的volume创建,挂载,卸载等等操作了
question1:LVM如何实现挂载?
创建很简单,通过lvcreate命令即可,挂载稍微复杂点, 先要把卷export为scsi存储目标设备(target,会有个lun ID), 然后通过linux scsi initiator软件实现到目标设备的连接,这里用到两个软件,scsi tagert管理软件(这个里面有多种如Tgt,Lio,Iet,ISERTgt,默认使用Tgt, 都是为装有SCSI initiator的操作系统提供块级scsi存储)与linux scsi initiator,所以两次操作分别对应命令为tgtadm与iscsiadm。
2. FC(Fibre Channel) +SAN 设备
要求:
a) 计算节点所在的机器一定要有HBA卡(光纤网卡),
查看host上有无HBA卡方式:
一种方法:
$ lspci
20:00.0 Fibre Channel: Emulex Corporation Zephyr-X LightPulse Fibre Channel Host Adapter (rev 02)
20:00.1 Fibre Channel: Emulex Corporation Zephyr-X LightPulse Fibre Channel Host Adapter (rev 02
二种方法:
可以查看/sys/class/fc_host/
当有两块光纤网卡,则有host1 与host2两个目录$ cat /sys/class/fc_host/host1/port_name
0x10000090fa1b825a wwpn (作用如同MAC地址)
b) 网卡通过光纤线连接到后端存储上, 以ibm的svc为例,必须保证连接上了,可以登录svc图形界面查看host是不是active的, 或者ssh登录svc,运行命令
ww_2145:SVC:superuser>svcinfo lsfabric -delim ! -wwpn "10000090fa1b825a"10000090FA1B825A!0A0C00!3!node_165008!500507680130DBEA!2!0A0500!active!x3560m4-06MFZF1!!Host
这样才能保证做卷的挂载与卸载时没有问题
下面是实践,以Storwize设备为例:
volume_driver = cinder.volume.drivers.storwize_svc.StorwizeSVCDriver
san_ip = 10.2.2.123
san_login = superuser
#san_password = passw0rd
san_private_key = /svc_rsa
storwize_svc_volpool_name = DS3524_DiskArray1
storwize_svc_connection_protocol = FC
san_password 与san_private_key可以二选一,推荐san_private_key 方式,这个私钥文件用ssh-keygen生成,生成好留下私钥, 把公钥放到san设备上,以后其他host也想连接此存储设备时, 可直接使用此私钥, 不需重复生成。
测试过程,建个volume
[root@localhost ~]# cinder create --display-name test55 1
[root@localhost ~]# no
这篇关于OpenStack Cinder 与各种后端存储技术的集成叙述与实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!