Cinder 是 OpenStack 的块存储服务,它的作用是向最终用户提供在 OpenStack 的计算模块( Nova )中使用的存储资源。通过使用逻辑卷管理( LVM )方式或者通过配置其他存储的插件形式的驱动连接其他存储设备使用。简单地说, Cinder 将块存储设备的管理进行了虚拟化,只对最终用户提供 REST API 来请求和使用存储资源,用户并不需要知道他们的存储实际上是什么类型或者是什么样的。
PowerVC 实现了计算( PowerVM ),网络, SAN 网络, SAN 存储的统一管理。针对存储的管理,需要首先在 PowerVC 注册对应的存储设备,才可以通过 PowerVC 对相应的存储进行管理。 PowerVC 中的 Driver 支持了 DS8K , VMax , VNX , GPFS , Hitachi , Storwize SVC , XIV 等存储的支持,可以在存储管理界面直接添加这些类型的存储器;针对 PowerVC 不能原生支持的存储设备, PowerVC 提供了利用 Cinder 插件通过命令行进行注册的方式,来添加对存储设备的管理。 PowerVC 本身基于 OpenStack 进行扩展而成,所有 OpenStack 驱动支持的存储, PowerVC 都可以通过插件的方式进行支持,只是 PowerVC 功能的支持程度依赖于存储驱动实现的接口覆盖程度。集成和插件存储驱动程序功能之间的差异如下表所示:
表 1. 集成和插件存储驱动程序功能之间的差异
Operation | Integrated | Pluggable |
通过使用PowerVC API或用户界面进行特定于控制器的注册 | 是 | 没有 |
通过使用PowerVC API或命令进行通用控制器注册 | 没有 | 是 |
导出和导入Image | 是 | 是 |
使用PowerVC API或用户界面管理现有的虚拟机 | 是 | 没有 |
使用PowerVC API或用户界面管理现有卷 | 是 | 没有 |
使用PowerVC用户界面创建和编辑存储模板 | 是 | 没有 |
使用Cinder卷类型API创建和编辑存储模板 | 是 | 是 |
检查在PowerVC外部删除的卷 | 是 | 没有 |
在PowerVC用户界面上查看存储提供程序的可用池 | 是 | 没有 |
NPIV连接 | 是 | 是 |
vSCSI连接 | 是 | 是 |
创建和删除卷 | 是 | 是 |
部署和捕获虚拟机 | 是 | 是 |
将卷连接到虚拟机或从虚拟机分离卷 | 是 | 是 |
快照,一致性组和通用卷组支持 | 是 | 是 |
设置使用配额 | 是 | 是 |
IBM提供支持和测试 | 是 | 没有 |
我们以 PowerVC 纳管华为存储举例,通过 https://github.com/Huawei/OpenStack_Driver 下载 Huawei 存储的 Cinder Driver 。并在 PowerVC 的 /usr/lib/python2.7/site-packages/cinder/volume/drivers 下创建 huawei 的目录,并将 PowerVC 相应 OpenStack 版本( PowerVC 对应的 OpenStack 版本如表 2 所示)的华为驱动上传到刚创建的 huawei 目录下。
表 2. PowerVC 对应的 OpenStack 版本
PowerVC version | OpenStack release |
1.4.0 | Pike |
1.4.1 | Queens |
1.4.2 | Queens |
1.4.3 | Stein |
1.4.4 | Stein |
创建并编辑 /etc/cinder/cinder_huawei_conf.xml 文件,内容如下:
创建并编辑 /etc/cinder/V5.conf 文件,内容如下:
[root@powervc cinder] # cat /etc/cinder/V5.conf
[backend_defaults]
cinder_huawei_conf_file = /etc/cinder/cinder_huawei_conf.xml
将 Huawei Cinder Driver 的配置文件及 properties 配置文件修用户和组修改为 cinder
[root@powervc cinder]# chown cinder:cinder /etc/cinder/V5.conf
[root@powervc cinder]# chown cinder:cinder /etc/cinder/cinder_huawei_conf.xml
[root@powervc cinder]# ls -al /etc/cinder/
total 268
drwxr-xr-x 5 cinder cinder 301 Jan 3 10:51 .
drwxr-xr-x. 108 root root 8192 Jan 2 18:41 ..
-rw-r----- 1 root cinder 801 Jan 2 18:38 api_audit_map.conf
-rw-r----- 1 root cinder 2387 Jan 2 18:38 api-paste.ini
-rw-r----- 1 cinder cinder 114273 Jan 2 18:38 cinder.conf
-rw-r----- 1 cinder cinder 110737 Nov 27 2018 cinder.conf.baseline
-rw-r----- 1 root cinder 453 Dec 7 2018 cinder-health.conf
-rw-r--r-- 1 cinder cinder 351 Jan 3 10:50 cinder_huawei_conf.xml
-rw-r----- 1 cinder cinder 1394 Jan 2 18:50 fabrics.conf
-rw-r----- 1 root cinder 1758 Nov 27 2018 logging_sample.conf
drwxr-xr-x 2 root root 268 Jan 2 18:38 powervc-health-policy
-rw-r----- 1 root cinder 991 Nov 27 2018 rootwrap.conf
drw-r----- 2 root cinder 6 Nov 27 2018 rootwrap.d
-rw-r--r-- 1 cinder cinder 82 Jan 3 10:51 V5.conf
drwxr-xr-x 2 cinder root 6 Nov 27 2018 volumes
使用 PowerVC 注册命令注册华为存储
[root@powervc cinder]#powervc-register -o add -r storage -d
cinder.volume.drivers.huawei.huawei_driver.HuaweiFCDriver -n HuaweiStorage -p
/etc/cinder/V5.conf
完成存储设备添加以后,管理员就可以利用 PowerVC 来管理卷,包括卷的创建,卷的删除,卷挂载到 VM 分区,卷从 VM 分区中卸载,卷的克隆,卷的扩容等操作。
通过使用,我们发现标准 Cinder 插件方式有许多不便之处,例如无法管理非 PowerVC 创建的卷等,为此部分厂商对 Cinder 插件进行了定制开发增强。以浪潮的 G2 存储举例,通过开发加强后的 Cinder 插件,可以支持更多的存储管理功能,如表 3 所示:
表 3. 浪潮 G2 存储 Driver 增强开发后的功能对比
操作项目 | 经过官方集成验证 | 标准Cinder插件 | 开发加强后现状 |
导出导入镜像 | 支持 | 支持 | 支持 |
可使用PowerVC UI或API来纳管已有的虚机 | 支持 | 不支持 | 支持 |
可使用PowerVC UI或API来纳管存储已有的卷 | 支持 | 不支持 | 支持 |
使用PowerVC UI创建和编辑存储模板 | 支持 | 不支持 | 无需 |
检查卷是否在存储端被删除 | 支持 | 支持 | 支持 |
通过PowerVC UI查看存储可用的存储池 | 支持 | 不支持 | 无需 |
NPIV连接 | 支持 | 支持 | 支持 |
创建和删除卷 | 支持 | 支持 | 支持 |
捕获普通卷或双活卷的Aix虚机 | 支持 | 不直接支持,导入卷后可再次捕获 | 支持 |
部署普通卷或双活卷的Aix虚机 | 支持 | 支持 | 支持 |
捕获普通卷或双活卷i虚机 | 支持 | 不直接支持,导入卷后才可支持 | 支持 |
部署普通卷或双活卷i虚机 | 支持 | 支持 | 支持 |
购买了浪潮的 G2 存储后,可以通过售后获取 Instorage Cinder Volume Driver 。将 Driver 文件上传至 PowerVC 服务器,通过如下命令生产相应的 OpenStack 版本驱动:
[root@powervc instorage-cinder-volume-driver]# ./mkpackage.sh -t s
Generate Package for OpenStack version STEIN
将生成的 driver 复制到相应的目录下:
[root@powervc instorage-cinder-volume-driver]# cp -rf ./InStorage_STEIN_cinder/inspur /usr/lib/python2.7/site-packages/cinder/volume/drivers/
[root@powervc instorage-cinder-volume-driver]# cp /usr/lib/python2.7/site-packages/cinder/opts.py /usr/lib/python2.7/site-packages/cinder/opts.py.bak
[root@powervc instorage-cinder-volume-driver]# cp ./InStorage_STEIN_cinder/opts.py /usr/lib/python2.7/site-packages/cinder/opts.py
创建并编辑 inspur-instorage.conf 文件
通过如下的命令将浪潮 G2 注册到 PowerVC 中:
在 PowerVC 中完成浪潮 G2 存储注册以后, PowerVC 存储管理界面上会出现对应的存储器列表条目,进入该存储器界面以后,就能看到存储器的具体信息,被该存储器管理的卷,存储器模板信息,存储器端口信息。也包括表 3 中已有卷的发现管理以及已有 VM 的发现管理删除等:
针对注册到 PowerVC 系统中的每一个存储器(包括内置的存储类型以及通过 cinder 驱动方式注册的存储类型), PowerVC 都会在系统中生成一套 cinder-volume 服务及相关配置文件,这些服务通过 systemd 进行管理。服务配置文件 /etc/cinder/cinder-volume-.conf ,服务日志文件 /var/log/cinder/volume-.log ,服务管理文件 openstack-cinder-.service 。内置存储类型注册时的 identity 为访问该存储的 IP 地址; cinder 驱动方式注册的存储类型的 identity 在名称上均为 generic ,按照顺序依次为 generic0 , generic1 。注册过程只是为了在 PowerVC 系统中生成这些配置、日志、服务等相关文件,以及在 PowerVC 管理界面的显示出管理控件。后续使用中即可以直接根据存储器对应的文件进行操作,如可以对驱动文件进行更新,更新后通过 systemctl 对相应的服务进行重启,可以修改对应的 cinder-volume-.conf 配置文件,然后重启服务,使得配置生效,可以通过 volume-.log 文件分析驱动的运行日志。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞2
添加新评论0 条评论