1、浙江大学硕士学位论文 Abstracti云计算平台中对象存储的数据同步方法研究 摘要随着云计算的快速发展,以及数据产生速度的不断提高,各种云计算平台和应用对信息存储的要求也越来越高。包括亚马逊、谷歌和 IBM 在内的很多互联网巨头都投入到对云存储系统的研究中。本文通过分析 OpenStack 平台的云存储系统 Swift,在对该系统进行分析的基础上,了解云存储系统中 对象存储技术的使用,以及对象存储系统中同步各类数据的方法。同时本文使用了一定的篇幅详细分析了 Swift 存储系统中客户端与系统的数据传输,并研究了存储系统 内维护对象的一致性而进行的同步,基于此提出可配置副本存储方案在数据同步方
2、面所需要进行的设计开发。在上述工作的基础上,通过修改 Swift 的部分源代码 ,调整系统的配置结构和业务逻辑,实现可配置副本的存储方案。最后,基于云存储系统的应用环境对设计的系统进行分析,讨论该系统在不同情况下的工作方式并给出系统 API 调用的方法示例,评估系统在实际应用环境中的表现。关键词: 云存储,对象存 储, 对象同步,一致性浙江大学硕士学位论文 AbstractiiAbstractWith the rapid development of cloud computing, as well as the continuous improvement of the data gener
3、ation, a variety of cloud computing platforms and applications for information storage requirements are also increasing. Many Internet giants, including Amazon, Google and IBM are put into the cloud storage system.In this paper, we analysis the OpenStack cloud storage platform system Swift. Based on
4、 analyzing the system, we try to understand the using of cloud storage system and object storage technology. At the same time, we use a detailed analysis of the data transmission and the client of the system in the Swift storage system, and research the synchronization for the sake of consistency ma
5、intenance of the object storage system. Then, we study the design of a configurable copy storage scheme for the data synchronization.On the basis of the above-mentioned work, we modify the Swift part of the source code, adjust the configuration of the system structure and business logic to design an
6、d develope the configurable storage solutions.At last, we analyse the system based on storage system application environment for the design, discuss the way of working on the system in different circumstances and give the example for a method of system API calls to assess the performance of the syst
7、em in actual application environment.Key Words: Cloud Storage, Object storage,Object Synchronization,Consistency.浙江大学硕士学位论文 目录I目录摘要 .iAbstract.ii图目录 .IV表目录 .V第 1 章 绪论 .11.1 研究背景 .11.2 研究现状及发展趋势 .11.2.1 国外云存储技术发展现状 .11.2.2 国内存储技术发展现状 .21.2.3 发展趋势 .31.3 论文内容和结构 .31.3.1 主要研究内容 .31.3.2 论文组织结构 .3第 2 章 相关
8、理论基础 .52.1 云存储 .52.1.1 云存储的结构 .52.2 对象存储 .62.2.1 存储对象 .72.2.2 优势比较 .92.3 一致性哈希 .102.3.1 简单哈希算法 .102.3.2 一致性哈希 .112.4 数据同步 .112.5 本章小结 .12第 3 章 OpenStack Swift 技术解析 .133.1 OpenStack 云计算平台 .13浙江大学硕士学位论文 目录II3.1.1 OpenStack 架构 .143.1.2 OpenStack 未来 .153.2 Swift 架构 .153.2.1 Swift 架构分析 .163.2.2 Swift 存储访
9、问过程 .173.3 Swift 中对象的存储结构 .183.3.1 帐号存储结构 .183.3.2 容器存储结构 .203.3.3 对象存储结构 .223.4 对象同步 .233.4.1 对象服务 .233.4.2 复制器 .273.5 本章小结 .31第 4 章 设计与分析 .324.1 系统设计 .324.1.1 原型分析 .324.1.2 开发设计思路 .324.2 系统结构 .334.3 系统工作流程 .354.4 client 开发 .354.5 系统环境与性能分析 .374.5.1 测试环境配置 .374.5.2 测试结果分析 .384.6 磁盘故障与多备份效能分析 .404.7
10、 多备份系统性能分析 .414.8 系统分析综述 .434.9 本章小结 .44第 5 章 总结与展望 .455.1 论文回顾 .45浙江大学硕士学位论文 目录III5.2 未来展望 .45参考文献 .47作者简历 .49致谢 .50浙江大学硕士学位论文 图目录IV图目录图 2.1 云存储系统结构 .6图 2.2 对象组成 .8图 2.3 虚拟目录技术 .9图 2.4 传统哈希 .11图 3.1 OpenStack 架构图 .14图 3.2 新浪 Swift 存储系统 .17图 3.3 帐号存储结构 .19图 3.4 账号存储展示 .19图 4.1 可配置副本系统结构 .34图 4.2 系统运
11、行中的一次测试结果 .37图 4.3 测试客户端 .38图 4.4 由于同步故障的性能下降 .39图 4.5 AWS Instance 列表 .41图 4.6 文件上传到系统的效率 .42图 4.7 从系统传出文件的效率 .42浙江大学硕士学位论文 表目录V表目录表 3.1 account-stat 表结构 .20表 3.2 Container_stat 结构 .21表 3.3 元数据写入 .26表 3.4 对象检测代码 .27表 3.5 get_hashes 方法 .29表 3.6 invalidate_hash 方法 .30表 4.1 auth 调用 .36表 4.2 不同类型文件上传同步
12、比较 .39表 4.3MTDDL 分析 .40浙江大学硕士学位论文 第 1 章 绪论11 绪论1.1 研究背景当前,随着信息技术的快速发展,数据的生成速度 飞速的提高,加上互 联网应用的覆盖面和需求不断的提升,每年数据的生成以 3 到 5 倍的速度增长 1。传统的数据传输和存储方式正在发生巨大的变化。目前,人们正在大力发展云计算技术来解决传统的信息存储与处理技术在处理海量数据时的不足。因此,高效的云存储系统作为云计算技术发展的产物和满足云计算对数据存储的更高要求的需求,必然成为今后存储领 域发展的方向。云存储改变了以往数据主要集中在本地存储和处理的传统模式,企业和个人用户无需再投入大量购置硬件
13、等设施的成本就能够方便快捷地通过网络根据需求访问计算与存储等服务 2。同时,作为新时期的一个重要的存储变革, 对象存储的概念逐渐的在海量数据的浪潮中脱颖而出,作为对 文件存储和块存储的补充和革命,它正在快速的占领大规模存储技术的舞台。同 时,由于它的一些 优良特性,与云计算可以很好的结合起来,实现存储和应用的整体高效化,极大的驱动 和发挥了云计算的性能。本文中所描述的云存储系统主要基于开源的云计算框架和平台组建,在吸收成熟和开放的技术基础上,主要对云存储环境下的数据同步方案的进行解析,同时通过研究实现直接配置存储实例数的存储系统,从而完成对云存储系统中对象存储方案的深入分析和优化过程。通过研究
14、和实现存储系统的内部结构与配置以及存储优化,可以更好的利用网络带宽和存储空间,从而通 过提供优化的访问接口,加速对数据的访问过程,给云计算服务带来性能的提升。1.2 研究现状及发展趋势1.2.1 国外云存储技术发展现状在国外,云存储技术已经得到了广泛的应用。尤其是在需要大规模计算和数据吞吐的领域,云存储正在作 为云计算的重要组成部分发挥着巨大的作用。在亚马逊,通过对对象存储技术的研究和应用, 简易储存服务(Amazon S3)浙江大学硕士学位论文 第 1 章 绪论2为企业提供了一种以实惠价格的方式来存储大量数据。虽然 S3 没有向外提供很多的前端功能,但是也正因为如此它更广泛的应用于作为其他互
15、联网云存储工具的后台支持力量来存在。这样, S3 的周围就形成了一个庞大而健康的生态圈,又进一步的推进了它的发展。EMC 公司作为企业存储和虚拟化市场的领头人,提供了主流的存储服务Mozy,并拥有了超过 80,000 余家企业客户。与其他的一些网络磁盘和存储服务不同,Mozy 主要集中于备份而不是文件共享,它同时支持微软和苹果的操作系统。企业的云存储方面,真正的王者还要数 BOX,它 拥有至少 140,000 家,其中甚至包括大约 400 家世界 500 强企业 3。BOX 公司的产品有一个非常简单和直观的界面,可以方便地共享和访问文件,并 带了一系列的工具,如 Salesforce 的整合和
16、管理控制台进行有效的用户管理。同时,IBM 也于近日宣布加入 OpenStack 项目 4,加上 Intel、VMware 等国际知名企业的加盟,OpenStack 已经成了冉冉升起的朝阳。1.2.2 国内存储技术发展现状与国外的情况类似,国内的云存储业务也是由各大 IT 互联网企业依托于自身的技术或者平台搭建起来的。在华为,依托于自身的硬件技术,利用推广能力和初始容量的优势,推出了数据银行来作为一个新的业务扩张点。同时,更加一步的,他 们积极的开发新的符合云计算趋势的硬件系统,成为了国内少有的软硬兼修的云计算提供商。而新浪、腾讯等企业,也从企业已有的门户和平台的优势出发,推出了微 盘、网盘等
17、新的服务。尤其是腾讯 ,不 仅仅是传统的存储 服务,同 时也根据用户的需求和反馈,将离线传输、文件中转站等概念加入到了自己的产品线中,从而在云存储技术的应用上展开了宽阔的前沿。金山在这场长跑中也站在了一个有利的位置,将传统的应用需求云端化,再加上国内几乎是独一无二的国产办公应用软件,金山快盘的市场占有率也在逐渐攀升。其用户数在 2012 年末达到了 3500 万。另外,还有酷盘、115 网盘等等处于发展中的云存储提供者。可以 说,国内的云存储在技术上和世界并驾齐驱,在市场上也同样的繁花似锦。因而,研究云存储技术是有着直接的应用的价值的。浙江大学硕士学位论文 第 1 章 绪论31.2.3 发展趋
18、势目前来说,云存储技术还是处于一个发展的起步阶段,有很多提供商宣称的云存储实际上还只是传统存储技术和概念的延伸。因而它的发展和进步都还在快速的进行中。云存储在未来的发展中,将会更进一步的深入到并扩散到计算机应用的各个领域中,与其他的云计算技 术紧密的结合,充分 发挥 起云计算的优势。同时,当前的云存储由于传统技术的限制,在很多的应用上都还存在一些限制,比如面对海量的文件,传统的存储方式和底层结 构已经无法支持。并且,如何提高数据的稳定性和安全性的命题也已经提上了议程。未来的云存储,将可以满足用户对快速增长的数据存储需求,同时也实现用户需要的网络访问性能和功能。成为一种更加安全、廉价、 稳定和高
19、性能的主流存储技术。1.3 论文内容和结构1.3.1 主要研究内容本文主要是在理解开源的云服务平台的基础上,通过应用一些新的技术,来实现对存储系统的解析和二次开发,并实现一个基本的网络存储应用。本文的主要研究内容包括:首先,部署云服务平台,深入了解平台组件之间的关系,分析各个模块的作用和依赖。完成对关键模块 的代码分析并整理出按照课题目标需要进行的工作。其次,分析系统的底层实现,并 对 Swift 进行二次开 发,通 过调整内部的数据同步方案来进一步研究存储同步技术以及它的实现。最后,在上述原型系统上开发一个实验性的网络存储应用,分析评估在现实的应用中, 该系统的作用和性能。1.3.2 论文组织结构第一章为绪论部分,介绍了论文的研究背景,研究 现状及发展趋势,以及本篇论文的研究内容和组织结构。第二章介绍了有关对象存储和云储存平台的相关背景知识,简要的介绍了OpenStack 开源平台和 RESTful 风格。第三章分析了 OpenStack 平台下的对象存储组件 Swift 的基本结构,结合第