假设我想在这 3 个 OSD 节点设置上实现最大可用容量和数据弹性,其中每个节点包含 2 个 1TB OSD。
使用 2 路复制运行 3 个 Ceph 节点是否安全?
使用 2-way 的优点和缺点是什么?会不会造成数据脑裂?
最后但并非最不重要的一点是,它将在 2 路复制上运行什么域容错能力?
谢谢!
最佳答案
有时,即使三个副本也不够,例如如果 SSD 磁盘(来自缓存)一起或一个接一个地发生故障。
http://lists.ceph.com/pipermail/ceph-users-ceph.com/2015-October/005672.html
对于两个 osd,您甚至可以手动设置 1 个最小副本和 2 个最大副本(在所有三个 osd 中的一个 osd 出现故障的情况下,我无法自动设置):
osd pool default size = 2
# 写入对象2次
osd pool default min size = 1
# 允许在降级状态下写入 1 个副本
但是这个命令:ceph osd pool set mypoolname set min_size 1
为池设置它,而不仅仅是默认设置。
对于每个具有 1 个 osd 和 1 个 mon 且副本设置为 min_size 1
和 size 4
的 n = 4
节点,三个 osd 可能会失败,只有一个 mon 可能会失败(monitor 法定人数意味着超过一半的人会幸存)。对于两个发生故障的监视器,需要 4 + 1
数量的监视器(至少一个应该是没有 osd 的外部监视器)。对于 8
监视器(四个外部监视器),三个 mon 可能会发生故障,因此,即使三个节点分别具有 1
osd 和 1
mon 也可能会发生故障。我不确定是否可以设置 8
监视器。
因此,对于三个节点,每个节点都有一个监视器和 osd,唯一合理的设置是副本 min_size 2
和 size 3
或 2。只有一个节点可能会出现故障。
如果您有外接显示器,则将 min_size
设置为 1
(这是非常危险的)并将 size
设置为 2
> 或 1
的 2
节点可以关闭。但只要有一个副本(没有副本,只有原始数据),您很快就会失去工作。
关于ceph - 在 3 个 OSD 节点上运行带有 2 路复制的 Ceph 是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35242360/