Proxmox Backup Server: configurar Prune y Garbage Collection | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Proxmox Backup Server: garbage Collection y Prune

Introducción

Este tutorial explica cómo configurar el mantenimiento de Proxmox Backup Server para el almacenamiento de copias de seguridad a largo plazo mediante tareas de prune y recolección de basura (garbage collection). Configurará el prune de Proxmox, programará la recolección de basura de Proxmox y estimará el uso de almacenamiento para que su datastore no crezca hasta consumir todo el espacio de disco disponible.

Al finalizar este tutorial, dispondrá de una política de prune programada y de una programación de garbage collection para un datastore de Proxmox Backup Server, con ejemplos prácticos de retención para copias diarias, semanales y mensuales.

Requisitos previos

Antes de empezar, asegúrese de contar con lo siguiente:

  • Proxmox Backup Server 4.2.x o posterior
  • Un datastore de PBS configurado, con copias de seguridad existentes o previstas
  • Acceso de administrador a la interfaz web de Proxmox Backup Server
  • Acceso al shell como root u otro usuario con permisos de administración de PBS suficientes
  • Conocimientos básicos sobre las tareas de copia de seguridad de Proxmox VE y los namespaces de PBS
  • Aproximadamente 30 minutos para completar la configuración

Este tutorial está dirigido a administradores de sistemas con nivel intermedio.

Paso 1: Comprender cómo funcionan conjuntamente el prune y la garbage collection

En Proxmox Backup Server, el prune (poda) y la garbage collection son operaciones de mantenimiento independientes. Comprender cómo funcionan juntas es esencial para una gestión eficaz de los datastores de Proxmox.

Una tarea de prune decide qué snapshots de copia de seguridad se conservan y cuáles se eliminan del historial visible de copias. Cuando PBS poda un snapshot, elimina sus metadatos, índices, registros y notas. No elimina de inmediato los chunks de copia de seguridad que ya no se usan. Los chunks a los que hacían referencia los snapshots podados se eliminan más tarde mediante la garbage collection.

La garbage collection (GC) libera espacio en el datastore eliminando del almacén de chunks los chunks sin uso. PBS utiliza chunks deduplicados, por lo que un mismo chunk puede estar referenciado por varios snapshots. Por ello, PBS no puede eliminar chunks de forma segura en el instante exacto en que se poda un snapshot. Primero debe confirmar que ningún snapshot restante ni ninguna copia en ejecución sigue haciendo referencia a ellos.

Info

El prune elimina los registros de snapshots antiguos. La GC recupera el espacio real en disco.

PBS también utiliza un período de gracia para la eliminación de chunks. Durante la GC, los chunks se marcan y se barren (mark and sweep), pero los chunks que se encuentran dentro del período de gracia se notifican como eliminaciones pendientes y no se borran de inmediato. Esto protege las copias en ejecución y tiene en cuenta el comportamiento de los tiempos de acceso del sistema de archivos, especialmente con el comportamiento habitual de montaje relatime.

Paso 2: Revisar la configuración actual del datastore

Puede hacerlo tanto desde la CLI como desde la interfaz web.

Liste los datastores disponibles:

proxmox-backup-manager datastore list

Salida esperada: tabla con la lista de datastores.

Elija el datastore donde se almacenan sus copias de seguridad de Proxmox VE. En los ejemplos siguientes, sustituya <DATASTORE_NAME> por el nombre de su datastore.

Compruebe el estado actual de la garbage collection:

proxmox-backup-manager garbage-collection status <DATASTORE_NAME>

Debería ver el estado actual de la GC del datastore. Si la GC nunca se ha ejecutado, es posible que la salida no muestre ninguna ejecución correcta anterior.

Liste las tareas de prune existentes:

proxmox-backup-manager prune-job list

Debería ver las tareas de prune existentes, o una lista vacía si no se ha configurado ninguna.

Para verificarlo desde la interfaz web, vaya a Datastore - <DATASTORE_NAME> - Prune & GC Jobs:

Paso 3: Planificar una política de retención de copias de seguridad a largo plazo

Una política de retención debe ajustarse a los requisitos de restauración y a la capacidad de almacenamiento. Para muchos planes de retención de copias de Proxmox, una política práctica a largo plazo utiliza el esquema abuelo-padre-hijo (grandfather-father-son):

Opción de retención Valor de ejemplo Resultado
keep-daily 14 Conserva una copia por día durante 14 días con copias
keep-weekly 8 Conserva una copia por semana durante 8 semanas con copias
keep-monthly 12 Conserva una copia por mes durante 12 meses con copias
keep-yearly 2 Conserva una copia por año durante 2 años con copias

Las opciones de retención de PBS se procesan por intervalos de tiempo (time buckets). Por ejemplo, keep-daily conserva la copia más reciente de cada día retenido, y los días sin copias no se cuentan. keep-weekly conserva la copia más reciente de cada semana ISO retenida, y las semanas sin copias no se cuentan.

Warning

No calcule la retención como una simple suma sin tener en cuenta los solapamientos. Una misma copia puede satisfacer a la vez las reglas diaria, semanal, mensual y anual, por lo que el número exacto de snapshots conservados depende de las marcas de tiempo de las copias.

Para una programación de copias diaria, empiece con una de estas políticas:

Política Ajustes de retención Caso de uso
Conservadora keep-daily 7
keep-weekly 4
keep-monthly 6
Datastore pequeño o historial de restauración corto
Equilibrada keep-daily 14
keep-weekly 8
keep-monthly 12
Copias típicas de VM y contenedores
A largo plazo keep-daily 30
keep-weekly 12
keep-monthly 24
keep-yearly 3
Datastore más grande o historial exigido por normativa

Tip

Configure la retención antes de que el datastore esté casi lleno. La limpieza del datastore de Proxmox es más segura cuando PBS aún dispone de espacio libre suficiente para escribir nuevas copias y ejecutar tareas de mantenimiento.

Paso 4: Estimar el almacenamiento necesario antes de aplicar la retención

La planificación del almacenamiento para copias de seguridad a largo plazo no consiste en multiplicar el tamaño completo de la VM por el número de snapshots. Proxmox Backup Server utiliza deduplicación, por lo que cada copia nueva suele almacenar únicamente los chunks modificados más los metadatos. Aun así, conviene realizar una estimación conservadora.

Utilice esta fórmula:

Almacenamiento estimado = datos protegidos iniciales + datos modificados por día * equivalente en días retenidos + margen de seguridad

Ejemplo 1: Retención equilibrada para un grupo de VM:

Valor Ejemplo
Datos de VM protegidos 2 TB
Media diaria de datos modificados 80 GB
Política de retención 14 diarias · 8 semanales · 12 mensuales
Margen de seguridad 25 por ciento

Puntos de cambio retenidos aproximados:

14 daily + 8 weekly + 12 monthly = 34 restore points

Datos modificados aproximados:

80 GB * 34 = 2720 GB

Total aproximado antes del margen:

2000 GB + 2720 GB = 4720 GB

Añada un margen de seguridad del 25 por ciento:

4720 GB * 1.25 = 5900 GB

Para esta carga de trabajo, prevea aproximadamente 6 TB de capacidad útil en el datastore.

Ejemplo 2: Política para un datastore más pequeño:

Valor Ejemplo
Datos de VM protegidos 1 TB
Media diaria de datos modificados 30 GB
Política de retención 7 diarias · 4 semanales · 6 mensuales
Margen de seguridad 25 por ciento

Puntos de restauración aproximados:

7 + 4 + 6 = 17 restore points

Almacenamiento aproximado:

1000 GB + (30 GB * 17) = 1510 GB 1510 GB * 1.25 = 1887.5 GB

Para esta carga de trabajo, prevea aproximadamente 2 TB de capacidad útil en el datastore.

Info

Estos ejemplos son deliberadamente conservadores. El uso real de PBS puede ser menor, porque la deduplicación puede reutilizar chunks entre varios snapshots y entre sistemas similares.

Paso 5: Crear una tarea de prune en la interfaz web

  1. Abra la interfaz web de Proxmox Backup Server.
  2. Seleccione Datastore.
  3. Seleccione <DATASTORE_NAME>.
  4. Abra la pestaña Prune & GC.
  5. Haga clic en Add Prune Job.
  6. Establezca Datastore en <DATASTORE_NAME>.
  7. Establezca Namespace si desea podar solo un namespace.
  8. Configure los valores de retención, por ejemplo keep-daily en 14, keep-weekly en 8 y keep-monthly en 12.
  9. Establezca la programación, por ejemplo 03:00.
  10. Guarde la tarea de prune.

Resultado esperado: PBS crea una tarea de prune programada para el datastore o namespace. Esta tarea elimina periódicamente los snapshots de copia de seguridad que su política de retención ya no selecciona.

Paso 6: Crear una tarea de prune desde la línea de comandos

También puede crear la misma tarea de prune desde el shell de PBS.

Para una tarea de prune que abarque todo el datastore:

proxmox-backup-manager prune-job create pve-longterm \ --store <DATASTORE_NAME> \ --schedule "03:00" \ --keep-daily 14 \ --keep-weekly 8 \ --keep-monthly 12 \ --comment "Long-term Proxmox backup retention"

Resultado esperado: PBS crea una tarea de prune llamada pve-longterm.

Para una tarea de prune específica de un namespace:

proxmox-backup-manager prune-job create pve-namespace-longterm \ --store <DATASTORE_NAME> \ --ns <NAMESPACE> \ --schedule "03:00" \ --keep-daily 14 \ --keep-weekly 8 \ --keep-monthly 12 \ --comment "Long-term retention for namespace"

Resultado esperado: PBS poda únicamente el namespace seleccionado. Esto resulta útil cuando distintos clústeres, inquilinos o entornos requieren políticas de retención diferentes.

Liste la tarea de prune:

proxmox-backup-manager prune-job list

Salida esperada: tabla con la lista de tareas de limpieza de copias de seguridad de Proxmox.

Paso 7: Configurar la programación de la garbage collection

Después de que el prune elimine los metadatos de los snapshots antiguos, debe ejecutarse la GC para recuperar el espacio de los chunks sin uso. Una programación semanal de la GC es un buen punto de partida para la mayoría de las configuraciones.

Establezca una programación semanal de la GC:

proxmox-backup-manager datastore update <DATASTORE_NAME> \ --gc-schedule "Sun 04:00"

Puede configurarla desde la interfaz web en Datastore - <DATASTORE_NAME> - Prune & GC Jobs → Garbage Collection Jobs → Edit:

Resultado esperado: PBS programa la garbage collection del datastore todos los domingos a las 04:00.

Compruebe el estado de la GC:

proxmox-backup-manager garbage-collection status <DATASTORE_NAME>

La salida esperada incluye el nombre del datastore e información sobre la ejecución de GC más reciente o la próxima.

También puede iniciar la GC manualmente:

proxmox-backup-manager garbage-collection start <DATASTORE_NAME>

Resultado esperado: PBS inicia una tarea de GC para el datastore.

Warning

No espere que la GC elimine todos los chunks sin uso inmediatamente después del prune. PBS puede notificar algunos chunks como eliminaciones pendientes hasta que haya transcurrido el período de gracia.

Paso 8: Elegir una programación segura de prune y GC

Una programación práctica es la siguiente:

Tarea Programación de ejemplo Motivo
Tarea de copia de seguridad de Proxmox VE

Diaria a las 01:00

Crea primero las copias nuevas
Tarea de prune de PBS

Diaria a las 03:00

Elimina los snapshots fuera de la retención
Tarea de GC de PBS

Semanal, los domingos a las 04:00

Recupera los chunks sin uso tras el prune

Este orden mantiene disponibles las copias nuevas antes de eliminar los snapshots antiguos. Además, da tiempo a PBS para completar las escrituras de las copias antes de que se inicien las tareas de prune y GC.

En entornos con mucha carga, evite ejecutar al mismo tiempo tareas de copia de seguridad, verificación, prune, sincronización y GC. Escalone las tareas de mantenimiento para reducir la contención de E/S.

Tip

Si su datastore recibe muchas copias cada día, empiece con una GC semanal. Si el datastore se llena rápidamente después del prune, considere ejecutar la GC con más frecuencia, pero supervise el impacto en la E/S.

Paso 9: Verificar la configuración

Liste las tareas de prune:

proxmox-backup-manager prune-job list

Confirme que la tarea tiene el datastore, el namespace, la programación y los valores keep esperados.

Muestre una tarea de prune:

proxmox-backup-manager prune-job show pve-longterm

Resultado esperado: PBS muestra las opciones de retención configuradas.

Compruebe la configuración de la GC:

proxmox-backup-manager garbage-collection list

Resultado esperado: PBS lista el estado de la garbage collection de todos los datastores, incluidos los que no tienen tareas de GC.

Compruebe el uso del datastore desde la interfaz web:

  • Abra Datastore.
  • Seleccione <DATASTORE_NAME>.
  • Revise el uso del datastore y el historial de tareas.
  • Abra Tasks y confirme que las tareas de prune y GC se completan correctamente.

Resultado esperado: El datastore muestra actividad de mantenimiento programada y los snapshots antiguos se eliminan según la configuración de prune de Proxmox.

Paso 10: Supervisar el crecimiento del almacenamiento a lo largo del tiempo

Después de configurar las tareas de prune en PBS, supervise el uso del almacenamiento durante al menos un ciclo de retención completo. Por ejemplo, si configura keep-monthly 12, necesitará varios meses de datos antes de que la tendencia a largo plazo sea clara.

Revise estas métricas:

Métrica Qué comprobar
Espacio utilizado del datastore Confirma si la optimización del almacenamiento de copias funciona
Registros de las tareas de prune Confirman que se están eliminando snapshots
Registros de las tareas de GC Confirman que se están eliminando los chunks sin uso
Eliminaciones pendientes (pending removals) Indican chunks a la espera del período de gracia de la GC
Tendencia del tamaño de las tareas de copia Muestra si aumenta la cantidad de datos modificados

Si el datastore sigue creciendo más rápido de lo esperado, reduzca la retención o añada almacenamiento antes de que el sistema de archivos se llene.

Ajustes habituales:

Problema Ajuste
El datastore se llena demasiado rápido Reducir keep-daily, keep-weekly o keep-monthly
Muy pocos puntos de restauración recientes Aumentar keep-daily
El historial mensual es demasiado corto Aumentar keep-monthly
Las copias se solapan con el mantenimiento Mover el prune o la GC a una hora posterior
La GC libera poco espacio Confirmar que las tareas de prune realmente eliminan snapshots antiguos

Revertir los cambios

Para eliminar una tarea de prune:

proxmox-backup-manager prune-job remove pve-longterm

Resultado esperado: PBS elimina la configuración de la tarea de prune.

Para desactivar la programación de la GC sin eliminar el datastore:

proxmox-backup-manager datastore update <DATASTORE_NAME> \ --delete gc-schedule

Resultado esperado: PBS borra la programación automática de la GC del datastore.

Para cambiar la retención en lugar de eliminar la tarea de prune:

proxmox-backup-manager prune-job update pve-longterm \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6

Resultado esperado: PBS conserva la tarea de prune, pero aplica la nueva política de retención en las próximas ejecuciones.

Warning

Revertir una política de prune no restaura los snapshots que ya se han podado. Una vez que se elimina un snapshot y la GC elimina después sus chunks, no es posible recrearlo desde PBS.

Solución de problemas

La GC no libera espacio de inmediato

Causa: El prune eliminó los metadatos de los snapshots, pero otros snapshots siguen referenciando los chunks o estos se encuentran dentro del período de gracia de la GC.
Solución: Espere a que transcurra el período de gracia y ejecute la GC de nuevo más tarde. Revise los registros de tareas para ver las eliminaciones pendientes.

El prune conserva más copias de las esperadas

Causa: keep-daily, keep-weekly y keep-monthly utilizan intervalos de tiempo. Los días, semanas o meses sin copias no cuentan. Además, las reglas de retención se solapan.
Solución: Utilice el simulador de prune de PBS antes de cambiar la retención en producción. Así podrá previsualizar el comportamiento de la retención antes de aplicar los cambios.

El datastore sigue creciendo después del prune y la GC

Causa: Los datos modificados por día pueden ser superiores a lo estimado, las copias pueden incluir discos nuevos o la retención puede ser demasiado amplia para el datastore.
Solución: Recalcule la estimación de volumen con los datos modificados reales. Reduzca la retención o amplíe el almacenamiento.

La tarea de prune no afecta a un namespace

Causa: Es posible que la tarea de prune esté configurada para un namespace o una profundidad de namespace incorrectos.
Solución: Revise los ajustes de la tarea de prune y confirme el valor de --ns. Si desea que la tarea se aplique solo a un namespace, indíquelo de forma explícita.

Los clientes de copia de seguridad aún pueden eliminar copias

Causa: Las credenciales de copia pueden tener permisos de eliminación, o la retención puede estar configurada fuera de PBS.
Solución: Aplique el principio de mínimo privilegio a los clientes de copia de seguridad. Para resistir al ransomware, prefiera las tareas de prune del lado de PBS en lugar de conceder permisos de eliminación a los clientes.

Conclusión

Ha configurado el mantenimiento de Proxmox Backup Server para la retención a largo plazo mediante la creación de una tarea de prune y la programación de la garbage collection. También ha aprendido por qué los chunks no se eliminan de inmediato, cómo la GC completa la limpieza del datastore y cómo estimar las necesidades de almacenamiento antes de aplicar la retención a largo plazo. Estas prácticas favorecen la optimización de las copias de Proxmox al mejorar la eficiencia del almacenamiento y garantizar que la retención de copias siga siendo predecible y manejable.

Como siguientes pasos, añada tareas de verificación, configure notificaciones para las tareas de prune y GC fallidas y revise el crecimiento del datastore cada mes. Así la optimización del almacenamiento de copias seguirá siendo predecible y los ajustes de retención no consumirán silenciosamente toda la capacidad disponible.

Versión del documento: 1.0
Última actualización: junio de 2026
Responsable: Equipo de documentación técnica

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA