Sempre più spesso nei vari forum dedicati, si trovano richieste di utenti che chiedono informazioni su come recuperare il sito dopo un non ben definito danno che ha compromesso se non distrutto interi portali. Ogni sito web, anche se piccolo, dovrebbe implementare durante la fase di creazione un metodo per salvare tutti i dati e recuperarli in caso di problemi più o meno gravi.
I vari provider offrono soluzioni sempre più robuste e performanti, come i dischi SSD compresi in tutti i piani hosting di SupportHost, ma a volte la causa del “disastro” potrebbe essere causata dallo stesso web design, per cui è importante se non vitale avere sempre una copia disponibile.
Backup e Disaster Recovery: qual è la differenza?
Il Backup dovrebbe essere nella pratica una copia di tutti i file, compreso il database, che costituiscono il sito web. In alcuni casi una modifica sbagliata al database può compromettere l’intero sito, facendo risultare irraggiungibili tutte le pagine. Alcuni data management offrono la possibilità di annullare l’operazione e ripristinare il salvataggio precedente, ma quando il dato viene erroneamente sovrascritto non è possibile tornare indietro. Un backup eseguito correttamente, ad intervalli regolari, permette di recuperare intere configurazioni e risolvere la maggior parte dei problemi.
Il Disaster Recovery invece non ha come obiettivo principale il salvataggio dei dati, ma la salvaguardia dell’intero hardware in caso di rari e gravissimi problemi. In questi casi infatti non basta ripristinare il backup dei dati, ma tutto l’intero sistema andrà ricostruito. I maggiori provider offrono in questi casi assistenza gratuita e sostituzione della macchina entro poche ore (nel caso in cui la macchina sia nella loro sede) ma, nel caso in cui la macchina è presso il vostro studio o abitazione, il processo sarà più complesso e laborioso. Un software open-source in grado di svolgere questa importante funzione di ricostruzione è Bacula.
Una volta che la macchina è nuovamente attiva e perfettamente funzionante è consigliato fare un check di tutti i componenti per verificare che non siano presenti altri errori o danni. A questo punto si dovrà lanciare la ISO di ripristino (tramite il CD che avrete creato dopo l’ultimo aggiornamento) che tramite il collegamento alla partizione NFS utilizzata da Bacula, mostrerà un pannello di ripristino. In questa fase, dedicate al procedimento tutta la banda disponibile.
Creare una strategia di Disaster Recovery
Come abbiamo visto, la creazione di una strategia di recupero dati può rivelarsi vitale in alcuni casi. Per questo, anche se il Disaster Recovery richiede tempo, è fortemente consigliato effettuare regolarmente una copia dei dati e non rimandare.
Backup e Disaster Recovery sono operazioni che possono essere automatizzate, ma in ogni caso è buona cosa:
- programmare le operazioni prima di ogni modifica sostanziale ;
- evitare copie continue se non ci sono variazioni, si rischierebbe solo di saturare lo spazio disponibile;
- evitare copie immediatamente dopo le modifiche, potrebbero infatti verificarsi errori dopo poco;
- utilizzare la funzione di distribuzione di Bacula, in modo da salvare i dati su più macchine ed avere sempre la certezza di avere una copia disponibile;
- eliminare le vecchie copie per non esaurire lo spazio;
Data protection: fornito dal provider o fatto in casa?
Ci sono alcuni provider che per ogni macchina offrono già incluso il servizio di data protection. Nei casi più gravi, sarà quindi lo stesso supporto tecnico a ripristinare tutti i dati. In questo caso, quando acquistate il servizio assicuratevi di avere tutte le garanzie del caso: informatevi sulla posizione del server e dei vari storage in cui vengono salvati backup e immagini. Se questa protezione non è compresa, ci sono molte aziende esterne che si occupano della salvaguardia dei vostri dati con un canone mensile o annuale.
Se il progetto web è relativamente piccolo (un blog o una vetrina personale) è possibile progettare un sistema di “salvataggio fai da te”. Si tratta di una soluzione basilare e ovviamente sconsigliata per grandi portali, siti web aziendali o shop online.
Per iniziare basta avere un account di posta elettronica con molto spazio.
Create quindi uno script da richiamare tramite cron ogni giorno tipo questo:
#!/bin/sh
TEMP_DIR=’/var/sysbackup’;
MAIL_DEST=’nome@mail.com’;
cd $TEMP_DIR
TIMESTAMP=`date +%d-%B-%Y.%H-%M`
/usr/bin/mysqldump -uroot -ppassword –all-databases > /$TEMP_DIR/database.sql
tar zcf /$TEMP_DIR/backup-$TIMESTAMP.tar.gz database.sql /dir_da_salvare1 /dir_da_salvare2 /dir_da_salvareN 2> /dev/null
split -b15m /$TEMP_DIR/backup-$TIMESTAMP.tar.gz /$TEMP_DIR/backup-$TIMESTAMP.tar.gz. 2> /dev/null
rm /$TEMP_DIR/backup-$TIMESTAMP.tar.gz
ls -1 /$TEMP_DIR/backup-$TIMESTAMP.tar.gz.* | while read line
do
/usr/local/bin/mutt -s $line -a $line $MAIL_DEST < /dev/null
done
cd $TEMP_DIR
rm database.sql
rm backup-$TIMESTAMP.tar.gz.*
Nel caso in cui sia necessario recuperare i dati, si dovranno scaricare le mail e concatenare gli allegati con:
cat backup-DATA.tar.gz.a* > backup-DATA.tar.gz