假设我希望在这3个OSD节点设置中实现最大可用容量和数据恢复能力,其中每个节点包含2个1TB OSD。
是否安全运行3个具有双向复制的Ceph节点?
使用双向的优缺点是什么?它会导致数据裂脑吗?
最后但并非最不重要的是,它将在双向复制上运行哪个域容错?
谢谢!
答案 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 1
和size 4
三个osd的设置可能会失败,只有一个mon可能会失败(监视器仲裁意味着超过一半会幸存下来的。两个失败的监视器需要4 + 1
个监视器(至少一个监视器应该是没有osd的外部监视器)。对于8
监视器(四个外部监视器),三个mon可能会失败,因此即使三个节点都有1
osd和1
mon也会失败。我不确定是否可以设置8
监视器。
因此,对于每个具有一个监视器和osd的三个节点,唯一合理的设置是副本min_size 2
和size 3
或2.只有一个节点可能失败。
如果您有外部监视器,如果将min_size
设置为1
(这非常危险),size
设置为2
或1
{{1}节点可以关闭。但是有了一个副本(没有副本,只有原始数据),你很快就会失去工作。