




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
密级: 硕士学位论文云端文件同步与共享服务平台 CloudShare 设计与实现作者姓名:李磊指导教师:叶丹 高级工程师 软件研究所 学位类别:工学硕士 学科专业:计算机软件与理论 培养单位:大学 2014 年 4月IDesign and Implementation of a File Synchronization and Sharing Cloud Service Platform: CloudShareA Dissertation Submitted to University of Chinese Academy of SciencesIn partial fulfillment of the requirement For the degree ofDoctor/Master of Computer Software And Theory独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作 及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明。签名: 日期: 关于论文使用授权的说明本人完全了解软件研究所有关保留、使用学位论文的 规定,即:软件研究所有权保留送交论文的复印件,允许 论文被查阅和借阅;软件研究所可以公布论文的全部或部 分内容,可以采用影印、缩印或其它复制手段保存论文。(保密的论文在解密后应遵守此规定)签名:导师签名:日期: 摘要I云端文件同步与共享服务平台 CloudShare 设计与实现摘要云存储作为云计算的一个重要领域,通过把存储作为服务提供给外界使用, 使得用户不需要建立自己的数据中心,只需要向存储服务提供商申请存储服务, 节约了昂贵的软硬件基础设施的投资。面向个人的云存储服务,比如网盘类应用, 支持个人文件的多终端共享与同步,并且满足用户资料备份的需求,已经成为互 联网用户的基础应用。但是在企业和政府等应用场景,信息安全成为首要的需求, 这些公有云提供的云存储服务无法取得企业和政府的信赖。但是目前私有云存储 系统并不具备公有云存储服务良好的易用性。企业员工需要随时随地用任何设备 来访问公司的信息。企业需要保证他们的数据信息安全。针对这个需求,本论文 研究面向企业环境的私有云文件同步与共享服务平台的设计与实现。论文首先介绍了云端文件同步与共享的相关技术及其在国内外的发展现状, 其中相关技术主要包括如何实现云存储,文件同步和文件去重。然后提出了 CloudShare 系统的关键技术是 CloudShare 系统的架构、云端文件存储服务系统 同步和基于块划分的文件存储去重技术,并对这三个关键技术问题提出了 CloudShare 系统的解决方案。论文提出了一种开放、安全、支持多种存储结构 的系统架构,保证了系统中的各个子系统既能很好地各司其职,又能通过相互之 间简单、灵活的调用完成整个系统的功能。论文提出了基于操作日志的多终端同 步算法,该算法通过分析服务器端的用户操作日志生成操作序列,然后回放操作 序列的方法高效地实现了数据同步。与传统算法相比,该算法具有数据传输量小, 数据传输高效,云端服务器的负载小和双向和增量同步等优点。论文分析了各种 去重方法的优缺点,结合了 CloudShare 应用的特点和需求,采用了基于固定分 块的去重方法,并通过试验评估了 CloudShare 在去重过程的性能。论文最后给出了 CloudShare 系统的设计与实现的重要技术,首先总体介绍 了 CloudShare 系统系统架构实现,然后分别介绍了 CloudShare 服务子系统、 Windows 客户端子系统、Web 客户端子系统、系统后台管理子系统等的设计与实 现。关键词:云存储,文件同步,数据去重,可扩展性,文件共享AbstractDesign and Implementation of a File Synchronization andSharing Cloud Service Platform: CloudShareZhang Xiaojie (Computer Software and Theory)Directed by Dan YeAbstractCloud storage is based on highly virtualized infrastructure and has the same characteristics as cloud computing. Cloud storage service, such as Dropbox and Google drive, provide Internet users various access clients and enable the user files to synchronize automatically between these clients. However, enterprise and government customer cannot trust these public cloud services to manage their resources. They need file synchronization and sharing system deployed in their own data center and can provide same accessibility as public cloud service. This thesis presents CloudShare, a file synchronization and sharing service platform, which aims at providing convenient, safe and reliable storage service for enterprises.Firstly, the thesis gives an overview of the related work, including cloud storage, file synchronization and file deduplication. Secondly, key techniques and algorithms are proposed on how to solve three key problem of CloudShare. As for file synchronization, this thesis proposes an operation-log based synchronization algorithm, which records operation logs both on the server side and client side, and generates synchronization operation sequences by merging these logs. In contrast with the traditional method, the log based algorithm is more effective and has fewer loads to the cloud-side server. Whats more, this algorithm, supporting failure recovery, adapts particularly to the scenarios with limited bandwidth and instable network. As for file deduplication, the thesis firstly discusses the cons and pros of the different deduplication methods. Taking CloudShare application features and requirements into account, we adopt the fixed chunk mechanism to do deduplication and evaluate the deduplication performance by experiment.In the fourth chapter, the thesis mainly demonstrates the concrete design and implementation of CloudShare, including service subsystem, windows client system, web client system and system administrator system.Key words:Cloud Storage, File Synchronization, Deduplication, Scalability, File sharingIII目录目 录VII摘要IABSTRACTIII目 录VII第一章 绪论11.1 研究背景11.2 论文工作21.3 论文组织3第二章 云端文件同步与共享服务相关技术52.1 云存储相关技术52.1.1 云存储的通用架构52.1.2 云存储的方法62.1.3 云存储的特征72.1.4 总结72.2 云存储服务系统72.2.1 公有云个人存储服务82.2.2 公有云企业存储服务82.2.3 私有云企业存储服务82.2.4 企业文件同步与共享服务92.2.5 总结92.3 文件同步工作102.3.1 通用的同步软件102.3.2 版本控制系统112.3.3 分布式文件系统122.4 本章小结12第三章 云端文件同步与共享服务关键技术研究133.1 CLOUDSHARE 系统架构133.1.1 面向服务的架构143.1.2 基于分块文件处理流程143.1.3 基于适配的可插拔存储资源池技术153.2 基于操作日志多终端同步算法153.2.1 CloudShare 系统的文件同步153.2.2 同步算法的基本步骤173.2.3 客户端同步更新算法183.2.4 服务器端同步更新算法203.3 基于文件固定分块数据去重技术223.3.1 数据去重的概念223.3.2 数据去重的基本步骤233.3.3 去重的分块方法233.3.4 CloudShare 的分块策略253.3.5 CloudShare 固定分块策略性能试验263.3.6 CloudShare 系统分块粒度对系统影响的讨论273.4 本章小结27第四章云端文件同步与共享服务平台 CLOUDSHARE 设计与实现294.1 云端文件同步与共享平台 CLOUDSHARE 架构实现294.1.1 CloudShare 系统功能结构图294.2 CLOUDSHARE SERVICE 子系统设计与实现304.2.1 系统设计目标304.2.2 分层架构及技术314.2.3 基于适配的可插拔存储资源池技术324.2.4 service 数据模型334.2.5 service 子系统文件共享机制354.2.6 service 子系统的安全管理机制364.2.7 service 子系统包组织374.2.8 service 子系统对断点续传的支持384.3 CLOUDSHARE 客户端设计与实现404.3.1 总体介绍404.3.2 WebClient404.3.3 Windows 客户端434.4 CLOUDSHARE 后台管理子系统设计与实现454.5 本章小结47第五章结束语495.1 论文贡献495.2 进一步工作50参考文献51发表文章53个人简历55致谢57第一章 绪论第一章 绪论本章介绍论文的研究背景、主要工作和论文组织方式。1.1 研究背景当今的数字世界正在以前所未有的速度和规模创建动态的非结构化内容,特 别是电信行业,石油石化行业,数字媒体行业,医疗行业,金融行业等企业级用 户正面临前所未有的挑战。非结构化的数据指数级别的增长使系统管理更为复 杂,系统运营成本不断上升。Zetta 公司对 400 个大公司的 IT 部门的调查结果1, 显示,68%的企业需要存储 5TB 以上的非结构化数据,29%企业对存储非结构化 数据存储需求超过了 50TB,这些非结构化数据来源主要包括:电子邮件,文档, 多媒体文件,协同文件以及备份文件。然而现有的企业存储系统,主要靠 Expand NAS(扩展网络存储技术),Tape(磁带)等传统的存储方式作为非结构化数据 的存储介质,这些存储方式在可扩展性,灵活性方面有很大的不足,并且很难保 证数据的完整性和安全性,难以满足企业快速变化的业务需求和越来越重要的安 全需求。云存储(Cloud Storage)是在云计算(Cloud Computing)概念之上延伸和发展 出来的概念,是指通过集群应用、网格技术或分布式文件系统等技术,将网络中 大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数 据存储和业务访问功能的一个系统。云存储专注于向用户提供以互联网为基础的 在线存储服务,普通用户不需要考虑,存储容量、存储设备类型,数据的存储的 物理位置以及数据的完整性、可靠性和安全性等技术细节,只需要按需申请自己 所需要的存储空间。目前云存储根据部署网络的位置不同可以分为公有云存储、 私有云存储和混合云存储三种类型2,公有云存储搭建在互联网上,由第三方 服务提供商拥有和管理,通过大规模用户共同分摊使用资源池,单个用户可以得 到廉价、按需付费的存储服务,典型的公有云存储有 Amazon 的 EC2 和 Google13 的 GFS。私有云存储是一种专门为特定组织的搭建的一种云存储服务。优点是由 企业私有,安全性高,缺点是代价昂贵,典型的有 EMC Atmos。混合云存储特 点是既有共有部分,也有私有部分,充分结合了公有云存储和私有云存储的优点。 企业可以根据自身的需求来定制的一种适合自身的云存储。随着云存储技术越来越成熟,越来越多企业开始把数据放在云端。为了能更 好地满足企业自身的应用需求,很多著名的互联网公司在云存储之上搭建文件同 步与共享平台。国外有 Google Drive18、Dropbox、Apple iCloud17,国内有百 度网盘3,金山快盘,360 云盘5。但是对于企业用户,由于这些云存储架设在 公有的互联网上,不能满足自身对数据安全性的需求,企业为了保证数据安全性, 希望拥有自己的文件同步与共享平台,这样既能利用云存储高可用性、高可靠性、 可扩展性等特征,又能根据自己的需求进行灵活的定制自己的业务。本文提出一29个面向企业的云端文件同步与共享服务平台 CloudShare。CloudShare 是一个搭建 在云存储之上的文件共享平台,一方面提供文件共享与同步、用户管理以及安全 传输与加密等核心功能,使企业在享受到云存储带来的可靠性、可扩展性的同时 消除了企业对云存储安全的担忧;另一方面,CloudShare 又根据企业的需求提供 文件同步、共享以及多租户管理等功能,能使企业数据在云端快速、安全、合理 地存储和流动。1.2 论文工作本论文研究云端文件同步共享服务平台 CloudShare 设计与实现,目的是解 决 CloudShare 系统架构设计、多个客户端与服务器端的文件同步问题以及文件 去重等关键技术难点,最终实现一个云端文件共享服务平台 CloudShare,使企业 的数据在云端更加高效、安全地存储。CloudShare 的定位是混合云存储服务集成, 云存储集成服务是底层存储不依赖特定云存储服务,可以是公有云存储,也可以 是企业自己搭建的私有云存储,具有高度的灵活性。具体来说,论文主要包括以 下几个部分。1. 云端文件同步共享服务平台 CloudShare 系统架构CloudShare 是一款基于 SOA 架构的多终端文件同步共享服务平台,目前 CloudShare 系统包括云端文件同步共享服务 Service 子系统、Windows 客户端、Web 客户端、Mobile 客户端和后台管理 Admin 子系统。各个子 系统之间松散耦合,各个子系统之间使用标准 RESTful9风格 API 进行 通讯,不涉及底层编程接口和通讯模型。对文件的高效、安全地处理是 CloudShare 系统的核心功能,CloudShare 系统采用基于分块的文件处理 流程,确保了保证文件处理过程中的高效率、安全性、可靠性。在后台 物理存储方面,CloudShare 采用插件式软件架构设计模型,保证异构的 存储能够可插拔地集成到 CloudShare 之中。2. 云端文件存储服务系统文件同步为了方便用户使用 CloudShare 系统在 Windows 客户端、手机端等实现文 件的自动同步。我们提出了基于操作日志的同步算法,该算法通过分析 服务器端的用户操作日志生成操作序列,然后回放操作序列的方法高效 地实现了数据同步。与传统算法相比,该算法具有数据传输量小,快速 高效,对云端服务器负载小,支持双向和增量同步等优点。另外,算法 支持同步过程中的失效恢复,适用于带宽有限和网络不稳定等极端场景。3. 云端文件存储服务系统数据去重CloudShare 系统支持大量用户同时进行文件存取,不同用户之间存在一 定的重复文件,由于对文件多版本的支持,同一用户同一文件的多个版 本之间也存在一定的重复内容,如何合理有效利用文件的重复信息对文 件进行去重,以节省存储空间,是 CloudShare 系统研究的核心问题之一。 在对去重问题的研究过程中,论文首先分析了去重的基本概念和步骤,分析得出不同分块粒度对 CPU、内存、网络等系统资源的消耗和去重率 的影响,最后结合 CloudShare 系统的具体特点和需求,CloudShare 采用 基于固定分块策略的文件去重技术,并给出了具体的性能评价试验。最后通过以上研究的三方面的关键技术,设计和实现一款云端文件同步与共 享服务平台 CloudShare。1.3 论文组织论文的后续章节按以下方式组织: 第二章介绍了云端文件同步与共享服务相关技术。分别从云存储技术、云存储服务系统、文件同步相关技术 3 个方面具体展开介绍。 第三章是介绍对云端文件同步与共享服务关键技术的研究,包括云端文件存储服务系统的架构、云端文件存储服务系统文件同步和云端文件存储服务系统数 据去重技术,并给出了相应问题的解决方案。第四章从云端文件同步与共享服务 CloudShare 系统设计与实现角度上进行 介绍,首先从 CloudShare 系统架构作总体介绍,然后分别从 Service 子系统、 WebClient 子系统、Windows 客户端、Admin 子系统 4 个方面进行详细介绍。第五章给出了论文的总结,总结了论文的贡献,以及对未来工作的展望。第二章 云端文件同步与共享服务相关技术第二章 云端文件同步与共享服务相关技术本章首先对云存储相关技术做了基本介绍,具体分析了云存储通用架构、访 问方法、可管理性等相关内容,然后介绍在云存储之上搭建的不同种类的云存储 服务系统的特点和使用场景。最后从通用同步软件、版本控制系统和分布式文件 系统三个方面介绍了同步的相关技术。2.1 云存储相关技术随着大数据时代的到来,云存储也变得越来越来流行。由于云存储本身具有 易扩展性、安全性、高性能、高可用性等一系列特征34,越来越多的企业、用 户倾向于把自己的数据放在云存储来进行存取。下文将介绍目前云存储的通用架 构模型和云存储的基本特征。2.1.1 云存储的通用架构图 2.1通用云存储架构文献1给出了一个通用云存储架构,如图 2.1 所示,云存储的通用架构20从上到下主要分 5 部分组成:1. 云用户层 用户在这里是一个抽象的概念,可以是普通用户,也可以是第三方的应用程序,用户可以通过云存储提供的服务接口来对自身的数据进行存取。 2. 网络/互联网层根据云存储部署在局域网内部还是互联网上,分为公有云存储、私有 云存储和混合云存储。在这一层中,云存储服务提供商可以通过网络 的灵活配置对云存储的访问性能进行优化。3. SLA(服务级别协议)层SLA(Service-level Agreement 服务级别协议)是云存储服务提供商 和服务调用者之间的协议,协议通常是对服务质量细节的一些描述。4. 存储逻辑层 在存储逻辑层,云存储服务提供商可以加强对成本、性能和其他的参 数的控制,另外也可以在此处进行安全的控制。5. 后端存储层 后端存储层负责用户的实际物理数据的存取,通过对后端存储层灵活 配置,可以对该层的存储效率和存储成本加以控制。2.1.2 云存储的方法云存储的访问方法和其他存储访问方法有很大的不同,一般云存储会提供多 种访问方法,如图 2.2 所示。一般的,云存储会提供基于 RESTful 风格 WebService 的访问方式,RESTful 风格 WebService 基于 HTTP 协议24,特点是无状态,简 洁且易于实现。另外为了支持更多的应用通过不同方式方便地进行访问,云存储 服务还提供了 NFS,CIFS,FTP,iSCSI,webDAV 等访问方法。图 2.2云存储访问方法2.1.3 云存储的特征 多租户和云计算一样,多租户也是云存储的一个重要特征。多租户是指云存储可以 由多个用户共同来使用,每个用户有自己的用户空间。多租户在云存储的架构多 个层次都有涉及,在后端物理存储上,可以通过用户隔离,使单一用户的数据分 布在特定的服务器上来存储。在网络层,可以通过配置使单一用户来共享带宽。 可扩展性可扩展性也是云存储的一个重要的特征。我们可以通过多个角度来看云存储 的可扩展性,它不仅仅指存储资源可扩展性(功能可扩展性),也包括带宽的可 扩展性(负载可扩展性),以及存储位置的可扩展性,即当用户访问时,可以通 过合理地调度,使用户访问到离用户最近的存储数据副本。可扩展性实现了资源 的按需分配,降低了用户的花费,但由此可能带来的却是云存储的复杂性的提高。 可用性可用性是指一旦有用户的数据存储在云存储里之后,云存储必须能够保证在 用户请求时能够正确返回给用户所请求的数据。保证云存储的高可用性是不容易 的,因为网络故障、用户操作错误和其他错误对于云存储系统来说是经常发生的。 为了保证云存储服务的高可用性,目前有很多解决方案,一般来说都是基于冗余 的方案,比如当某块数据丢失时,可以通过该数据块的其他冗余数据块得到。2.1.4 总结云存储是存储模型一步步演化的结果,它重新定义了我们创建、访问、管理 数据的方式,保证了存储的可用性、可靠性及高性能。2.2 云存储服务系统随着云存储相关技术迅速发展,在云存储之上构建的存储服务系统越来越 多,根据面向的用户群体和基于的云存储种类的不同,具体可以分为公有云个人 存储服务、公有云企业存储服务、私有云企业存储服务和企业文件同步与共享服 务四类,下文将具体介绍这四种不同类型的云存储服务系统。2.2.1 公有云个人存储服务公有云个人存储,顾名思义,是指公有云存储基础之上搭建的服务于个人用 户的存储服务。目前,公有云个人存储在国内外发展迅速,呈现百花齐放的态势, 很多互联网都开始在自己云存储之上搭建自己的公有云个人存储服务系统,国外 的有亚马逊的 S36,Google Drive, 微软的 SkyDrive19和 Dropbox8,国内的有 金山快盘,百度云盘,新浪微盘4,360 云盘 等,公共个人云存储的共同特点 是搭建在公共云存储之上,一般提供 PC、Web 和手机等多种不同类型客户端方 便用户对自己用户空间文件进行操作。这种云服务的优点是部署在公有云存储之 上,不需要用户来维护,可扩展性强,用户可以按需进行付费,适合个人用户进 行文件共享与同步。相应的缺点也很明显,由于公有个人云存储主要面向个人互 联网用户,不适合需要将员工统一管理的企业用户,另外公有云个人存储由于没 有部署在自己企业内部的局域网中,数据安全不可保证,不适合对数据高度安全 性要求比较高的企业用户群体。最后由于公有云存储部署在互联网上,网络传输 速度不可保证,会相对影响企业用户的服务质量。2.2.2 公有云企业存储服务公有云企业存储像公有云个人存储一样也是搭建在公有云存储之上,由公有 云存储来保证数据完整性、数据安全。典型的有 B,H,联想企 业网盘,搜狐企业网盘等。但与公有云个人存储不同的是,公有云企业存储服务 支持资料备份存储、企业内共享,主要为中小企业用户提供服务。这种云服务优 点是企业可以按需进行购买和扩展,不需要企业自身来维护系统。缺点是由于存 储搭建在外网,不适合对数据安全性特别高的企业。另外由于公有云企业存储服 务主要为企业用户提供通用的存储服务,对单一企业用户提供的可定制空间有 限,有时候并不能满足企业的需求。最后由于带宽限制,数据传输也不如局域网 快,会影响存储服务的质量。2.2.3 私有云企业存储服务私有云企业存储服务顾名思义,是指搭建在企业内部的企业云存储。典型的 有 EMC islon 和国内的龙存。私有云企业存储支持企业进行数据备份、数据存 储等功能,但一般不支持同步共享等服务。这种云服务的优点是由于部署在企业 内网,统一保证云存储数据在传输和存储过程中的安全性。缺点是由于搭建在企 业内部需要由企业来进行维护,另外私有云企业存储服务价格也比较昂贵,不适 合中小企业来使用。2.2.4 企业文件同步与共享服务企业文件同步与共享服务面向企业用户,提供多个客户端方便用户对自己用 户空间的数据进行存取,具有丰富的文件管理和搜索功能,支持文件同步、共享、 多版本等功能。与前面的云存储服务系统相比,企业文件同步与共享服务不依赖 某一特定的云存储,具有很强的可扩展性。在安全性方面,企业文件同步与共享 服务保证从文件从传输到存储的整个生命周期的完整加密,同时还支持不同粒度 的用户权限管理的支持。本论文研究的云端文件同步与共享服务平台 CloudShare 系统是典型的面向企业的文件同步与共享服务系统。2.2.5 总结本节介绍了四种搭建在云存储之上的不同系统,每一种系统都有自己特定的 应用场景和范围,根据面向用户、提供的文件服务、存储服务、安全服务、平台 服务的不同,可以作如下比较,具体比较如表 2.1 所示。表 2.1不同云存储服务系统之间的比较公有云个 人 存储 服务公有云企 业存储 服务私有云企业存储 服务企业文件同步与共享 服务代表 产品Google cloud Dropbox 金山快盘B H 联想企业网盘Amazon S3EMC islon龙存私有云 DISKCloudShare用户个人用户企业用户企业用户企业用户文件 文件同 步备 份,资料备份存储,企数据备份、存储文件同步、共享服务个人共享业内共享不支持同 步共享 丰富的文件管理与搜等服务索多版本存储 由公有 云提 供商由公有云 提供商 部署在企 业内部 云服务与存储系统解服务提供存储空间提供存储空间网耦合绑定厂商 存储系 接入私有云、公有云存统储安全 由云提 供商 保证由云提供 商保证 私有部署,保证内完整权限管理服务数据安全数据安全网使用安全全生命周期完整加密平台 服务RESTful APIRESTful APISDKRESTful API Java,IOS SDK 配套移动办公等应用2.3 文件同步工作文件同步问题是使不同的存储位置不同副本保持一致,同步算法一般包括更 新检测(update detection)和数据协调(data reconciliation) 两个步骤21,其中更 新检测是发现从上次同步点开始发生哪些改变,而数据协调(data reconciliation) 是指在发现两端差异之后,使不一致的文件最终变为一致的过程。每一种同步算 法在这两阶段都有解决方案,适合特定的场景,下文介绍不同三种不同同步系统 的同步算法。2.3.1 通用的同步软件通用同步软件主要来解决如何使不同地点的文件或文件夹的副本保持一致 的问题。同步问题在很多应用中都有需求,由于不同的同步软件的应用需求和应 用场景有很大的不同,相应的解决方法也有所差异。根据同步算法的同步的实时 性目标不同,可以分为实时性同步算法和定期更新算法,对于大部分需要同步或 者备份场景,每小时或每天更新一次已经能够满足需求。另一种区分现有同步算 法的方式是根据同步协议是多轮协议还是单轮协议14,多轮同步协议基本思想 是基于哈希,使用递归的分治策略来检测两端的差异。大部分的单轮同步协议一 般会使用非递归固定或可变分块来比较文件内容的不同。Rsync14是 Unix 平台下一个流行的单向同步工具。Rsync 算法是一种基于 固定分块策略单轮同步协议的同步算法。Rsync 算法在同步两端分别创建文件和 文件块的列表,同步算法将远端文件分块的校验码列表传到本地,在本地进行比 较后,将本地改变的文件块传输到远端。使用 Rsync 算法,就需要本地和远端同 时安装 Rsync 软件。另一个著名的同步软件是 Unison23,与 Rsync 的功能类似,文件同步的过 程也是在同步两端产生文件块的列表,两端文件块列表比较后,再进行一致性协 调。但是与 Rsync 不同的是,Unison 是同步是双向的。另外两者的差异比较策 略也有差异,相比 Rsync 通过检测文件块的不同来检测同步两端文件的差异, Unison 通过检测两端同名文件的修改时间,文件大小等元数据信息来检测两端 文件是否相同,采用这种比较策略之后 Unison 的同步效率大大提高。Rsync 和 Unsion 等传统的备份和同步工具主要提供按需进行同步的场景。 这些工具一般用于定时更新的场景。在需要实时更新的场景下,由于这些算法在 更新过程中产生开销比较大,不适合实时更新的场景。iFolder27或 Dropbox 面 对这种场景会有较高的效率。相比于传统的同步工具,这些软件在操作系统本地 安装监听器,当本地文件发生改变时,这些软件就会将改变实时地更新到远程存 储,从而提高了同步的实时性。另外为了支持一些简单的版本控制的特性,这些 软件也支持自动记录文件版本的每一次的改变,能通过简单合并得到特定的版 本。由于 Dropbox 具有简单易用的特征,Dropbox 已经成为一个非常流行的个人 文件同步工具,目前用户量已经达到 1 亿。Dropbox 提供在不同操作系统中实时 同步性和持续一致性的特征。除了提供同步功能的支持之外,Dropbox 还提供简 单版本控制的支持和简单的 Web 客户端文件操作的支持。为了节省带宽, Dropbox 使用一种类似 Rsync 的算法,在 PC 客户端与服务器进行同步时,只传 输文件二进制的差异,从而改善了整体同步服务的质量,提高了用户体验。 Dropbox 服务器架设在亚马逊的公有云存储 S3 之上,为了提高安全性,在传输 过程中,使用 HTTPS 安全协议,在存储过程中,在存储到公有云存储之前对文 件进行支持对文件进行加密。由于 Dropbox 存储的海量的非结构化数据中存在大 量的重复文件内容,Dropbox 通过服务器端数据去重技术最大化地减少了文件的 存储量。2.3.2 版本控制系统与通用的同步软件类似,版本控制系统(VCS)的同步目标也是要使不同地点 副本保持一致。尽管通用文件同步软件和版本控制系统在同步的功能性上有很多 的相关之处,但是他们的使用目的完全不同。通用同步软件的同步算法的目的是 定位同步两端副本的差异,然后将两端不一致的文件进行同步,目的是保证最终 的一致性。然而对于版本控制系统是记录每一个文件每一条的版本更新记录,进 而进行版本控制。另外版本控制系统一般适合文本文件(例如程序源文件)的版 本控制,而同步软件适合于任意的二进制文件,尽管版本控制系统可以处理二进 制文件,但是算法处理这种文件的效率很低。版本控制系统支持对版本控制的文件进行分支开发,然后进行合并操作。版 本控制系统会保存每一个文件的每一次的改变,每一次更新版本控制系统都会记 下当前更新文件的版本号,在需要的时候可以恢复到旧的版本。SVN11 和 CVS 是目前广泛使用的基于中心服务器的版本控制系统,而Git 和 Bazaar 是分布式版本控制系统。 尽管各类版本控制系统在具体架构和实现方面有所差异,他们都依赖一些简单的版本控制概念。为了保存每一次内容的更新,他们都会保存文件的每一次增 量的更新,通过比较合并的一些操作就可以得到文件每一次快照版本。当一个文 件被更新或恢复,这些改变就会有序地应用到快照。在远程文件更新版本很少时 这种策略开销比较,当文件更新次数增大时,算法的性能和所消耗的带宽资源变 的很大。有些的版本控制系统,例如 Mercurial28, 通过创建一些完全的快照版本 来避免规避每次都需要合并所有改变的做法。尽管这种做法会提升整体的更新策 略,但是也会对中心服务器增加很多存储的开销,因为如果使用该方法中心服务 器就会保存更多的快照副本。尽管大部分的版本控制系统支持多种类型的网络协议,还有一些支持任意的 协议访问,但他们一般支持一些例如 SSH/SFTP,或者 HTTP/WebDAV 的标准的 协议。就目前调研的结果,在安全性方面所有的版本控制系统不支持客户端进行加 密。2.3.3 分布式文件系统分布式文件系统,例如 NFS(Network File System) 26 、 Andrew File System16,目的为用户提供透明的存储服务。尽管在内部实现上会遇到与同步 软件、版本控制系统类似的同步问题,但是它们在客户端部分对用户是透明的。 分布式文件系统通过将自己的镜像挂载到操作系统层次上,用户可以像本地文件 系统那样去访问分布式文件系统。分布式文件通常对用户是不可见的,每当用户 保存一个文件,文件的改变将会立刻保存到远程存储副本上。分布式文件系统和 版本控制系统、同步软件的不同之处主要在一下几个方面。首先,分布式文件系统的主要目的能够使文件在不同的主机间共享。每个主 机可以用分布式文件系统来扩展本地的磁盘。和版本控制系统、文件同步软件不 同,分布式文件系统不需要在本地保存一个副本,在用户请求打开文件时再向远 程存储请求文件。第二,大部分的版本控制系统和文件同步软件需要用户显式地提供一个同步 的请求,才进行同步的操作。但 DFS 一般是基于隐式的同步,即用户不需要显 式地提供一个同步的命令,就可以达到各个副本之间的同步。2.4本章小结本章第一部分首先了介绍云存储的通用架构、云存储的方法以及云存储重要 特性几个方面介绍了云存储相关的内容,指明了随着大数据时代的到来,云存储 作为云计算思想的一个重要实践,将在文件存储方面发挥不可替代的作用。然后 在此基础之上,第二部分介绍了云存储服务系统相关工作,主要介绍了四类的云 存储服务系统,即公有云个人存储、公有云企业存储、私有云企业存储和企业文 件同步与共享服务系统,该部分主要分析了四类系统特点和相应的应用场景,最 后指出,CloudShare 是一种企业文件同步与共享服务,能够灵活地支持不同种 类的存储介质,论文的研究工作主要通过解决 CloudShare 系统的遇到的关键技 术问题,最终实现企业文件同步与共享服务系统 CloudShare。 第三部分介绍了 文件同步相关技术,对于云存储同步与共享服务系统来说如何保证快速、有效地 同步是一个关键问题,论文分别对通用同步软件、版本控制系统系统和分布式文 件系统三种不同的系统的文件同步相关技术进行分析和比较,后文的基于日志的 同步算法这部分工作展开。第三章 云端文件存储与共享服务关键技术研究第三章 云端文件同步与共享服务关键技术研究本章主要介绍云端文件同步与共享服务系统 CloudShare 关键技术,主要分 为三个部分。第一部分介绍了 CloudShare 系统的架构,主要分为系统设计目标、 架构介绍两个方面内容,本章后面两部分内容基于该部分的工作展开。第二部分 介绍了云端文件存储服务系统的同步问题,主要从客户端和服务器端两个角度详 细阐述了基于操作日志云存储服务多客户端同步算法的基本步骤。第三部分介绍 云端文件存储服务系统的文件分块,分别从分块的必要性、分块的流程、分块的 大小选择及分块的策略 4 个方面给出了介绍。3.1 CloudShare 系统架构移动办公应用团队项目协作资料备份同步文档分类管理传输加密云端文件存储与共享服务文件上传 文件下载 文件同步文件共享 文件协作 文件检索权限控制 文件加密用户配额管理 系统资源管理存储资源池存储加密私有云存储服务公有云存储服务 百度云存储Microsoft SkyDriveHDFS、FTP、NAS、SANAmazon S3图 3.1CloudShare 系统架构图CloudShare 整体架构如图 3.1 所示,其中中间部分是云端文件同步与共享服 务子系统(简称 Service)是 CloudShare 系统的核心,在文件操作方面,提供文 件上传、下载、同步,共享、协作和检索等功能,在安全控制方面,提供权限控 制、文件加密功能,在后台管理方面,支持用户配额管理和系统资源管理的功能, 其他应用可以通过调用云端文件同步与共享服务系统的开放 API 来调用上述功 能。目前 CloudShare 支持 Web 客户端、PC 客户端和移动客户端不同类型客户端。 这三种客户端通过调用 Service 暴露的 API 来实现自己的功能。用户可以根据自己需求来灵活选择访问的客户端。最下层是各种异构存储服务,Service 把这些 异构存储服务抽象成一个存储资源池,对上层模块提供统一访问接口,对下层提 供灵活的可扩展性。CloudShare 的架构是整个系统的基础,简单、合理的架构是 保证系统高可用性、高效率和高扩展性的关键,CloudShare 系统架构的设计主要 从面向服务架构、基于文件分块的数据传输技术和基于适配的可插拔存储资源池 技术三个方面进行考虑。下面三个小节将从对这三个方面做详细说明。3.1.1 面向服务的架构CloudShare 是一款基于 SOA 设计原则的多终端文件同步共享服务平台,如 图 3.1 所示 CloudShare 系统包括云端文件同步共享服务 service 子系统、PC 客户 端、Web 客户端、Mobile 客户端和后台管理 admin 子系统,其中 Service 子系统 是 CloudShare 的核心系统,其余的系统通过调用 Service 子系统暴露 WebService 来进行通信33,这样设计使得各个客户端用统一地接口来对服务进行访问,有 效地提高了 CloudShare 敏捷性、一致性和灵活性。3.1.2 基于分块文件处理流程客户端服务端存储服务分快 加密网络md5去块存传输计算重储分块池大文件大文件图 3.2基于分块文件处理流程CloudShare 是一个面向文件存取的服务系统,保证文件传输、存储过程中的 安全、快速是保证 CloudShare 架构的关键。CloudShare 系统需要支持文件断点 续传、文件加密和文件去重等功能,而这些技术必须基于分块技术来实现,所以分块流程的实现是 CloudShare 架构设计的关键。CloudShare 分块流程如图 3.2 所 示。包括如下步骤:1.断点续传断点续传是保证 CloudShare 对外服务质量的关键,特别是在网络环境较差的 环境下,通过断点续传可以使文件传输失败后接着从已经传输成功部分重新 传输。CloudShare 断点续传包括上传时的断点续传和下载时的断点续传,本 文
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Antibacterial-agent-279-生命科学试剂-MCE
- 2025年度网络安全技术支持及保密条款服务合同
- 2025年高性能IC产品区域销售垄断权保护合同
- 2025年新能源汽车车库产权置换与充电设施安装合同
- 2025年协议离婚子女医疗保障及保险权益保障合同
- 2025年环保科技追加投资合同补充条款范本
- 2025年智能宾馆客房预订平台研发与运营服务合同
- 2025年度大型桥梁变形缝安装安全保障服务合同
- 2025年高端健身俱乐部会员增值服务合同书
- 2025年新型绿色住宅区总监聘用合同及节能减排目标责任书
- 2025-2030中国家政服务从业人员培训体系与职业发展白皮书
- 2025年安全风险分级管控培训考试试题(附答案)
- 厂区用电安全管理制度
- 2025年消防员招录面试题库及答案
- 初中英语新人教版八年级上册全册单词(2025秋)
- 2025年广西中考道德与法治试题答案详解讲评课件
- 农贸市场食品安全监管与能力提升培训
- 成人重症患者人工气道湿化护理专家共识解析与临床应用
- 模具订单流程管理规范
- 残疾孩子开学活动方案
- 英语作文初中教学课件
评论
0/150
提交评论