收藏 分享(赏)

AmazonS3架构分析.doc

上传人:HR专家 文档编号:11566970 上传时间:2020-06-28 格式:DOC 页数:7 大小:683KB
下载 相关 举报
AmazonS3架构分析.doc_第1页
第1页 / 共7页
AmazonS3架构分析.doc_第2页
第2页 / 共7页
AmazonS3架构分析.doc_第3页
第3页 / 共7页
AmazonS3架构分析.doc_第4页
第4页 / 共7页
AmazonS3架构分析.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、Amazon S3存储系统结构Eucalyptus是Amazon AWS的开源实现,总体的架构跟实现都是根据Amazon AWS来设计的,所以Eucalyptus的存储系统部分也不例外,下面是AamzonS3存储系统实现的架构。一、 存储形式S3是基于桶(Bucket)的存储系统,它把每个被存储的文件当做一个Object,被存储的Object被放到相应的Bucket中,如下所示:1) Bucket用户创建的Bucket的BucketName必须是全局唯一的,该名字可以由用户提供,也可以由系统提供。创建的同时会设置Bucket的一些属性: MetaData:包含创建时间、创建者标识、该Bucke

2、t中所有Objects的总大小,还包含有用户访问的历史信息等等。 Access Policy:设置了Bucket的访问权限,例如可以设置哪些用户可以访问,是否具有读写权限等。2) Object在一个Bucket可以存放多个Object,在S3系统中存储的Object是被序列化的,S3系统并不能区分Object的类型,它可能是一个文本文件或者一个视频文件。MeataData里面存储的是Object创建时间、大小、文件类型等。另外只要用户能够访问Object的数据,就能够访问MetaData的权限。S3系统中Object的Identifier有两种表示方法,key和locator。 KeyKey在

3、Object被创建的时候由用户给定,若用户未指定由系统分配,要保证key在桶内部是唯一的,不同的桶可以由相同的key,如:有一个Bucket的标识为050739517,存储了一个Object的key为MyDocument/Email/message.txt(注:key可以是string类型或其他类型),那么用户就可以通过下面的地址来访问Object:http:/ Locatorlocator和key不同,locator的分配必须是全局唯一的,而不是桶内唯一。通过locator访问object可以越过认证,所以性能上比key要好(吞吐率、访问延迟等),但是正因为越过了认证,安全性并不好,所以一般

4、在传输过程中要对locator进行加密传输。和上面key对应如下是一个locator例子:http:/ 存储系统架构S3的整体架构如下图所示:如上图所示,S3存储架构主要是由keymap+Bitstore作为基本的存储功能,然后coordinator和NodePicker充当调度功能,然后replicator实现副本的功能,DFDD(discovery, failure,detection daemon )用来检测各个组件的运行状态,web service platform 使用来接收和处理客户端client的请求。下面是多个数据中心部署:2.1 Web Service Platform用来接

5、收客户端的web service请求,然后将这些请求送给coordinator。Web Service Platform 是存储系统对外的接口,它提供REST/SOAP类型的API,支持一些对bucket或者object的操作。例如creatBucket、listBucket、deleteBucket等API。WebServicePlatform还提供计费功能、认证、访问控制等。另外如果该存储系统限制object的大小,那么webserviceplatform还需要对一些大文件进行分割,将它们分成好多chunck,然后为每个chunck分配一个key,这些key可以是由原来大文件的key作为每

6、个chunck的前缀,后面加上一些按字母或数字顺序的字段,例如http:/ Coordinator 协调器Coordinator是用来协调webserviceplatform和系统中其他组件的。例如:a) 当webserviceplatform有read object请求时,coordinator首先从keymap获取该object以及object的副本存储位置,然后根据这些位置去相应的bitstore Node取数据。b) 当有write object请求时,coordinator首先从NodePicker获取符合一定SLA的节点,然后将object写入到这些节点。c) CreatBucke

7、t请求时,创建并存储一个新的bucket,有时候用户未指定bucket标识时它也可以为bucket生成一个key2.3 NodePickerNodePicker会根据一定的存储策略来选择节点,如下:Durability Policy(持续性)至少N个副本被成功存储,write object才算成功Area diversity policy(区域多样性)Object被存放在多个区域,增加可靠性Locality policy(本地)降低延迟Load balance policy(负载均衡)平衡各个存储节点的请求量Space balance policy(空间负载均衡)平衡各个存储节点的空间利用率L

8、owest-cost chain policy在write object时最小开销上述是一些存储策略,NodePicker会根据用户的SLA来选择不同的存储策略,例如:a) 有些用户对可靠性要求不高,则可以减少副本数目;b) 有些用户对延迟要求比较高,同时要求可靠性,假设副本数目为5,那么可以选择将3个副本使用locality policy来保证延时,另外2个分别存储在两个不同的区域来保证可靠性;c) 有些用户对延迟的要求比可靠性要低,那么可以选择将2(或1)个副本使用locality policy,另外3(或4)分别存放在三个不同的区域里面。d) 当coordinator需要read obj

9、ect时,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提供一个索引,如下所示: FileSystem文件系统 Storage Device存储设备2.6 Replicator当系统中object的实际副本的数目小于给定的副本的数目时,Replicator就会完成剩下副本的存储,使副本满足给定的数目。2.7 DFDDDFDD是组件所在系统上运行的一个守护进程,用来监测组件的状态信息。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 学术论文 > 管理论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报