OpenStack云环境下多节点块存储研究

2015-08-18 11:12曹嵘晖李秦伟吕晓丹贵州大学大数据与信息工程学院贵州贵阳55005贵州大学计算机科学与技术学院贵州贵阳55005
网络安全与数据管理 2015年2期
关键词:存储资源硬盘服务器

曹嵘晖,李秦伟,吕晓丹(.贵州大学 大数据与信息工程学院,贵州 贵阳 55005;.贵州大学 计算机科学与技术学院,贵州 贵阳 55005)

OpenStack云环境下多节点块存储研究

曹嵘晖1,李秦伟2,吕晓丹2
(1.贵州大学 大数据与信息工程学院,贵州 贵阳 550025;2.贵州大学计算机科学与技术学院,贵州贵阳550025)

基于OpenStack本身的块存储设计,在云计算平台中实现了多节点块存储的 iSCSI SAN配置,为虚拟机提供了跨网段、跨节点的独立块存储服务,并在不同节点间、虚拟机上分别对其进行测试,对学习和实际构建云平台中跨网段多节点的块存储服务有参考价值。

OpenStack;多节点块存储;iSCSI SAN

0 引言

随着云计算的不断发展,各种云计算管理平台应运而生,如 Eucalyptus、OpenStack。而在各种各样的云计算管理平台中只有 OpenStack是完全开源的,而开源的云计算管理平台则一致被业界和学术界认为是未来云计算发展的方向[1]。

OpenStack是由 Rackspace和 NASA共同开发的云计算平台,帮助服务商和企业内部实现类似于AmazonEC2和 S3的云基础架构服务(Infrastructureasa Service,IaaS)。前者是 NASA开发的虚拟服务器部署和业务计算模块;后者是 Rackspace开发的分布式云存储模块,两者可以一起用,也可以分开单独用。OpenStack是一个开源项目,除了有 Rackspace和 NASA的大力支持外,后面还有包括 Dell、Citrix、Cisco、Canonical这些重量级公司的贡献和支持,其发展非常之迅速[2]。

1 OpenStack块存储服务

OpenStack创建出来的实例是没有永久存储的,关闭实例后数据都会丢失,所以需要存储卷来保存每个instance的数据。这项工作由 nova-volume实现,提供类似亚马逊EBS的块存储服务。

其中,nova-volume专门管理卷的创建、删除、挂载等,这些卷基于 lvm管理,使用 iSCSI提供服务,并通过libvirt与虚拟机交互。存储池在 libvirt中分配的 id标志着它成为 libvirt可管理的对象,生成卷组 vg(volume group,OpenStack中必须nova-volumes)就有了可划分存储卷的存储池,状态为活跃(active)状态才可以执行划分存储卷的操作,其流程如图1所示。

在单机块存储中,一个块设备指一个磁盘分区。以Linux操作系统为例,在设备目录/dev/下会看到挂载的块存储设备。再通过 fdisk分区工具将磁盘分区。

但是,在当前海量数据存储和超高任务访问量的需求下,单机的块存储已经远远不能满足大数据量的要求。通过光纤通道存储(SAN)将不同种类、性能和大小的存储设备集合在一起统一向外提供服务,能够满足性能和价格方面的需求[3]。

图1 nova-volume工作流程

而OpenStack云平台中只提供类似于EBS块存储的API框架,当前的实现方式是Ceph。它并没有实现对多个节点块设备的管理和实际服务的提供。

OpenStack目前作为商业应用云计算平台并不多见,而将多节点的物理存储资源在 OpenStack上进行统一管理是商业应用必需的[4]。

为此本文引入光纤通道存储局域网技术(Fibre Channel Storage Area Network,FC SAN)。这是一种用可靠的小型计算机系统接口(Small Computer System Interface,SCSI)协议将存储设备与相关的服务器连接起来的高速子网。

2 iSCSI存储服务

iSCSI把 SCSI命令封装在 TCP包中,通过 TCP/IP协议连接Initiator(发起端)与 Target(目标端),利用 TCP连接传送控制信息、SCSI命令、参数和数据[5]。

3 多节点块存储实现步骤

本文中实验环境为1台控制节点,3台计算节点,1台存储服务器,由于控制节点本身带块存储服务,所以将存储服务器并入 OpenStack云平台中以提供多节点块存储服务。表1为各个节点基本配置参数。

表1 各个节点基本配置参数

3.1准备存储服务器

由于搭建 OpenStack云平台开始前须先用 Ubuntu-12.04.2-server-amd64.iso做为底层操作系统,因此存储服务器在安装操作系统对硬盘进行分区时,分出15 TB的空间挂载在 nova-volume上,为提供块存储服务作资源准备。

3.2iSCSI的配置

3.2.1开启 iSCSI target服务

在 Ubuntu环境下安装 iSCSI target相关的软件 tgt、iscsitarget、iscsitarget-source、iscsitarget-dkms。修改 iSCSI target的配置文件:将ISCSITARGET_ENABLE的值改成true。

创建 target,id=1,iqn=iqn.33.cinder,iqn是 target在局域网内的唯一描述符。给指定的target增加一个 lun,通过 tid来制定 target,这里将/dev/sdb添加到 tid=1的target中,并使其能被initiator访问。

3.2.2iSCSI initiator端的配置

安装open-scsi并发现 iscsi target。

其显示信息为:192.168.3.3:3260 iqn.33.cinder。通过下面指令使用target:

sudoiscsiadm-mnode—targetnameiqn.33.cinder-p 192.168.3.3--login

执行上述操作后,使用df╞h查看控制节点磁盘信息就可以看到在本地主机上多出一个/dev/sdb。

3.3存储卷轴的管理与操作

分区格式化后,可以看到多出来的/dev/sdb1。对其进行物理卷和卷组的创建,卷组名称为:nova-volume。通过 vgdisplay可以看到卷组信息,如图2所示。

图2 nova-volume卷组信息

在 openStack的 Horizion操作平台上点击“create volume”即可对存储服务器上提供的 15 TB存储资源进行管理与操作。

4 基于iSCSI的多节点存储的 OpenStack云平台性能评测

针对搭建好的 OpenStack云平台的存储性能研究可以分为节点测试和虚拟机测试两个方面。节点测试是对物理层面上的存储资源性能的评测指标,虚拟机测试则是确定云平台提供服务以及云存储性能研究的层次。

4.1节点测试

本文提供存储服务采用的存储服务器为Dell的R510。此存储服务器具有最多 12个硬盘,可提供超大内部存储容量,本实验为9个做raid5的2 TB硬盘,提供的可用存储容量为 16 TB。

在存储节点上对其提供存储服务的存储区/dev/sdb1进行读写测试,测试结果如图3所示。

图3 存储节点上对存储资源读写测试

可以看到直接插在服务器上的硬盘2 s读取了17 214 MB的缓存,约合 8 615.97 MB/s。在 3.02 s读取了828 MB磁盘(物理读),读取速度约合274 MB/s。

回到控制节点,通过 iSCSI的Initator端指令找到其提供存储服务的存储资源,并使用它。由于其存储资源大于 2 TB,因此采取 GPT分区的方式。分区完成后使用mkfs.ext3格式化。对其进行物理卷和卷组的创建。并对其进行相同的硬盘测试,测试结果如图4所示。

图4 控制节点上读写测试

这时看到在使用其存储服务的控制节点上对其提供的存储资源的读取测试中,其2 s读取了12 268 MB的缓存,约合6 140.78 MB/s。在3.34 s中读取了334 MB磁盘(物理读),读取速度约合110.72 MB/s。

对比其本地资源的读取,其速度有明显下降。由于其存储节点与控制节点间是交换机连接的,并且处于不同的网段,因此网络是存储节点性能的一个制约因素,其速度下降值在可以接受的范围之内,不影响控制节点对其存储资源的正常使用。

在控制节点创建用以提供给虚拟机使用的物理卷轴,大小为1 TB,具体信息如图5所示。

图5 物理卷轴信息

将其挂载在虚拟机上,随后对其进行测试。

4.2虚拟机测试

在 OpenStack云平台上创建 4核、8 GB内存、100 GB硬盘的虚拟机。其镜像为windows2008server。虚拟机启动后再将之前创建的 1 TB的物理卷挂载在虚拟机上,对其格式化分区后如图6所示。

使用 HD Tune Pro工具。分别选取 512 KB、16 MB、64 MB、512 MB大小的文件对其挂载的 1 TB硬盘进行读写测试,测试结果如图7所示。

从4组测试结果可以看到,不同大小文件对其挂载的1 TB的硬盘均在 512 GB~8 192 GB的区间达到峰值。说明其不同大小的文件读取对其提供的存储服务在读写区间没有区别。同时其读取速度4次取平均值为读取109.6 MB/s、写入105.7 MB/s,结果如图8所示。

图6 windows2008server磁盘管理

图7 各个大小文件的硬盘读写测试

图8 硬盘读写平均值

对比其在控制节点上对存储资源的测试,其读取速度没有变化,不受云平台本身的影响。同时对不同大小的文件的读写也没有明显的区别,足以说明此种方案的可信性。

5 结论

本文在分析 OpenStack云平台其自身块存储服务基础上给出了 Linux下通过 iSCSI协议实现多节点存储的实现方案,在此实现的基础上研究了节点与虚拟机两方面对多节点块存储管理与应用,并给出了相应的实验测试。通过测试结果发现,在物理层上不同节点间的存储资源的使用是受其网络性能的影响,而在 OpenStack本身的云平台内,其物理层的网络设置对块存储服务的影响几乎微乎其微。如果节点间网络配置不当,就会严重影响存储服务的性能;反之,就能充分发挥其基于 iSCSI协议块存储的优越性。

[1]汪楠.基于OpenStack云平台的计算资源动态调度及管理[D].大连:大连理工大学,2013.

[2]OpenStack[EB/OL].[2014-09-16].http://openstack.org/.

[3]张江陵,冯丹.海量信息存储[M].北京:科学出版社,2003.

[4]Marc Farley.SAN存储区域网络[M].孙功星,蒋文保,范勇,译.北京:机械工业出版社,2001.

[5]iSCSI Draft[EB/OL].(2003-01-xx)[2014-09-16].http://www. ietf.org/int-ernet-drafts/draft-ietf-ips-iscsi-20.txt,2003-01.

The research of multi-node block storage in OpenStack Cloud environment

Cao Ronghui1,Li Qinwei2,Lv Xiaodan2
(1.College of Big Date and Information Engineering,Guizhou University,Guiyang 550025,China;2.College of Computer Science and Technology,Guizhou University,Guiyang 550025,China)

Based on the design of block storage in OpenStack,this paper achieves the configuration of iSCSI SAN that multinode block storage in Cloud computing platform.It provides the independent block storage service that cross-network segment and cross-node for virtual machine.Test is completed in different node and virtual machine respectively,on the learing and practical construction of the multi-node block storage service that corss-network in Cloud platform has some reference value.

OpenStack;multi-node block storage;iSCSI SAN

TP27

A

1674-7720(2015)02-0022-03

(2014-09-26)

曹嵘晖(1988-),男,硕士研究生,主要研究方向:云计算。

李秦伟(1961-),男,教授,硕士生导师,主要研究方向:网络安全,信息安全,现代密码学。

猜你喜欢
存储资源硬盘服务器
一种基于区块链的存储资源可信分配方法
HiFi级4K硬盘播放机 亿格瑞A15
Egreat(亿格瑞)A10二代 4K硬盘播放机
通信控制服务器(CCS)维护终端的设计与实现
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御
用SSD提升私有云存储性能
我区电视台对硬盘播出系统的应用
在现有存储上作文章