你好,游客 登录
背景:
阅读新闻

云计算|OpenStack|Swift道术

[日期:2017-10-30] 来源:今日头条  作者: [字体: ]

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

  一、术语定义

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

  二、架构之道

  2.1架构原理:

  

云计算|OpenStack|Swift道术

 

  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 数据模型:

  

云计算|OpenStack|Swift道术

 

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

  2.3 Ring环:

  

云计算|OpenStack|Swift道术

 

  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] //stackalytics.com/

推荐 打印 | 录入:Cstor | 阅读:
相关新闻      
本文评论   
评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款