ceph - 未及时深度清理的 Ceph PG 不断增加
问题描述
我大约 4 天前注意到了这一点,现在不知道该怎么办。问题如下:
我有一个 6 节点 3 监视器 ceph 集群,有 84 个 osds、72x7200rpm 旋转磁盘和 12xnvme ssds 用于日志记录。清理配置的每个值都是默认值。集群中的每个 pg 都是 active+clean,每个集群 stat 都是绿色的。然而,没有及时进行深度清洗的PG不断增加,目前为96。ceph -s 的输出:
cluster:
id: xxxxxxxxxxxxxxxxx
health: HEALTH_WARN
1 large omap objects
96 pgs not deep-scrubbed in time
services:
mon: 3 daemons, quorum mon1,mon2,mon3 (age 6h)
mgr: mon2(active, since 2w), standbys: mon1
mds: cephfs:1 {0=mon2=up:active} 2 up:standby
osd: 84 osds: 84 up (since 4d), 84 in (since 3M)
rgw: 3 daemons active (mon1, mon2, mon3)
data:
pools: 12 pools, 2006 pgs
objects: 151.89M objects, 218 TiB
usage: 479 TiB used, 340 TiB / 818 TiB avail
pgs: 2006 active+clean
io:
client: 1.3 MiB/s rd, 14 MiB/s wr, 93 op/s rd, 259 op/s wr
我该如何解决这个问题?此外,ceph 健康详细信息输出显示此非深度清理 pg 警报于 1 月 25 日开始,但我之前没有注意到这一点。我注意到这一点的时间是一个 osd 宕机 30 秒然后起床的时候。可能与这个问题有关吗?它会自行解决吗?我应该篡改擦洗配置吗?例如,如果我将 osd_max_scrubs 从 1 增加到 2,我可能会在客户端面临多少性能损失?
解决方案
您可以将深度磨砂期设置为 2 周,以延长深度磨砂期。安装在
osd_deep_scrub_interval = 604800
利用:
osd_deep_scrub_interval = 1209600
Eblock 先生有一个好主意,可以手动强制一些 pgs 进行深度清理,以便在 2 周内将这些操作分散开来。
推荐阅读
- python - 为什么python中基于多线程的pipeline可以提高效率
- swift - 防止 macOS 应用程序停留在 Dock 的“最近”部分
- python - 正则表达式的字符串是带有最小长度为 6 的数字的大写字母,以及带有最小长度为 6 的数字和连字符且只有数字的大写字母
- java - IntelliJ showing alert: "Copy constructor does not copy field."
- spring - 如何使用 Spring 的 BackendIdConverter?
- c - 演示需要用于网络摄像头图像的 OpenCV。(已安装 opencv 并设置 opencv4=1)
- database - 如何将数据库从 odoo 14 导入到 postgresql?
- reactjs - 我们如何在多选下拉框中传递整个选项列表
- arrays - 在 C 中的数组中已经计算过一次后,如何停止计算特定值的重复项?
- javascript - 使用网络摄像头眼动追踪进行交互式数据分析