分布式存储系统 之 数据备份

来源:互联网 发布:python for range 编辑:程序博客网 时间:2024/04/24 06:55

为了保证分布式存储系统的高可靠和高可用,数据在系统中一般存储多个副本。当某个存储节点出故障时,系统能够自动将服务切换到其他的副本,从而实现自动容错。

分布式存储系统通过复制协议将数据同步到多个存储节点,并确保多个副本之间的数据一致性。同一份数据有多个副本,仅有一个为主副本 Primary,其他的副本为备份副本 Backup,数据从主副本复制到备份副本。

复制协议分为两种:强同步复制及异步复制,两者区别如字面意思,即用户的写请求是否需要同步到备份副本才算成功。假如备份副本不止一个,复制协议还会要求写请求至少需要同步到几个备份副本。

Created with Raphaël 2.1.0客户端客户端主副本主副本备份副本备份副本发送数据写请求同步请求给备份副本数据写请求数据写完毕数据写完成
  • 实现强同步协议时,主副本可以将操作日志并发发给所有备份副本并且等待回复,只要至少1个备份副本返回成功就可以回复客户端操作成功。请同步的好处在于如果主副本出现故障,分布式存储系统可以自动将服务切换到最新的备份的副本而不用担心数据丢失的情况。
  • 异步模式下,主副本不需要等待备份副本的回应,只需要本地修改成功就可以告知客户端修改告知客户端写操作成功。好处在于系统可用性好,但是一致性较差,如果主副本发生不可恢复的故障,可能丢失最后一部分更新操作。
Created with Raphaël 2.1.0客户端A客户端A主副本主副本备份副本A备份副本A备份副本B备份副本B1. 发送数据写请求同步请求给所有备份副本2. 数据写请求2. 数据写请求3. 数据写完毕4. 数据写完成3. 数据写完毕

基于主副本的复制协议(Primary-based protocol)要求在任何时刻只能有一个副本为主副本,由它来确定写操作之间的顺序。如果主副本出现故障,需要选举一个备份副本成为新的主副本,这步操作称之为选举,经典的选举协议为 Paxos 协议。

0 0
原创粉丝点击