AmazonS3架构分析
更新时间:2023-11-01 19:37:01 阅读量: 综合文库 文档下载
- amazons3是什么推荐度:
- 相关推荐
Amazon S3存储系统结构
Eucalyptus是Amazon AWS的开源实现,总体的架构跟实现都是根据Amazon AWS来设计的,所以Eucalyptus的存储系统部分也不例外,下面是AamzonS3存储系统实现的架构。
一、 存储形式
S3是基于桶(Bucket)的存储系统,它把每个被存储的文件当做一个Object,被存储的Object被放到相应的Bucket中,如下所示:
Storage Service InterfaceBucketMetadataAccess policyBucketMetadataAccess policyObjectMetadataDataObjectMetadataData...ObjectMetadataData
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。
? Key
Key在Object被创建的时候由用户给定,若用户未指定由系统分配,要保证key在桶内部是唯一的,不同的桶可以由相同的key,如:有一个Bucket的标识为050739517,存储了一个Object的key为MyDocument/Email/message.txt(注:key可以是string类型或其他类型),那么用户就可以通过下面的地址来访问Object:
http://storageservice.domain.com/050739517/MyDocument/Email/message.txt 当然不能直接访问,用户还需要提供必要的验证信息,因为Bucket设置了访问权限,所以当一个访问到达时,首先有一个认证过程。
? Locator
locator和key不同,locator的分配必须是全局唯一的,而不是桶内唯一。通过locator访问object可以越过认证,所以性能上比key要好(吞吐率、访问延迟等),但是正因为越过了认证,安全性并不好,所以一般在传输过程中要对locator进行加密传输。和上面key对应如下是一个locator例子:
http://storageservice.domain.com/locator/3859C89A208FDB5A这里
3859C89A208FDB5A就是object的locator,它使一个128位16进制表示的数。
二、 存储系统架构
S3的整体架构如下图所示:
Storage Client...Storage ClientNetWorkWeb Service PlatformNodePickerDFDDStorage Service coordinatorReplicatorKeyMap instanceBitStore NodeReplicator keymapDFDDDFDDDFDD
如上图所示,S3存储架构主要是由keymap+Bitstore作为基本的存储功能,然后coordinator和NodePicker充当调度功能,然后replicator实现副本的功能,DFDD(discovery, failure,detection daemon )用来检测各个组件的运行状态,web service platform 使用来接收和处理客户端client的请求。
下面是多个数据中心部署:
DataCenterNodePickerDFDDStorage Service coordinatorBitStore NodeReplicatorKeyMap instanceReplicator keymapDFDDDFDDDFDDNetWorkDataCenterNodePickerDFDDDataCenterStorage Service coordinatorKeyMap instanceDFDDBitStore NodeDFDDNodePickerDFDDStorage Service coordinatorBitStore NodeReplicatorReplicatorKeyMap instanceReplicator keymapReplicator keymapDFDDDFDDDFDDDFDD
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的前缀,后面加上一些按字
母
或
数
字
顺
序
的
字
段
,
例
如
http://storageservice.domain.com/050739517/MyDocument/Email/message.txt/1 http://storageservice.domain.com/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生成一个key
2.3 NodePicker
NodePicker会根据一定的存储策略来选择节点,如下: 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 Keymap
Keymap是用来存储object(和其副本)的存放位置的。
2.5 Bitstore
Bitstore是存储object的最终节点,它的内部结构如下
To/From coordinatorStorage node management controllerLogical file read/write requestLogical file I/O managerStorage RepackerPhysical file read/write requestFileSystemDevice read/write requestStorage deviceBitStore Node
? Storage node management controller:
对外提供存取数据的API,如put、get、release ? Logical file I/O manager
该部分实现虚拟化底层的存储设备或者file system,它用object在存储
设备上的偏移量以及文件大小来定位文件,它给每个被存储的object提供一个索引,如下所示:
Object index tableObject indexOffsetObject SizeMetadata sizeCRC0offsetoffset + object sizeoffset + object size + metadata size……Object index Object index Object index Object index N N N +1N +1datametadatadatametadataLogical object storage space
? FileSystem
文件系统 ? Storage Device
存储设备
2.6 Replicator
当系统中object的实际副本的数目小于给定的副本的数目时,Replicator就会完成剩下副本的存储,使副本满足给定的数目。 2.7 DFDD
DFDD是组件所在系统上运行的一个守护进程,用来监测组件的状态信息。
正在阅读:
AmazonS3架构分析11-01
快递公司营销战略策划11-02
八字自学初级教程04-05
浅谈以绩效考评为基础的薪酬分配形式04-27
一年级养成教育工作总结11-11
第十六类:南方电网公司《调度管理类》安全规程测试题库04-29
武汉大学文化活动策划书12-20
基于业务规则的工作流管理系统模型04-23
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 架构
- AmazonS3
- 分析
- 2014年广东省公务员考试《行政职业能力测验》真题试卷及答案解析
- 园林专业论文 - 图文
- 工商局关于基层党组织标准化建设工作开展情况自查报告
- 4年级数学每日一练习(4)
- 小分子蓝光OLED材料
- 乡村基市场机会分析
- 三菱PLC基本指令27条
- 施工场所安全检查检验仪器工具配备与管理制度和明细
- 2013年烟台市初中学业水平考试地理试题及参考答案
- 静电场综合练习-2
- 消费税试题 - - 附答案
- 一级建造师历年真题及答案2004-2011年《建设工程经济》(word完整版)
- 高效液相色谱法-考试习题
- PBOC2.0密码机密钥装载说明
- 植物的逆境生理复习题参考答案
- 第3章 无筋砌体受压构件 2
- 武装部长调研报告
- 三级安全教育考试试题(装饰工程)
- 全国2012年1月自学考试管理信息系统试题
- 人力资源有限公司管理制度