[OT] Quesito su backup
Salve ragazzi,
scusate per la lunghezza.
Ho per le mani un server dedicato sul quale sono presenti diverse
applicazioni. Sempre sul server ho una partizione di circa 200G dove
andranno tutti i file delle applicazioni.
Il programma utilizzato per i backup è bacula e il backup viene
effettuato su un disco usb3 esterno.
Come prerequisito del backup, mi è stato richiesto che il db non deve
essere inconsistente rispetto ai file, quindi devo spegnere il servizio
(tomcat) per evitare caricamenti durante il backup.
Al momento non ci sono problemi sulle tempistiche in quanto non ci sono
tanti dati da backuppare, quindi il downtime del servizio è molto basso.
I miei dubbi cominciano ad affiorare pensando al backup FULL di 150/180
GB di dati. In questo caso in 1 o 2 ore dovrebbe farcela, e anche in
questo caso il downtime non crea problemi al cliente.
Al momento essendo pochi dati su un massimo di 200GB ho pianificato:
1 full al mese,
1 differenziale ogni fine settimana (4 diff)
e per i giorni da lunedi al sabato incrementali.
In futuro però, se il progetto cresce, potrebbe essere necessario
cambiare macchina e aumentare la dimensione della partizione che devo
backuppare.
Supponiamo che la partizione sia da 1TB e che debba backuppare circa 750
GB e che il backup venga effettuato, non sul disco esterno, ma su un
altro server nella stessa rete. In questo caso i tempi per un backup
full (prendiamo in considerazione solo il full perche è il più oneroso)
aumentano e aumentano anche il downtime del servizio.
E qui sorge il problema. Come affrontarlo?
La prima cosa che mi viene in mente è quella di allungare gli archi
temporali dei backup
1 full ogni 6 mesi (anche 12)
1 diff ogni mese
e tutti incrementali.
In questa maniera avrei solo un downtime lungo anche se le dimensioni
dei differenziali potrebbero aumentare di parecchio e anche questa
soluzione potrebbe portare a disservizi lunghi.
Un'altra soluzione che mi viene in mente è l'High Availability. Non sono
esperto su HA, ho configurato qualcosina ma niente di complesso, quindi
perdonatemi se dico idiozie.
Due macchine in master/slave, stessi servizi, filesystem gfs replicati
con glusterfs e montanti su tutte e due le macchine, db in replica tra loro.
Quando devo fare il backup "freezo" la macchina master, lo slave prende
il controllo (spero con tutti i dati sincronizzati tra db e fs) e il
servizio prosegue sullo slave. Effettuo il backup dei dati dal server
freezato, finito il backup, riattivo il server che diventa il nuovo
slave, i db e gli fs si risincronizzano. Pero anche qui mi sorgono dei
dubbi: che succede con la risincronizzazione tra i due fs dopo questa
operazione? Con drbd, ricordo che se le macchine erano tutte e due
master e tutti e due i drbd0 erano montati avevo problemi con la
sincronizzazione (se non sbaglio split-brain). Come garantire che tutto
(dati e db) siano sincronizzati tra le due macchine al momento del
backup? Come risincronizzare i db?
So che il caso al momento non è reale, ma se tra qualche tempo dovrò
affrontare una configurazione HA, vorrei studiarlo più a fondo.
Vi viene in mente altro?
Grazie in anticipo e scusate la lunghezza.
Reply to: