数据平衡
当在集群中新增一个OSD设备时,整个集群将会发生数据迁移使数据重新分布达到均衡。在Ceph集群中数据迁移的的基本单位是PG。其实在迁移过程中是将PG中的所有对象作为一个整体来进行迁移。
数据迁移触发流程:
1、当新加入一个OSD时,会改变系统的CRUSH Map,从而引起对象映射过程中的变化;
2、PG到OSD的映射关系发生了变化,从而引发数据的迁移。
当ceph集群中出现组件故障时(通常是指OSD,当然也有可能是网络),ceph会将OSD标记为Down,如果在300秒内MON没有收到回复,集群就会进入恢复状态。这个等待时间可以修改ceph配置文件中“mon osd down out interval = xxx”项来调整等待时间。
Peering
当新的OSD启动或者某个OSD失效时,OSD上的主PG会发起一个Peering的过程;Peering过程是指一个PG内的所有副本通过PG日志来达成数据一致的过程,当Peering完成后,PG就可以对外提供读写服务。
Recovery&Backfill
Ceph的Recovery过程是根据在Peering的过程中产生的PG日志推算出的不一致对象列表来修复其他副本上的数据。
Recovery过程的依据是根据PG日志来推测出不一致的对象进行修复;当某个OSD长时间损坏后重新将新的OSD加入集群,它已经无法根据PG日志来修复,这个时候则需要执行Backfill(回填)过程。Backfill过程是通过逐一对比两个PG的对象列表来修复。当新的OSD加入集群产生的数据迁移,也是通过Backfill过程来完成数据一致。