数字图书馆的云存储性能研究与研讨

2014-12-06 07:19
大众科技 2014年2期
关键词:构架百度服务器

陈 茫

(桂林理工大学图书馆,广西 桂林 541004)

1 引言

信息技术的变革带了各种信息数字化的狂潮,面对新的数据和 Web应用服务,如何方便的存储信息,如何提高存储信息的效率是数字图书馆研究的一个重要的课题。数字图书馆的研究人员面临存储时,总是无法回避两个问题:(1)如何用最小的资源消耗,最大限度的满足用户的实际需求;(2)如何减少设备经费和管理成本的支出,同时提高存储资源的利用效率[1]。云计算技术[2-3]的出现给我们带来了新的曙光,基于云环境下的数字图书馆存储建设研究掀起了又一轮新的浪潮。

本文的研究正式基于上述的出发点而完成的。首先分析比较云环境下的构架及部署;结合开放源码的云构架软件和云存储管理工具,针对不同的云存储关键技术,建立一个切实可行的云存储解决方案。最后,从系统实施、系统效率、资源消耗、数据安全和现实可用性等多方面分析对比不同云环境下的存储性能,并得出响应的测试结果和测试结论。

2 相关背景研究

云存储的概念源自于云计算的研究,它是从云计算延伸和发展而来的,所谓的云存储服务就是指以服务的形式为用户提供数据存储服务和访问,即网上的应用服务和数据中心的软硬件设施。云存储通过集成计算机集群技术、分布式文件系统、网格技术、Web2.0技术和存储虚拟化技术等现代信息技术,并将不同的存储设备以应用软件的虚拟化来协同工作,并实现数据存储和访问的系统[4]。

云存储具有以下四个优势:

(1)按需使用。即用户不需要对存储介质容量定量,可以快速部署存储,按需存储;

(2)易于管理。云存储的管理由响应的软件进行专业化的管理,无另需专人维护,管理简单;

(3)成本低廉。即应用较少的硬件资源,就可达到费用高额的专用存储设备的性能;

(4)容灾性强。即不受停电和升级等的外部因素影响,可提供不间断服务和数据快速恢复;

(5)灾难防范。一旦灾难发生,异地备份数据自动启动恢复,容灾性更高。

目前,关于云存储的实际应用案例还是比较多的,例如:亚马逊公司的云存储S3,就是一个很好的例子,它是云存储解决方案可行性应用的先驱,其云存储的数据存储速率可根据用户的数据量和用户需求而定[5];美国国会图书馆与DuraSpace公司的DuraCloud项目也是一个很不错的数字图书馆云存储案例[6][7],它为广大的数字图书馆用户提供了一个可实现的有效保存与访问的解决方案;此外,百度公司的“百度云”[8]、杭州格畅科技的“格子云 2.0”[9]等都是不错的公共云存储设施。这些具体的云存储,为我们提供了可行的云环境,使构建符合自身特点的数字图书馆云存储成为了可能。

3 云存储的基本构架

3.1 构建依据

计算机硬盘驱动器,相对云存储而言,在应用的过程中,还是存在较高的故障率。为了数据的安全,通过评估不同的复制机制,多种级别的数据存储的可扩展性和容错性,我们选用了云存储的构架,该构架通过结合私有云和公共云来创建混合的云存储环境。

目前,常用的、稳定的、开源的而且免费云环境管理工具有:Open Nebula[10]、Eucalyptus[11]和 OpenStack[12]等。在此选择 OpenStack作为构架的原型,同时,这个原型的目标是设计并实现可扩展和兼容性高的分布式存储构架。此外,应用的云存储环境本身是免费的、通用的和开源的构建工具。综上所述,这种体系结构也是数字图书馆可以采用构建云存储环境时,可行的资金和技术解决方案。

3.2 云存储构架

本文构建的云环境下的数字图书馆云存储构架,如图1所示,其中相关的核心的组件和模块描述如下。

(1)虚拟机(Virtual Machine):缩写为VM,指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件,可以在一台物理计算机上模拟出二台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如可以安装操作系统、安装应用程序、访问网络资源等等。为了创建合适的数字图书馆云存储虚拟机,分析了诸如KVM和XEN等不同的开源虚拟机代码[13]。相关分析数据显示KVM的性能要高于XEN,所以,选择KVM作为主虚拟机,虚拟机包括Apache Web服务器,一个PHP模块,基本的工具DISOC Web应用程序等,每个虚拟机能够通过数据访问模块透明地访问磁盘池。

(2)虚拟机管理器模块(Virtual Machine Manager Module):缩写为VMMM,是VMM 实现的中枢,所有其他 VMM 组件通过它进行交互和通信,它运行命令、传输文件并控制其他 VMM 组件和所有虚拟主机及 VMM 库服务器的通信。

(3)数据库访问模块(Data Access Module):缩写为DAM,主要是负责数据的访问,简单的说法就是实现对数据表的Select(查询),Insert(插入),Update(更新),Delete(删除)等操作。虚拟机所需的虚拟磁盘空间通过数据访问接口模块(Data Access Module Interface,以下缩写为DAM-I)获得,并通过DAM-I调用DAM,DAM则负责整个云存储服务器上的文件分配、检索及存储。

(4)负载均衡模块(Load Balancer Module):缩写为LBM,将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。这里主要是指分配负载在不同虚拟机所组成的实例化物理服务器的私有云。

(5)负载均衡器(Load Manager):缩写为LM,这里它是负责随时监视发生在私有云上的负载状况。

(6)分布式云存储(Distributed Storage on the Cloud):缩写为DISOC,这是一个基于Web的网络文件云存储系统,它是云存储构架的实例。

4 关键复制技术及测试环境构建

4.1 云存储关键复制技术

在云存储服务的部署过程中,数据的高可用性是一项十分重要的评价指标。选择适当的数据复制技术是实现数据高可用性最为有效的方式。在云存储的构架中,数据库访问模块 DAM为我们提供了不同级别的数据可用性组件,其关键技术有以下几种复制技术:无复制、总复制、镜像和IDA复制。

(1)无复制:数据文件只有原始的版本存在于云中的磁盘中,并遵循磁盘循环的分配策略;同时,受自身的最小服务器容错需求的影响,该策略规定,一个文件将被分割并分配到不同的存储虚拟机上。由于所有的数据都仅只有一份,虽然它的硬件资源消耗最小,但是该复制技术的数据可用性和容错水平是所有技术中最低的。

(2)总复制:与无复制技术相反,数据文件在每台服务器中都有相应的拷贝,且均可用。虽然,它是数据级别可用性最高的方法,但是,其代价是它占据了最高的磁盘空间消耗,通常不被大家采用。

(3)镜像:数据文件在存储的过程中,DAM将实时的产生一个数据备份,而这个备份被分块放置不同的存储虚拟机上。它是一种较为简单的复制技术方法,可以确保在资源消耗不高的同时,也具有较高数据的可用性。

(4)IDA复制:基于数据分片备份容错算法的复制技术,也是文章中采用的数据复制技术,其基本思想是将一个长度为L 的原始文件F分成n个分块Fi ( 1≦i≦n),每个分块的长度为L /m,从Fi中任取m个分块都能还原文件F。从空间上看,n个分块Fi的总和是原来文件的n/m倍(n/m≧1)。IDA复制技术,有点类似于独立磁盘冗余阵列(RAID 5),一旦发生磁盘故障,它不要重新复制整个文件到文件服务器上,而只需要复制文件K个损坏的片段(k<m)至云存储上即可,它是一种块级的条带化的存储技术,能根据不同的策略选择2到n存储服务器的分布式环境中的数据进行数据重建。故而,它较之其它的复制技术,具有更高的数据可用性和更少的资源消耗。

4.2 测试环境构建

在测试相关的数据之前,需要搭建现实的云存储环境[14],其基本的云构建如图2所示。本地的私有云,选用8台相同配置的联想商用计算机构成;同时,在构建和测试混合的云存储环境中,通过 DAM-I负责透明的访问外部公共云存储平台,其中选用公共云存储商的公共云存储设施是:百度公司的“百度云”和杭州格畅科技的“格子云2.0”。

DAM数据访问云存储和单个存储设备的性能比较时,采用集中式的版本进行分析,数据访问模块只需访问云存储的主节点虚拟机或是单个文件服务器。在测试私有云和混合云的性能时,运用分布式的版本,8台分布式存储系统采用分布式的处理。

在测试云存储的工作负载时,运用云存储原型中的并发客户端程序,来进行多并发的文件上传和文件下载请求测试。在私有云的环境中,将并发数设定为100个、150个和200个,进行测试;在公共云的性能时,如果测试的并发数过多,会被公共云服务商认为是恶意的攻击行为,所以,此项测试的并发数设置为10个、15个和20个。通过详细的测试,能够准确的分析不同数据复制技术之间的数据处理能力。

针对测试的项目,选用以下两个主要指标数据作为测试的指标。一是响应时间,即用户上传或下载文件开始到文件加载或下载完成的时间;二是服务时间,即 DAM组件读取文件时从找到文件开始到读取文件完成所需的时间。测试的行为选取的操作是:文件上传和文件下载。

5 实证测试与分析

在构建完成所需的云存储现实环境后,本文对以下几项相关性能做出测试。其中测试的工具选取开源 Web性能测试工具Autobench[15][16]。通过,生成动态的网页请求数据,模拟服务器上的数据处理时间。

5.1 单台服务器和云存储的性能对比

本项测试的对象是单个服务器和由多个服务器组成的云存储环境之间的性能对比。在测试图中,横轴表示评价时间,即不同客户端对存储设备的请求时间;纵轴表示响应时间,即获得请求后发送到存储服务后的平均响应时间,其性能的测试结果如图3所示。

通过分析不难发现,当开始处理请求时,当负载较低时,单台服务器比云存储具有更快的响应性能;然而,一旦负载加重,云存储就表现较好的响应时间。特别是在测试的最后,可以清楚的看到,单台服务器已经无法完成客户端的测试请求,然而出乎意料,云存储却提供能完成工作量更好的响应时间。

5.2 私有云存储的性能测试

本项测试的是不同复制技术下自建的私有云存储的数据性能,具体如图 4所示。通过分析不难得出,虽然无复制的响应时间和服务时间总是最短的,但是,由于在上面的介绍中说到,这种技术没有备份数据,其数据遇到故障时,数据安全性最低。而 IDA复制在所有的复制技术中,其的数据可用性、响应时间、服务时间和容错能力上较其他的复制技术,具有很强的竞争力,值得重点考虑。全复制技术和镜像复制技术,资源消耗资源相对 IDA复制较高,响应及服务时间也较长。

5.3 IDA复制技术在不同公共云存储的性能对比

由于在上面的分析中,分别对比了单台服务器和云存储的性能和不同复制技术在私有云环境的存储性能,且性能的数据反映了云存储和 IDA复制具有良好的性能。故而,本项测试选用的是混合云存储环境下 IDA复制技术在不同公共云存储的性能对比。同时,选用的公共云服务平台是:百度的“百度云”平台和杭州格畅科技的“格子云2.0”平台,进行相关的对比分析。

同样,DAM访问相应的存储环境,具体的分析数据,仍然选用文件上传和文件下载的响应和服务时间作为参考,其具体的测试结果如图5所示。在测试的过程中,执行IDA复制的 DAM模块从公共云获得文件的片段,同时建立与私有云之间的联系,在测试的结果中不难发现,在该云环境的 IDA复制模式下,“百度云”和“格子云 2.0”虽然表现了相似的性能,但是,“百度云”还是比“格子云 2.0”略胜一筹。其原因可能跟百度的API程序比较成熟或者百度的网络环境有关。

6 结论

组件故障、数据丢失、人为操作失误、自然灾害、攻击和管理失误等因素,是数据的长期存储的最大威胁,会给数据的保存带来不小的难题。云存储技术作为现今科技时代图书馆重要的技术手段之一,为大数据环境和极端条件下的数据存储,提供了有力、可靠和安全的数据保障。本文云构架方式、开源构架工具、IDA复制技术、Web数据测试工具以及公共云平台等都是免费的、成熟的、开源的云存储解决方案,大家可以根据上述的云存储的相关性能,采用或研究适合自身业务系统、应用系统的云存储方式构建自身的云平台,也希望本文能给广大云计算研究人员提供些许帮助。

在以后的工作中,将进一步的从以下两个方面来改进:(1)根据不同云存储的性能对比,在实际具体的应用系统的实施中,确立更加科学的云存储构架的选型和应用。(2)在实际的云存储应用中,根据应用系统出现的问题,改进云存储的相关流程,提高云存储的安全性和存储效率。

[1] 胡昌平,谷斌.数字图书馆建设及其业务拓展战略—国家可持续发展中的图书情报战略分析(4)[J].中国图书馆学报,2005(5):13-16,33.

[2] Yan Han. On the Clouds: A New Way of Computing[J].Information Technology & Libraries,2010(29,no.2): 87-92.

[3] Tom Ipr. Where the Cloud Meets the Commons[J]. Journal of Web Librarianship,2011(5,no.2):132-41.

[4] Michael Armbrust,Armando Fox, Rean Griffith, etc. Above the clouds : A Berkeley View of Cloud Computing[M]. UC Berkeley Reliable Adaptive Distributed Systems Laboratory,2009.

[5] Jose L. Gonzalez, Ricardo Marcelin-Jimenez. Phoenix: A Fault-Tolerant Distributed Web Storage Based on URLs[C].In Proceedings of the IEEE 9th International Symposium on Parallel and Distributed Processing with Applications.ISPA,2011:282-87.

[6] What is DuraCloud?. [EB/OL].[2013-12-16].http://www.duracloud.org/tour.

[7] 高建秀,吴振新,孙硕.云存储在数字资源长期保存中的应用探讨[J].现代图书情报技术,2010(6):1-6.

[8] 百度云. [EB/OL]. [2013-12-16]. http: //yun. baidu. com/1t?= home.

[9] 格子云2.0. [EB/OL].[2013-12-16]. http: // www. gleasy.com /.

[10] OpenNebula Project.[EB/OL].[2013-12-16]. http: //opennebula.org/.

[11] Eucalyptus Cloud. [EB/OL]. [2013-12-16]. http://www.eucalyptus.com/.

[12] Open source software for building private and public clouds.[EB/OL].[2013-12-16]. http://www.openstack.org/.

[13] XenVsKVM. Linux Virtualization Wiki, last updated 29 Jul 2008.[EB/OL].[2013-12-16].http://virt.kernelnewbies.org/XenVsKVM.

[14] 刘晓刚,张红.基于开源云计算的图书资料信息系统探究.情报科学[J].2011(6):906-909,923.

[15] Hussam Abu-Libdeh, Lonnie Princehouse,and Hakim Weatherspoon. RACS: A Case for Cloud Storage Diversity[C].In Proceedings of the 1st ACM Symposium on Cloud Computing. New York:ACM,2010:229-40.

[16] 赫建营,晏海华,等.一种有效的Web性能测试方法及其应用[J].计算机应用研究,2007(1):275-277,285.

猜你喜欢
构架百度服务器
建筑安装造价控制核心要点构架
急诊PCI治疗急性心肌梗死的护理探索构架
Robust adaptive UKF based on SVR for inertial based integrated navigation
通信控制服务器(CCS)维护终端的设计与实现
高可靠全平台ICT超融合云构架的设计与实现
略论意象间的主体构架
百度年度热搜榜
中国服务器市场份额出炉
得形忘意的服务器标准
计算机网络安全服务器入侵与防御