¿Cómo se almacenan las instantáneas de Prometheus en el disco?

¿Cómo se almacenan las instantáneas de Prometheus en el disco?

Estoy tratando de entender cómo escalar mi Prometheus y mirar la mecánica de almacenamiento para esto.

Supongamos lo siguiente:

  1. Directorio de almacenamiento de datos de Prometheus: 20 GB de tamaño
  2. Cantidad de instantáneas: 3
  3. Tamaño de instantánea: 18 GB cada una

Pregunta: Sin enlaces simbólicos, ¿cómo es que la suma del tamaño de cada instantánea es mayor que el tamaño total del directorio? ¿Cómo se garantiza que la captura de una instantánea contendrá todos los datos necesarios?

Supongo que el mecanismo de almacenamiento de Prometheus almacenará referencias en lugar de datos reales. Pero, ¿qué sistema funciona exactamente aquí? Intenté descubrir el mecánico detrás de esto.

También son bienvenidos los consejos en la dirección correcta. Me gustaría entender al menos los principios.

Respuesta1

Uso de instantáneas de Prometheusduroenlaces en v2.1 en adelante. Eso explica el comportamiento de uso del sistema de archivos observado por el OP.

Las instantáneas se componen de enlaces físicos de bloques existentes y un volcado de los bloques abiertos actuales. Como se utilizan enlaces físicos, esto significa que las instantáneas de bloques más antiguos no ocupan espacio adicional en el disco, ya que solo se guarda una copia en el disco; sin embargo, puede romper Prometheus si los cambia, sus permisos o su usuario/grupo. Cuando haya terminado, puede rm -rf el directorio de la instantánea, ya que si bien la instantánea ocupa poco espacio adicional en el disco inicialmente, una vez que el bloque original se elimina/compacta, la instantánea será lo que mantendrá ese espacio en el disco utilizado.

Fuente:https://www.robustperception.io/ Taking-snapshots-of-prometheus-data/

información relacionada