Я пытаюсь понять, как масштабировать мой Прометей и рассмотреть механику хранения для этого.
Предположим следующее:
- Каталог хранилища данных Prometheus: размер 20 ГБ
- Количество снимков: 3
- Размер снимка: 18 ГБ каждый
Вопрос: Без символических ссылок, как сумма размеров каждого снимка может быть больше общего размера каталога? Как гарантируется, что снимок будет содержать все необходимые данные?
Я предполагаю, что механизм хранения Prometheus будет хранить ссылки вместо реальных данных. Но какая именно система здесь работает, я попытался выяснить механику, стоящую за этим.
Указатели в правильном направлении тоже приветствуются. Хотелось бы хотя бы понять принципы.
решение1
Снимки Prometheus используютжесткийссылки в v2.1 и далее. Это объясняет поведение использования файловой системы, наблюдаемое OP.
Снимки состоят из жестких ссылок существующих блоков и дампа текущих открытых блоков. Поскольку используются жесткие ссылки, это означает, что снимки старых блоков не занимают дополнительного дискового пространства, поскольку на диске хранится только одна копия, однако вы можете сломать Prometheus, если измените их, их разрешения или их пользователя/группу. Когда вы закончите, вы можете rm -rf каталога снимков, поскольку, хотя снимок изначально занимает немного дополнительного дискового пространства, после удаления/сжатия исходного блока снимок будет тем, что будет удерживать это дисковое пространство.
Источник:https://www.robustperception.io/taking-snapshots-of-prometheus-data/