Desplegar servidor de copia de seguridad Proxmox Server Backup (PBS), con datastore local en ZFS RAID 1. Aunque la práctica recomendada es desplegar un servidor PBS autónomo, en este estudio de caso queremos aprovechar uno de los nodos del clúster Proxmox para que siga siendo nodo del clúster y, además, servidor PBS.

Preparar almacenamiento ZFS (Crear el dataset)

En lugar de crear una carpeta normal, si disponemos de almacenamiento ZFS/RAID, es la mejor opción como destino de los backups. En el siguiente enlace mostramos cómo desplegar un RAID 10 en Proxmox:

Lo ideal es disponer de algún almacenamiento que, o bien tenga alta disponibilidad por diseño (SAN/NAS) o bien se aplique la alta disponibilidad como hemos indicando anteriormente. Este almacenamiento debe ser dedicado porque así permitirá limitar el espacio de los backups, monitorizar su compresión o destruirlo independientemente si fuera necesario.

En este estudio de caso disponemos de un almacenamiento ZFS RAID 1 de 1TB de espacio, por ello, en primer lugar, averiguaremos el nombre del pool de 1TB, abriendo una consola de shell del nodo Proxmox y ejecutando el comando:

En este caso, el pool que usaremos será raid1-1tb-backup:

Para crear el dataset dedicado para los backups, en el pool raid1-1tb-backup, ejecutaremos el siguiente comando:

Estableceremos los permisos apropiados para el PBS (servidor de backup de Proxmox):

Al crear un dataset, ZFS lo monta automáticamente en /raid1-1tb-backup/pbs-datastore. Modificar el propietario (chown) al usuario backup es importante para evitar errores de permiso denegado en los backups.

Instalación de Proxmox Backup Server (PBS) sobre Proxmox

Aunque la práctica recomendada es desplegar un servidor PBS autónomo, en este estudio de caso queremos aprovechar uno de los nodos del clúster Proxmox para que siga siendo nodo del clúster y, además, servidor PBS.

Con el almacenamiento listo, instalamos los paquetes de PBS encima de Proxmox VE. En primer lugar, añadiremos los repositiorios sin suscripción (si no tenemos suscripción a Proxmox), editando o creando el siguiente fichero:

Añadiremos estas líneas:

Guardaremos los cambios y actualizaremos los repositorios con:

Instalaremos los servicios de PBS sobre Proxmox con el comando:

Configurar datastore en servidor de backup de Proxmox (PBS)

Accederemos a la web de gestión de PBS (Proxmox Backup Server), abriendo un navegador y accediendo a la URL:

https://IP-NODO3:8007

Con tu usuario root de Proxmox:

Configuraremos el datastore de destino de las copias de seguridad, pulsando en «Datastore» – «Add Datastore»:

Estableceremos los siguientes datos:

  • Name: nombre del almacenamiento de backup, por ejemplo «backup_raid1_1tb».
  • Datastore Type: elegiremos «Local».
  • Backing Path: muy importante introducir aquí el path exacto del almacenamiento creado anteriormente, para este caso «/raid1-1tb-backup/pbs-datastore».

El almacenamiento quedará agregado al servidor PBS para su uso:

Podremos establecer la política de retención para el datastore completo. Por ejemplo, si queremos que las copias se guarden 7 días y una copia de cada mes, es decir, que podríamos recuperar una máquina virtual de alguno de los últimos 7 días o bien de una copia de cada mes del año. Para ello, pulsaremos en el datastore creado y en «Prune & GC Jobs», dentro pulsaremos en «Edit» en el prune job creado por defecto:

Para establecer retención de los últimos 7 días y de una por mes, indicaremos estos valores:

  • Keep Last: 7.
  • Keep Daily: 7
  • Keep Monthly: 12

Agregar almacenamiento PBS en clúster Proxmox

Si disponemos de un clúster Proxmox, podremos agregar un almacenamiento en este servidor de backup. Para ello, desde Datacenter, pulsaremos en «Storage» y en «Add», elegiremos «Promox Backup Server»:

    Antes de introducir los datos de conexión al almacenamiento del servidor de backup PBS, volveremos al servidor de backup de Proxmox, seleccionaremos el datastore creado y pulsaremos en «Show Connection Information»:

    Nos mostrará toda la configuración que necesitaremos en la ventana de añadir Proxmox Backup Server, anotamos el nombre del datastore, la IP, el Fingerprint y el usuario (habitualmente root@pam):

    Volveremos al clúster Proxmox e introduciremos todos los datos anteriores:

    • ID: introduciremos un nombre identificativo para el almacenamiento de backup en el clúster, por ejemplo «n3_raid1_1tb».
    • Server: la IP del servidor de backup PBS, en este caso 192.168.10.202.
    • Username: usuario que hemos anotado anteriormente, por defecto: root@pam.
    • Password: la contraseña de root del servidor de backup PBS.
    • Datastore: el nombre exacto que hemos establecido en el paso anterior al crear el datastore en el PBS (en este caso backup_raid1_1tb).
    • Fingerprint: pegaremos la huella digital anotamos anteriormente (el fingerprint).

    Agregar trabajo de copia de seguridad en el clúster Proxmox al PBS

    Desde la consola de gestión de Proxmox, pulsaremos en «Datacenter», en «Storage» y en «Proxmox Backup Server»:

    Elegiremos los nodos del clúster, el Storage (importante elegir el que hemos creado asignado al PBS, en este caso el «n3_raid1_1tb»), la programación de la tarea de copia y las máquinas virtuales que se copiarán:

    El trabajo de copia de seguridad quedará programado. Cuando corresponda su ejecución, en el servidor PBS podremos comprobar que el trabajo de backups se está ejecutando, en «Administration» – «Tasks»:

    Gestión de memoria RAM en el nodo Proxmox PBS

    Dado que en este estudio de caso hemos optado por desplegar PBS sobre Proxmox, hay que tener en cuenta que todos estos servicios consumen memoria RAM (Proxmox, máquinas virtuales, PBS y ZFS de almacenanamiento):

    1. Proxmox VE: necesita RAM para las Máquinas Virtuales.
    2. ZFS: por defecto, ZFS utiliza hasta el 50% de la RAM total del servidor como caché de disco (ZFS ARC).
    3. PBS: necesita RAM para indexar los «chunks» (trozos de backup) y hacer la deduplicación al vuelo.

    En entornos de producción conviene establecer límite a la memoria RAM consumida por ZFS, para evitar que el nodo se quede sin memoria.

    Para limitar la caché de ZFS (ARC) para proteger el servidor, por ejemplo, para limitar ZFS a que use, como máximo, 8 GB (ajustable según la RAM total del servidor), ejecutaremos los siguientes comandos desde la consola shell del nodo PBS:

    El proceso anterior requiere de reinicio del nodo.