设置 Ceph Crushmap 的最佳可调参数

laurentbarbe

如果您刚刚升级到 Ceph 0.75,您可能会看到此消息

$ ceph health HEALTH_WARN crush map has non-optimal tunables

有关更多说明,所有内容都在文档中说明:https://ceph.net.cn/docs/master/rados/operations/crush-map/#warning-when-tunables-are-non-optimal

在执行此操作之前,请阅读文档!

$ ceph osd crush tunables optimal

验证 crushmap 中的更改

$ ceph osd getcrushmap -o crushmap_optimal.bin
got crush map from osdmap epoch 186

$ crushtool -d crushmap_optimal.bin -o crushmap_optimal.txt

$ head -n6 crushmap_optimal.txt
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1

有关这些选项的更多详细信息,您可以查看文档:https://ceph.net.cn/docs/master/rados/operations/crush-map/#crush-tunables

- choose_local_tries: 本地重试次数。旧值为 2,最佳值为 0。- choose_local_fallback_tries: 旧值为 5,最佳值为 0。- choose_total_tries: 选择项目总共尝试的次数。旧值为 19,后续测试表明,对于典型的集群,50 的值更合适。对于非常大的集群,可能需要更大的值。
- chooseleaf_descend_once: 递归 chooseleaf 尝试是否重试,或者只尝试一次并允许原始放置重试。旧默认值为 0,最佳值为 1。

请注意,在更新 crushmap 之前,您必须确保客户端与这些选项兼容。例如,不兼容的内核会导致内核日志中出现“feature set mismatch”。如果您不想启用最佳可调参数,可以使用选项 mon warn on legacy crush tunables = false 在 ceph.conf 的 [mon] 部分禁用此警告。