虚拟主机云存储系统VCloudStorage及文件传输协议VCFTP*

2011-03-11 07:28陈晓华李春芝张鹏宇
电信科学 2011年7期
关键词:存储器客户端分配

陈晓华,李春芝,张鹏宇

(湖州师范学院信息与工程学院 湖州 313000)

1 引言

云存储技术是一种虚拟化存储技术,将网络中大量各种不同类型的存储设备利用应用软件集合起来协同工作,对外提供数据存储和业务访问功能[1]。云存储技术要面对复杂的广域网环境提供服务保证,对于广域网下的文件传输协议起着至关重要的作用。当前各种不同的云存储系统根据所采用的协议提供不同的API,如图1所示。

(1)基于 Web Service的 API

Amazon Simple Storage Service(Amazon S3)[2]、Windows Azure[3]、Google Storage[4]、Mezeo Cloud Storage Platform[5]、Nirvanix SDN[6]和 CleverSafe[7]实现REST API,这些API是基于 REST原则和SOAP接口实现的。

Amazon S3(以下简称S3)具有低成本、低延迟、高可用性和安全的特点,通过 S3存储和检索的资源被称为对象,对象存储在存储段(bucket)中,对象和存储段通过统一资源标识符(URI)定位。S3同时提供 RESTful API和SOAP API,但是需要下载JetS3t库才能使用这些API[2]。目前为了提高文件上传和下载速度,Amazon支持Aspera开发的FASP协议(在UDP协议基础上开发的新协议)[8]。

Windows Azure为应用程序提供Blobs、Tables和Queues3种存储机制,支持 SOAP、REST、XML和 HTTPS等。Windows Azure Storage由3个重要部分构成:Windows Azure Blob(存储大型数据,包括二进制数据和文件)、Windows Azure Table存储表数据(类似于关系数据库中的数据表)、Windows Azure Queue(为异步工作提供分派消息服务)[3]。Windows Azure有文件、数据表和消息存储能力,与开发平台.net绑定在一起,通过库RESTful API与Azure交互。

Google Storage提供RESTful的API访问和管理文件,Google Storage API的实现依赖标准的HTTP方法,如delete、get、head、put[4]。

Mezeo Platform分为6个层次、3个概念(资源、表示法和方法)。Mezeo Platform提供的方法包括get、put、post、delete、lock、unlock、restore等。上述方法采用 REST 原则实现,在HTTP上进行传输,提供地理定位和地理复制能力,并提供安全保障[5]。

Nirvanix SDN的Web Service提供基于REST原则和SOAP接口的服务,可以通过HTTP的Post上传和下载文件[6]。

CleverSafe提供基于 HTTP/REST、Java SDK访问 API,同时还支持FTP协议[7]。

(2)基于文件的 API

主要包括NFS、CIFS和FTP协议。NFS是使用TCP/IP的应用层协议,基于NFS的网络文件服务器,可使多台计算机透明地访问彼此的目录。CIFS基于SMB协议的开放跨平台,使用户可以方便地向支持SMB协议的网络服务器请求文件和打印服务。FTP是远程文件传输协议,允许用户管理远程主机的文件。IBM采用标准网络文件协议,包括NFS、CIFS、HTTP 和 FTP[9]。Zetta用户可通过 HTTP、NFS、FTP、sFTP、rsync和WebDAV等标准存储协议进行访问[9,10]。

(3)基于 Block 的 API

主要有iSCSI协议,该协议建立在TCP协议之上,是一种面向连接的协议,定义了 TCP/IP网络发送、接收Block(数据块)级的存储数据的规则和方法,在用户看来,使用远端的存储设备就像访问本地的SCSI设备一样简单。iSCSI可以实现在IP网络上运行SCSI协议,适合高速吉比特以太网应用。Cloud Drive支持iSCSI协议[11]。

(4)适合云存储的其他协议

如基于 Web的分布式创作与版本控制(WebDAV IETF RFC 2518)。WebDAV基于 HTTP,将 Web作为一种可读写的资源加以启用[9]。

BitDew是在网格环境下为大规模数据管理和分布提供的可编程环境。BitDew提出了融合多个文件传输协议进行文件传输[12]。MetaCDN利用其他系统提供的Web Service、API和访问接口,智能分配各种云存储系统响应用户的传输请求[13]。

综上所述,云存储在广域网中进行网络传输,主要采用 REST原则、iSCSI协议、WebDAV协议、SOAP接口、FASP协议、CIFS协议、NFS协议,通常在HTTP协议上建立API提供给不同的开发语言调用,需要在客户端安装相关软件实现文件的传输与管理,部署不方便,而且与SaaS服务联系不紧密,实验发现如果多人同时传输文件,云存储网络传输协议没有考虑到当前服务器的状态,分配同一服务器接收多用户传输的文件,导致服务器无法同时满足多用户要求,文件传输失败率较高。

当前虚拟主机厂商提供的虚拟主机服务具有高可用性、价格低、易维护、分布广等特点,本文建立虚拟主机集群模型,设计文件传输控制协议VCFTP和基于虚拟主机集群的云存储系统VCloudStorage,以提高文件传输性能和稳定性。首先建立SaaS服务模型;利用HTTP数据流存储技术,建立虚拟主机存储接口;接着建立虚拟主机传输能力、存储能力和价格能力数学模型,并结合用户的传输请求建立文件传输整数规划数学模型及最优化算法,最终以此为基础采用Web Service、HTTP和Flash技术设计了文件传输控制协议VCFTP。VCFTP与SaaS服务兼容,且利用Flash跨平台和富客户端技术特点,无需在客户端部署其他程序;授权的用户在VCloudStorage中根据传输请求、存储要求、服务水平和当前虚拟主机状态等条件,根据整数规划数学模型,以传输能力最优化的方式进行文件传输。

2 VCloudStorage系统及文件传输协议VCFTP

本节介绍VcloudStorage和文件传输协议VCFTP,利用虚拟主机集群技术,创建一个综合覆盖网络,提供一个低成本、高性能、可扩展的云存储系统。

2.1 VCloudStorage平台

VCloudStorage系统采用基于B/S的Web Service分布式架构,包括 Client Web 浏览器、VVHashTable、Scheduler、VCloud File System、Node Manager、Web Service[1]。客户端用户通过Web浏览器中的Flash模块实现文件上传;网络存储统一平台提供Web Service接口[1]。VCloud Storage系统架构如图2所示。

2.2 文件传输协议VCFTP

首先建立SaaS服务协议,利用HTTP数据流存储技术,建立虚拟主机数据存储接口;然后在SaaS服务模型和虚拟主机数据存储接口的基础上,建立整数规划数学模型及最优化算法,设计文件传输控制协议VCFTP。

图2 VCloud Storage系统架构

2.2.1 文件传输控制协议对象

在文件传输过程中,为了建立Flash与Web Service之间的交互,对象的成员属性为string类型。文件传输控制协议对象包括客户端请求连接字Apply File Transfer Packet对象、服务器返回的控制连接字File Transfer Control Packet对象、返回的控制状态字Response Info Packet对象。用户隶属于企业,企业购买服务。

(1)客户端请求连接字

(2)文件传输控制连接字

(3)返回的控制状态字

2.2.2 文件传输控制模型及VCFTP

文件传输控制模型如图3所示。由图3可见,客户端的文件传输到虚拟主机存储器中,用户的文件存储请求、查询、更新、删除都是同文件传输控制服务器进行交互;SaaS服务控制器是管理用户、购买服务等信息;虚拟主机管理器根据虚拟主机存储器的Web Service,更新和维护虚拟主机存储器状态Hash Table;虚拟主机分配器根据虚拟主机存储器的状态和客户端的请求最优化分配虚拟主机存储器给客户端;虚拟主机存储器提供接收客户端文件接口、删除文件接口、测试自身状态的Web Service。

本文设计的文件传输协议VCFTP在文件传输过程中包括3个部分:请求建立连接控制字、传输文件、释放连接控制字。

传输流程如下。

(1)Flash客户端构建请求连接控制字Apply File Transfer Packet对象,然后向文件传输控制服务器请求建立连接传输控制字。

(2)文件传输控制服务器接收到请求,向SaaS服务控制器请求合法性验证。

(3)SaaS服务控制器验证合法性,包括判断用户名、密码是否正确和判断企业是否合法、是否购买该服务,将验证结果返回给文件传输控制服务器。

(4)文件传输控制服务器接收到合法性验证通过后,向虚拟主机分配器请求分配虚拟主机存储器。

(5)虚拟主机分配器接收到请求后,根据最优化算法,选择最优的虚拟主机存储器,并更新Hash Table,返回选定的虚拟主机存储器给文件传输控制服务器,并且采用加锁机制选择最优虚拟主机存储器。

(6)文件传输控制服务器构造文件传输控制连接字 File Transfer Control Packet对象,包括分配的文件名、路径名、域名、文件类型、此次连接的标识符,构造过程进行加锁控制,并记录文件传输控制连接字。

(7)客户端Flash接收到File Transfer Control Packet对象,通过HTTP向虚拟主机存储器传输数据。

(8)客户端文件传输完毕,向文件传输控制服务器释放File Transfer Control Packet对象。文件传输控制服务器接收到释放请求后,更新存储的文件传输控制连接字。

文件传输协议涉及到的多个对象之间的通信顺序如图4所示。

2.2.3 文件传输控制协议

文件传输控制协议主要包括建立文件传输连接、传输文件、接收文件、释放连接等过程。

(1)建立文件传输连接

File Transfer Control Packet Create File Transfer Connection(Apply File Transfer Packet clientPacket);

图3 文件传输控制模型

表1 建立连接返回值

返回的状态信息见表1。(2)传输和接收文件流客户端Flash通过HTTP协议向服务器传递分配的文件信息和验证信息,并传输HTTP文件数据流;虚拟主机存储器以.aspx、.php、.asp等形式出现,首先判断此次连接的合法性,然后接收数据,存放到虚拟主机存储器中。

(3)释放文件传输连接

客户端向服务器请求释放连接,服务器接收到数据,首先验证释放信息,然后删除本次传输控制连接字,释放连接返回值见表2。

表2 释放连接返回值

2.2.4 分配虚拟主机存储器整数规划建模

为了保证虚拟主机存储云有足够的存储能力和传输能力执行其任务,有效地分配虚拟主机存储和传输,定义了如下一些限制参数。

·Price[i]:第i个虚拟主机存储云的价格能力指数,类型是float,单位是元。

·Storage[i]:第i个虚拟主机存储云的存储能力指数,类型是float,单位为字节。

·Transfer[i]:第i个虚拟主机存储云的传输能力指数,类型是float,取值为0~1,以百分比测量,由系统专门的接口定时(30 s)自动测量。

· Price:用户端的价格能力指数,类型是float,单位是元。

·Storage:用户端的存储要求指数,类型是float,单位为字节。

· Transfer:用户端的传输要求指数,类型是float,取值为0~1。

·X[i]:第i个虚拟主机存储云被分配,如果被分配则为 1,否则为 0。

为了让系统拥有最大的传输能力,建立线性规划模型,把分配虚拟主机存储云的问题转化为一类特殊的0-1整数规划问题[1]。

系统传输能力最优化方程(目标函数)为:

每当用户需要存储内容时,根据自己的需要提供Price、Storage和Transfer给系统Web Service的调用接口,系统调用接口根据式(1)和(2),因为X[i]是一类特殊的0-1整数规划问题,采用线性规划解法中的枚举算法,实现虚拟主机存储的分配。

3 VCloudStorage实验与评估

3.1 实验环境

本文描述的协议运行在VCloudStorage中。主站点和虚拟主机站点都是相同的配置,试验台站点通过Internet连接,VCloudStorage集群了5个虚拟主机,并布置了一台本地服务器,用于管理、测试虚拟主机集群及更新虚拟主机集群的VHashTable[1]。每个虚拟主机硬件包括2个Intel XEON 5.4 GHz的 CPU、4 GB内存,CPU利用率为 3%,布置在中国安徽合肥。实验客户机包括10台实验客户机,实验客户机CPU为2 GHz、1 GB内存。

3.2 实验及结果分析

为了评估该VCloudStorage系统,部署10台客户机,以1、3、6、10台机器同时启动传输1、10、20、30、40、50、60、70、80、90、100 MB文件为基础,测量系统的总吞吐量和平均吞吐量。这些文件同时从客户端分别以腾讯QQ邮箱存储、微软SkyDrive、单个虚拟主机、VCloudStorage上传到服务器上,分别记录每个客户端传输时间和传输文件大小。总吞吐量(TotalThroughOut)和平 均吞吐量(AverageThroughOut)的计算式如下:

其中,FileSize[i]为每次客户端传输文件的大小,以KB为计算单位;Second[i]为每次客户端传输文件的所用的时间,以s为计算单位;MaxTime为每次客户端传输文件的最大传输时间。

测试集中在每天的下午3点到晚上9点,用时两个星期,经历了网络高峰时期,记录了每个客户端每次传输文件的大小和时间。统计的吞吐量如图5~9所示。测试失败率见表3。

由图5~9和表3可以看出,通过VCFTP协议构建的VCloudStorage性能优于单虚拟主机存储、微软SkyDrive、腾讯QQ邮箱存储等系统,得出以下结论。

图8 6人测试总吞吐量

表3 测试失败率

·VCFTP协议文件传输性能和传输成功率较高,构建的虚拟主机云存储VCloudStorage总吞吐量和平均传输速率均优于腾讯QQ邮箱存储、微软SkyDrive、单个虚拟主机,VCFTP使多人传输文件成功率达到100%。

·VCFTP协议具有负载均衡能力,能够感知虚拟主机的当前状态信息,最优化分配虚拟主机存储器,客户端平均传输速率能够保证在150 kbit/s以上,总吞吐量保证在800 kbit/s,不受单个虚拟主机当前运行状态的限制。

·VCFTP协议具有动态扩展性,在运行过程中,VCloudStorage能够根据需要动态增加虚拟主机存储器数量,达到动态扩展文件存储能力和传输能力的目的。实验结果表明,VCloudStorage文件传输能力可以从1个虚拟主机的100~400 kbit/s动态扩展到5个虚拟主机的700~1200 kbit/s。

·VCFTP协议客户端不需安装其他软件,通过Flash技术进行文件传输,采用的是HTTP流技术上传文件,传输文件成功率高。

4 结束语

本文提出基于Web Service、HTTP和Flash技术的文件传输协议VCFTP,开发了基于虚拟主机集群云存储系统VCloudStorage。它与SaaS服务兼容,而且利用Flash的跨平台和富客户端技术特点,无需在客户端部署其他程序;授权的用户在VCloudStorage中根据传输请求、存储要求、服务水平和当前虚拟主机状态等条件,以传输能力最优化的方式进行文件传输。VCFTP通过Web Service建立连接和释放连接,通过HTTP协议传递数据,使用已有的服务器通信端口而不需要修改网络防火墙配置,文件传输性能较高且稳定,虚拟主机接收文件传输的大小可以根据虚拟主机的配置而变化,是一种满足应用需求的云存储文件传输协议。

1 陈晓华,李春芝,俞坚奇.虚拟主机云存储系统整数规划模型及最优化分配算法.电信科学,2011,27(1):89~94

2 Amazon.Amazon simple storage service (Amazon s3).Retrieved from www.amazon.com/s3,2007

3 Microsoft.Windows azure service management REST API reference.http://msdn.microsoft.com/en-us/library/ee460799.aspx,2011

4 Google Storage.Google storage API for developers.http://code.google.com/intl/zh-CN/apis/storage/docs/developer-guide.html,2011

5 Mezeo.Cloud storage platform API v2 reference guide.http://developer.mezeo.com/wp-content/uploads/2010/06/Mezeo-API-v2-Reference-Guide.pdf,2010

6 Nirvanix.White paper:accelerating Web application development with the nirvanix storage delivery network(SDN),2008

7 CleverSafe. Object Storage.http://www.cleversafe.com/products/resilient-architecture/object-storage,2010

8 Aspera.http://www.asperasoft.com/en/support/developer_23/Aspera_Developer_Network_23,2009

9 Tim M Jones.Anatomy of a cloud storage infrastructure models,features,and internals. http://public.dhe.ibm.com/software/dw/cloud/library/cl-cloudstorage-pdf.pdf,2010

10 http://cloudharmony.com/clouds_storage.Zetta

11 Cloud Drive.http://www.clouddrive.com.au/international/zh-CHS/products.html,2010

12 Gilles Fedak,Haiwu He,Franck Cappello.BitDew:a data management and distribution service with multi-protocol file transfer and metadataAbstraction.Journal of Network and Computer Applications,2009(32):961~975

13 James Broberg,Rajkumar Buyya,Zahir Tari.Meta CDN:harnessing “storage clouds” for high performance content delivery.Journal of Network and Computer Applications,2009(32):1012~1022

猜你喜欢
存储器客户端分配
静态随机存储器在轨自检算法
应答器THR和TFFR分配及SIL等级探讨
如何看待传统媒体新闻客户端的“断舍离”?
遗产的分配
一种分配十分不均的财富
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
存储器——安格尔(墨西哥)▲
基于Nand Flash的高速存储器结构设计
我会好好地分配时间