这是否有意义,是否可以在 3 节点设置上实现,挤压规则应该是什么样子?这就是当前的情况。这背后的想法是补偿多个 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
}
答案1
是的,这是可能的step chooseleaf firstn 0 type osd
。如果这有意义是另一个问题,例如您的存储开销会非常高。如果您有能力,您可以做到这一点,但 ceph 被设计为一个高度可扩展的解决方案,使用此设置您会遇到一种极端情况。通常,基于主机的复制足以满足min_size = 2
和 的要求size = 3
。这样,一台主机上有多少个 OSD 发生故障并不重要,即使第二台主机发生故障,您的数据也不会丢失,只会降级,直到您使 OSD 重新上线。但还要注意,如果只有三台主机,您将无法恢复故障节点,因此集群将在降级状态下运行,直到节点修复或新节点加入集群。
您可以编辑您的挤压规则(或者先创建一个新主机来测试它),因此它首先选择所有可用的主机,然后选择 OSD 的数量,它可能如下所示:
step choose firstn 0 type host
step chooseleaf firstn 2 type osd
您应该在申请之前对其进行测试crushtool
。