Yugabyte如何处理单个磁盘故障?

时间:2020-01-26 19:44:31

标签: yugabyte-db

我想知道Yugabyte在单磁盘故障的情况下的行为。具体来说:

  1. 在处理单个磁盘故障时,sysadmin应该遵循什么过程?例如暂时停止TServer,更换磁盘并重新启动它会自动从其他TServer复制该磁盘的平板电脑吗?

  2. 如果未在规定的时间内更换故障磁盘,TServer是否会自动检测到磁盘故障并将该磁盘上的数据传播到其他磁盘?

谢谢。

1 个答案:

答案 0 :(得分:2)

在处理单个磁盘故障时,sysadmin应该遵循什么过程?例如暂时停止TServer,更换磁盘并重新启动它会自动从其他TServer复制该磁盘的平板电脑吗?

是的,以下过程有效,YugabyteDB将识别出数据丢失并重建数据:

  • 停止服务器
  • 替换磁盘
  • 重新启动服务器

如果您想了解此行为,可以使用yb-ctl在笔记本电脑上类似沙盒的环境中进行尝试。设置/过程与此fault-tolerance experiment相同。不用删除节点,只需stop一个节点,删除一个或多个“磁盘”(实际上只是目录),然后start将该节点退回即可。我相信默认情况下会创建两个磁盘。

这里是manual for yb-ctl

PS:如果您正在进行此练习,请考虑向fault-tolerance section on docs捐款,如果您有兴趣的话,很乐意为您提供帮助。

如果在规定的时间内未更换故障磁盘,TServer是否会自动检测到磁盘故障并将该磁盘上的数据散布到其他磁盘上?

是的,如果有足够多的其他节点可复制数据,此操作将自动完成。例如:

  • 在具有复制因子3的单区域设置中:如果您从4个或更多节点开始,则在一个节点发生故障后至少还剩下三个节点。在这种情况下,如果服务器关闭10分钟,则会自动开始重新复制。
  • 在具有复制因子3的多区域设置中: YugabyteDB将尝试为每个区域保留一个数据副本。在这种情况下,为了自动复制数据,一个区域至少需要有两个服务器,以便如果一个服务器失败,则可以将其数据复制到另一个服务器。因此,这意味着至少有6个节点的群集。
相关问题