本文目录:

  背景描述

  架构参考

  准备工作

  控制节点

  计算节点

  功能测试

  参考链接


----------------------正文-------------------------


背景描述:


  由于OpenStack的被接受程度越来越高,部署使用OpenStack的企业也越来越多,那承载虚机的存储使用什么成为企业考虑的重点因素,如果放在计算节点本地则无法实现快速的迁移等特性,对于宕机后的数据恢复也是挑战,所以企业数据基本都是放在共享存储上的。

  传统的虚拟化例如VMware基本都是存储在商业存储上并实现高可用,那对于OpenStack来讲,其存储的选择也有几种,其中随着OpenStack的活跃,也带动了分布式存储Ceph的发展,Ceph不失为一种好的选择,但是也有其利弊。也有很多客户更倾向于商业存储,今天我就梳理下OpenStack对接商业存储的方式,用华为S2600T v1示例。

  当然,不通的存储厂家,甚至不同的型号对接方式都有可能不同,但是华为的对接方式基本一致。


  既然已经到了对接商业存储的地步了,那么本文默认你已经将OpenStack部署完成,且有了一定的了解,所以本文不会对OpenStack再进行赘述。


架构参考:


  OpenStack的存储分为三大类:

  1、块存储-->cinder

  2、对象存储-->swift

  3、文件系统-->glance,其实这样说不太合适

  我们主要通过Cinder来对接商业存储,Cinder的架构如下,不再赘述(图片源自IBM):

wKioL1hLsUqhDpDRAABH4gqLdUg377.png


OpenStack版本:liberty

操作系统版本:CentOS 7.2,即1511

Cinder版本:1.4.0

存储型号:华为S2600T v1

存储协议:SAN FC,非ISCSI(FC和ISCSI对接方式稍有差别)


  先来看一下整体的物理架构图:

wKiom1hLrCSiHlFKAAD0hBQOJjo033.png


  架构简述:

1、使用Cinder对接商业存储,Cinder只提供框架,调用厂商的driver来使用和管理商业存储;

2、控制节点需要能够访问存储的管理口,官方建议使用管理网;

3、存储需要支持OpenStack,并提供可用的driver;

4、本方案使用全FC互联,即控制节点和计算节点全部接有FC HBA卡,并跟存储互通,即zone已划好。


 然后看一下逻辑架构图,大致了解下挂载流程(以ISCSI为例,此处跟FC一样,原图好像摘自IBM):

wKioL1hLrcGj04z9AADXuH2tyqo749.png


准备工作:


 1、首先要确认存储对OpenStack支持情况,需要到OpenStack官网查询:

   https://wiki.openstack.org/wiki/CinderSupportMatrix

   我们可以找打Huawei T V1,这就是我为什么在写型号的时候标注v1的原因,因为华为对其存储的    分类归为四种:v1、v2、v3和18000,所以我们属于v1版本,确认支持,并从H版就开始支持,所以    支持应该不错。


wKiom1hLrwPxk9SWAAAbElGHKq4221.png


 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.xml

<?xmlversion='1.0' encoding='UTF-8'?>
  <config>
  <Storage>
    <Product>T</Product>  #T or v1系列
    <Protocol>FC</Protocol>  #FC协议
    <ControllerIP0>192.168.0.1</ControllerIP0>  #存储控制器IP
    <ControllerIP1>192.168.0.2</ControllerIP1>
    <UserName>admin</UserName>    #存储用户名密码
    <UserPassword>admin</UserPassword>
  </Storage>
  <LUN>
    <LUNType>thick</LUNType>   #厚置备模式
   <StripUnitSize>64</StripUnitSize>
    <WriteType>1</WriteType>
    <MirrorSwitch>1</MirrorSwitch>
    <Prefetch Type="3"Value="0" />
    <StoragePool Name="RAID001"/>    #raid组的名字
    <StoragePool Name="RAID002"/>
  </LUN>
</config>

  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_image_xfer=true
enforce_multipath_for_image_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官方支持功能如下,可以逐一进行测试了。

wKioL1hLvh7CkwZXAACKYKrRQXA661.png


参考链接:


  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