概述
为了实现不同存储池之间的策略隔离,以及针对不同用途的存储池指定不同的容灾策略,ceph crush使用中间结构即Placement Group(后续均以PG简称)将应用数据对象进行映射后,写入OSD本地存储设备。PG也是我们日常运维当中,操作最多、关注最多、数据恢复和迁移的基本单位。
pg dump
以下几个pg信息中较常用的一些概念
pgid
pg唯一标识,由poolid+pg编号组成。
Acting set
一组osd组合,类似[0,1,2],代表osd.0,osd.1,osd.2这三个osd,代表这组osd当前正承担这个pg对应的副本,该组合是根据osd状态变化、历史pg归属等选择出来的(并非crush直接计算得出,有别于up set)。
Up set
根据crush 计算出来的osd组合,也表示该pg正常状态下应当由哪些osd承担副本,一般通过比对Up set和Acting set就可以得知该pg的大概状态。一般来说up set与acting set的osd组合一致。(表示集群当前承担数据的osd与计算得出应该存在的osd时一致的)。高版本后引入upmap工具,可以重映射或更改up set,从而实现pg迁移。
简单理解,集群的pg数据恢复,就是acting set 变为和up set一致且osd中对象完整的过程。
primary
up set和acting set组合中的一个osd,对应pg为主pg,osd即为主osd
replica
除了主osd外,副本组合中的其他osd成员
backfill
backfill的本质可以理解为pg