付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
OpenStackSwift介绍王汀EasyStackInc.目录Swift基本概念Swift架构实现Swift功能介绍QAEASYSTACKSwift概览Swift提供高可用,分布式,持久化的对象存储服务。ObjectFile,folder,image,archive,etc.SwiftSwift概览SwiftAccountContainersObjects每一个对象都由(account/container/object)3个属性确定。UserUseraccessesanaccountAccountownscontainersContainerscontainobjectsSwift架构ProxyServer代理服务器负责Swift架构的其余组件间的相互通信。对于每个客户端的请求,它将在环中查询帐号、容器或者对象的位置并且相应地转发请求。也可以使用公共API向代理服务器发送请求。TheRing环表示存储在硬盘上的对象名称和物理位置间的映射。无论是获取Account,Container还是Object,Swift都通过Ring来获取。ObjectServer对象服务器是一个简单的二进制大对象存储服务器,可以用来存储、检索和删除本地设备上的对象。它的元数据存储在文件系统的扩展属性(xattrs)中。Swift架构ContainerServer容器服务器的首要工作是处理对象的列表。容器服务器并不知道对象存在哪,只知道指定容器里存的哪些对象。这些对象信息以sqlite数据库文件的形式存储,和对象一样在集群上做类似的备份。容器服务器也做一些跟踪统计,比如对象的总数,容器的使用情况。AccouontServer帐号服务器与容器服务器非常相似,它返回容器的列表。Swift架构Updaters在一些情况下,容器或帐号中的数据不会被立即更新。这种情况经常发生在系统故障或者是高负荷的情况下。此时,待更新文件会被加入到等待队列,由Updaters完成更新。Auditors审计器会在本地服务器上反复地爬取来检测对象、容器、帐号的完整性。一旦发现不完整的数据(例如,发生了bitrot的情况:可能改变代码),该文件就会被隔离,然后复制器会从其他的副本那里把问题文件替换。如果其他错误出现(比如在任何一个容器服务器中都找不到所需的对象列表),还会记录进日志。
Swift实现原理-TheRingRing用来确定数据驻留在集群中的位置。有单独对应于Account数据库、Container数据库和单个Object的ring。Ring中每个Partition在集群中都(默认)有3个Replia。每个Partition的位置由ring来维护,并存储在映射中。Ring使用Zone的概念来保证数据的隔离。每个Partition的Replica都确保放在了不同的Zone中。一个Zone可以是一个硬盘,一个服务器......Ring的原理-一致性哈希算法面对海量级别的对象,需要存放在成千上万台服务器和硬盘设备上,首先要解决寻址问题,即如何将对象分布到这些设备地址上。Swift是基于一致性散列技术,通过计算可将对象均匀分布到虚拟空间的虚拟节点上,在增加或删除节点时可大大减少需移动的数据量;虚拟空间大小通常采用2的n次幂,便于进行高效的移位操作;然后通过独特的数据结构Ring(环)再将虚拟节点映射到实际的物理存储设备上,完成寻址过程。Ring的原理-一致性哈希算法1.首先求出每个节点(机器名或者是IP地址)的哈希值,并将其分配到一个圆环区间上(这里取0-2^32)。2.求出需要存储对象的哈希值,也将其分配到这个圆环上。3.从对象映射到的位置开始顺时针查找,将对象保存到找到的第一个节点上。NOTICE:然而,在节点数比较小的情况下,这种做法的开销依然很大。Swift采用Partition来提高性能。Ring的原理-一致性哈希算法引入Partition。1.Ring会被分成2n个Partition2.Partition是逻辑地址上的一段区域,并不真实存在于磁盘空间3.对象与物理存储之间的映射关系改变为:Object->Partition->Disks保证数据安全-ReplicationReplication是用来保证系统出错的情况不糊导致数据丢失。Replication处理进程会保证本地数据和每一份远程拷贝都是最新的。Replication更新基于推送模式。ObjectReplication会把更新过的文件通过rsync同步给其他节点Account和ContainerReplication会把整个数据库中没有的记录通过HTTP或rsync同步给其他节点。同时保证一旦一个对象/容器/账号被删除,整个系统中均要删除这一个对象。(创建一个墓碑文件并将此作为最新版本)保证数据安全-Zone、RegionRegionBZone1storagepartitionspartitionsZone2storagepartitionspartitionsRegionAZone1storagepartitionspartitionsZone2storagepartitionspartitionsReplica可以分布在多个Zone和多个Region中查找Object对象Accountsdb1/accounts/225/213/70d72c1ef3561f867d35913daeb45213/70d72c1ef3561f867d35913daeb45213.dbContainersdb1/containers/253/a8d/7e84c5bddfcb36410f579aebd4378a8d/7e84c5bddfcb36410f579aebd4378a8d.dbObjectsdb1/objects/343/ded/abfa65c7ed96b09251b0600c39eccded/1378769848.49243.dataPartition编号账户hash值得最后三位账户hash值对象文件名(时间戳)Swift部署示例Ceph代替SwiftFILESYSTEMBLOCKSTORAGEOBJECTSTORAGEKeystoneGeo-ReplicationNativeAPIMulti-tenantS3&SwiftOpenStackLinuxKernelISCSIClonesShotsnapCIFS/NFSHDFSDistributedMetadataLinuxKernelPosixCEPHCeph代替SwiftOPENSTACKKEYSTONEAPISWIFTAPICINDERAPIGLANCEAPINOVAAPICEPHOBJECTGATEWAY(RGW)CEPHBLOCKDEVICE(RBD)VolumesEphemeralCopy-on-Write
SnapshotsCeph代替Swift主要原因:1.Swift的传输速度和时延存在问题2.Ceph不仅提供对象存储,还提供块存储,方便统一管理。3.当对象副本不一定同时更新时延迟的问题便会浮现,这会导致请求者在第一次更新某个对象到新版本之后,读取到的却仍然是旧版本。方法:控制节点安装SwiftAPI软件包即可NOTICE:Ceph兼容SwiftAPISwift功能介绍命令行:swiftcapabilities获取代理服务器的容量swiftdelete删除容器或者容器中的对象swiftdownload从容器中下载对象swiftlist返回账户中的所有容器或者容器中的所有对象swiftpost更新账户或者容器或者对象的元数据swiftstat显示账户或容器或对象的信息swifttempurl为对象生成一个临时的URLswiftupload上传指定文件或目录到指定容器中Swift功能介绍$swiftstatAccount:AUTH_7b5970fbe7724bf9b74c245e77c03bcgContainers:2Objects:3Bytes:268826Accept-Ranges:bytesX-Timestamp:1392683866.17952Content-Type:text/plain;charset=utf-8$swiftstatCONTAINERAccount:AUTH_7b5970fbe7724bf9b74c245e77c03bcgContainer:storage1Objects:2Bytes:240221ReadACL:WriteACL:SyncTo:SyncKey:Accept-Ranges:bytesX-Timestamp:1392683866.20180Content-Type:text/plain;charset=utf-8swiftstat[container][object]显示账户或容器或对象的信息Swift功能介绍$swiftpost-r'testuser'$swiftpost-r'.r:*'swiftpost[container][object]Optionalarguments:-r,--read-acl<acl>ReadACLforcontainers.QuicksummaryofACLsyntax:.r:*,,,account1,account2:user2-w,--write-acl<acl>WriteACLforcontainers.QuicksummaryofACLsyntax:account1account2:user2-t,--sync-to<sync-to>SyncToforcontainers,formulti-clusterreplication.-k,--sync-key<sync-key>SyncKeyforcontainers,formulti-clusterreplication.-m,--meta<name:value>Setsametadataitem.Thisoptionmayberepeated.Example:-mColor:Blue-mSize:Large-H,--header<header:value>Addsacustomizedrequestheader.Thisoptionmayberepeated.Example-H“content-type:text/plain”-H“Content-Length:4000”Swift资料汇总Lanuchpad
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2027届山西省运城盐湖区七校联考九上化学期中质量检测试题含解析
- 江苏省邳州市新河中学2027届九上化学期中调研试题含解析
- 2027届新疆沙湾县九年级化学第一学期期末教学质量检测试题含解析
- 2027届湖南省衡阳县化学九上期中质量跟踪监视试题含解析
- 2026中国物联网技术商业化应用与投资价值评估报告
- 2027届黑龙江省大庆中学九上化学期中联考模拟试题含解析
- 2027届湖南省株洲市物理九上期末考试模拟试题含解析
- 2027届重庆市彭水一中学九上化学期中检测试题含解析
- 2027届成都十八中学九上化学期中质量跟踪监视试题含解析
- 2026汽车零部件传感器技术研发行业市场供需分析及投资评估规划分析研究报告
- YY/T 0581.2-2024输液连接件第2部分:无针连接件
- DB52∕T 1633-2021 山地风电场风机微观选址技术规程
- 露天矿山作业安全操作规程
- GB/T 41666.4-2024地下无压排水管网非开挖修复用塑料管道系统第4部分:原位固化内衬法
- 《无粘结钢绞线体外预应力束》(JT∕T 853-2013)
- 第四章煤的结构
- 恒瑞人防工程监理实施细则范文
- 桥梁养护工作计划
- 人大换届选举培训提纲
- GB/T 3400-2002塑料通用型氯乙烯均聚和共聚树脂室温下增塑剂吸收量的测定
- 2011年四川高考理综试题及答案(高清扫面版)
评论
0/150
提交评论