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

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

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

基于云存储实现多机文件同步

邵宪津,朱立谷,李强

Xianjin Shao,     Ligu Zhu,  Qiang Li

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

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

 

File Synchronization of Multiple Computers base on Cloud Storage

Abstract: With the widespread of computers and the social development, both the personal remote and electronic office are becoming more and more popular, which results in the issue that how to synchronize of large amounts of data on multiple computers. In this paper, the mechanism of metadata is used to synchronize directories of files and control file version, and the segmentation to speed the transmissioin of a large file according to the property that the cloud storage can store additionally. Then, the platform of cloud storage is responsible for relaying and caching the new version of files to achieve the synchronization among multiple computers.

 

Keyword: cloud storage; file synchronizer; metadata

 

摘要:随着计算机的大众化以及社会的发展,个人异地办公和电子化办公越来越普遍。随之而来的问题是如何实现大量的数据在多台计算机之间进行同步。使用元数据机制实现文件目录同步和文件版本控制。根据云存储可以对文件追加存储的特性,采用文件分片机制提高大文件传输效率。通过云存储平台进行中转缓存,实现多台计算机之间数据的同步。

关键词:云存储;文件同步;元数据

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

 

引言

正是因为网络的发展和个人计算机的普及以及存储产品性价比的提高,使得文件同步的实现成为了可能。推动了文件同步技术的发展。首先,云理念的提出以及云存储的应用,为个人用户将大量的个人文件存储到远程云端提供了存储空间。云存储不仅仅以存储服务的形式提供了大容量的存储空间,而且提供了有效的数据管理机制,进一步保证了数据的有效性和安全性。其次,网络技术的发展,尤其是Internet的发展,使得网络负载能力和容错能力得到大大的提高。网络的发展为大量文件安全、可靠、快速的传输提供了路径。

人们进行异地办公和电子化办公越来越普遍。这样就出现了一个问题,如何把最新版本的数据更新到异地办公的另外一台计算机上?即我们在本地修改完成文件,异地计算机如何获得最新的文件。文件同步可以很好的解决了这么一个问题。它实现了多台计算机之间文件的更新,从而方便了人们的异地办公等。

本文在以下部分将对多机文件同步的定义和一些相关研究进行阐述。对多机文件同步客户端的设计与实现进行描述。

相关研究

近年来,国内和国际上的研究机构对存储服务和如何提高文件远程传输效率进行了大量的研究,主要研究成果包括大文件同步、云存储和备份等。

2.1 大文件同步

现在研究机构对大文件同步的研究取得了一定的成果,比如在低带宽环境下如何以最小的代价实现大文件的同步,详细技术见参考文献[4]。该文献详细讨论了大文件同步的细节,但是其前提环境是仅仅对一个文件的两个版本在不同计算机之间的同步。在大文件同步中往往忽略了对文件目录的控制。

2.2 云存储

云存储作为一种新的理念被提出后,受到各大厂商和研究机构的热捧。云存储通过网络为个人或者企业提供存储服务和存储软件功能。云存储有两大基本特征:第一:云是由一些廉价的服务集群构成。第二:通过服务集群、分布式存储和数据冗余,一个文件在云存储中拥有多个副本以达到云存储的高可用性和高扩展性[8],例如Amazon的S3。

2.3 文件备份

根据距离进行分类,文件备份可以分为较短距离的备份和远程备份。其中远程备份时,客户端通过Internet网络与服务器端连接,向服务器端备份同步数据或者从服务器端恢复数据。一个好的远程备份系统,即使在低宽带、低网速的环境下,也能够提供高效、快速、可靠的数据传输链路。[10]

现在文件备份的研究成果表明,文件备份可以很好的完成本地文件与远程备份之间的同步。但是文件备份最终是实现文件的恢复,无法进行多机之间的文件同步。此外,文件同步不需要云存储端进行复杂的版本控制。

系统设计

3.1 多机文件同步

多机文件同步指的是同一个文件的不同版本存在于两个或者多个计算机上。将不同计算机上不同版本的该文件通过计算机网络更新为最新版本的文件的过程。即,假设现在有计算机A、B、C,在三台计算机中有同一个文件F。起初F在三台电脑上的版本是相同的。某一时刻A上的文件被修改,B、C上的文件F变为old版本的文件而A上的文件F变为new版本的文件。多机文件同步就是通过网络实现将B、c上old版本的F更新为new版本的过程。

多级文件同步与传统的人们通过拷贝实现的文件同步相比较,有以下优点:

1)    文件同步使得同一文件在多台计算机中保持数据一致性更加方便。通过网络实现了多台计算机的同一文件的同步,与传统的使用移动存储设备相比较更加方便。

2)    文件同步克服了人工同步过程中可能出现的遗漏某台计算机的现象。使得文件同步的出错率大大降低,提高了数据的一致性。

3.2 系统设计

云存储以存储即服务的理念,对外提供高可靠、高扩展和高效率的存储服务。多级同步以云存储为中转平台,采用间接同步方式代替直接多机同步方式。因为在某一台计算机中的文件版本发生更新时,需要同步的计算机不一定处于开机状态。云存储与传统存储设备相比较有着其无法替代的优势:

1)       提供多种类型的网络在线存储服务。

2)       在数据安全、可靠和效率等方面比较高效,而且云存储规模大、服务范围广。

3)       有其自身的高效的管理系统,减少了用户的数据管理开销。

4)       能够满足365*24不间断的提供在线存储服务。

如下图:

 基于云存储实现多机文件同步1

图1 系统架构

三台处于不同地域的计算机A、B、C进行文件同步。它们将各自所拥有的加入到文件同步中的文件的最新版本同步到云端,然后处于不同地域的计算机与云端进行通讯获取最新版本的文件来替换本地的旧版本的文件。多机文件同步的目的是将最新版本的文件同步到其他异地计算机。所以,在整个多机文件同步中,云存储端只需要保留最新版本的文件和文件相关信息,不需要维护该文件的多个版本。

上述三台计算机A、B、C处于同步状态,它们在任何时候任何地点均可以进行文件同步。根据三台计算机拥有者的不同可以分为不同的同步情形:第一、三台计算机属于一个人拥有,那么此时是属于一人多机的情况下进行同步。第二、三台计算机在理论上属于协同工作的一个小组,但是它们处于不同的地域,此时属于多机同步之间的协同工作。第三、参与同步的计算机是上述两种情形的混合。

客户端运行客户机上,云存储数据可以分为元数据和数据。元数据在文件同步中发挥着至关重要的作用。一方面,进行各同步文件目录的控制,另一方面,进行文件版本的控制。客户端与云端采用HTTP或者HTTPS传输协议。

系统结构与关键技术实现

4.1 系统整体结构

基于云存储实现多机文件同步2

图2 系统结构图

系统结构如图2所示,可分为4个层次,存储层、接口层、核心层、用户层。存储层可以是私有的云存储也可以是公有的云存储。接口层是云存储对外提供的API。核心层是整个客户端软件的核心逻辑。用户层提供用户权限控制。

其中核心层各组成部分如下:

1)  本地存储。客户端的本地磁盘等存储设备。

2)  元数据。从本地提取需要同步的文件的元数据,包含路径、名称、创建日期、最新修改日期、版本号、上一层路径、相对路径等。通过元数据与同步策略相结合实现文件的同步。

3)  传输管理。控制文件的上传和下载。本地文件版本以及云端文件版本和文件更新时间决定文件的上传和下载。传输管理模块主要实现了同步复制和异步复制两种机制。同步复制是指当文件发生更新时,自动进行文件同步。异步复制又称为定时复制,是指客户端设定本地同步时间,在到达同步时间时自动进行文件同步。

4)  同步策略即文件上传和下载的策略。如果本地存在文件并且是最新版本的那么需要根据上传策略进行同步到云端,如果云端版本高于现有版本那么需要将云端文件同步即下载到本地。根据文件更新的多少,采用完全传输和部分传输。

5)  数据传输。根据同步策略在该模块中形成文件上传和文件下载的队列。该模块完成数据上传和下载的操作并对上传和下载进行控制。根据更新文件大小的不同,客户端自动采用分片传输和不分片两种传输方式。

6)  用户模块。用户模块对用户进行身份验证和权限控制。

4.2 关键技术

4.2.1目录结构控制

当对文件夹进行同步时,数据进行同步之前,需要完成对文件目录的同步,即此次同步的顶层文件夹下所有文件夹进行同步。由于文件夹没有具体的数据,所以文件夹的同步是通过更新元数据完成的。在进行数据同步之前,首先扫描本地文件夹更新本地元数据记录。这里的更新是成为伪更新,即只是标记元数据修改、删除和新增状态,将已同步修改为未同步。其次,与云端进行通信完成元数据的同步,根据云端元数据与本地元数据的比较,最终决定元数据的状态。

在元数据中如何实现文件夹层次结构和文件夹的父子关系的表示?在元数据中保存文件夹的相对目录和文件夹的父文件夹的相对目录以及文件夹所在的相对层数。这里的相对均指相对于要同步的最顶层的那一个文件夹。而在顶层的文件夹中保存的是该文件夹的绝对路径。并且对于每个拥有绝对路径的文件夹有一个统一的ID号,这个ID号是有云存储产生的。通过将元数据同步到云端,在云端同样会建立一个文件夹的树形结构。文件数据传输完毕时,更新元数据的修改时间和元数据的状态。

4.2.2文件版本控制

同步的目的是实现文件的同步更新。每个客户端上只是保存着同步文件的一个版本,并且是该客户端已知的最新版本。云存储作为同步的平台,其上保存的文件版本是真实的最新。最糟糕的情况下,每台计算机拥有不同的版本。因此,整个系统中文件的版本数量是一定的,即不会大于参与同步的计算机的数目。

版本控制,采用版本号与文件修改时间相互配合的方式实现。同步数据传输之前,首先将本地版本号与云端的版本号进行比较,将云端版本的文件修改时间与本地版本的修改时间比较。只有当二者完全吻合的或者版本号吻合情况下,才说明不需要进行同步。否则进行文件同步。进行文件同步时,将本地文件版本号修改为云端的版本号。

4.2.3大文件传输

大文件同步的主要问题是如何加快大文件的传输,并且维护文件传输过程的一致性。云存储通常提供文件的追加写入,不提供文件的随机写接口,对大文件进行分片后也只能逐片追加,不能利用多线程机制加快文件传输。客户端采用这一个简单的机制,来利用多线程加快文件传输。系统在分片的基础上,将文件进行分段,除最后一段外,每段含有相同数目的文件片。系统在云端为每一段文件创建一个独立的文件,同时系统创建一个特殊的文件,按分段顺序记录这些段的cid。这样针对每一段再利用独立的线程进行传输,来加快文件的上传。不过该方法也有一定的局限,在出口带宽受限的网络环境中,对速度并没有大的提升。

对于文件传输的一致性,需要考虑在文件传输过程中,文件以排他写的方式打开进行传输。系统计算文件HASH并与原有HASH进行比对,如果HASH变化,系统这里没有做算法的优化,只是简单地清除掉云端已传的文件片,然后重新进行传输。

系统测试与效果

我们实现了一个同步客户端的原型,利用实验室的私有云平台进行了性能实验。实验环境如下:

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)  软件环境

服务器端:RedHat AS5(内核2.6.30),Web服务器APACHE(2.2.16);客户端:Windows XP(SP2)。

3)  测试方法

选用不同大小的连续数据文件进行测试,文件上传和下载包括元数据提取,文件分片等操作。先进行的是分片测试,通过选用不同的分片大小测试出该环境下最佳的文件分片。

基于云存储实现多机文件同步3

图3 文件分片测试

在第一个试验中,我们选用50M,100M的数据文件分别用不同的片大小进行上传。从128KB到8MB,结果表明在分片大小为4M时具有最大写速度,速度大小为7MBps。

基于云存储实现多机文件同步4

图4 文件同步测试

在第二个试验中,我们选用4KB到200MB的数据文件分别进行同步上传和同步下载。根据实验结果反应,我们在系统中根据文件数据大小采用不同的传输策略是有效的。文件传输速率在7MBps左右。

总结

通过对云存储和文件备份进行分析,提出以云存储为平台的多机文件同步。详细介绍了多机文件同步客户端软件的设计与实现。本文中采用元数据机制,实现文件目录同步和文件版本控制等。采用分片技术,加快大文件的同步。充分利用了云存储可以接受第三方元数据的特点以及提供的API接口,实现了多机文件同步的设计。

 

致谢  在本课题的研究阶段非常感谢朱老师给予的指导,感谢李强等同学给予的帮助。

参考文献:

[1]     SNIA. Cloud Data Management Interface(CDMI). http://cdmi.sniacloud.com.

[2]     AMAZON-S3. Amazon Simple Storage Service (Amazon S3). http://www.amazon.com/s3.

[3]     S. Balasubramaniam, Benjamin C. Pierce, What is a File Synchronizer?; International Conference on Mobile Computing and Networking, Page 98

[4]     Torsten Suel, Patrick Noel, Dimitre Threndafilov, Improved File Synchronization Techniques for Maintaining Large Replicated Collections over Slow Networks; Data Engineering, 2004. Proceedings. 20th International Conference on, Page 153

[5]     Utku Irmak, Svilen Mihaylov, Torsten Suel, Improved Single-Round Protocols for Remote File Synchronization; INFOCOM 2005. 24th Annual Joint Conference of the IEEE Computer and Communications Societies. Proceedings IEEE, Page 1665

[6]     Hao Yan, Utku Irmak, Torsten Suel, Algorithms for Low-Latency Remote File Synchronization; The 27th Conference on Computer Communications. IEEE , IEEE INFOCOM 2008, Page 655

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

[8]     Jiabin Deng, JuanLi Hu, Anthony Chak Ming LIU, Juebo Wu, Research and Application of Cloud Storage; Intelligent Systems and Applications (ISA), 2010 2nd International Workshop on

[9]     张会健, 网络存储中的快照技术;科技浪潮,2009年3月,总第73期,第27页

[10]     何宇平, 李涛, 胡晓琴, 彭勇, 马晓旭, 应用于远程文件备份系统的关键技术;计算机应用研究,2009年1月,第26卷,第361页

[11]     周可, 云存储技术及应用;中兴通讯技术,2010年8月,第16卷,第24页

 

 

作者联系信息:

 

1.邵宪津; 2.北京市朝阳区中国传媒大学45号501实验室(100024); 3.sxjin_8809@139.com。