云环境下存储技术的研究毕业论文.doc_第1页
云环境下存储技术的研究毕业论文.doc_第2页
云环境下存储技术的研究毕业论文.doc_第3页
云环境下存储技术的研究毕业论文.doc_第4页
云环境下存储技术的研究毕业论文.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

云环境下存储技术的研究毕业论文目录摘要IAbstractII1绪论11.1云存储的兴起11.2云存储的发展22云存储的概念32.1云存储的定义32.2云存储与传统存储32.3云存储与云计算42.4云存储架构模型43云存储的关键技术63.1存储虚拟化技术63.2分布式存储技术73.3 数据备份技术83.3.1传统的备份策略83.3.2 副本数据布局83.3.3 连续数据保护83.4 数据缩减技术93.4.1 自动精简配置93.4.2 自动存储分层93.4.3 重复数据删除103.4.4 数据压缩103.5存储安全技术113.6 容错技术124云存储的架构技术134.1GFS系统架构134.2GPFS架构154.3HDFS架构164.4Dynamo架构175云计算仿真CloudSim205.1CloudSim环境配置205.2程序流程图225.3程序编写步骤225.4仿真结果296 总结及展望306.1 本文工作总结306.2研究工作展望30参考文献31致谢331绪论近年来,随着云计算1-2和软件即时服务3-5的兴起,云存储成为信息存储领域的一个研究热点。与传统的存储设备相比,云存储不仅仅是一个硬件,而是一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程序等多个部分组成的系统6。这是一种具有很大诱惑性的存储技术,云存储可以实现存储完全虚拟化,大大简化应用环节,节省客户建设成本,同时提供更强的存储和共享功能。云状存储中所有设备对使用者完全透明,任何地方任何被授权用户都可以通过一根接入线与云存储连接,进行空间与数据访问。用户无需关心存储设备型号、数量、网络结构、存储协议、应用接口等,应用简单透明。因此,云存储的研究不但紧跟发展的趋势,同时还具有较高的应用价值。1.1云存储的兴起迄今为止,人类对于计算机发展的需求所关心的共同问题都集中在如何进行高效的存储和存储如何促进计算的协作上。存储与之相关计算的发展历经了以下四个的阶段7:(1)集中式的应用和存储客户机/服务器计算在计算的初期,所有的应用软件、所有的数据和控制器都位于大型的电脑主机之上。用户必须连接到主机,获得适当的权限后才能访问数据。(2)存储资源共享对等计算无须经由服务器,将一台计算机连接到另一台计算机,导致了P2P对等计算的发展。在P2P网络中没有主机,所有的通信不再经由主服务器,计算机平等运行,所有的数据分散存储到对等的节点上,提高了通信效率,易于进行数据的共享。(3)存储与计算的分布式化个人电脑能的计算和存储的资源很大一部分没有得到较好的利用,分布式计算能很好的利用这些资源。当一台计算用于某个分布式项目时,需要在机器上安装软件,它会利用空闲的时间进行数据的存储与运算并定期传送到分布式计算网络中与该项目中的其它计算合并结果。只要有足够的计算机参与,这种做法足以比拟更大的主机和超级计算机的处理能力,用户可以共享文件并同时在相同的文件上工作。(4)云计算瘦客户端下的计算与存储随着手持设备的发展,云计算的产生使得在瘦客户端没有多少计算力和存储空间的接入设备上,也能够进行海量数据的处理8。更深入的来看存储技术的发展。由于单机存储方案无法满足数据拓展和协作性,而产生了分布式存储系统10。分布式存储系统是基于硬件的存储技术,由于其较大的成本和较差的灵活性而逐渐被大型企业放弃9。云存储是一种新的分布式存储模式,具有廉价、高可靠性和安全性的优点7,9,11,12,成为未来最值得期待推广和应用的技术之一。1.2云存储的发展云存储这个概念一经提出,就得到了众多厂商的支持和关注13。Amazon公司推出弹性块存储技术支持数据持久性存储;Google推出在线存储服务GDrive;内容分发网络服务提供商CDNetworks和云存储平台服务商Nirvanix结成战略伙伴关系,提供云存储和内容传送服务集成平台;EMC公司收购Berkeley Data Systems,取得该公司的Mozy在线服务软件,并开展SaaS业务;Microsoft公司推出Windows Azure,并在美国各地建立庞大的数据中心;IBM也将云计算标准作为全球备份中心扩展方案的一部分。目前有近百种云存储系统。一些系统有明确的关注点,如存储网络电子邮件信息或者数字图片。其它一些用来存储所有形式的数字文件。一些云存储系统是小规模操作的,其它一些是超大集群的以至于物理设备能填满整个仓库。尽管对于云存储来说有很多优势值得我们选择和研究,然而云存储仍面临着许多技术的难题,特别是安全性。图1.1是因特网数据中心关于云存储所做的调研13,可以看出安全、控制和性能等问题是关注的焦点。有效的控制和性能反映出用户对于云存储可用性的期待。目前云存储研究的热点仍集中在安全性、可用性、可靠性三个方面。云存储安全特别是用户数据的隐私问题,即服务商也不能得到用户的数据,至今没有较好的解决方案。图1.1 云存储的关注调查2云存储的概念 2.1云存储的定义云存储是指通过集群应用、网格技术或分布式文件系统等功能, 将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作, 共同对外提供数据存储和业务访问功能的一个系统。云存储系统以传统的分布式存储技术为基础,利用高吞吐率网络技术为依托,一方面高效地整合管理网络存储资源,另一方面对外提供友好的接口,发布便捷的网络数据存储服务。与传统的存储设备相比,云存储不仅仅是一个硬件,而是一个网络设备、存储设备、服务器、应用软件、公用访问接口、接入网和客户端程序等多个部分组成的系统12。云存储不是存储, 而是服务。使用者使用云存储,并不是使用某一个存储设备,而是使用整个云存储系统带来的一种数据访问服务。云存储的核心是应用软件与存储设备相结合,通过应用软件来实现存储设备向存储服务的转变13。2.2云存储与传统存储相比于传统的集中存储方式,云存储系统具有以下几点优势:(1)更容易扩容(包括带宽)云存储的扩容过程将变得简单:新设备仅需安装操作系统及云存储软件后,打开电源接上网络,云存储系统便能自动识别,自动把容量加入存储池中完成扩展。相比传统的存储扩容,云存储架构采用的是并行扩容方式,即当容量不够时,采购新的存储服务器即可,扩容环节无任何限制。(2)更易于管理在传统存储系统管理中,管理人员需要面对不同的存储设备不同的管理界面,要了解每个存储的使用状况,工作复杂而繁重,当传硬盘或是存储服务器损坏时,读写效率会降低,数据很可能丢失;而云存储没有这个困扰,硬盘坏掉,数据会自动迁移到别的硬盘,不需要立即更换硬盘,大大减轻了管理人员的工作负担。对云存储来说,管理人员只要在整体硬盘容量快用完时,按需采购服务器即可,通过一个统一管理界面监控每台存储服务器的使用状况,使得维护变得简单和易操作。(3)成本更低廉传统的存储系统对硬盘的要求近乎苛刻,必须同厂家、同容量、同型号,否则系统很容易出问题。面对升级换代较快的IT产业,硬盘在使用23年后很难找到同型号产品更换。而云存储没有这个问题,云存储系统中不同的硬盘可以一起工作,既可以实现原有硬件的利旧保护投入,又可以实现新技术、新设备的快速更新,合理搭配、可持续发展。且云存储系统中所采用的存储及服务器设备均是性价比较高的设备。可实现长久合作关系下,设备商采购的稳定渠道,便于实现对成本及服务质量的控制。(4)数据更安全,服务不中断传统存储系统会因为硬件损坏而导致服务停止,虽然可以设计全冗余的环境,但成本相对太高且工作复杂。云存储系统则不同,它可通过将文件和数据保存在不同的存储节点, 避免了单一硬件损坏带来的数据不可用。云存储系统知道文件存放的位置,在硬件发生损坏时,云存储系统会自动将读写指令导向存放在另一台存储服务器上的文件,保持服务的继续。另外,传统存储系统在升级时,往往需要把旧的存储设备文件备份出来后,停机换上新的存储设备,这通常会导致服务的短暂停止。云存储并不单独依赖一台存储服务器,因此存储服务器硬件的更新、升级并不会影响存储服务的提供,系统会将旧存储服务器上的文件迁移到别的存储服务器,等新的存储服务器上线后,文件会再迁移回来。2.3云存储与云计算从整体来看,云计算系统可以认为是以数据处理、数据运算为中心的系统。云计算的设计方向是将在不同地域的各种计算资源,通过虚拟化方式统一到庞大的计算资源“云”系统中来。云系统统一调配、协调、处理来自不同客户的运算需求,通过云系统计算后对外输出运算结果。云计算的一个核心理念就是通过不断提高“云”的处理能力,进而减少用户终端的处理负担,最终使用户终端简化成一个单纯的输入输出设备,并能按需享受“云”的强大计算处理能力。通过云计算技术,网络服务提供者可以在数秒之内,处理数以千万计甚至亿计的信息,达到和“超级计算机”同样强大的网络服务功能。云计算系统不但能对数据进行处理和运算,系统中还有大量的存储阵列设备,以实现对计算数据的保存和管理。在云计算系统中配置相应的存储设备,该计算系统即拥有了云存储系统功能。由此可以理解,云存储是云计算系统的延伸,是配置了大容量存储空间的云计算系统,可以说云存储是云计算服务的一种,即SaaS13(storage as a service,存储即服务),甚至可以说,利用云计算系统来建立存储系统,此时的云存储概念相当于一个云计算服务,它往往称之为“存储云”。如亚马逊的S3服务,我们可以利用它来建立另外一个存储系统,S3服务本身就是云服务,所以这样的系统可以称为云存储。2.4云存储架构模型云存储系统的结构模型由4层组成,如图2.1所示。(1)存储层存储层是云存储最基础的部分。数量庞大的云存储设备分布在不同地域,彼此之间通过广域网、互联网或者FC光纤通道网络连接。各存储设备上都安装有统一的存储设备管理系统,可以实现存储设备的逻辑虚拟化管理、集中管理、多链路冗余管理以及硬件设备的状态监控和维护升级等。(2)基础管理层基础管理层是云存储最核心的部分,也是云存储中最难以实现的部分。应用接口层通过集群系统、分布式文件系统和网格计算等技术,实现云存储中多个存储设备之间的协同工作,使多个的存储设备可以对外提供同一种服务,并提供更大、更强、更好的数据访问性能。云存储系统通过集群文件操作系统实现后端存储设备的集群工作,并通过系统的控制单元和管理单元实现整个系统的管理,数据的分发、处理,处理结果的反馈。可利用CDN内容分发系统、P2P数据传输技术和数据压缩技术等保证云存储中的数据可以更有效地存储,使用和占用更少的空间以及更低的传输带宽,从而对外提供更高效的服务。数据加密技术实现了数据存储和传输过程中的安全性。数据备份和容灾技术可保证云存储中的数据多份保存不会丢失,保证云存储数据自身的安全和稳定。(3)应用接口层应用接口层是云存储最灵活多变的部分。不同的云存储运营单位可以根据实际业务类型,开发不同的应用服务接口,提供不同的应用服务。任何一个授权用户通过网络接入、用户认证和权限管理接口的方式来登入云存储系统,都可以享受云存储服务。(4)访问层云存储运营单位不同,提供的访问类型和访问手段也不同。云存储使用者采用的应用软件客户端不同,享受到的服务类型也不同,比如个人空间租赁服务、运营商空间租赁服务、数据远程容灾和远程备份、视频监控应用平台、IPTV和视频点播应用平台、网络硬盘引用平台,远程数据备份应用平台等。图2.1云存储架构模型3云存储的关键技术3.1存储虚拟化技术通过存储虚拟化方法,把不同厂商、不同型号、不同通信技术、不同类型的存储设备互联起来,将系统中各种异构的存储设备映射为一个统一的存储资源池。存储虚拟化技术能够对存储资源进行统一分配管理,又可以屏蔽存储实体间的物理位置以及异构特性,实现了资源对用户的透明性,降低了构建、管理和维护资源的成本,从而提升云存储系统的资源利用率。总体来说,存储虚拟化技术可概括为基于主机虚拟化、基于存储设备虚拟化和基于存储网络虚拟化三种技术。用表格的方式对三种存储虚拟化技术的技术优点与缺点、适应场景等进行了分析对比,结果如下:表3.1存储虚拟化技术对比实现层面主机网络设备优点支持异构的存储系统;不需要额外的硬件支持,便于部署。不占用主机资源;技术成熟度高,容易实施。架构合理,不占用主机资源;数据管理功能丰富,技术成熟度高。缺点占用主机资源,降低应用性能;存在越权访问的数据安全隐患;主机数量越多,管理成本越高。消耗存储控制器资源;存储设备兼容性需要严格验证;原有的磁盘阵列的高级存储功能将不能使用。受制于存储控制器接口资源,虚拟化能力较弱;异构厂家存储设备的高级存储功能将不能使用。主要用途使服务器的存储空间可以跨越多个异构磁盘阵列,常用于在不同磁盘阵列之间做镜像保护。异构存储系统整合和统一数据管理(灾备)异构存储系统整合和统一数据管理(灾备)适用场景主机采用SF卷管理,需要新接多台存储设备;存储系统中包含异构阵列设备;业务持续能力与数据吞吐要求较高。系统包括不同品牌和型号的主机和存储设备;对数据无缝迁移及数据格式转换有较高时间性保证。系统中包括自带虚拟化功能的高端存储设备与若干需要利旧的中低端存储。不适用场景主机数量大,采用SF会涉及高昂的费用;待迁入系统数据量过大,如果只能采用存储级迁移方式,数据格式转换将耗费大量时间和人力。对业务持续性能力和稳定性要求苛刻。需要新购机头时,费用较高;存在更高端的存储设备。(1)基于主机的虚拟化其核心技术是通过增加一个运行在操作系统下的逻辑卷管理软件将磁盘上的物理块号映射成逻辑卷号,并以此实现把多个物理磁盘阵列映射成一个统一的虚拟的逻辑存储空间(逻辑块)实现存储虚拟化的控制和管理。(2)基于存储设备虚拟化该技术依赖于提供相关功能的存储设备的阵列控制器模块,常见于高端存储设备,其主要应用针对异构的SAN存储构架。(3)基于存储网络虚拟化该的技术的核心是在存储区域网中增加虚拟化引擎实现存储资源的集中管理,其具体实施一般是通过具有虚拟化支持能力的路由器或交换机实现。存储网络虚拟化又可以分为带内虚拟化与带外虚拟化两类,二者主要的区别在于:带内虚拟化使用同一数据通道传送存储数据和控制信号,而带外虚拟化使用不同的通道传送数据和命令信息。3.2分布式存储技术分布式存储是通过网络使用服务商提供的各个存储设备上的存储空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在各个存储设备上。先进的分布式存储系统必须具备以下特性:高性能、高可靠性、高可扩展性、透明性以及自治性。目前比较流行的分布式存储技术为:分布式块存储、分布式文件系统存储、分布式对象存储和分布式表存储。(1)分布式块存储块存储就是服务器直接通过读写存储空间中的一个或一段地址来存取数据。由于采用直接读写磁盘空间来访问数据,相对于其他数据读取方式,块存储的读取效率最高,一些大型数据库应用只能运行在块存储设备上。分布式块存储系统目前以标准的Intel/Linux硬件组件作为基本存储单元,组件之间通过千兆以太网采用任意点对点拓扑技术相互连接,共同工作,构成大型网格存储,网格内采用分布式算法管理存储资源。(2)分布式文件系统存储文件存储系统可提供通用的文件访问接口,如POSIX等,实现文件与目录操作、文件访问、文件访问控制等功能。目前的分布式文件系统存储的实现有软硬件一体和软硬件分离两种方式。(3)分布式对象存储对象存储引入对象元数据来描述对象特征,对象元数据具有丰富的语义,支持数据的并发读写,一般不支持数据的随机写操作。对象存储技术相对成熟,对底层硬件要求不高,存储系统可靠性和容错通过软件实现,同时其访问接口简单,适合处理海量、小数据的非结构化数据,如:邮箱、网盘、相册、音频视频存储等。(4)分布式表存储表结构存储是一种结构化数据存储,与传统数据库相比,它提供的表空间访问功能受限,但更强调系统的可扩展性。提供表存储的云存储系统的特征就是同时提供高并发的数据访问性能和可伸缩的存储和计算架构。提供表存储的云存储系统有两类接口访问方式:一类是标准的SQL数据库接口,一类是Map-reduce的数据库应用处理接口。前者目前以开源技术为主,尚未有成熟的商业软件,后者已有商业软件和成功的商业应用案例。3.3 数据备份技术3.3.1传统的备份策略典型的用户备份流程是这样的:每天都要在凌晨进行一次增量备份,然后每周末凌晨进行全备份。采用这种方法,一旦出现了数据灾难,用户可以恢复到某天(注意是以天为单位的)的数据,因此在最坏的情况下,可能丢失整整一天的数据。该备份策略在备份的数据量很大的情况下,备份时间窗口很大,需要繁忙的业务系统停机很长时间才能做到。因此,为了确保数据的更高安全性,用户必须对在线系统实行在线实时复制,尽可能多地采用快照等磁盘管理技术维持数据的高可用性,这样势必需要增加很大一部分投资。3.3.2 副本数据布局该方法通过集中式的存储目录来定位数据对象的存储位置。这种方法可以利用存储目录中存放的存储节点信息,将数据对象的多个副本放置在不同机架上,这样可大大提高系统的数据可靠性。然而,它存在以下两个缺陷:(1)随着存储目录的增长,查找数据对象所需的开销也会越来越大;(2)为提高数据对象的定位速度,一般情况下都会将存储目录存放在服务器内存中,对于PB级的云存储系统来说,文件的数量可能达到上亿级,这导致存储目录将会占用上百GB的内存。因此,当数据对象数量达到上亿级别时,基于集中式存储目录的数据放置方法在存储开销和数据定位的时间开销上都是难以接受的,此外,还会大大限制系统的扩展性。3.3.3 连续数据保护连续数据保护是一种连续捕获和保存数据变化,并将变化后的数据独立于初始数据进行保存的方法,可以实现过去任意一个时间点的数据恢复。连续数据保护系统可能基于块、文件或应用,并且为数量无限的可变恢复点提供精细的可恢复对象。连续数据保护可以提供更快的数据检索、更强的数据保护和更高的业务连续性能力,而与传统的备份解决方案相比,连续数据保护的总体成本和复杂性都要低。连续数据保护解决方案应当具备以下几个基本特性:数据的改变受到连续的捕获和跟踪;所有的数据改变都存储在一个与主存储地点不同的独立地点中;恢复点目标是任意的,而且不需要在实际恢复之前事先定义。尽管一些厂商推出了连续数据保护产品,然而从它们的功能上分析,还做不到真正连续的数据保护,比如有的产品备份时间间隔为一小时,那么在这一小时内仍然存在数据丢失的风险,因此,严格地讲,它们还不是完全意义上的连续数据保护产品,目前我们只能称之为类似连续数据保护产品。3.4 数据缩减技术数据量的急剧增长为存储技术提出了新的问题和要怎样低成本高效快速地解决无限增长的信息的存储和计算。通过云存储技术不仅解决了存储中的高安全性、可靠性、可扩展、易管理等存储的基本要求,同时也利用云存储中的数据缩减技术,满足海量信息爆炸式增长趋势,一定程度上节约企业存储成本,提高效率。3.4.1 自动精简配置该技术是利用虚拟化方法减少物理存储空间的分配,通过“欺骗”操作系统,造成的好像存储空间有足够大,而实际物理存储空间并没有那么大,会减少已分配但未使用的存储容量的浪费,在分配存储空间时,按需分配,最大限度提升存储空间利用率,利用率超90。利用自动精简配置技术,用户不需要了解存储空间分配的细节,能帮助用户在不降低性能的情况下,大幅度提高存储空间利用效率;需求变化时,无需更改存储容量设置,通过虚拟化技术集成存储,减少超量配置,降低总功耗。这项技术已经成为选择存储系统的关键标准之一。随着自动精简配置的存储越来越多,物理存储的耗尽成为自动精简配置环境中经常出现的风险,因此,告警、通知和存储分析成为必要的功能。3.4.2 自动存储分层在过去,数据移动主要依靠手工操作,由管理员来判断数据访问压力,迁移的时候只能一个整卷一起迁移。自动存储分层技术的特点则是其分层的自动化和智能化。一个磁盘阵列能够把活动数据保留在快速、昂贵的存储上,把不活跃的数据迁移到廉价的低速层上,以限制存储的花费总量。数据从一层迁移到另一层的粒度越精细,使用的昂贵存储的效率就越高。自动存储分层的重要性随着固态存储在当前磁盘阵列中的采用而提升,并随着云存储的来临而补充内部部署的存储。自动存储分层使用户数据保留在合适的存储层级,而不需要用户定义的策略,因此减少了存储需求的总量并实质上减少了成本,提升了性能。3.4.3 重复数据删除该技术通过删除集中重复的数据,只保留其中一份,从而消除冗余数据,可以将数据缩减到原来的2%5%。按照消重的粒度重复数据删除技术可以分为文件级和数据块级。该技术计算数据指纹,具有相同指纹的数据块即可认为是相同的数据块,存储系统中仅需要保留一份。这样,一个物理文件在存储系统中就只对应一个逻辑表示。由于大幅度减少了物理存储空间的信息量,进而减少传输过程中的网络带宽、节约设备成本、降低能耗。3.4.4 数据压缩数据压缩就是将收到的数据通过存储算法存储到更小的空间中去。随着目前CPU处理能力的大幅提高,应用实时压缩技术来节省数据占用空间成为现实,这项新技术就是最新研发出的在线压缩,它与传统压缩技术不同,当数据在首次写入时即被压缩,以帮助系统控制大量数据在主存中杂乱无章地存储的情形,特别是多任务工作时更加明显。该技术还可以在数据写入到存储系统前压缩数据,进一步提高了存储系统中的磁盘和缓存的性能和效率。压缩算法分为无损压缩和有损压缩。相对于有损压缩来说,无损压缩的占用空间大,压缩比不高,但是它有效地保存了原始信息,没有任何信号丢失。但是随着限制无损格式的种种因素逐渐被消除,使得无损压缩格式具有广阔的应用前景。数据压缩中使用的LZ77算法,主要由2部分构成,滑窗(Sliding Window)和自适应编码(Adaptive Coding)。压缩处理时,在滑窗中查找与待处理数据相同的块,并用该块在滑窗中的偏移值及块长度替代待处理数据,从而实现压缩编码。如果滑窗中没有与待处理数据块相同的字段,或偏移值及长度数据超过被替代数据块的长度,则不进行替代处理。该算法的实现非常简洁,处理比较简单,能够适应各种高速应用。数据压缩的应用可以显著降低待处理和存储的数据量,一般情况下可实现2:13:1的压缩比。图3.1 LZ77算法示意图压缩和去重是互补性的技术,提供去重的厂商通常也提供压缩。而对于虚拟服务器卷、电子邮件附件、文件和备份环境来说,去重通常更加有效,压缩对于随机数据效果更好,像数据库。换句话说,在数据重复性比较高的地方,去重比压缩有效。3.5存储安全技术可扩展和高性能的存储安全技术,是推动云存储最根本的保证,已经成为当前网络存储领域的研究热点。云存储应用中的存储安全包括认证服务、数据加密存储、安全管理、安全日志和审计。(1)认证服务:访问控制服务实现用户身份认证、授权,防止非法访问和越权访问。主要功能包括:用户只能对经管理员或文件所有者授权的许可文件进行被许可的操作;管理员只能进行必要的管理操作,如用户管理、数据备份、热点对象迁移,而不能访问用户加密了的私有数据。(2)加密存储:是对指定的目录和文件进行加密后保存,实现敏感数据存储和传送过程中的机密性保护。(3)安全管理:主要功能是用户信息和权限的维护,如用户帐户注册和注销等,授权用户、紧急情况下对用户权限回收等。(4)安全日志和审计:是记录用户和系统与安全相关的主要活动事件,为系统管理员监控系统和活动用户提供必要的审计信息。随着存储系统和存储设备越来越网络化,存储系统在保证敏感数据机密性的同时,必须提供相应的加密数据共享技术。必须研究适用于网络存储系统的加密存储技术,提供端到端加密存储技术及密钥长期存储和共享机制,以确保用户数据的机密性和隐私性,提高密钥存储的安全性、分发的高效性及加密策略的灵活性。在海量的加密信息存储中,加密检索是实现信息共享的主要手段,是加密存储中必须解决的问题之一。加密检索技术有线性搜索算法、基于关键词的公钥加密搜索、安全索引、引入相关排序的加密搜索算法。(1)线性搜索算法首先用对称加密算法对明文信息加密,对于每个关键词对应的密文信息,生成一串长度小于密文信息长度的伪随机序列,并生成一由伪随机序列及密文信息确定的校验序列,伪随机序列的长度与检验序列长度之和等于密文信息的长度,伪随机序列及检验序列对密文信息再次加密。在搜索过程中,用户提交明文信息对应的密文信息序列。在服务器端,密文信息序列被线性的同每一段序列模2加。如果得到的结果满足校验关系,那么说明密文信息序列出现,否则,说明密文信息不存在。线性搜索方法是一次一密的加密信息检索算法,因此有极强的抵抗统计分析的能力。但其有一个致命的缺点,即逐次匹配密文信息,这使得这种检索方法在大数据集的情况下难以应用。(2)基于关键词的公钥加密搜索算法14由Boneh等人提出的,其目的是可以在用户端存储、计算资源不足的情况下,通过访问远端数据库获取数据信息。此算法首先生成公钥、私钥,然后对存储的明文关键词用公钥进行加密,生成可搜索的密文信息。此算法可以解决两方面的问题:第一,存储、计算资源分布的不对称性,即用户的计算存储能力不能实时满足其需求;第二,用户在移动情况下对存储、检索数据的需求,比如Email服务等。(3)安全索引15由Park等人提出,其机制是每次加密所用的密钥是事先生成的一组逆Hash序列,加密后的索引被放入布隆过滤器中。当检索的时候,首先用逆Hash序列密钥生成多个陷门,然后进行布隆检测。对返回的密文文档解密即可得到所需检索的文档。针对有新用户加入、旧用户退出的多用户加密信息检索,这是一种解决方法。但其存在的缺陷是需要生成大量的密钥序列,随着检索次数的增加,每多进行一次检索,其计算复杂度均线性增加。这在实际应用中很难被接受。(4)引入相关排序的加密搜索算法16Swaminathan等人提出了保护隐私的排序搜索算法。在这一算法中,每一文档中关键词的词频都被保序加密算法加密。提交查询给服务器端后,首先计算检索出含有关键词密文的加密文档;然后对用保序算法加密的词频对应的密文信息进行排序处理;最后把评价值高的加密文档返回给用户,由用户对其进行解密。这一种方法可以在给定多个可能相关文档的情况下对加密文档进行排序,进而把最可能相关的文档返回给用户。但这一种算法首先不适用于一个查询包含多个查询词的情况,其次算法只利用了文档中的词频信息,无法利用词的逆文档频率,进而向量空间模型无法直接应用。3.6 容错技术数据容错技术一般都是通过增加数据冗余来实现的。冗余提高了容错性,但是也增加了存储资源的消耗。因此,在保证系统容错性的同时,要尽可能地提高存储资源的利用率,以降低成本。目前,常用的容错技术主要有基于复制(replication)的容错技术和基于纠删码(erasure code)的容错技术两种。(1)基于复制的容错技术该技术对一个数据对象创建多个相同的数据副本,并把得到的多个副本散布到不同的存储节点上。当若干数据对象失效以后,可以通过访问其他有效的副本获取数据。基于复制的容错技术简单直观,易于实现和部署,但是存储空间开销很大;当数据失效以后,只需要从其他副本下载同样大小的数据即可进行修复。(2)基于纠删码的容错技术该技术源于信道传输的编码技术,因为能够容忍多个数据帧的丢失,被引入到分布存储领域,使得基于纠删码的容错技术成为能够容忍多个数据块同时失效的、最常用的基于编码的容错技术。基于编码的容错技术通过对多个数据对象进行编码产生编码数据对象,能够把多个数据块的信息融合到较少的冗余信息中,因此能够有效地节省存储空间,但是对数据的读写操作要分别进行编码和解码操作,需要一些计算开销;当数据失效以后,需要下载的数据量一般远大于失效数据大小,修复成本较高。4云存储的架构技术4.1GFS系统架构GFS(Google File System),是Google公司为了存储海量搜索数据而设计的专用文件系统。GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,但可以提供容错功能,可以给大量的用户提供总体性能较高的服务。GFS提供了一个类似传统文件系统的接口,虽然它没有向POSIX(Portable Operating System Interface,可移植操作系统接口),那样实现标准的API(Application Programming Interface,应用程序编程接口)。文件在目录中按照层次组织,用路径名来标识,可应用在Linux和Windows等各种平台。GFS系统架构17如图4.1所示:图4.1 GFS系统架构客户端在访问GFS时,首先访问Master节点,获取将要与之进行交互的Chunk Server信息,然后直接访问这些Chunk Server完成数据存取。GFS的这种设计方法实现了控制流和数据流的分离。Client与Master之间只有控制流,而无数据流,这样就极大地降低了Master的负载,使之不成为系统性能的一个瓶颈。Client与Chunk Server之间直接传输数据流,同时由于文件被分成多个Chunk进行分布式存储,Client可以同时访问多个Chunk Server,从而使得整个系统的I/O高度并行,系统整体性能得到提高。具体来说,GFS具有以下几个特点。(1)采用中心服务器模式GFS采用中心服务器模式来管理整个文件系统,可以大大简化设计,从而降低实现难度。Master管理了分布式文件系统中的所有元数据。文件划分为Chunk进行存储,对于Master来说,每个Chunk Server只是一个存储空间。Client发起的所有操作都需要先通过Master才能执行。这样做有许多好处,增加新的Chunk Server是一件十分容易的事情,Chunk Server只需要注册到Master上即可,Chunk Server之间无任何关系。Master维护了一个统一的命名空间,同时掌握整个系统内Chunk Server的情况,据此可以实现整个系统范围内数据存储的负载均衡。由于只有一个中心服务器,元数据的一致性问题自然解决。当然,中心服务器模式也带来一些固有的缺点,比如极易成为整个系统的瓶颈等。GFS采用多种机制来避免Master成为系统性能和可靠性上的瓶颈,如尽量控制元数据的规模、对Master进行远程备份、控制信息和数据分流等。(2)不缓存数据缓存(Cache)机制是提升文件系统性能的一个重要手段,通用文件系统为了提高性能,一般需要实现复杂的缓存机制。GFS文件系统根据应用的特点,没有实现缓存,这是从必要性和可行性两方面考虑的。从必要性上讲,客户端大部分是流式顺序读写,并不存在大量的重复读写,缓存这部分数据对系统整体性能的提高作用不大;而对于Chunk Server,由于GFS的数据在Chunk Server上以文件的形式存储,如果对某块数据读取频繁,本地的文件系统自然会将其缓存。从可行性上讲,如何维护缓存与实际数据之间的一致性是一个极其复杂的问题,在GFS中各个Chunk Server的稳定性都无法确保,加之网络等多种不确定因素,一致性问题尤为复杂。此外由于读取的数据量巨大,以当前的内存容量无法完全缓存。对于存储在Master中的元数据,GFS采取了缓存策略,GFS中Client发起的所有操作都需要先经过Master。Master需要对其元数据进行频繁操作,为了提高操作的效率,Master的元数据都是直接保存在内存中进行操作。同时采用相应的压缩机制降低元数据占用空间的大小,提高内存的利用率。(3)在用户态下实现文件系统作为操作系统的重要组成部分,其实现通常位于操作系统底层。以Linux为例,无论是本地文件系统,还是分布式文件系统,都是在内核态实现的。在内核态实现文件系统,可以更好地和操作系统本身结合,向上提供兼容的POSIX接口。然而,GFS却选择在用户态下实现。(4)只提供专用接口通常的分布式文件系统一般都会提供一组与POSIX规范兼容的接口。其优点是应用程序可以通过操作系统的统一接口来透明地访问文件系统,而不需要重新编译程序。GFS在设计之初,是完全面向Google的应用的,采用了专用的文件系统访问接口。接口以库文件的形式提供,应用程序与库文件一起编译,Google应用程序在代码中通过调用这些库文件的API,完成对GFS文件系统的访问。由以上分析可以看出,GFS并不是一个通用的云存储系统,它更适合于大型的搜索业务以至于GFS的设计考虑了许多具体业务特性,如文件的大小、读写频率等,这些将限制GFS的业务应用。同时,主从式结构的单点失效和性能瓶颈问题也是业内关注的中心。当然,GFS本身也在优化和改进之中。4.2GPFS架构GPFS(General Parallel File System, GPFS)是IBM公司第一个共享文件系统,起源于IBM SP系统上使用的虚拟共享磁盘技术( VSD )。作为这项技术的核心,GPFS是一个并行的磁盘文件系统,它保证在资源组内的所有节点可以并行访问整个文件系统;而且针对此文件系统的服务操作,可以同时安全地在使用此文件系统的多个节点上实现。GPFS允许客户共享文件,而这些文件可能分布在不同节点的不同硬盘上。GPFS提供了许多标准的UNIX文件系统接口,允许应用不需修改或者重新编辑就可以在其上运行。GPFS也支持UNIX文件系统的工具,即:用户可以像使用普通文件系统一样使用基于GPFS的文件系统,唯一不同的在于管理GPFS文件系统的命令。GPFS提供的文件系统操作服务可以支持并行应用和串行应用,它允许任何节点(这些节点属于同一个节点组)上的并行应用同时访问同一个文件或者不同的文件18。GPFS的架构如图4.2所示。 图4.2 GPFS架构GPFS文件系统由三层架构组成:GPFS文件设备、网络共享磁盘(NSD)和磁盘。(1) GPFS文件设备(GPFS File System Device):由NSD创建,是可以被多个节点并行同时挂载的文件设备(2) 网络共享磁盘(NSD):是由物理磁盘映射出来的虚拟设备,与磁盘之间是一一对应的关系。并且,NSD将虚拟设备按照不同的属性划分了不同的用途。NSD虚拟设备具有4种不同的磁盘属性:a、Desc Only:表示该磁盘存储GPFS文件系统的描述信息;b、Data Only:表示该磁盘只存储GPFS文件系统的数据信息;c、Meta Data Only:表示该磁盘只存储GPFS文件系统的目录结构信息;d、Meta And Data:表示该磁盘存储GPFS文件系统中的所有信息(默认情况)。(3) 磁盘(Disk):用来存储数据的物理磁盘。GPFS文件系统具有以下特点:(1)高性能由于GPFS文件系统允许在同一个节点内的多个进程使用标准的UNIX文件系统接口,并行的访问相同文件。并且,可以将节点的读写操作分布到不同的物理磁盘上,因此避免了对某个磁盘过多读写操作,增加了整个系统的吞吐量,提高了系统的整体性能。(2)跨平台GPFS文件系统本身可以看成与具体系统无关的一个单独系统,通过集群方式可以支持多种操作系统,比如AIX、Linux等。(3)保证数据一致性GPFS文件系统采用信令管理机制保证数据的一致性。信令机制允许各个节点通过独自的路径到达同一个文件。因此,当某个节点的某条路径无法正常工作,依旧可以通过链路冗余达到GPFS文件系统。并且GPFS本身设计成为一种日志文件系统,为不同的节点建立了各自独立的日志(保存了Meta Data的分布信息)。因此,一但节点发生故障后,可以通过日志记录的Meta Data的分布信息,快速的找到相应的Meta Data然后恢复。(4)可扩展性GPFS可以动态调整系统资源,支持在文件系统挂载的情况下动态的添加和删除硬盘,而无须重启。(5)方便管理GPFS文件系统,可以自动的同步各个节点的配置文件和文件系统信息,因此可以在任意一个节点上管理GPFS。4.3HDFS架构Hadoop 19分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统,即HDFS(Hadoop Distributed File System)。Hadoop是Apache基金会支持的一个开源的分布式计算平台项目,是GFS的开源实现。HDFS是一个高度容错性的系统,适合部署在廉价的机器上,能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。它给应用提供了多种访问方式,可以通过Java API调用,也可以通过C语言的封装API访问,并且提供了浏览器访问的方式。正在开发通过Web Dav(Web分布式创作和版本控制)协议访问的方式20。HDFS采用master/slave架构,如图4.3所示。图4.3 HDFS系统架构一个HDFS集群是由一个Namenode和一定数目的Datanodes组成。Namenode是一个中心服务器,负责管理文件系统的名字空间以及客户端对文件的访问21。集群中的Datanode一般是一个节点一个,负责管理它所在节点上的存储。HDFS暴露了文件系统的名字空间,用户能够以文件的形式在上面存储数据。从内部看,一个文件其实被分成一个或多个数据块,这些块存储在一组Datanode上。Namenode执行文件系统的名字空间操作,比如打开、关闭、重命名文件或目录,它也负责确定数据块到具体Datanode节点的映射。Datanode负责处理文件系统客户端的读写请求。在Namenode的统一调度下进行数据块的创建、删除和复制。Namenode和Datanode被设计成可以在普通的商用机器上运行。这些机器一般运行着GNU/Linux操作系统。图4.3反映了Hadoop平台的分布式文件系统主要架构模式22,它具有可拓展、经济可靠等优势。然而,Hadoop目前最新的版本为0.2,显然处于发展初期,其平台的运行还不够稳定,服务的可靠性是其不能被大规模商用的主要顾虑之一。在Hadoop的集群架构中,主节点NameNode只有一个,它进程负责数据存储与调用的统筹。这使得将Hadoop分布式计算平台应用于云计算系统时,存在以下不可靠的因素:(1)单一的主控节点制使得系统的负载不均;(2)尽管监控进程保证了计算向存储的转移,但是没有实现任务处理中的计算和存储的同时转移。否则可能会造成任务的重启对于巨型任务来说,损失巨大。4.4Dynamo架构Dynamo是一个完全分布式的、无中心节点、松散耦合,由数百个服务组成的面向服务架构。相比传统的集中式存储系统,Dynamo在设计之初就被定位为一个高可靠、高可用且具有良好容错性的系统。尽管这是一个很有争议的系统,然而,实践表明Dynamo作为亚马逊的key-value模式的存储平台,可用性和扩展性较高:读写访问中99.9的响应时间都在300ms内23。Dynamo提供几个简单接口:get(key)操作在存储系统中定位与key关联的对象副本,并返回一个对象或一个包含冲突的版本和对应的上下文对象列表。put(key,context,object)操作基于关联的key决定将对象的副本放在哪,并将副本写入到磁盘。该context包含对象的系统元数据并对于调用者是不透明的(opaque)。上下文信息是与对象一起存储,以便系统可以验证请求中提供的上下文的有效性。Dynamo的架构如图4.4所示。图4.4 Dynamo架构Dynamo采用了一些技术,解决了其对等式架构下的一致性问题。如表4.1所示。表4.1 Dynamo使用的技术概要和其优势问题采取的相关技术优势数据划分改进的一致性哈希算法增量可伸缩性写的高可用性矢量时钟与读取过程中的协调版本大小与更新操作速率脱钩临时故障处理Hinted handoff 数据回传机制,可调的弱quorum机制提供高可用性和耐用性的保证,即使一些副本不可用时永久故障回复Merkle哈希树在后台同步不同的副本成员资格和错误检测基于Gossip的错误检查保持对称性并且避免了一个用于存储会员和节点活性信息的集中注册服务节点。Dynamo架构具有如下特点:(1)按分布式系统常用的哈希算法切分数据,分放在不同的节点上。之所以采用该算法的原因是环上每个节点只需要处理落在它和它的前驱节点之间的数据,这样当有新的节点加入或者撤出时系统的震荡较小。(2)一致性哈希是一种随机函数,在节点量较少的情况下很有可能造成节点数据分布的不均匀,而且基本的一致性哈希算法在选择节点位置时并没有考虑环上不同节点的性能差异。为了解决这个问题,亚马逊在Dynamo中引入了节点虚拟化的概念。每个虚拟节点都属于一个实际的物理节点。一个物理节点可能有多个虚拟节点。分布在一致性环上的虚拟节点有效的解决了性能不均问题。也可以理解为,它放在环上作为一个节点的是一组机器,这一组机器是通过同步机制保证数据一致的。(3)Dynamo的一个节点中的同步是由客户端来“解决”的,使用所谓的(N,R,W)模型,其中,N表示节点中机器的总数,R表示一个读请求需要的机器参与总数,W代表一个写请求需要的机器参与总数,这些值由client端配置。5云计算仿真CloudSim云计算侧重于提供可靠、安全、容错、可持续、可扩展的基础设施,并且要能够容纳基于互联网的应用服务。这些应用有不同的组成、配置和部署要求。一个云基础设施上的应用和服务模型的负载、能量耗费(电力耗费和热力耗费)和系统规模都在不断地发生变化,如何对这些动态变化中的应用及服务模型的调度及分配策略的性能进行量化是极富挑战性的问题。为了简化这个过程,墨尔本大学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论