2

假设我想在这 3 个 OSD 节点设置上通过数据弹性实现最大可用容量,其中每个节点包含 2 个 1TB OSD。

使用 2 路复制运行 3 个 Ceph 节点是否安全?

使用 2-way 的优缺点是什么?会不会造成数据脑裂?

最后但并非最不重要的一点是,它将在 2 路复制上运行什么域容错?

谢谢!

4

1 回答 1

3

有时,即使三个副本也是不够的,例如,如果 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 为一个池设置它,而不仅仅是默认设置。

对于n = 4每个具有 1 个 osd 和 1 个 mon 的节点以及 replicamin_size 1size 43 个 osd 的设置可能会失败,只有一个 mon 可能会失败(monitor quorum 意味着一半以上会存活)。4 + 1两个失败的监视器需要多个监视器(至少一个应该是外部的,没有 osd)。对于8监视器(四个外部监视器),三个 mon 可能会失败,因此即使是每个具有1osd 和1mon 的三个节点也可能会失败。我不确定是否可以设置8监视器。

因此,对于三个节点,每个节点都有一个监视器和 osd,唯一合理的设置是副本min_size 2size 3或 2。只有一个节点会失败。如果你有一个外部监视器,如果你设置min_size1(这是非常危险的)和sizeto2或节点可以关闭。但是有了一个副本(没有副本,只有原始数据),您很快就会失去工作。12

于 2016-12-13T23:01:36.303 回答