- Swift存储系统的工作原理的核心是虚节点(Partition Space)和环(Ring)。
- 虚节点:用于存放一批数据。存储系统把虚节点看做一个移动的整体。
- 环:虚节点映射到磁盘的物理地址。
- 当任何一个模块需要对账号、容器、或对象进行操作的时候,他们需要通过环来确定账号、容器、或对象在集群中的地址。虚节点地址都记录在环的映射中。环通过区域的概念来保证数据的隔离。
- 当新的存储设备添加的时候,环就会自动移动一些虚节点到新加入的设备中,以达到平衡。Swift中引入“权重”的概念来平衡集群中虚节点在驱动器上的分布。
- 一致性服务器:负责发现和改正由于数据损坏和硬件故障带来的错误。一致性服务器有3类:审计器(Auditors)、更新器(Updaters)和复制器(Replicator)。
- 审计器:运行在每个节点的后台,在本地服务器上反复的检查存放在服务器上的对象、容器、和账号的完整性,连续扫描磁盘上的数据不会因为磁盘的坏点或文件系统的损坏而丢失。
- 更新器:保证账号和容器的列表是正确的。负责更新账号元数据中对象的个数、容器的个数以及所使用存储的字节数。当高负荷时,不会立即更新,会将此次更新加入更新队列,以便后续处理,但保证用户可以可以使用。
- 复制器:面对网络中断或者驱动器故障等临时性故障情况是来保持系统的一致性。当文件已删除,swift会将墓碑文件(.ts)作为最新的版本。
- 数据存储采用“尽量独特”(unique-as-possible)的安置算法。首先考虑的是地区,然后是区域,再后是服务器,最后是存储器。
- 区域:swift可以通过配置“可用区域”来限制故障边界。一个可用区域由一组具有单独的故障隔离的物理硬件组成。
- 地区:因为距离原因,不同地区之间的通信会有所滞后。
Swift工作原理二
最新推荐文章于 2022-03-30 08:59:59 发布