基于Amazon S3的文件系统中CAS层的设计与实现.doc
《基于Amazon S3的文件系统中CAS层的设计与实现.doc》由会员分享,可在线阅读,更多相关《基于Amazon S3的文件系统中CAS层的设计与实现.doc(41页珍藏版)》请在沃文网上搜索。
1、 基于Amazon S3的文件系统中CAS层的设计与实现摘要网络文件系统常会花费很对精力在数据的分布式部署上,实际上现在很多优秀的第三方的服务商会提供完备的云存储服务,省去了开发人员大量管理数据的精力。开发基于云存储的文件系统是未来的存储技术发展趋势的观点已经被广为接受。为了防止用户误操作和其它灾害的发生导致数据的丢失,多版本连续技术被应用到基于Amazon S3的文件系统(Amazon-S3-based file system,下称S3fs)的开发中。因此每一次修改的版本都会被保留。 然而针对网络文件系统,尤其同步式的、基于第三方“云”的文件系统,过多的数据量会增加“云”端的所需要支付的费用
2、。然而这些额外的费用尚且可以接受,但是关键问题是会增加每个文件操作所带来的延迟。试想如果单纯的进行多版本连续的维护,每次修改文件都需要对整个文件进行备份,那样带来的额外带宽消耗是成倍增长的。 因此S3fs引入了重复数据删除技术,对每个文件进行分段,每次修改只需要同步更新的内容而避免整个文件的同步。 同时重复数据删除技术不仅允许在同一文件的不同版本之间进行数据段重复利用,还可以对不同文件进行相同数据段重复利用。这样就更加节省了磁盘的开销。本文主要介绍了S3fs的设计思想和实现方法,并着重描述底层CAS(Content Addressable Storage)层与云端通信的实现。S3fs是基于Am
3、azon S3在Linux 2.6 内核上使用Fuse为开发框架的用户态文件系统。S3fs的底层与云端操作是对用户透明,用户在对文件操作与普通文件系统无差别。而S3fs会自动的将文件的修改同步到S3服务器上。同时会根据同步策略与S3服务器同步,采用松耦合解决并发一致性问题。 S3fs还会自动保留多版本,但对用户同样是透明的,一般用户只能看到最后版本。S3fs还会对文件分段存储管理,并以内容计算哈希值进行索引,在每次同步进行重复数据删除来减小网络带宽的占用户数据量的传输及存储。关键词文件系统 AmazonS3多版本 重复数据删除 CASThe Design and Implementation
4、of CAS layer of an Amazon-S3-based File SystemABSTRACTNetwork File System often takes much time in distributed management of remote date access. Actually there are many 3rd-party excellent service providers can offer mature cloud storage service, saving much energy used to be concerned with data man
5、agement by developers. We argue that cloud-based file system is the trend of future storage development. To avoid losing data by users misoperation and other disasters, we propose the technique of continuous multi-version, which could remain every version of the same file automatically. However, for
6、 network file system, especially cloud-based file system with a synchronization policy, more data volume may lead users to purchase more fees for using network resources. Actually these fees are acceptable. The central problem is more data would consume more network workload and increase the delay c
7、aused by each file operation. We should hold two times space for each multi-versioned operation than common file operation which means two times more resource consumption would be used. Thus, we combine this cloud-based file system with Deduplication. We divide each file into many data segment which
8、 we called “chunk”. And we only update the last modified chunk instead of the whole file. Deduplication also allows us to exploit the similarity between different files. In this case, more resources could be saved. This paper describes the design and implementation of S3fs, and particularly shows th
9、e implementation of CAS (Content Addressable Storage) layer which also needs to communicate with S3 server. S3fs is developed through the frame of FUSE based on Amazon S3. The communication between CAS and S3 is transparent for users. Common users could access the latest version of the file only. S3
10、fs also take the management of chunked file indexed by hash value, which could reduce the consumption of bandwidth caused by synchronization. S3fs is implemented as a user-space file system by FUSE in the Linux 2.6 kernel. KEY WORDS Filesystem AmazonS3 Continuous-versioning Deduplication CAS北京邮电大学本科
11、毕业设计(论文)目 录第一章 引言11.1 研究意义11.2 研究背景2第二章 相关的关键技术42.1 重复数据删除42.2 连续多版本保护及索引52.3 本地cache以及并发访问和一致性问题72.4 云存储72.5 亚马逊 简单存储服务 (Amazon S3)92.5.1 S3的组成102.5.2 S3提供的常用操作112.5.3 亚马逊S3的一致性模型112.5.4 S3的身份认证112.5.6访问权限控制12第三章 S3fs文件系统的设计133.1系统模型概述133.2 CAS层的设计及S3fs工作流程163.2.1文件系统与S3的接口设计163.2.2创建与删除文件流程193.2.3
12、 修改文件流程193.2.4文件路径统一策略及修改流程203.2.5重命名文件流程213.2.6创建目录与删除流程213.2.7 本地cache与S3同步策略与流程223.2.8 旧版本文件恢复223.2.9文件系统临界区问题22第四章S3fs文件系统的实现23第五章系统测试28第六章总结336.1 存在问题336.2 结束语33参考文献35致 谢3737第一章 引言1.1 研究意义自从计算机技术的出现到现在,存储技术一直是被众多研究者和开发者所津津乐道。数据无疑是整个计算机系统最为关键的部分之一。因此如何高效、安全的管理数据直接影响到用户对计算机体验效果。目前,在整体信息技术界飞速创新发展的
13、大背景下,数据量同样在以前所未有的速度高速增长。传统的文件系统仅仅保证数据在本地的正确保存。然而意外事件的不断频发,如天难人祸,黑客病毒的破坏,数据的丢失无疑都会给数据使用者带来无法挽救的后果。所以对数据的保护以及备份成为了当下最热门的研究话题之一。因此用户更希望一种文件系统能够在对数据进行常规部署的同时进行恰当的数据保护措施。现在,磁盘的价格越来越低,所以导致开发者更倾向于利用空间换取数据安全的策略。而用户的备份意识目前还停留在传统、单纯的将现有的文件,甚至是显示的复制副本保存。这样的方法是最简单的,也能够避免意外的发生导致数据的丢失。但是这样的策略却忽略了一点,就是用户的误操作。现实生活中
14、很多情况造成数据丢失或意外被更改都是因为用户主观上的误操作所带来。比如一个人在将文件修改多次后发现其中的某一次修改导致了重大的错误,而即便有备份系统,那一次修改的文件也已经被后边无数次的修改所覆盖。如此这般无论粒度多么细的备份策略都无法挽回损失。因此本着牺牲磁盘空间换取数据的高可靠性的原则,引用了连续多版本保护技术。即用户的每一次的文件操作所引起的文件版本的变化都会被存储下来。这样就保证了用户可以根据需要(或是管理员)去访问任何一个版本,避免任何意外的发生。将各个版本存放在本地磁盘虽然能避免用户误操作所带来的损失,但是就失去了传统的灾备意义。很自然的将目光投向网络。在网络技术和分布式计算技术的
15、成熟,“云”的概念逐渐清晰并且出现了成熟的商业技术。云存储作为应运而生的一项技术,在目前和未来都会成为开发人员一个重要的研究方向和解决平台。目前,有少数的公司已经推出了云存储的产品。传统的在常见的局域网系统中,为了能更好地使用局域网,一般来讲,使用者需要非常清楚地知道网络中每一个软硬件的型号和配置,比如采用什么型号交换机,有多少个端口,采用了什么路由器和防火墙,分别是如何设置的。系统中有多少个服务器,分别安装了什么操作系统和软件。各设备之间采用什么类型的连接线缆,分配了什么地址和子网掩码。在做文件系统开发的同时需要关心什么数据存放在网络内哪个节点。而通过调用云存储服务零售商提供的公共标准接口,
16、将数据进行上单纯的上传操作,而后续的存储管理和安全保障都交给云端负责,开发者并不要关心,仅仅需要支付少量的服务使用费用。其中Amazon S3是一个较为成熟稳定的云存储服务。因此,基于云的文件系统较于网络文件系统,会节省许多需要花费在数据在网络上部署的精力。所以将数据都备份到“云”就成为了人们青睐的选择。选择云端所带来的问题是如果S3fs单纯的对文件进行连续多版本的保留,会导致每次新版本生成都需要将新生成的文件传输到云上。这样所占用的网络带宽、产生的延迟和需要支付的费用都会成倍的增长。而且现在用户往往需要在低带宽的环境下进行网络远程操作,这样带来的网络延迟的增长就显得无法接受了。比如,一个交互
17、编辑器会阻塞用户前端输入以便写100K “自动存储”的文件而不用考虑用户的输入或者消耗特别大的资源。 一个传统的文件系统传输文件的整个内容在网络上并且在传输过程中会阻塞编辑器。如果延迟过长,编辑器就会产生假死的情况。因为一般的交互编辑器在考虑网络延迟时无法统一标准,所以很难制定一个恰等的阻塞等待时间。 文本编辑器亦是如此,很难想象一些媒体编辑器会带来怎样糟糕的用户体验。 因此在开发过程中引入了重复数据删除技术。这样S3fs就不会由每次文件操作而引起整个文件在网络上的传输从而大大减少了数据传输量,节省了资源。通过上述原因,S3fs将会是这样一个文件系统: 是基于连续多版本的,能够自动冗余数据删除
18、,所有本地数据都与云服务器进行相连并根据一定策略同步同时保证并发性访问所导致的一致性问题。 1.2 研究背景当前最为常用的文件系统(ext2/3,FAT,NTFS等)都会以每次文件操作为基础立即对操作文件进行释放、更新、删除,而并不会保留任何副本。我们需要开发一个新的文件系统。现有的文件系统都是运行在操作系统内核,因此包括安全等问题导致难以对其进行功能扩展。经过前期调研,发现FUSE(filesystem in user space)框架。它是建立在VFS机制之上。本文所提出的S3fs就是基于fuse框架下实现的文件系统,突破了核心级应用的限制,更加方便的对其进行功能扩展。目前很多成熟的文件系
19、统都是基于fuse框架开发的,比如gmailfs,sshfs,p2p-fs等。Fuse框架本身会提供很多完备的API,S3fs是基于fuse中C语言的API库进行开发的。在选择云存储产品的时候,目前亚马逊S3、谷歌的Google Storage、以及AT&T和EMC都提供第三方存储服务,而零售巨头亚马逊公司所提供的云存储服务S3(Simple Storage Service,即简单存储服务)是非常成熟的,也是目前应用比较多的。由于它是公开的web服务,亚马逊将自己的“弹性计算云”建立在公司内部的大规模集群计算的平台之上,而用户可以通过弹性计算云的网络界面去操作在云计算平台上运行的各个实例。 弹
20、性计算云平台为用户或者开发人员提供了一个虚拟的集群环境,使得用户的应用具有充分的灵活性。同时Amazon S3本身提供非常安全的用户验证机制,使得开发者不用花更多的时间在文件的保密性上。基于上述特点和背景,我们希望开发出一款与存储零售商所提供的云存储服务相连的文件系统,能够让用户透明的在本机进行常规的文件系统,同时,文件系统底层与远端云相连从而达到自动备份的功能。在网络上进行数据的传输,首先就会考虑到网络延迟的问题。而在一个特定的网络环境下只有 的减小传输的流量以达到减小网络带宽的利用,减小响应时间。 除此之外,IDC最新报告显示【1】,2007年新增数据量(281 Exabyte)已经超过所
21、有可用存储介质总容量(264 Exabyte)约6%,并预计2011年数据总量将达到2006年的10倍。面对数据的爆炸性增长,仅仅提高系统运算能力和增加存储介质容量已经不能满足高速发展的各种数据应用,对高效数据缩减技术的需求已经逐步显现出来,并且越来越迫切。几年前人们还热衷于通过越来越低价存储介质来满足数据的存储。但是今天,人们的磁盘备份设备的容量已经趋于饱和,在数据中心已经没有足够的空间来备份PT级的数据,在这种情况下,当用户希望将备份数据保存一个月时,却只能保存两到三天。问题是在用户的备份设备中有太多的重复数据。重复数据删除是一种非常高级的数据缩减方式,可以极大的减少备份数据的数量。这种技
22、术通过减少存储的数据量,改变数据保护方式,卓越的提升了磁盘备份方式的经济性。重复数据删除被业界公认为备份技术的下一代发展步骤,是今日数据中心的“必备”技术。重复数据删除允许文件系统将最小操作单位降为数据块而不是文件。它利用不同的文件之间的相似块而将重复数据删除。在文件备份中,对文件各个版本都保留下来无疑是最为安全的方法。目前有一些针对多版本文件控制的文件系统是以快照的方式进行多版本管理,如Plan 9【2】是为文件系统每天做一次快照并将副本存于安全的存储介质,WAFL【3】是利用copy-on-write的数据块来节省磁盘空间, AFS也是通过copy-on-write来使用户访问更加原始的文
23、件版本。它们通过对当下的文档进行快照保存文件副本。但是这样似乎却存在一种“盲点”,即在两个快照点之间的改写是无法被文件系统所记录的。另外,这种基于快照的文件系统每次是将整个文件系统进行快照,而并不是针对有修改或变动的文件,大大浪费了系统资源。 S3fs就并没有这样的问题,它是采用即时的对每个文件更新操作进行捕获而针对更新文件进行的备份操作。本文主要介绍了S3fs的设计思路并着重介绍了CAS层的实现方法和流程。其中第二章介绍了S3fs所涉及的相关技术。第三章给出了了S3fs的设计思想和各个操作的算法流程。第四章则简要描述具体的实现方法和所支持功能的使用方法。第五章描述对S3fs做了简单的功能和性
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于Amazon S3的文件系统中CAS层的设计与实现 基于 Amazon S3 文件系统 CAS 设计 实现
