Soluzione 1:
Vorrei rivedere ciò di cui stai eseguendo il backup e possibilmente utilizzare un approccio "multi-percorso". Ad esempio, è possibile eseguire il backup dei repository Git eseguendo costantemente i pull Git su un server di backup. Ciò copierebbe solo il diff e ti lascerebbe con una seconda copia di tutti i repository Git. Presumibilmente potresti rilevare nuovi repository con l'API.
E usa le procedure di backup "incorporate" per eseguire il backup dei problemi, ecc. Dubito che i 3 TB provengano da questa parte, quindi potresti eseguire backup molto spesso a un costo molto basso. Puoi anche configurare il database PostgreSQL con un warm standby con replica.
Forse i tuoi 3 TB provengono da immagini del contenitore nel registro Docker. Hai bisogno di eseguire il backup di quelli? Se è così, allora potrebbe esserci un approccio migliore proprio per questo.
Fondamentalmente, consiglierei davvero di guardare cosa costituisce il tuo backup e di eseguire il backup dei dati in varie parti.
Anche lo strumento di backup di GitLab ha opzioni per includere/escludere alcune parti del sistema come il registro Docker.
Soluzione 2:
Per un tempo così breve tra i backup (1h), la soluzione migliore è affidarsi a snapshot a livello di filesystem e send/recv
supporto.
Se l'utilizzo di ZoL non è un problema nel proprio ambiente, consiglio vivamente di utilizzarlo. ZFS è un filesystem molto robusto e ti piaceranno davvero tutti gli extra (es:compressione) che offre. Quando accoppiato con sanoid/syncoid
, può fornire una strategia di backup molto efficace. Lo svantaggio principale è che non è incluso nel kernel principale, quindi è necessario installarlo/aggiornarlo separatamente.
In alternativa, se hai davvero bisogno di limitarti alle cose incluse nella mainline, puoi usare BTRFS. Ma assicurati di capire i suoi (molti) svantaggi e pita.
Infine, una soluzione alternativa è usare lvmthin
per eseguire backup regolari (es:con snapper
), basandosi su strumenti di terze parti (es:bdsync
, blocksync
, ecc.) per copiare/spedire solo delta.
Un approccio diverso sarebbe avere due macchine replicate (tramite DRBD
) dove si scattano istantanee indipendenti tramite lvmthin
.