Ceph:当足够多的磁盘无法导致数据丢失时会发生什么?

时间:2018-08-20 15:30:59

标签: ceph

想象一下,我们在Ceph中有足够的磁盘故障导致实际数据丢失。 (例如,所有3个副本在3个副本中失败;或> m在k + m擦除编码中失败)。现在会发生什么?

  1. 集群仍然稳定吗?也就是说,我们当然会丢失这些数据,但是其他数据和新数据仍然可以正常工作。

  2. 是否可以获取丢失的对象ID的列表?

在我们的用例中,我们可以从脱机备份中恢复丢失的数据。但是,要做到这一点,我们需要知道实际丢失了哪些数据-即获取丢失的对象ID的列表。

1 个答案:

答案 0 :(得分:1)

答案1:如果发生什么情况?

Ceph将数据分布在展示位置组(PG)中。将它们视为您的数据池中的碎片。默认情况下,PG在您的存储设备上存储为3份副本。同样,默认情况下,ceph必须知道至少有2个副本可以访问。如果只有1个副本可用(因为2个OSD(又名磁盘)已脱机),则对该PG的写入将被阻止,直到最小数量的副本(2)再次联机。如果PG的所有副本都处于脱机状态,则您的读取将被阻止,直到一个副本联机为止。如果在线拥有足够的副本,则可以免费访问所有其他PG。

答案2:受什么影响?

您可能指的是类似对象存储的S3。这是在rados对象存储(即ceph的关键存储)之上建模的。可以跟踪有问题的PG,并将其与给定的rados对象相关联。有关于identifying blocked RadosGW requests的文档,还有关于getting from defective PGs to the rados objects的另一节。