这有意义吗?在 3 节点设置上是否可行,crush 规则应该是什么样子?就是现在的那个。这背后的想法是补偿多个 osd 中断(例如,每个节点 3 个 osd 将失败)
# rules
rule replicated_rule {
id 0
type replicated
min_size 1
max_size 10
step take default
step chooseleaf firstn 0 type host
step emit
}
这有意义吗?在 3 节点设置上是否可行,crush 规则应该是什么样子?就是现在的那个。这背后的想法是补偿多个 osd 中断(例如,每个节点 3 个 osd 将失败)
# rules
rule replicated_rule {
id 0
type replicated
min_size 1
max_size 10
step take default
step chooseleaf firstn 0 type host
step emit
}
是的,这是可能的
step chooseleaf firstn 0 type osd
。如果这有意义是另一个问题,例如您的存储开销将非常高。如果你有能力做到这一点,但是 ceph 被设计为一个高度可扩展的解决方案,使用这种设置你有一种极端的情况。min_size = 2
通常,使用和,基于主机的复制就足够了size = 3
。这样一来,一台主机上有多少 OSD 发生故障并不重要,即使第二台主机出现故障,您的数据也不会丢失,只会降级,直到您将 OSD 重新联机。但还要注意,只有三台主机您将无法恢复故障节点,因此集群将在降级状态下运行,直到节点被修复或新节点加入集群。你可以编辑你的crush规则(或创建一个新的先测试它),这样它首先选择所有可用的主机,然后选择OSD的数量,它可能看起来像这样:
你应该在申请之前测试它
crushtool
。