AmazonS3架构分析_第1页
AmazonS3架构分析_第2页
AmazonS3架构分析_第3页
AmazonS3架构分析_第4页
AmazonS3架构分析_第5页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

Amazon S3存储系统结构Eucalyptus是Amazon AWS的开源实现,总体的架构跟实现都是根据Amazon AWS来设计的,所以Eucalyptus的存储系统部分也不例外,下面是AamzonS3存储系统实现的架构。一、 存储形式S3是基于桶(Bucket)的存储系统,它把每个被存储的文件当做一个Object,被存储的Object被放到相应的Bucket中,如下所示:1) Bucket用户创建的Bucket的BucketName必须是全局唯一的,该名字可以由用户提供,也可以由系统提供。创建的同时会设置Bucket的一些属性: MetaData:包含创建时间、创建者标识、该Bucket中所有Objects的总大小,还包含有用户访问的历史信息等等。 Access Policy:设置了Bucket的访问权限,例如可以设置哪些用户可以访问,是否具有读写权限等。2) Object在一个Bucket可以存放多个Object,在S3系统中存储的Object是被序列化的,S3系统并不能区分Object的类型,它可能是一个文本文件或者一个视频文件。MeataData里面存储的是Object创建时间、大小、文件类型等。另外只要用户能够访问Object的数据,就能够访问MetaData的权限。S3系统中Object的Identifier有两种表示方法,key和locator。 KeyKey在Object被创建的时候由用户给定,若用户未指定由系统分配,要保证key在桶内部是唯一的,不同的桶可以由相同的key,如:有一个Bucket的标识为050739517,存储了一个Object的key为MyDocument/Email/message.txt(注:key可以是string类型或其他类型),那么用户就可以通过下面的地址来访问Object:/050739517/MyDocument/Email/message.txt当然不能直接访问,用户还需要提供必要的验证信息,因为Bucket设置了访问权限,所以当一个访问到达时,首先有一个认证过程。 Locatorlocator和key不同,locator的分配必须是全局唯一的,而不是桶内唯一。通过locator访问object可以越过认证,所以性能上比key要好(吞吐率、访问延迟等),但是正因为越过了认证,安全性并不好,所以一般在传输过程中要对locator进行加密传输。和上面key对应如下是一个locator例子:/locator/3859C89A208FDB5A这里3859C89A208FDB5A就是object的locator,它使一个128位16进制表示的数。二、 存储系统架构S3的整体架构如下图所示:如上图所示,S3存储架构主要是由keymap+Bitstore作为基本的存储功能,然后coordinator和NodePicker充当调度功能,然后replicator实现副本的功能,DFDD(discovery, failure,detection daemon )用来检测各个组件的运行状态,web service platform 使用来接收和处理客户端client的请求。下面是多个数据中心部署:2.1 Web Service Platform用来接收客户端的web service请求,然后将这些请求送给coordinator。Web Service Platform 是存储系统对外的接口,它提供REST/SOAP类型的API,支持一些对bucket或者object的操作。例如creatBucket、listBucket、deleteBucket等API。WebServicePlatform还提供计费功能、认证、访问控制等。另外如果该存储系统限制object的大小,那么webserviceplatform还需要对一些大文件进行分割,将它们分成好多chunck,然后为每个chunck分配一个key,这些key可以是由原来大文件的key作为每个chunck的前缀,后面加上一些按字母或数字顺序的字段,例如/050739517/MyDocument/Email/message.txt/1/050739517/MyDocument/Email/message.txt/2当然客户端也可以设置是否允许系统进行分片,如果不允许则存储失败。2.2 Coordinator 协调器Coordinator是用来协调webserviceplatform和系统中其他组件的。例如:a) 当webserviceplatform有read object请求时,coordinator首先从keymap获取该object以及object的副本存储位置,然后根据这些位置去相应的bitstore Node取数据。b) 当有write object请求时,coordinator首先从NodePicker获取符合一定SLA的节点,然后将object写入到这些节点。c) CreatBucket请求时,创建并存储一个新的bucket,有时候用户未指定bucket标识时它也可以为bucket生成一个key2.3 NodePickerNodePicker会根据一定的存储策略来选择节点,如下:Durability Policy(持续性)至少N个副本被成功存储,write object才算成功Area diversity policy(区域多样性)Object被存放在多个区域,增加可靠性Locality policy(本地)降低延迟Load balance policy(负载均衡)平衡各个存储节点的请求量Space balance policy(空间负载均衡)平衡各个存储节点的空间利用率Lowest-cost chain policy在write object时最小开销上述是一些存储策略,NodePicker会根据用户的SLA来选择不同的存储策略,例如:a) 有些用户对可靠性要求不高,则可以减少副本数目;b) 有些用户对延迟要求比较高,同时要求可靠性,假设副本数目为5,那么可以选择将3个副本使用locality policy来保证延时,另外2个分别存储在两个不同的区域来保证可靠性;c) 有些用户对延迟的要求比可靠性要低,那么可以选择将2(或1)个副本使用locality policy,另外3(或4)分别存放在三个不同的区域里面。d) 当coordinator需要read object时,nodepicker会选择一个离用户比较近的位置的节点给coordinator。NodePicker为了完成上面的一些调度任务,需要监视节点的状态,如可用资源大小等,而且考虑到节点的状态时刻在变,所以需要定期进行检测2.4 KeymapKeymap是用来存储object(和其副本)的存放位置的。2.5 BitstoreBitstore是存储object的最终节点,它的内部结构如下 Storage node management controller:对外提供存取数据的API,如put、get、release Logical file I/O manager 该部分实现虚拟化底层的存储设备或者file system,它用object在存储设备上的偏移量以及文件大小来定位文件,它给每个被存储的object提供一个

温馨提示

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

最新文档

评论

0/150

提交评论