一种企业级私有云中的虚拟化实现

曾赛峰,朱立谷,李强,张福

ZENG Sai-Feng,ZHU Li-Gu,LI Qiang,ZHANG Fu

中国传媒大学 存储实验室, 北京市 100024

Laboratory of Networked Storage, Communication University of China, Beijing 100024, China

E-mail: saifengzeng@126.com,Phn: +86-158-1042-1317

 

Implementation of virtualization on a private enterprise cloud storage system

Abstract:Coming with the cloud storage, the virtualized technology has been widely applied in cloud storage system, at the same time, the new data center deployment and management appears. In this paper we describe WFS, a enterprise private cloud storage system. The virtualization technologies such as unified storage management, virtual path, separation of data and metadata, interface of cloud storage, multi-path access and so on, are employed in the private cloud storage system which is divided in four layers. With deeply analyzing of the system, the features and deployed mode of the virtualization be explored, and we show that the virtualization plays a more and more important role in increase resource utilization rate, enhance system security and ease use.

Key words:cloud storage; private cloud; virtualization

摘  要:在云存储的概念被提出之后,虚拟化技术在云存储系统中得到了广泛的应用,出现了全新的数据中心部署和管理方式。本文实现了一个企业级私有云存储系统WFS,在WFS云存储系统的四层架构中,分别采用了统一存储管理、虚拟路径、数据与元数据分离、云存储接口、多路径访问等虚拟化技术。通过对该系统进行分析,将说明虚拟化技术在云存储系统中的应用方式、特点以及在提高资源利用率、增强系统安全性、易用性等方面的重要作用。

关键词:云存储;私有云;虚拟化

文献标识码: A    中图分类号:  TP302

1引言

         云存储是指通过集群应用、网格技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的系统[1]。云存储系统的分类标准有多种,根据部署方式和服务对象的不同可以分为公有云、私有云和混合云三类[2]

在云存储系统中涉及到大量的物理设备、通信协议甚至不同的操作系统,如果不采用虚拟化技术,面对复杂的物理设备和应用环境系统管理将会变得异常艰难,并且系统的资源利用率、安全性也会大幅降低。SNIA(Storage Networking Industry Association)的研究数据表明未采用虚拟化的磁盘其空间利用率只能达到30%-50%[3],因此统一资源管理、高度虚拟化是云存储系统的显著特征。

虚拟化是从逻辑角度而不是物理角度来对资源进行配置,它为一组类似的资源提供通用的抽象接口集,从而隐藏属性和操作之间的差异。通过虚拟化可以使用与资源抽象前的方法访问抽象后的资源,从而不受实现、位置或底层资源物理配置的限制。虚拟化具有降低运营成本、提高应用兼容性、加速应用部署、提高服务可用性、提升资源利用率、动态调度资源、降低能源消耗等技术优势。

目前,市场上有众多的企业在提供云服务。提供公有云服务的有“Google App Engine”、“Amazon EC2”、“IBM Developer Cloud”以及国内的“无锡云计算中心”,提供私有云服务的有“中化云计算”,荷兰的“iTricity云计算中心”则提供混合云服务。根据IBM对云服务使用方式的客户感兴趣程度调查发现,对私有云感兴趣的客户占64%,公有云则为30%。国内的企业和事业单位更倾向于在企业内部管理企业的数据,为此本文设计实现了一个企业级私有云存储系统 WFS (Web File System)。

虚拟化技术在WFS云存储系统中得到了充分的使用。WFS云存储系统模型主要由存储层、基础管理层、应用接口层、访问层四层组成。在存储层系统能兼容不同类型的物理存储设备,从而可以利用企业现有的服务器进行快速部署,有效降低了企业的成本;在基础管理层采用虚拟路径保存数据,提高了系统的安全性,并在一定程度上消除了数据冗余;在应用接口层系统提供不同的访问协议接口,用户可以通过不同方式连接云存储系统;在访问层通过有效利用元数据信息、共享、搜索等功能实现了数据的多路径访问,从而提高了企业内部数据的利用率。

 

2系统层次结构

WFS云存储系统是一款集资源收集、管理、服务的文件存储产品。对外提供基于Web的访问方式,提供文件在线存储、备份、共享、搜索、多版本控制等功能。内部采用多种虚拟化技术,底层提供FC、FCOE、iSCSI、NFS、CIFS和自定义的API访问接口。WFS云存储系统的层次结构如图1所示。

1、存储层。存储层是WFS云存储系统最基础的部分,通过底层的统一存储管理平台,WFS云存储系统能快速部署在不同类型的存储设备之上,典型的存储设备为廉价PC机,它们通过高速网络进行互联。存储设备还可以采用磁盘阵列、存储区域网络(Storage Area Network, SAN)、网络附属存储(Network Attached Storage, NAS)。统一存储管理平台使WFS系统能够兼容异构的存储设备。

2、基础管理层。基础管理层是WFS云存储系统最核心的部分,也是其最难以实现的部分。基础管理层通过集群、分布式文件系统和逻辑卷管理等技术,实现了多个存储设备之间的协同工作,使多个存储设备可以对外提供同一种服务,并提供更强更好的数据访问性能。

3、应用接口层。在应用接口层WFS云存储系统提供了不同的服务接口,根据不同的接

1

图1  WFS云存储系统层次结构

口提供不同的应用服务,如通过Http访问接口,用户能使用浏览器直接存储文件,并对文件进行共享,搜索等操作。通过自定义的API接口开发的客户端能实现个人数据自动备份,以及个人的多机数据自动同步,应用接口层是WFS云存储中较为灵活的部分。

4、 访问层。任何一个授权用户都可以登录访问云存储系统,享受云存储服务。WFS云存储系统根据用户授权的不同,提供不同的服务等级和内容。

在WFS云存储系统的四层架构中采用了不同的虚拟化技术,如图2所示。

2

图2  WFS系统中的虚拟化技术

作为企业级私有云存储系统,WFS对系统的存储容量、数据访问性能、存储扩展能力以及安全性有很高的要求。WFS云存储系统在存储层采用了独立冗余磁盘管理(Redundant Array of Independent Dist, RAID)技术,RAID是存储虚拟化技术的雏形,它通过将多块物理磁盘以阵列的方式组合起来,为上层提供统一的存储空间,以及数据备份和容灾服务。用户可以通过创建、删除、扩展等操作来设置存储空间的大小。并且可以通过配置磁盘阵列获取RAID0、RAID1、RAID5三种级别的RAID,不同的RAID级别提供不同的访问性能和安全级别,用户根据自己的具体需求进行选择。

在RAID的上层,WFS云存储系统的统一存储管理平台采用了LVM技术,LVM是在磁盘驱动器和文件系统之间添加的一个逻辑层,用来为文件系统屏蔽下层磁盘驱动器,提供抽象的逻辑卷,在逻辑卷上建立文件系统。WFS云存储系统在一个或多个RAID上创建卷组,然后在卷组上创建逻辑卷,用户可以根据具体需要对逻辑卷进行命名,例如光纤卷、iSCSI卷等。对于不同的逻辑卷采用不同的协议进行访问,并且对于各逻辑卷,WFS提供创建、删除和扩容等操作。

用户能通过多种接口将文件上传到WFS云存储系统中,系统将自动获取文件的元数据信息,数据的存储采用数据与元数据分离的技术,所有元数据信息保存在一个分布式的数据库中供访问层使用,WFS云存储系统将根据内容计算文件的Hash值,对于文件的访问均基于该Hash值进行。通过Hash值的利用WFS云存储系统有效地实现了重复数据的删除,并提高了系统的安全性。访问层通过操作储在分布式数据库中的数据,实现文件的多路径访问、共享、搜索等功能。

3实现与关键技术

3.1系统设计

WFS云存储系统基于Web进行访问,通过在Web界面的服务配置,管理员可以定制系统需要的模块,如网络管理、存储管理、以及系统的应用功能。普通云用户则可以直接通过Web浏览器对文件进行操作,主要包括文件的存储、搜索、共享。文件及其元数据分别保存在分布式文件系统以及分布式数据库中。用户使用的空间为虚拟空间,可以通过参数直接设定其大小,使用者无需关心底层的具体实现。开发人员则可以使用WFS云存储系统提供的接口进行二次开发。WFS云存储系统的系统架构如图3所示。

 3

图3 WFS云存储系统设计

3.2虚拟路径

SNIA 在CDMI( Cloud Data Management Interface)[4]中定义了云存储的资源域模型,云存储中所有的资源通过URI进行描述,资源采用数据和元数据分离存储,元数据包括了对资源的访问控制,第三方可增加自定义元数据。

WFS云存储系统提供用户备份文件和目录的功能,文件上传时系统自动提取文件的文件名、类型、大小、创建日期等元数据。并且采用MD5算法,根据文件内容计算文件的Hash值,然后用该Hash值重命名上传的文件,所有文件按日期归类存放在存储系统内,所有元数据则存储在分布式的数据库中。由于WFS提供目录备份的功能,因此文件夹同样会被计算Hash值,该Hash值作为文件的父目录元数据保存在数据库中。文件和文件父目录的Hash值以及文件的操作权限经过组合后,作为该文件的URI对外提供。

用户通过Web访问WFS云存储系统对文件进行复制,剪切,删除等操作时,并非对实际文件进行操作,只需要更新数据库记录,从而提高了系统的效率。由于Hash值是根据文件内容进行计算,因此用户上传相同文件时,只需要保存一个父本和对上传次数的计数,从而消除数据冗余。

3.3 云存储接口

在云存储服务之上是系统需要直接处理的云存储接口,WFS云存储系统设计了一个云存储接口层。提供基于Http、Https等标准协议的访问,同时提供自定义的API访问接口,文件的访问传输可以根据需要采用不同的接口。自定义的API接口严格遵循SNIA中定义的CDMI接口标准,由于WFS系统主要针对的是存储备份应用,因此仅适用了基础的云存储接口,主要包括创建数据对象、更新数据对象、获取数据对象、删除数据对象等。例如,请求文件列表的数据结构如下所示:

<?xml version=”1.0″ encoding=”UTF-8″?>

< clientmsg > clientmsgvalue</clientmsg >

< action > getfilelist< /action >

< wpid > 0bbeba4afd179c0a12043f9aa68eab93</wpid >

<vernum>1</vernum>

<startRecordNum>1 <startRecordNum>

通过该请求获得的文件列表的数据结构如下:

<?xml version=”1.0″ encoding=”UTF-8″?>

< Errormsg ></Errormsg >

<data>

< CreateTime >20100823112105</CreateTime>

< FileName >海阔天空.mp3</FileName >

< FileType >mp3</ FileType >

< FileSize >3145963</FileSize >

< FileHash > 3ddf1c363ca2244685d3e118d8de5717 </FileHash >

<VerNum>1</VerNum>

</data>

根据自定义的API接口我们开发了一个云备份客户端,该客户端实现了用户数据本地数据的实时备份,以及多机之间的数据同步。并且能够对本地文件系统中的整个目录进行备份,同时支持大文件的断点续传,在大文件传输方面采用了分片和多线程的传输,有效提高了数据的传输率。

3.4多路径访问

如何提高数据的利用率是一个存储系统需要解决的重要问题,WFS云存储系统采用了Web2.0技术,提供了跨平台的数据共享和服务,支持移动设备访问,支持多种浏览器。在Web端,系统根据文件的类型显示相应的图标,由于数据的显示以及对数据的操作均是通过对数据库记录的操作来完成,因此可以不考虑数据冗余,利用元数据等描述信息为数据的访问提供多个入口,如图4所示。

4

图4 数据访问路径示意图

其访问入口包括类型、大小、日期、创建者等,通过不同路径访问的某一文件,在数据存储池中只存在一个实例。例如按类型可以设定有视频、音频、文档、图片,如果需要查找某一首歌曲,可以通过进入音频目录快速定位目标。元数据作为描述文件的重要信息,可以用来作为搜索的信息源。WFS云存储系统采用元数据作为关键字提供模糊搜索和精确搜索功能,进一步加强了系统的数据定位能力。

 

实验结果

    基于WFS云存储平台的接口,我们实现了一个备份客户端的原型,利用实验室的私有云平台进行了性能实验,实验环境如下:

1) 硬件组成

服务器端:基于PC的服务器;双64b Inter Xeon 2.0GHz,4048KB Cache CPU;8GB内存,挂载RAID5存储2TB,1000Mbps网卡;

客户端:Intel Core2 2.53GHz CPU,2GB内存,SATA 7200转硬盘,1000Mbps网卡;网络:1000Mbps交换机构建的LAN。

2) 软件环境

服务器端:Red Hat AS5(内核2.6.30),Web服务器APACHE(2.2.16);

客户端:Windows XP(SP2)

 5

图5 FTP与备份客户端的写速度对比

我们选用40M到320M不等的数据,分别采用单线程,双线程,四线程进行上传,并与FTP进行对比。从图5的对比分析可以看出,虽然采用单线程传输备份客户端只有FTP传输速度的一半,但在采用四个线程对大文件进行传输时其速度是FTP的两倍。从图中还反映出,对于小文件,仅对单个文件采用多线程机制并不能发挥出其优越性,如图40M大小的文件四线程传输并不能加快传输。针对小文件,我们可以利用多个线程分别对不同的小文件进行传输。

 

结论

本文分析了一个企业级私有云存储系统,通过阐述虚拟化技术在该云存储系统的四层架构中的实现方式,说明了虚拟化技术实现的多样性和重要性。基础设施层的虚拟化技术提高了系统的容灾备份能力,虚拟路径的使用则在很大程度上消除了数据冗余,云存储接口为系统提供了多种访问方式,增强了系统的兼容性,元数据的充分利用则有效地提高了存储系统中数据的利用率。

 

参考文献:

[1]      ZHAN Ying, SUN Yong, Cloud Storage Management Technology;2009 Second International Conference on Information and Computing Science, Page 309

[2]      Storage Networking Industry Association. Cloud Storage For Cloud Computing. http://www.snia.org/

[3]     Storage Networking Industry Association. Storage Vatualization.  http://www.snia.org/

[4]      Storage Networking Industry Association. Cloud Data Management  Interface(CDMI). http://www.snia.org/

 

 

 

 

 

 

 

作者联系信息:

曾赛峰

北京市朝阳区定福庄东大街1号45号楼5层501室(100024)

saifengzeng@126.com