#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 в конечном итоге будут иметь максимальный размер.