Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7173273
  • 博文数量: 3857
  • 博客积分: 6409
  • 博客等级: 准将
  • 技术积分: 15948
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-02 16:48
个人简介

迷彩 潜伏 隐蔽 伪装

文章分类

全部博文(3857)

文章存档

2017年(5)

2016年(63)

2015年(927)

2014年(677)

2013年(807)

2012年(1241)

2011年(67)

2010年(7)

2009年(36)

2008年(28)

分类: 云计算

2015-03-02 13:10:13

众所周知:swift存储时要初期化3个ring,这个容易理解。对rebalance理解起来有困难。现分析如下:
先看这张图:

(因为一般1个region中的1个zone中要做3个对象复制)
利用上图指示的关系,假如我们要存入一个对象,首先通过对象的account/container/object的md5值的前四个字节(32位)右移动part_shift位,得到具体对象对应的分区号,然后通过replica2part2dev_id(备份到分区到设备的映射), 找到当前分区对应的三个备份设备的Id,获得id后从devs里面得到具体的dev,因dev里面存有设备的ip,port,以及存储数据的磁盘,分别创建请求这三个设备,将数据存入设备上。
待续。。。

阅读(661) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~