15.swift工作原理及ring简述
swift:
一种是没有备份存储
一种是多路备份,此处假设做两路备份,每个vnode对应两个zone
下图所示的是没有备份的情况,每个vnode只连接一个zone:
如果新加zone,当前的连接全部重新洗盘,重新分配involved 新的zone, 采用vnode可以减少load,只移动一部分数据,不是所有的数据
ring有三种:
容器ring: 是对于容器本身也需要一个ring,容器本身也需要映射到zone里
对象ring:就是上面讲的,用来映射容器里面的对象到zone的ring
账户ring:容器都是有权限的,还有一个ring是记录权限,映射到硬盘里
服务介绍:
代理服务器 proxy server
负责swift各个组件之间的通信
接收用户的请求
存储服务器:
容器服务
对象服务
账户服务
一致性服务:
auditor 定期检查zone1和zone2 之间数据有没有问题,是否损坏
replicate 复制,修复数据
update 如果修复没有成功,就会等一段时间再次修复,这个功能是由update来完成的
对应关系:
每创建一个文件的时候,要分配一个vnode 给它,vnode是对应好了到某个zone里的文件和vnode 是一对一的关系,vnode和zone是一对多的关系