Saltar al contenido principal

Descripción

Contiene información sobre las políticas de almacenamiento y los volúmenes definidos en la configuración del servidor.

Columnas

  • policy_name (String) — El nombre de la política de almacenamiento.
  • volume_name (String) — El nombre del volumen.
  • volume_priority (UInt64) — La prioridad del volumen.
  • disks (Array(String)) — La lista de todos los nombres de discos que forman parte de esta política de almacenamiento.
  • volume_type (Enum8(‘JBOD’ = 0, ‘SINGLE_DISK’ = 1, ‘UNKNOWN’ = 2)) — El tipo de volumen: JBOD o un único disco.
  • max_data_part_size (UInt64) — El tamaño máximo de una parte que puede almacenarse en cualquiera de los discos del volumen.
  • move_factor (Float32) — Cuando la cantidad de espacio disponible cae por debajo de este factor, los datos empiezan a moverse automáticamente al siguiente volumen, si lo hay (de forma predeterminada, 0.1).
  • prefer_not_to_merge (UInt8) — No debe usar esta configuración. Deshabilita la fusión de partes en este volumen (esto es perjudicial y provoca una degradación del rendimiento).
  • perform_ttl_move_on_insert (UInt8) — Deshabilita el TTL move al hacer INSERT de partes. De forma predeterminada (si está habilitado), si se inserta una parte que ya ha expirado según la regla de TTL move, se mueve inmediatamente al volumen o disco declarado en la regla de movimiento.
  • load_balancing (Enum8(‘ROUND_ROBIN’ = 0, ‘LEAST_USED’ = 1)) — Política de balanceo entre discos: round_robin o least_used.

Selección de volumen en INSERT

Cuando INSERT crea una nueva parte, ClickHouse elige un disco de destino siguiendo las reglas que se indican a continuación, en este orden. Se aplica la primera regla que coincida y pueda reservar espacio para la parte; de lo contrario (si la regla no se aplica, no hay espacio libre o se supera max_data_part_size), la evaluación continúa con la siguiente regla.
  1. Regla de movimiento TTL — si una cláusula TTL <expr> TO VOLUME 'X' (o TO DISK 'X') ya ha vencido para las filas que se están insertando, y perform_ttl_move_on_insert = 1 (valor predeterminado) en el volumen de destino TTL (para TO DISK 'X', el volumen que contiene el disco X), la parte se escribe directamente en ese destino. Si la reserva allí falla, el insert pasa a los pasos 2–4; se registra una advertencia, pero INSERT no falla solo por este motivo.
  2. max_data_part_size — un volumen rechaza partes mayores que su max_data_part_size. Esto se comprueba por volumen; no bloquea una reserva del paso 1 TTL ... TO DISK 'X', que apunta directamente al disco.
  3. volume_priority — entre los volúmenes restantes, se elige el que tenga el valor volume_priority más bajo. Los volúmenes sin un <volume_priority> explícito se ordenan según su posición en la configuración.
  4. load_balancing — una vez elegido un volumen, el disco dentro de ese volumen se selecciona según su política de load_balancing (round_robin o least_used).
AnulaciónSi min_free_disk_bytes_to_perform_insert o min_free_disk_ratio_to_perform_insert es distinto de cero, se omite la precedencia anterior. INSERT solo intenta usar el volumen con el valor volume_priority más bajo y lanza NOT_ENOUGH_SPACE si ningún disco de ese volumen cumple el umbral. Los inserts en la base de datos system están exentos.
perform_ttl_move_on_insert se lee del volumen de destino TTL, no del volumen de origen. Para una regla TO DISK 'X', la opción se lee del volumen que contiene el disco X. Configurarla en cualquier otro volumen de la política no tiene ningún efecto en la ruta de inserción.
Para forzar que los inserts respeten volume_priority incluso cuando se aplique una regla de movimiento TTL «ya vencida», establezca perform_ttl_move_on_insert = 0 en el volumen de destino TTL (para TO DISK 'X', en el volumen que contiene el disco X). La parte se escribe primero en el volumen de prioridad N y después se mueve al destino TTL mediante una tarea de movimiento en segundo plano (observable a través de system.moves). Consulte la configuración perform_ttl_move_on_insert del motor MergeTree.
Última modificación el 10 de junio de 2026