什么是pg
在Ceph中,PG的全称为Placement Group,中文名称为归置组。PG的用途是将存储的数据进行逻辑归组,从而达到统一管理,提升效率的作用。
Ceph通过CRUSH算法,将若干个object映射到PG上,从而形成一个object与PG的逻辑集合,并以此作为object与OSD的中间层,将PG根据所在POOL的副本数,复制到多个OSD上。下面这个图描述了ceph的整体架构与object、PG及OSD守护进程之间的映射关系.
ceph集群各osd pg数均衡
ceph中各osd的pg数量是近似均匀的,可以认为各pg下的数据容量大致相等,因此从原理上来说保证各osd pg相等,则各osd上的磁盘使用量也差不多相同,但是由于算法做不到绝对均匀的原因某些osd上的pg数会相差比较大,对系统的性能与数据均衡, 和以后的容量扩展造成影响.
动态优化pg osd pool
我们根据用户的当前环境, 提取下面这些数据, 通过一系列算法完成对系统的自动优化.
- 副本数
- osd的数量,
- osd的容量大小
- pool的数量
- 硬盘的速度
- 磁盘类型