¿Cuál es una estrategia de copia de seguridad adecuada para LXD con backends de almacenamiento BTRFS?

¿Cuál es una estrategia de copia de seguridad adecuada para LXD con backends de almacenamiento BTRFS?

Estoy a punto de reconfigurar mi servidor doméstico desde cero y me pregunto cuál sería la mejor estrategia para hacer una copia de seguridad de mis contenedores LXD. Mientras tanto, estoy ejecutando Ubuntu 20.04 LTS y tengo algunos servicios configurados para ejecutarse como contenedores LXD/LXC. Por ejemplo:

  • contenedor "cloudserv" ejecutando seafile
  • contenedor "servicio web" que ejecuta nginx y MariaDB

Estos dos contenedores están ubicados en mi SSD con sistema de archivos btrfs. Para el almacenamiento de datos, estoy usando una matriz de discos (también con BTRFS), donde he creado otro grupo de almacenamiento LXC con un volumen de almacenamiento que está adjunto al contenedor seafile para contener todos los datos. El diseño es algo como esto:

SSD

  • Sistema de archivos BTRFS
    • Grupo de almacenamiento "predeterminado"
      • contenedor "servidor en la nube"
      • contenedor "servicio web"
      • imágenes

HDD

  • Sistema de archivos BTRFS
    • Grupo de almacenamiento "DataPool1"
      • volumen de almacenamiento personalizado "seafile-data" --> adjunto al contenedor "cloudserv"

Al usar BTRFS, esperaba poder utilizar instantáneas de BTRFS y enviar y recibir herramientas para transferir fácilmente contenedores y volúmenes de almacenamiento como subvolúmenes, por ejemplo, a un RasPi con un volumen BTRFS adjunto. Pero leyendo, por ejemploManual LXDoCómo hacer una copia de seguridad y restaurar contenedores LXDTengo la impresión de que siempre tengo que crear un tarball para hacer una copia de seguridad de una instancia que luego se puede transferir. Esto implicaría que realmente pierdo algunas de las características atractivas de BTRFS, como poder enviar/recibir subvolúmenes/instantáneas y realizar copias de seguridad incrementales de mis instancias y datos de LXC.

¿Me pierdo algo? ¿Alguien puede dar algunos consejos sobre el flujo de trabajo de copia de seguridad adecuado para LXD/LXC con BTRFS?

Respuesta1

Si instala LXD en su servidor remoto y ambos servidores usan Btrfs, puede usar elTransferencia de instancia optimizadacomo esto:

lxc remote add mybtrfsremotebackupserver XXX
lxc snapshot mycontainer snap1
lxc copy mycontainer mybtrfsremotebackupserver: --verbose

Y lo utilizará btrf-sendpara la transferencia inicial del contenedor y todas sus instantáneas.

Luego tiene una forma muy conveniente de mantener el contenedor y sus instantáneas solo enviando cambios incrementales usando la opción--refresh(LXD 3.7)

lxc copy --refresh mycontainer mybtrfsremotebackupserver: --verbose

Pero desafortunadamente usa rsync, al menos en LXD 4.0, por lo que perderás la btrfs-sendoptimización.

Consulte este número para obtener más información:Solicitud de función: --marcador de solo instantáneas para copiar

Además, hay"Actualizar soporte para copias de volúmenes personalizados"pero no estoy seguro si utiliza la ruta optimizada o si podría ser útil para tu objetivo. También puede verificar --optimized-storage en la exportación lxc

Saludos

información relacionada