OpenStack之Swift:环(Ring)源码分析

4.1.结构介绍

环部分主要为2个部分,分别文件如下:


ring.py:负责维护accont,container,object相应环的信息,包括区域,设备,分区等等;

builder.py:ring管理工具,环中的信息由其负责维护,管理。

4.2.几个概念说明

区域:逻辑上的划分,可以是一个设备,一台主机,或者一个数据中心等等;

设备:物理机的存储设备,分区会通过builder工具分配给相应的设备;

分区:不同于操作系统的分区,而是按照swift的方式定义的分区,应该就是存储的单元,

副本:值分区的份数,可以通过命令指定副本的数量;

权重:与可以分配分区的多少对应,通常设备存储空间越大,权重越大;

每一个副本不会在同一个设备,每一个副本的设备不会在同一个区域

分区要分配到相应的设备

4.3.源码解析

Ring主要是在代理服务器中调用,当请求进入代理服务器,通过权限验证之后,通过ring,可以获得数据存储的位置,然后进行相应操作。

Ring中三个重要的参数:

devs:集群中的设备列表,即集群中都有哪些设备;

_replica2part2dev_id:由副本号映射到分区号,再映射到设备编号,可以通过分区号,获得相应的设备

_part_shift:由相应的hash找到数据存储的分区,


在ring中有2个重要的方法:

a)_reload()



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值