云计算|OpenStack|Swift道术

2018-07-23 05:29:16来源:中国云计算网 阅读 ()

新老客户大回馈,云服务器低至5折

OpenStack Object Storage Service(Swift)架构之道,应用之术,纯干货分享。

一、术语定义

CAP理论:由Eric Brewer提出,Consistency(一致性),Availability(高可用),Partition Tolerance(分区容忍性),一个存储系统最多同时满足其中2条,CA、CP、AP。

二、架构之道

2.1架构原理:

swift-proxy-server:提供REST API,根据User请求,在Ring中查找目标位置,将请求转发给account、container或object服务。无状态服务,可以A/A水平扩展。

authentication-server:User身份认证,可以与Keystone结合使用,具体做法是通过在/etc/swift/proxy-server.conf中添加filter:authtoken和filter:keystoneauth。

swift-account-server:存储account的metadata信息和container列表。

swift-container-server:存储container的metadate信息和object列表。

swift-object-server:存储object的metadata和data信息。

swift-account/container/object-replicator:检测本地副本和远程副本是否一致,若不一致,则更新远程副本。周期任务。

swift-account/container/object-auditor:检查account、container、object的完整性,若发现错误,则复制远程副本覆盖本地损坏副本。周期任务。

swift-container/object-updater:当副本未及时更新时,自动进行更新。周期任务。

swift-account-reaper:删除被标记为删除的账户,及其拥有的容器和对象。

2.2 数据模型:

Swift采用三层数据模型:一个account(租户)可以创建多个container(容器),一个container可以包含多个object(对象)。

2.3 Ring环:

Swift建立了account ring、container ring和object ring,通过ring环实现accountcontainerobject到目标地址映射,具体做法是:通过一致性Hash计算出accountcontainerobject的Hash值,向右移除m位,形成2^(32-m)个虚拟节点,[0, 2^m-1]映射到虚拟节点P0,[2^m, 2^(m+1)-1]映射到虚拟节点P1,依次类推,[2^(32-m), 2^32-1]映射到虚拟节点P2^(32-m),计算出虚拟节点Pi后,找到device位置,再从device中找到data。

2.4 最终一致性:由于CAP原理限制,Swift选择了AP,而没有选择C,实现了高可用和分区容忍,没有实现强一致性,而是通过Replicator、Updater、Auditor实现最终一致性。

三、应用之术

作为对象存储系统的固有特性,Swift不适合对实时性要求高的场景,适合静态非结构化数据场景,例如:虚拟机image、图片、邮件、归档、备份等数据。在一些落地方案中,Swift可以作为Glance的存储后端,存储image数据。当然,Swift可以独立于OpenStack而独立存在,已经应用到很多生产环境。

四、学习之路

大咖之路:懂业务、懂原理、懂研发、懂运维、懂贡献

本源之路:OpenStack官网

[1] https://launchpad.net/

[2] https://www.openstack.org/

[3] https://docs.openstack.org/

[4] https://ask.openstack.org/

[5] https://review.openstack.org/

[6] https://github.com/openstack/

[7] http://stackalytics.com/

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:京东云18个月挺进中国云计算一流行列: 半年推出108款产品 迭代4

下一篇:头条|书记州长会见互联网“大咖”,甘孜有望成为大数据、云计算