Использование реального пространства Ceph RBD намного больше, чем использование диска после установки

#kubernetes #ceph

Вопрос:

Я пытаюсь понять, как узнать текущее и реальное использование диска в кластере ceph, и я заметил, что вывод rbd du сильно отличается от вывода df-h, когда rbd монтируется в виде диска.

Пример:

Внутри набора инструментов у меня есть следующее:

 $ rbd du replicapool/csi-vol-da731ad9-eebe-11eb-9fbd-f2c976e9e23a
warning: fast-diff map is not enabled for csi-vol-da731ad9-eebe-11eb-9fbd-f2c976e9e23a. operation may be slow.
2021-09-01T13:53:23.482 0000 7f8c56ffd700 -1 librbd::object_map::DiffRequest: 0x557402c909c0 handle_load_object_map: failed to load object map: rbd_object_map.8cdeb6e704c7e0
NAME                                          PROVISIONED  USED
csi-vol-da731ad9-eebe-11eb-9fbd-f2c976e9e23a      100 GiB  95 GiB
 

Но внутри модуля, который монтирует этот rbd, у меня есть:

 $ k exec -it -n monitoring prometheus-prometheus-operator-prometheus-1 -- sh
Defaulting container name to prometheus.
Use 'kubectl describe pod/prometheus-prometheus-operator-prometheus-1 -n monitoring' to see all of the containers in this pod.
/prometheus $ df -h
Filesystem                Size      Used Available Use% Mounted on
overlay                  38.0G     19.8G     18.2G  52% /
...
/dev/rbd5                97.9G     23.7G     74.2G  24% /prometheus
...
 

Есть ли причина, по которой эти два результата так сильно отличаются? Может ли это быть проблемой, когда ceph отслеживает общее пространство, используемое кластером, чтобы узнать, сколько свободного места доступно?

Комментарии:

1. Я бы задал этот вопрос на официальном репо GitHub Ceph RBD CSI driver . Вы можете создать там новую проблему и спросить об этом несоответствии.

2. Может ли это быть из-за того, что ceph дублирует объекты в бэкэнде экранного меню? В моем случае ceph-s выводит 32 гигабайта в объектах, но общее использование составляет 89 гигабайт. Я заметил, что использование составляет от 3 до 4 раз в зависимости от размеров объекта

3. Я действительно нашел причину, спросив в канале ceph Slack. Я на самом деле недостаточно эксперт, чтобы объяснить подробно, но более или менее это зависит от того, что rbd монтируются без флага сброса. Это означает, что если файл записан внутри rbd и позже удален, этот размер все равно будет считаться измененным ceph. Это означает, что если отброшенный флаг не используется, все rbd в конечном итоге будут иметь максимальный размер.