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



我想知道在单个磁盘发生故障时Yugabyte的行为是什么。具体说来:

  1. 系统管理员在处理单个磁盘故障时应遵循什么过程?例如,暂时停止磁盘、更改磁盘并重新启动它会自动从其他磁盘服务器复制该磁盘的平板电脑吗?

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

谢谢。

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

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

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

如果您想了解此行为,可以使用yb-ctl在笔记本电脑上类似沙盒的环境中尝试此操作。设置/过程与此容错实验相同。无需删除节点,只需stop一个节点,删除一个或多个"磁盘"(实际上只是目录(并重新start节点。我相信默认情况下会创建两个磁盘。

这是yb-ctl手册.

PS:如果您正在做此练习,请考虑为文档的容错部分做出贡献,如果您有兴趣,很乐意为您提供帮助。

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

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

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

最新更新