> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-fbfa8bee.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Tabla del sistema que contiene información sobre las políticas de almacenamiento y los volúmenes definidos en la configuración del servidor.

# system.storage_policies

<div id="description">
  ## Descripción
</div>

Contiene información sobre las políticas de almacenamiento y los volúmenes definidos en la [configuración del servidor](/es/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure).

<div id="columns">
  ## Columnas
</div>

* `policy_name` ([String](/es/reference/data-types/index)) — El nombre de la política de almacenamiento.
* `volume_name` ([String](/es/reference/data-types/index)) — El nombre del volumen.
* `volume_priority` ([UInt64](/es/reference/data-types/index)) — La prioridad del volumen.
* `disks` ([Array(String)](/es/reference/data-types/index)) — La lista de nombres de todos los discos que forman parte de esta política de almacenamiento.
* `volume_type` ([Enum8('JBOD' = 0, 'SINGLE\_DISK' = 1, 'UNKNOWN' = 2)](/es/reference/data-types/index)) — El tipo de volumen: JBOD o un único disco.
* `max_data_part_size` ([UInt64](/es/reference/data-types/index)) — el tamaño máximo de una parte que puede almacenarse en cualquiera de los discos del volumen.
* `move_factor` ([Float32](/es/reference/data-types/index)) — Cuando la cantidad de espacio disponible cae por debajo de este factor, los datos comienzan a moverse automáticamente al siguiente volumen, si existe alguno (de forma predeterminada, 0.1).
* `prefer_not_to_merge` ([UInt8](/es/reference/data-types/index)) — No debe usar esta configuración. Desactiva la fusión de partes en este volumen (esto es perjudicial y provoca una degradación del rendimiento).
* `perform_ttl_move_on_insert` ([UInt8](/es/reference/data-types/index)) — Desactiva movimiento TTL al hacer INSERT de partes. De forma predeterminada (si está habilitado), si insertamos una parte que ya ha expirado según la regla de movimiento TTL, pasa inmediatamente al volumen/disco declarado en la regla de movimiento.
* `load_balancing` ([Enum8('ROUND\_ROBIN' = 0, 'LEAST\_USED' = 1)](/es/reference/data-types/index)) — Política de equilibrio entre discos: `round_robin` o `least_used`.

<div id="volume-selection-on-insert">
  ## Selección de volumen en `INSERT`
</div>

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`).

<Info>
  **Anulación**

  Si `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.
</Info>

<Note>
  `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.
</Note>

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](/es/reference/engines/table-engines/mergetree-family/mergetree#table_engine-mergetree-multiple-volumes_configure).
