CephFS 池无法使用所有可用的原始 space (MAX_AVAIL < AVAIL)
CephFS pool can't use all the available raw space (MAX_AVAIL < AVAIL)
我有一个 Ceph 集群,打算 运行 作为硬盘驱动器机箱上的 CephFS,提供 9PiB 原始 space 多个服务器。
我创建了一个 3+3 擦除编码池,它应该跨越我硬盘的整个原始 space。
令人惊讶的是,它似乎只占用了 9PiB 可用空间中的 6PiB,所以当我将 ~2.5PiB 数据写入其中(以及 ~2.5PiB 更多校验和)时,它说我只有 500TiB space可用(对应1PiB原始space)。
这是 ceph df
的输出:
$ sudo ceph df
RAW STORAGE:
CLASS SIZE AVAIL USED RAW USED %RAW USED
hdd 8.9 PiB 3.7 PiB 5.2 PiB 5.2 PiB 58.62
ssd 35 TiB 15 TiB 20 TiB 20 TiB 57.96
TOTAL 9.0 PiB 3.7 PiB 5.2 PiB 5.3 PiB 58.62
POOLS:
POOL ID STORED OBJECTS USED %USED MAX AVAIL
cephfs_metadata 7 5.1 GiB 1.55M 5.7 GiB 0.15 780 GiB
cephfs_erdata 8 2.5 PiB 687.98M 5.2 PiB 84.29 500 TiB
请注意 POOLS
池 cephfs_erdata 部分中的 MAX AVAIL
列指出仅剩余 500TiB,而 RAW STORAGE
[=18] 中的 AVAIL
列=] CLASS
有 3.7PiB 可用。
这是什么意思?我可以为该池分配更多 space 吗?为什么 Ceph 本身不分配所有可用的 space?
我们找出了这个问题的原因。
由于配置错误,我们的 CephFS 使用 ssd 驱动器不仅用于存储元数据,还用于存储实际数据。每当 OSD 运行 超出 space 并且无法在其上放置更多数据时,CephFS 运行 超出 space。所以 SSD 是 MAX_AVAIL
.
的瓶颈
即使是 hdd Ceph OSD 也没有均匀加载。所以我们不得不运行reweight。之后数据均匀分布,MAX_AVAIL
大小接近AVAIL
.
我有一个 Ceph 集群,打算 运行 作为硬盘驱动器机箱上的 CephFS,提供 9PiB 原始 space 多个服务器。
我创建了一个 3+3 擦除编码池,它应该跨越我硬盘的整个原始 space。
令人惊讶的是,它似乎只占用了 9PiB 可用空间中的 6PiB,所以当我将 ~2.5PiB 数据写入其中(以及 ~2.5PiB 更多校验和)时,它说我只有 500TiB space可用(对应1PiB原始space)。
这是 ceph df
的输出:
$ sudo ceph df
RAW STORAGE:
CLASS SIZE AVAIL USED RAW USED %RAW USED
hdd 8.9 PiB 3.7 PiB 5.2 PiB 5.2 PiB 58.62
ssd 35 TiB 15 TiB 20 TiB 20 TiB 57.96
TOTAL 9.0 PiB 3.7 PiB 5.2 PiB 5.3 PiB 58.62
POOLS:
POOL ID STORED OBJECTS USED %USED MAX AVAIL
cephfs_metadata 7 5.1 GiB 1.55M 5.7 GiB 0.15 780 GiB
cephfs_erdata 8 2.5 PiB 687.98M 5.2 PiB 84.29 500 TiB
请注意 POOLS
池 cephfs_erdata 部分中的 MAX AVAIL
列指出仅剩余 500TiB,而 RAW STORAGE
[=18] 中的 AVAIL
列=] CLASS
有 3.7PiB 可用。
这是什么意思?我可以为该池分配更多 space 吗?为什么 Ceph 本身不分配所有可用的 space?
我们找出了这个问题的原因。
由于配置错误,我们的 CephFS 使用 ssd 驱动器不仅用于存储元数据,还用于存储实际数据。每当 OSD 运行 超出 space 并且无法在其上放置更多数据时,CephFS 运行 超出 space。所以 SSD 是
的瓶颈MAX_AVAIL
.即使是 hdd Ceph OSD 也没有均匀加载。所以我们不得不运行reweight。之后数据均匀分布,
MAX_AVAIL
大小接近AVAIL
.