目的
集群中存在多种性能不一样的磁盘与主机
为了保证 CEPH 集群吞吐与性能可以得到更好的优化
保证了磁盘的数据容量一致的情况下优先使用性能更好的磁盘作出 IO 处理
环境说明
假设1
当前集群环境中混用了 SSD 与 SATA 磁盘
假设2
当前具有一批大小一样的 SATA 磁盘
其中 OSD.0 已经使用了 2 年
其他 OSD 磁盘都是新采购, 性能会比 OSD.0 更加好
总结
CEPH 会认为每个磁盘能力一样
会平均每个磁盘的 IO 能力(primary affinity)与存储空间能力(weight)
primary affinity 参数可以在不改变磁盘存储能力的情况下, 降低在 CEPH 集群使用过程中对该 osd 的认购 primary pg 能力
参考下图

从上图看出来, priamry osd 在每次 peering 时, 都会比 secondary osd 具有更多的 IO
性能
改变 primary affinity 的值, 我们可以减少某个 OSD 中 primary pg 认购
修改方法
配置文件修改
/etc/ceph/ceph.conf
[mon]
mon osd allow primary affinity = true
手动修改
查询
[root@cephsvr-128040 ~]# ceph daemon /var/run/ceph/ceph-mon.$(hostname -s).asok config show | grep primary
"mon_osd_allow_primary_affinity": "false",
修改
[root@cephsvr-128040 ~]# ceph tell mon.\* injectargs '--mon_osd_allow_primary_affinity=true'
mon.cephsvr-128040: injectargs:mon_osd_allow_primary_affinity = 'true' (not observed, change may require restart)
mon.cephsvr-128214: injectargs:mon_osd_allow_primary_affinity = 'true' (not observed, change may require restart)
mon.cephsvr-128215: injectargs:mon_osd_allow_primary_affinity = 'true' (not observed, change may require restart)
验证
[root@cephsvr-128040 ~]# ceph daemon /var/run/ceph/ceph-mon.$(hostname -s).asok config show | grep primary
"mon_osd_allow_primary_affinity": "true",
修改 primary affinity
验证当前 osd.0 中 pg primary 个数
[root@cephsvr-128040 ~]# ceph pg dump | grep active+clean | egrep "\[0," | wc -l
dumped all
75
修改 parimary affinity
[root@cephsvr-128040 ~]# ceph osd primary-affinity osd.0 0.5
set osd.0 primary-affinity to 0.5 (8327682)
验证修改后 osd.0 中 pg primary 个数
[root@cephsvr-128040 ~]# ceph pg dump | grep active+clean | egrep "\[0," | wc -l
dumped all
69
ceph 验证方法
参考下面命令
[root@cephsvr-128040 ~]# ceph osd tree | more
ID CLASS WEIGHT TYPE NAME STATUS REWEIGHT PRI-AFF
-1 216.00000 root default
-10 72.00000 rack racka07
-3 72.00000 host cephsvr-128214
12 hdd 6.00000 osd.12 up 1.00000 1.00000
13 hdd 6.00000 osd.13 up 1.00000 1.00000
14 hdd 6.00000 osd.14 up 1.00000 1.00000
15 hdd 6.00000 osd.15 up 1.00000 1.00000
16 hdd 6.00000 osd.16 up 1.00000 1.00000
17 hdd 6.00000 osd.17 up 1.00000 1.00000
18 hdd 6.00000 osd.18 up 1.00000 1.00000
19 hdd 6.00000 osd.19 up 1.00000 1.00000
20 hdd 6.00000 osd.20 up 1.00000 1.00000
21 hdd 6.00000 osd.21 up 1.00000 1.00000
22 hdd 6.00000 osd.22 up 1.00000 1.00000
23 hdd 6.00000 osd.23 up 1.00000 1.00000
-9 72.00000 rack racka12
-2 72.00000 host cephsvr-128040
0 hdd 6.00000 osd.0 up 1.00000 0.50000 <- 这里
1 hdd 6.00000 osd.1 up 1.00000 1.00000
2 hdd 6.00000 osd.2 up 1.00000 1.00000
本文旨在优化Ceph Luminous集群,确保在混合使用不同性能磁盘的环境下,IO处理优先发生在高性能磁盘上。通过调整primary affinity参数,可以在不改变磁盘存储能力的情况下,减少低性能OSD的primary PG,从而提高集群整体吞吐和性能。文中详细介绍了查询、修改和验证primary affinity的方法。
970

被折叠的 条评论
为什么被折叠?



