5 云存储
5.1 云存储实例分析
现有的云存储更多的是一种在线远程备份系统,Hu等人针对上面的4种云存储系统进行了测试、比较和分析,当将8GB的文件备份到云存储系统中时,有的系统的备份时间超过了30个小时,还有的系统在经过4天的时间还未备份完成,当他们将数据集减小到2GB左右时,云备份系统才回复到基本正常的工作状态。
图6 2.12GB数据的备份时间
图6表示Hu等人在四个不同的云存储系统下备份2.12GB数据时的远程备份时间,其中横坐标从左到右的四种情况分别表示单个2.12GB的大普通文件、单个2.12GB的大稀疏文件、很多小的普通文件组成2.12GB的数据集、很多小的稀疏文件组成2.12GB的数据集,这里的稀疏文件表示该文件不包含用户数据,也没有分配用来存储用户数据的磁盘空间,当数据被写入稀疏文件时,文件系统(例如:NTFS)才逐渐地为其分配磁盘空间.可以看到对于正常2,12GB的文件数据四个系统的备份时间都超过了5小时,图7表示相应的恢复时间,恢复比备份要相对块很多,这主要是由于网络的上行链路和下行链路带宽的不对称造成的,通过大量的测试分析,Hu等人得出了以下结论:
图7 2.12GB数据的恢复时间
1)云存储系统必须对于网络失效具有回弹性,同时能够实现大文件的增量备份;
2)云存储提供商在进行大数据的网络传输时还要进行加密、压缩等预处理以避免网络延迟;
3)云存储用户需要手动检测重要的文件是否都已经进行了备份;
4)云存储用户应该将云存储系统作为本地备份系统的一种补充,而不能将其当成主要的备份策略。
个人认为,现有的云存储应对普通用户小数据的备份与恢复应该问题不大,但是企业级用户大数据量的存储与恢复则要慎重考虑。
5.2云存储系统面临的挑战
云存储系统中主要的存储设备磁盘驱动器是一种机电混合设备,这使得和计算相比,存储系统具有了很多不同的特性,由于信息数字化所产生的呈指数级增涨的数据对存储系统提出了严峻的挑战,随着社会信息化程度的不断提高,对数据存储的急剧提升,导致了以"计算"为中心到以"数据存储"为中心的观念革新,在过去的十多年中,磁盘的区域密度、轨密度和线密度分别获得了100%,50%和30%的增长,在存储领域有两个重要的技术对存储系统的发展和存储容量的扩展产生了重要的影响,第一个是并行存储,比如磁盘阵列技术,第二个就是网络技术对存储系统体系结构的影响,通过将网络引入存储系统,改变主机与外部存储节点间的连接模式,出现了若干新型存储体系结构:附网存储(networkattached storage,NAS)和存储区域网(storage area network,SAN),网络存储技术对于解决存储设备的分散性、I/O的并行性、协议的高效性提供了一种很好的手段,网络与存储设备不同的结合方式可以形成不同拓扑结构的网络存储系统,不同的拓扑结构对于系统性能的影响又各不相同.但由于性能、价格、可扩展性等各方面的原因,他们也还是不足以应对爆炸性的数据增长。
存储系统必须要从少数的存储引擎向连在网络上的成千上万的商用化存储设备进行转变,在过去的十多年中集群网络的重要进展之一是可以将成千上万的节点连起来,同时保证高可扩展性和相对较低的通讯开销,因此,我们认为,采用商用化的技术来构造可扩展的集群是云存储的基本组件,因为,我们可以像搭积木的形式来聚合存储组件以构造大规模的存储系统,但是现有的存储系统进行规模的扩展之后还存在很多待解决的问题。
5.2.1 名字空间
存储器空间的组织和分配,数据的存储、保护和检索都依赖于文件系统,文件系统由文件和目录组成,数据按其内容、结构和用途命名成不同的文件,而目录则构建文件系统的层次化结构,现代的文件系统一般都是按树形的层次架构来组织文件和目录,集群文件系统往往也采用树形架构来构造名字空间,然而,当数据的访问从树根走向树叶的时候,访问的延迟会响应的增加,另外,还有两个重要的因素导致树形架构不适合于云存储环境,第一,树根本身就是一个单一失效点,而且很容易形成系统的瓶颈,第二,树形架构很难在Internet上扩展到地理上分布的规模,另外,层次化结构使得文件的访问效率不高,每一层目录都隐藏了它所包含的子目录和文件,用户很难知道一个目录下面到底有哪些文件和子目录,因此,用户访问某个文件时,必须通过层次型的目录树结构到达其保存位置,如果不知道文件保存位置,必须遍历整个目录,因此云存储只有采用非集中式的名字空间来避免潜在的性能瓶颈和单点失效。
5.2.2 元数据组织
元数据是描述数据的数据,主要用来反映地址信息和控制信息,通常包括文件名、文件大小、时间戳、文件属性等等.元数据主要是用来管理的操作数据,研究表明,在文件系统的操作中,超过50%的操作是针对元数据的,另有研究指出,使用NFS3,0时,其客户端和服务器端交互的信息中65%的信息是和元数据相关的,元数据最重要的特点是其往往是小的随机请求,一般来讲,元数据都是存储在磁盘上的,然而,和磁盘存储容量的增长不同的是,由于机械组件所带来的延迟,磁盘的平均访问时间每年的降低不足8%.图8表示了Hitachi的磁盘在过去十年里磁盘访问时间和寻道时间的发展趋势,对于这种由小的随机请求所组成的数据访问流中,磁盘的寻道时间是磁盘访问延迟中最组要的部分,这是由于磁头的稳定时间主导着磁盘的寻道时间,而且磁头的稳定时间数年来基本上没有太大的变化,因此,对于大规模系统来讲,元数据的访问往往成为制约整个系统性能的瓶颈。
很多分布式的存储系统将数据访问和元数据的访问分离开来,在这样的系统中,客户端首先和元数据服务器通讯来获取元数据包括文件名、文件位置等信息,然后,利用该元数据,客户端直接和数据服务器通讯去访问相应的数据,一般来讲,元数据服务器的内存可以满足大部分的读请求,但服务器不得不周期性地访问磁盘来读取需要的数据,并且所有元数据的更新也要写回到磁盘,存储系统空间的增长可以通过增加额外的存储服务器来保证,然而,对于一个管理数以亿计的数据文件的云存储系统,如何保证元数据的访问性能和可扩展性?对于象云这样的需要高可扩展性的环境,对元数据的依赖性给系统设计带来了巨大的挑战。
6 云传输
按照Nielsen法则,终端用户的网络带宽以每年50%的速度增长,然而,和局域网形成鲜明对照的是,广域网的性能不尽人意,例如,一条T1线路的带宽只相当于千兆网的千分之一,许多帧中继线路的带宽只有256Kbits/秒,Garfinkel通过测量发现从美国伯克利大学到西雅图的平均网络写带宽大约是5to18Mbits/秒,通过使用网络测试工具iperf,采用256个数据流,我们的测量数据表明在格林尼治标准时间下午7点到10点,从英国剑桥大学到中国北京的平均网络带宽大约是14Mbits/秒。
基于以上的测试数据,如果假设网络带宽为20Mbits/秒,Armbrustetal,等人作了简单的计算,计算结果表明从美国伯克利大学传输10TB数据到西雅图需要45天的时间(10×1012Bytes/(20×106bits/秒)=4,000,000秒=45天).如果通过亚马逊来进行该数据传输,需要另外向亚马逊支付1000美金的网络传输费用,另外,由于广域网物理距离的原因,不可避免的时延也会对带宽造成影响,例如,一个T3链路(44.736Mbits/秒),当时延超过40ms时,其带宽很快就下降到与T1链路(1.544Mbits/秒)相当。
如果是进行云备份,时间上的开销相对还可以忍受,因为用户在本地还有一个数据拷贝可供使用,但如果是从云存储系统中恢复数据,这是无法让人接受的,特别是对于那些需要提供24×7×365业务连续性的企业级用户,为了缓解这个问题,对于云存储系统中大数据量的恢复,云存储提供商Mozy和CrashPlan提供了一个不得已的选择,在用户许可的情况下,将数据转存在DVD或者硬盘上,然后通过特快专递的形式交付给用户。
为了优化广域网环境下大规模数据传输的性能,我们曾将数据在套接字层,在发送端进行分割,然后利用多个套接字流进行并行传输,最后在接收端进行数据的重组(如图10(c)所示),理论上讲,对TCP管道而言,其最大的吞吐量为带宽延迟乘积,即容量=带宽×环回时间,在传输窗口一定的情况下(图10中红色的方形区表示传输窗口,缺省为64K字节),按通常100Mb的网络带宽来计算,传统的单套接字流显然无法填满TCP管道(如图10(a)所示),使得其效率极低,通过加大传输窗口可以在一定程度上提高TCP管道的利用率(如图10(b)所示),但在丢包的情况下,会导致每次重传的数据增加,因此,通过多个套接字流来并行传输的效果较好,另外,由于采用了多流,不同的数据流在必要的情况下可以走不同的路由,也能够进一步优化广域网的性能。
正如前面提到的,云基础设施必须是地理上分布的,因为云的成功在很大程度上决定于其规模效应,计算和存储相对便宜,然而,由于广域网环境下的低带宽、高延迟和较高的丢包率,使得广域网成为云环境下那块最短的木板,因此,在地理上分布的云环境下进行大规模的数据传输是非常昂贵的.图灵奖获得者JimGray在2006年就指出在广域网上处理大数据集时,应该将程序传给数据,而不是将数据传给程序,另外,也可以通过数据压缩、数据的去重等方法来减少网域网上的数据传输流量,降低对网络带宽的需求,还可以采用动态缓存、IP流量管理以及QoS等方法来降低广域网的延迟,但是,这些方法只能在一定程度上来缓解网络瓶颈问题,不能从根本上解决问题,因此,在设计云架构时,必须要考虑广域网的带宽、延迟和包丢失率所带来的影响。
7 讨论
云正成为当前学术界讨论的热点问题,工业界也纷纷推进自己的云产品,例如,EMC的云存储产品Atmos,亚马逊的云计算产品EC2、云存储产品S3(Simple Storage Service)和EBS(Elastic Block Store),IBM的云计算产品BlueCloud,Google推出的在线存储服务GDrive,Microsoft也推出WindowsAzure,各IT业巨头也纷纷将云计算作为其战略制高点并在世界各地建立庞大的数据中心。
但是,正如我们在4.2节和5.2节中提到的,云计算环境下虚拟机的I/O问题,云存储环境下的元数据性能问题必将是云基础设施的设计者不得不面对的挑战,闪存(FlashMemory)是一种非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,它可以被电擦除和重编程,它具有很多优点,例如尺寸小、没有机械部件、低功耗、高性能等,闪存已经在越来越多的场合开始取代传统的磁盘,下页图11和图12分别比较了4种不同性能的磁盘和由闪存组成的固态盘的带宽和访问时间,可以看到固态盘在性能方面具有非常大的优势,在论文中我们还进一步比较了磁盘和固态盘的功耗,结果表明固态盘也具有相当的优势,这表明,从性能的角度,固态盘可以在一定程度上解决云计算和云存储所面临的I/O问题,更为详细的分析请参看论文。
闪存具有4个特点:
1)数据擦除是以块为单位,但数据写是以页为单位,一个块往往是由多个页组成;
2)在向某一个块写数据之前,该块中的数据必须要擦除;
3)每一个块只能被写有限的次数;
4)在一个块内写数据必须要顺序进行。
这些特性导致固态盘的写性能比较微妙,另外,和磁盘的寿命相比,固态盘有限的写次数也是不得不考虑的问题,再者,固态盘的价格和容量目前还无法和磁盘竞争,因此,在试图使用固态盘来缓解I/O问题时,还必须要同时考虑到磁盘的优势,两者结合使用才能发挥各自所长。
同云计算和云存储相比,对于云传输的报道相对较少,现有的工作主要集中在对广域网下的大规模数据传输的性能进行优化,EMC就采用SilvERPeak公司的广域网优化产品来提高广域网环境下数据复制的性能、可扩展性和安全性,同时降低在进行远程复制以实现灾难恢复和业务连续性时的广域网的带宽需求,Cisco也收购了Actona公司来提高其网络设备在网域网环境下的性能问题,主要原因在于,目前广泛使用的TCP/IP协议是在实验室低速网络环境下诞生的,在设计初期只是为了保证数据在链路上的可靠传输,因此,它并不是为广域网而设计的网络传输协议,例如,TCP/IP协议的滑动窗口,重传和恢复等机制使得广域网的传输效率急剧下降,另外,TCP的窗口尺寸、慢启动等机制也无法充分利用已有的网络带宽。
云传输问题,在5,2节中提到的云存环境下的名字空间问题,都促使我们要重新审视在大规模数据存储和传输的情况下的性能优化相关的一系列问题。
P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分资源(如处理能力、存储能力、数据资源等),在此网络中的参与者既是资源提供者(Server),又是资源的获取者(Client),P2P网络由于其高可扩展性得到了广泛的使用。其中分布式且结构化的P2P网络尤其具有应用前景,这种P2P网络中的关键技术是使用分布式哈希表(DistributedHashTables,DHT)来构造结构化拓扑,如:mesh、ring、d-dimensiontorus and butterfly等等,在这种网络中,每个节点都有一个ID,每个文件有一个关键字Key,当宣告一个关键字为K1的文件时,先通过哈希映射得到对应的K1→ID1,然后将该文件存到ID号为ID1的节点,文件的存放过程需要将文件路由到该节点ID1,反过来,当查找一个关键字为K1的文件时,先进行哈希映射得到K1→ID1,然后将该文件从ID号为ID1的节点上取到该文件,从该网络中取文件需要将请求消息路由到ID1节点,然后文件从ID1节点原路返回,其优点在于,在资源管理过程中同时拥有自组织特性、规模的强可缩放特性以及部署的廉价性等等,这为规模庞大的资源整合及共享提供了可能性,其中OceanStore,PAST,FreeHeaven,是最具有代表性的几个大规模的、结构化的P2P存储系统的代表。
图 带宽比较和访问时间比较和OceanStore 的体系结构
图表示了OceanStore的体系结构,其中最关键技术是将多个资源池进行高度的互连,从而允许数据在各个不同的资源池中自由地流动,用于可以根据需要连接到一个或者多个资源池,例如,如果离用户最近的资源池中存在其所需要的数据副本,用户可以连接到该资源池以最大程度地降低广域网对其性能的影响,个人认为,这种结构化的P2P如果能和云存储结合起来,对于其云存储名字空间的管理,对于广域网环境下大规模数据传输的性能优化都会带来很大的帮助。
8 结论
在云计算之前,网格计算在学术界曾被广为推崇并进行了大量的研究,网格计算依托互联网络,将地理上分布的、异构的各种不同资源组织起来,统一调度,组成虚拟的超级计算机,以协同完成需要大量计算机资源的任务,网格计算的这种架构主要用于科学计算、并行计算等问题,其往往通过作业的形式向网格提交任务,并等待处理结果的完成,因此,缺乏和普通用户的交互性,由于其面向特定的有限的用户,未被工业界广泛推广,另外,大部分的网格环境和平台都是基于Globus来开发的,虽然Globus是一个典型的网格计算平台,但是其构筑在传统的操作系统之上,现代软件往往采用模块化的分层设计,物理资源的性能经过每一层软件都会导致性能不同程度的降低,因此,由Globus软件本身所带来的性能开销在加上操作系统的性能开销所导致的网格环境性能的整体下降一直是网格研究社区里经常讨论的问题。
不同于网格计算,云计算以用户需求为导向,利用虚拟化技术将存储资源、计算资源、软件资源、数据资源等构造成动态和、可伸缩的虚拟资源,并通过网络以服务的方式交付给广大用户,由于其以普通用户为主导,并具有广泛的市场前景,所以,最开始是由工业界以产品的形式大力推动并在短时间内产生广泛的影响,云计算拥有网格计算所不具备的大量潜在的普通用户,但是,云如果要避免网格计算的重蹈覆辙,必须要从体系结构进行一个全新的颠覆性的设计,当然,云最终能否成功,还受到其它很多因素的影响(例如,大量的数据存储在云端,如何保证数据的安全和用户隐私)。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:云基础设施下的体系结构、挑战与机遇(下)