本文目录:
背景描述
架构参考
准备工作
控制节点
计算节点
功能测试
参考链接
----------------------正文-------------------------
背景描述:
由于OpenStack的被接受程度越来越高,部署使用OpenStack的企业也越来越多,那承载虚机的存储使用什么成为企业考虑的重点因素,如果放在计算节点本地则无法实现快速的迁移等特性,对于宕机后的数据恢复也是挑战,所以企业数据基本都是放在共享存储上的。
传统的虚拟化例如VMware基本都是存储在商业存储上并实现高可用,那对于OpenStack来讲,其存储的选择也有几种,其中随着OpenStack的活跃,也带动了分布式存储Ceph的发展,Ceph不失为一种好的选择,但是也有其利弊。也有很多客户更倾向于商业存储,今天我就梳理下OpenStack对接商业存储的方式,用华为S2600T v1示例。
当然,不通的存储厂家,甚至不同的型号对接方式都有可能不同,但是华为的对接方式基本一致。
既然已经到了对接商业存储的地步了,那么本文默认你已经将OpenStack部署完成,且有了一定的了解,所以本文不会对OpenStack再进行赘述。
架构参考:
OpenStack的存储分为三大类:
1、块存储-->cinder
2、对象存储-->swift
3、文件系统-->glance,其实这样说不太合适
我们主要通过Cinder来对接商业存储,Cinder的架构如下,不再赘述(图片源自IBM):
OpenStack版本:liberty
操作系统版本:CentOS 7.2,即1511
Cinder版本:1.4.0
存储型号:华为S2600T v1
存储协议:SAN FC,非ISCSI(FC和ISCSI对接方式稍有差别)
先来看一下整体的物理架构图:
架构简述:
1、使用Cinder对接商业存储,Cinder只提供框架,调用厂商的driver来使用和管理商业存储;
2、控制节点需要能够访问存储的管理口,官方建议使用管理网;
3、存储需要支持OpenStack,并提供可用的driver;
4、本方案使用全FC互联,即控制节点和计算节点全部接有FC HBA卡,并跟存储互通,即zone已划好。
然后看一下逻辑架构图,大致了解下挂载流程(以ISCSI为例,此处跟FC一样,原图好像摘自IBM):
准备工作:
1、首先要确认存储对OpenStack支持情况,需要到OpenStack官网查询:
https://wiki.openstack.org/wiki/CinderSupportMatrix
我们可以找打Huawei T V1,这就是我为什么在写型号的时候标注v1的原因,因为华为对其存储的 分类归为四种:v1、v2、v3和18000,所以我们属于v1版本,确认支持,并从H版就开始支持,所以 支持应该不错。
2、现在需要存储工程师上场了(当然我们已经安装好了cinder组件),如下:
a、提供存储端具有管理员权限的用户名和密码;
b、由于S2600不支持pool,只能划分raid组,但是华为支持对raid组的对接,其他家目前还没发现支 持的,所以需要提前划好raid组,并提供raid组的名称;
c、配置好控制器的IP地址,并提供给OpenStack工程师,这个IP需要跟控制节点,即cinder服务所在 节点互通;
d、FC网络按照规划接线,一般需要冗余,即主机端至少两根FC线和HBA口,两台SAN交换机,存储端 每台控制器不少于两根光纤线;
e、zone需要所有主机都可以连通存储。
注:如果需要快照功能的话,需要购买snapshot的license
控制节点(cinder节点):
1、安装如下软件包:sysfsutils、sg3_utils、kpart3、device-mapper-multipath
前面几个软件主要是用于查找HBA卡的WWN已经格式化磁盘等,multipath相信很多人都用过就是多 路径软件,用于链路聚合,这里不再介绍;
2、说一下控制节点为什么要接HBA卡,这是因为如果你使用boot from volume功能的话,即虚机创建 在商业存储上就必须接,如果只是当云硬盘使用,那么控制节点可以不接,当然也不排除个别存 储必须要接的情况;
3、下载驱动并上传到控制节点
a、下载链接:华为驱动下载 需要确认下载的是对应的版本,例如本次使用liberty版;
b、将下载好的驱动上传到如下目录...site-packages/cinder/volume/drivers/huawei,本次对接 前面省略号代替的是/usr/lib/python2.7/site-packages/,不同版本可能不同,需要提前将原 来的代码文件备份然后清空,当然你也可以使用默认带的driver,之所以建议下载是为了保持 最新,因为这很可能解决了一些已知的BUG;
c、然后定义xml文件
vim /etc/cinder/hws2600tv1_fc_1.xmlT #T or v1系列FC #FC协议192.168.0.1 #存储控制器IP192.168.0.2 admin #存储用户名密码admin thick #厚置备模式64 1 1 #raid组的名字
d、定义cinder.conf文件
vim /etc/cinder/cinder.conf [default] enabled_backends = hws2600tv1_fc_1 [hws2600tv1_fc_1] volume_driver=cinder.volume.drivers.huawei.huawei_t.HuaweiTFCDriver cinder_huawei_conf_file= /etc/cinder/hws2600tv1_fc_1.xml volume_backend_name= hws2600tv1_fc_1 use_multipath_for_p_w_picpath_xfer=true enforce_multipath_for_p_w_picpath_xfer=true
e、重启cinder volume服务
systemctl restart openstack-cinder-volume
f、验证
当在cinder的volume日志看到如下日志信息时,恭喜你,表示已经对接成功。
2016-11-14 18:03:06.189 372883 INFO cinder.volume.manager[req-6edb824c-52c0-437c-8b5d-1996507bb9bd - - - - -] Driver initializationcompleted successfully.
g、创建cinder type
cindertype-create Huawei_S2600_1 cindertype-key Huawei_S2600_1 set volume_backend_name=hws2600tv1_fc_1
这时,你在dashboard上面已经可以看到这台存储了,可以创建空卷和可启动的卷了。
h、如果需要配置cinder多后端,只需要添加backend、对接项和xml文件就好了,此处不写了。
计算节点:
1、安装如下软件包:sysfsutils、sg3_utils、kpart3、device-mapper-multipath
前面几个软件主要是用于查找HBA卡的WWN已经格式化磁盘等,multipath相信很多人都用过就是多 路径软件,用于链路聚合,这里不再介绍;
2、说一下计算节点节点接HBA卡的作用,其实也不用说了,当然是虚机通过FC网络进行读写操作啦;
3、多路径软件的配置我就不多说了,安装完成后,生成配置文件,或者copy一个到/etc/下即可,然 后重启multipath服务,这里需要注意一点从liberty版本后,nova默认不调用multipath,所以需 要检查nova.conf文件是否启用了multipath调用,即iscsi_use_multipath;
其实,到了这里已经对接完成了,接下来你就可以测试了。
功能测试:
根据OpenStack官方支持功能如下,可以逐一进行测试了。
参考链接:
1、cinder支持存储情况:https://wiki.openstack.org/wiki/CinderSupportMatrix
2、cinder driver下载链接:https://github.com/openstack/cinder/tree/master/cinder/volume/drivers
3、对接方法参考:http://docs.openstack.org/liberty/config-reference/content/config-fc-tv1.html