Ceph客户端向 monitor 请求集群的状态 并向 pool 中写入数据 根据 PGs 的数量 通过CRUSH 算法将其映射到不同的 OSD 节点上 实现数据的存储 可以把 pool 理解为存储object数据的逻辑单元
创建一个 pool 资源池
其名字为 z0ukun,PGs 数量设置为 64 设置 PGs 的同时还需要设置 PGP(通常PGs和PGP的值是相同的) cd ceph-admin ceph osd pool create z0ukun 64 64
查看集群 pool 信息
ceph osd lspools
查看资源池副本的数量
默认创建的资源池包含3个副本 ceph osd pool get z0ukun size
查看PGs和PGP数量
ceph osd pool get z0ukun pg_num ceph osd pool get z0ukun pgp_num
调整 pool 副本数量为2
ceph osd pool set z0ukun size 2
调整pg_num和pgp_num
ceph osd pool set z0ukun pg_num 128 ceph osd pool set z0ukun pgp_num 128
如果在生产环境中调整 pool 的参数可能会涉及到数据的迁移,因此调整时候需要重点评估再做调整
Ceph Monitor 扩容
此时Ceph集群的monitor是单点 一旦cephnode-01出现故障 整个集群将处于不可用的状态 因此需要部署monitor的高可用 由于monitor使用Paxos算法 因此需要确保集群有2n+1个节点才能保障集群能够正常参与仲裁选举 将cephnode-02和cephnode-03也当作是monitor节点加入到集群中来
扩容monitor节点
ceph-deploy mon add cephnode-02 ceph-deploy mon add cephnode-03
查看当前集群仲裁选举的情况
ceph quorum_status --format json-pretty
health: HEALTH_WARN mons are allowing insecure global_id reclaim clock skew detected on mon.cephnode-02 这是集群时间不同步导致的
修改ceph配置中的时间偏差阈值
1、vim /etc/ceph/ceph.conf 在global下面添加 mon clock drift allowed = 2 mon clock drift warn backoff = 30 2、同步到其他节点 ceph-deploy --overwrite-conf config push cephnode-02 ceph-deploy --overwrite-conf config push cephnode-03 3、每个节点重启mon systemctl restart ceph-mon.target