Solución 1:
Revisaría lo que está respaldando y posiblemente usaría un enfoque de "múltiples rutas". Por ejemplo, puede hacer una copia de seguridad de los repositorios de Git ejecutando constantemente las extracciones de Git en servidores de copia de seguridad. Eso copiaría solo la diferencia y te dejaría con una segunda copia de todos los repositorios de Git. Presumiblemente, podría detectar nuevos repositorios con la API.
Y use los procedimientos de respaldo "incorporados" para respaldar los problemas, etc. Dudo que los 3 TB provengan de esta parte, por lo que podría hacer respaldos muy a menudo a un costo muy bajo. También puede configurar la base de datos PostgreSQL con un modo de espera tibio con replicación.
Posiblemente, sus 3 TB provengan de imágenes de contenedor en el registro de Docker. ¿Necesitas hacer una copia de seguridad de esos? Si es así, entonces puede haber un mejor enfoque solo para eso.
Básicamente, recomendaría realmente mirar qué es lo que compone su copia de seguridad y hacer una copia de seguridad de los datos en varias partes.
Incluso la herramienta de respaldo de GitLab tiene opciones para incluir/excluir ciertas partes del sistema, como Docker Registry.
Solución 2:
Para tan poco tiempo entre copias de seguridad (1h), su mejor opción es confiar en la instantánea a nivel del sistema de archivos y send/recv
apoyo.
Si usar ZoL no es un problema en su entorno, le recomiendo encarecidamente que lo use. ZFS es un sistema de archivos muy robusto y realmente le gustarán todos los extras (p. ej., compresión) que ofrece. Cuando se combina con sanoid/syncoid
, puede proporcionar una estrategia de copia de seguridad muy sólida. La principal desventaja es que no está incluido en el núcleo principal, por lo que debe instalarlo/actualizarlo por separado.
Alternativamente, si realmente necesita restringirse a cosas incluidas en la línea principal, puede usar BTRFS. Pero asegúrese de comprender sus (muchos) inconvenientes y pita.
Finalmente, una solución alternativa es usar lvmthin
para realizar copias de seguridad periódicas (p. ej., con snapper
), apoyándose en herramientas de terceros (p. ej.:bdsync
, blocksync
, etc.) para copiar/enviar deltas solamente.
Un enfoque diferente sería tener dos máquinas replicadas (a través de DRBD
) donde toma instantáneas independientes a través de lvmthin
.