簡體   English   中英

ceph df max 可用計算錯誤

[英]ceph df max available miscalculation

Ceph 集群顯示 ceph ceph df output 出現以下奇怪行為:

--- RAW STORAGE ---
CLASS  SIZE     AVAIL    USED     RAW USED  %RAW USED
hdd    817 TiB  399 TiB  418 TiB   418 TiB      51.21
ssd    1.4 TiB  1.2 TiB   22 GiB   174 GiB      12.17
TOTAL  818 TiB  400 TiB  418 TiB   419 TiB      51.15

--- POOLS ---
POOL                     ID  PGS   STORED   OBJECTS  USED     %USED  MAX AVAIL
pool1                    45   300   21 TiB    6.95M   65 TiB  20.23     85 TiB
pool2                    50    50   72 GiB  289.15k  357 GiB   0.14     85 TiB
pool3                    53    64  2.9 TiB  754.06k  8.6 TiB   3.24     85 TiB
erasurepool_data         57  1024  138 TiB   50.81M  241 TiB  48.49    154 TiB
erasurepool_metadata     58     8  9.1 GiB    1.68M   27 GiB   2.46    362 GiB
device_health_metrics    59     1   22 MiB      163   66 MiB      0     85 TiB
.rgw.root                60     8  5.6 KiB       17  3.5 MiB      0     85 TiB
.rgw.log                 61     8   70 MiB    2.56k  254 MiB      0     85 TiB
.rgw.control             62     8      0 B        8      0 B      0     85 TiB
.rgw.meta                63     8  7.6 MiB       52   32 MiB      0     85 TiB
.rgw.buckets.index       64     8   11 GiB    1.69k   34 GiB   3.01    362 GiB
.rgw.buckets.data        65   512   23 TiB   33.87M   72 TiB  21.94     85 TiB

如上所示,可用存儲為 399TiB,池列表中的最大可用性顯示為 85TiB。 我為每個池復制池使用 3 個副本,為erasurepool_data使用 3+2 擦除代碼。

據我所知, Max Avail段根據副本大小顯示最大原始可用容量。 所以它達到 85*3=255TiB。 同時集群顯示近 400 個可用。

信任哪個? 這只是一個錯誤嗎?

當您添加糾刪碼池時,在 154 處,您得到 255+154 = 399。

MAX AVAIL列表示在第一個 OSD 變滿之前可以使用的數據量。 它考慮了來自 CRUSH map 的磁盤上數據的預計分布,並使用“第一個填滿的 OSD”作為目標。 它似乎不是一個錯誤。 如果MAX AVAIL不是您所期望的,請使用 ceph osd 樹查看數據分布,並確保您具有均勻分布。

您還可以在此處查看一些有用的帖子,這些帖子解釋了一些錯誤計算:

由於您涉及擦除編碼,請查看此 SO 帖子:

原來最大可用空間是根據集群中最滿的 osds 計算的,與集群中的總可用空間無關。 從我發現這種波動主要發生在小集群上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM