【问题标题】:How does Yugabyte handle single disk failure?Yugabyte如何处理单盘故障?
【发布时间】:2020-01-28 02:02:40
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: yugabyte-db


    【解决方案1】:

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

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

    • 停止 tservers
    • 更换磁盘
    • 重启 tservers

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

    这里是manual for yb-ctl

    PS:如果您正在做这个练习,请考虑向fault-tolerance section on docs 投稿,如果您有兴趣,我们很乐意为您提供帮助。

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

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

    • 在复制因子为 3 的单区域设置中:如果您从 4 个或更多节点开始,那么在一个节点失败后至少会剩下三个节点。在这种情况下,如果 tserver 停机 10 分钟,则会自动启动重新复制。
    • 在复制因子为 3 的多区域设置中: YugabyteDB 将尝试为每个区域保留一份数据副本。在这种情况下,为了自动重新复制数据,一个区域需要至少有两个 tserver,这样如果一个失败,它的数据可以重新复制到另一个。因此,这意味着至少有 6 个节点的集群。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 2012-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-01
      • 2012-04-29
      相关资源
      最近更新 更多