摘要:在基于三副本策略的分布式存储系统中, 当存储节点上的硬盘出现故障时, 常见的处理方式是等待系统预设的时间. 如果该故障硬盘超时未恢复, 才开始恢复故障硬盘上的副本. 这种处理方式存在的问题是, 当三副本组中存在故障副本时, 如果该副本组再有一个副本所在的硬盘发生故障, 将导致系统无法继续提供服务, 且不能自动恢复. 本文提出一种基于日志副本的改进的Raft共识算法, 即LR-Raft (log replica based Raft), 日志副本没有完整状态机, 可以快速加入集群, 并参与投票与共识, 提升了存在故障硬盘时系统的可用性; 可以解决短时间内三副本中两个副本故障导致集群不可用和丢失数据的问题. 实验结果表明, 在副本组中引入日志副本后, 与原Raft相比, LR-Raft在不同的工作负载下读写时延均明显降低, 吞吐量显著提升.