나는 Prometheus를 확장하는 방법을 이해하고 이에 대한 스토리지 메커니즘을 살펴보려고 노력하고 있습니다.
다음을 가정해 보겠습니다.
- Prometheus 데이터 저장소 디렉터리: 크기 20GB
- 스냅샷 양: 3
- 스냅샷 크기: 각 18GB
질문: 심볼릭 링크가 없으면 각 스냅샷 크기의 합이 디렉터리의 전체 크기보다 어떻게 더 큽니까? 스냅샷 촬영에 필요한 모든 데이터가 포함된다는 것을 어떻게 보장합니까?
나는 Prometheus의 저장 메커니즘이 실제 데이터 대신 참조를 저장할 것이라고 가정합니다. 하지만 여기서는 정확히 어떤 시스템이 작동하고 있는지, 그 뒤에 숨은 메커니즘을 찾으려고 노력했습니다.
올바른 방향에 대한 조언도 환영합니다. 최소한 원리는 알고 싶습니다.
답변1
Prometheus 스냅샷 사용딱딱한v2.1 이후의 링크. 이는 OP에서 관찰한 파일 시스템 사용 동작을 설명합니다.
스냅샷은 기존 블록의 하드 링크와 현재 열려 있는 블록의 덤프로 구성됩니다. 하드 링크가 사용 중이므로 디스크에 복사본이 하나만 보관되므로 이전 블록의 스냅샷은 추가 디스크 공간을 차지하지 않습니다. 그러나 해당 권한이나 사용자/그룹을 변경하면 Prometheus가 중단될 수 있습니다. 완료되면 스냅샷 디렉터리를 rm -rf할 수 있습니다. 처음에는 스냅샷이 추가 디스크 공간을 거의 차지하지 않지만 원래 블록이 삭제/압축되면 스냅샷이 해당 디스크 공간을 유지하게 됩니다.
원천:https://www.robustperception.io/take-snapshots-of-prometheus-data/