Ceph:为什么更多的“安置团体”是“坏事”?

我一直在研究分布式数据库和文件系统,虽然我最初对Hadoop / HBase感兴趣,因为我是一名Java程序员,但是我发现这个关于Ceph的非常有趣的文档,作为一个主要的优点, 现在已经集成在Linux内核。

Ceph作为HDFS的可扩展替代品

有一件事我不明白,我希望你们中的一个能向我解释。 这里是:

一个简单的散列函数将对象标识符(OID)映射到一个放置组,一组存储对象及其所有副本的OSD。 有数量有限的放置组可以创build存储在任何给定OSD上的对象的副本的OSD数量的上限。 数字越高,多个节点的故障将导致数据丢失的可能性越高。 例如,如果每个OSD与每个其他OSD具有副本关系,则整个群集中仅有三个节点的故障可以清除存储在所有三个副本上的数据。

你能向我解释为什么更多的安置组织增加了数据丢失的可能性? 我会认为这是相反的方式。

我目前正在调查ceph作为我们数据存储的替代scheme。 我发现你的问题,并做了一些阅读,希望这个想法是有道理的。 他们进行数据dynamic分配的方式将表明,如果您有大量的OSD(远远超过复制级别)。 那么似乎分布algorithm可能会把文件的某些部分放在大量的OSD上,这样如果你丢失了N个节点(其中N大于你的复制级别),那么很可能你会失去你的数据(或至less有大量的腐败)。 这并不是一个惊喜。 如果在集群中丢失了3个节点(如他们的例子),除非您的复制级别为4或更高,否则我预计会丢失数据。