在3个OSD节点上运行Ceph并进行双向复制是否安全?

时间:2016-02-06 14:51:18

标签: ceph

假设我希望在这3个OSD节点设置中实现最大可用容量和数据恢复能力,其中每个节点包含2个1TB OSD。

是否安全运行3个具有双向复制的Ceph节点?

使用双向的优缺点是什么?它会导致数据裂脑吗?

最后但并非最不重要的是,它将在双向复制上运行哪个域容错?

谢谢!

1 个答案:

答案 0 :(得分:1)

有时,即使是三个复制品也不够,例如如果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的n = 4个节点以及副本min_size 1size 4三个osd的设置可能会失败,只有一个mon可能会失败(监视器仲裁意味着超过一半会幸存下来的。两个失败的监视器需要4 + 1个监视器(至少一个监视器应该是没有osd的外部监视器)。对于8监视器(四个外部监视器),三个mon可能会失败,因此即使三个节点都有1 osd和1 mon也会失败。我不确定是否可以设置8监视器。

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