Comprendere a fondo l'importanza dei backup è sicuramente una delle priorità per chiunque voglia mettersi al riparo da perdite improvvise di dati importanti.
Ma quando parliamo di backup, a cosa ci riferiamo precisamente?
Spesso lo consideriamo come un mero accorgimento tecnico, finalizzato allo storage dei dati, niente di più, niente di meno.
Una considerazione del genere può trovare parziale accoglimento in situazioni casalinghe, ma sicuramente non in situazioni di produzione, dove invece tale discorso andrebbe rivalutato alla stregua di una vera e propria pianificazione di tutti i dettagli più importanti.
Dato che parlare in maniera generalizzata non è lo scopo diretto di questo articolo, ci soffermeremo solamente sui dettagli riguardanti la configurazione da adottare e l'hardware da utilizzare: GNU/Linux e le periferiche SCSI.
# Legenda : -> aperto | -> chiuso [ID] = [JUMPERS] -------------------- ID 0 = : : : ID 1 = | : : ID 2 = : | : ID 3 = | | : ID 4 = : : | ID 5 = | : | ID 6 = : | | ID 7 = | | | # Schema comprensivo di terminazione e parità utilizzato in questo articolo. [ID] - [JUMPERS] - [TERM.] - [PAR.] ----------------------------------------------------- ID 0 = : : : | |
|
[root: ~]# modprobe 9100UW Tuttavia, dato che l'esempio ipotizza una macchina di produzione, affronteremo il caso della ricompilazione. |
[root: ~]# cd /usr/src/ [root: ~]# wget -c ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.gz [root: ~]# tar xzvf linux-2.4.18.tar.gz [root: ~]# cd linux-2.4.18 [root: ~]# make xconfig (oppure "make menuconfig") Ciò che interessa a noi è il supporto SCSI in generale e ovviamente quello specifico per la periferica in nostro possesso; pertanto selezioniamo la scheda "SCSI Support" e procediamo in questa maniera: |
----> Sezione "GENERALE" [ y ] [ ] [ ] ::: SCSI Support ... [ y ] [ ] [ ] ::: SCSI Tape Support ... [ y ] [ ] [ ] ::: Verbose SCSI error reporting (kernel size +=12) ----> Sezione "SCSI low-level-drivers", selezioniamo il nostro controller [ y ] [ ] [ ] ::: INITIO 9100U(W) support
|
[root: ~]# make dep && make bzImage [root: ~]# make modules && make modules_install ... [root: ~]# cd i386/boot/ [root: ~]# cp bzImage /boot/vmlinuz-2.4.18 |
[root: ~]# vi /etc/lilo.conf
...
image=/boot/vmlinuz-2.4.18
label=Linux SCSI Support
read-only
root=/dev/hda1
...
:wq
|
[root: ~]# cat /proc/ioports ... e800-e8ff : Initio Corporation e800-e8ff : i91u ... [root: ~]# cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: HP Model: HP35470A Rev: 1009 Type: Sequential-Access ANSI SCSI revision: 02
|
D'ora in poi potremmo riferirci alla nostra periferica richiamandola con il suo nome corretto: /dev/st0 o /dev/nst0.
A questo punto possiamo parlare del funzionamento e di come iniziare da subito ad eseguire backup; tutto questo sarà argomento del prossimo punto
Strumenti pronto uso.
Vediamo quali strumenti utilizzare per eseguire i nostri backup e per gestire al meglio i nastri.
In merito al primo punto, il buon vecchio "tar" la fa da padrone; grazie alla sua semplicità sarà possibile gestire tutto il processo facilmente.
Per la gestione della periferica, l'indicizzazione degli archivi e la gestione dei nastri passeremo al setaccio il pacchetto mt-st, che per molti potrebbe suonare nuovo
Prima di continuare, una piccola nota di percorso: una ricerca in rete mi ha permesso di scoprire un altro interessante pacchetto con il quale gestire la periferica: dds2tar.
Benché le funzionalità di mt-st siano più che sufficenti, a prima vista pare che dds2tar sia più specializzato per questo genere di compito.
È possibile scaricarlo sottoforma di sorgenti al seguente indirizzo:
ftp://ftp.uni-duesseldorf.de/pub/unix/apollo/
oppure come pacchetto precompilato, direttamente sul sito della propria distribuzione
Backup e gestione nastri.
[root: ~]# tar cvf /dev/st0 /home/website/ /var/spool/mail/
|
E se a questo punto volessimo estrarre i dati salvati? Niente di più semplice!
[root: ~]# tar xvf /dev/st0
|
Pensate ad esempio a diversi DB MySQL, e la necessità di salvarli all'interno dei nastri. Potrebbe essere sufficente crearsi uno script che esegua il dump completo delle tabelle all'interno del nostro filesystem e, successivamente, attraverso un cronjob salvare i dati definitivamente su nastro.
#!/bin/sh # # Nome: backup.sh # # Descrizione: # Un semplice script di backup per i nostri dati # comprese le tabelle mysql. # BACKUPFILE="/etc/ /home/websites/ /var/spool/mail" MYSQLDESTFS="/etc/mysql/data" DEVICE="/dev/st0" DATA=`date` SENDTO="beppebz (at) tin (dot) it" # Ovviamente nello script vero e proprio # l'indirizzo va inserito correttamente # ovvero con i caratteri @ e "." echo "Dump delle tabelle MySQL..." echo " ----> DATABASE DB1" mysqldump --opt -u root -ppasswd db1 > $MYSQLDESTFS/db1.sql echo " ----> DATABASE DB2" mysqldump --opt -u root -ppasswd db2 > $MYSQLDESTFS/db2.sql echo "Dump DATABASE completato: inizio il trasporto dei dati sul nastro" tar cvf $DEVICE $BACKUPFILE echo "Spedisco il messaggio di conferma" mailx -s "Backup del $DATA effettuato" $SENDTO echo "Done.. have a nice day :)"
Un altro esempio potrebbe essere quello di eseguire il dump dei dati di altre macchine tramite NFS: è sufficente sincronizzare gli orari attraverso il protocollo NTP, e al momento che riteniamo più opportuno salvare i dati prelevandoli dalla directory remota. |
Esistono sicuramente alternative migliori e mirate per fare questo, ma in tutti casi ove le neccessità non siano particolari potrebbe essere una soluzione da considerare.
A questo punto è d'uopo sottolineare che le periferiche trattate in quest'articolo sono ad accesso sequenziale (come ci suggerisce il nostro sistema):
Type: Sequential-Access.
Ad onor del vero i nastri non richiedono formattazione alcuna, l'estrazione dei dati non richiede il mount della periferica (come invece accadrebbe ad esempio utilizzando un CD-ROM) e l'estrazione o la lettura degli archivi richiede che il nastro venga prima posizionato sull'archivio interessato.
Per certi versi, l'impossibilità di montare la periferica e quindi di trattare i dati in essa contenuti come se facessero parte integrante del filesystem risulta un po' scomodo
Per fortuna questi compiti sono affidati a mt-st, che oltre ad essere semplice nel suo utilizzo, è accompagnato da un'ottima documentazione
Vediamo comunque qualche esempio:
# Riavvolgimento del nastro [root: ~]# mt -f /dev/st0 rewind # Riavvolgimento con espulsione [root: ~]# mt -f /dev/st0 rewoffl # Stampa lo stato dell'unita [root: ~]# mt -f /dev/st0 status # Cancella l'intero contenuto [root: ~]# mt -f /dev/st0 erase # Quattro archivi sul nastro. Intendiamo leggere ed estrarre il terzo archivio. # Successivamente leggeremo il secondo. [root: ~]# mt -f /dev/nst0 rewind [root: ~]# mt -f /dev/nst0 fsf 2 [root: ~]# tar tvf /dev/nst0 [root: ~]# tar xvf /dev/nst0 [root: ~]# mt -f /dev/nst0 bsf 1 [root: ~]# tar xvf /dev/nst0
|
Conclusioni.
Nel corso di questo breve viaggio ho cercato di porvi di fronte ad un panorama riguardante i backup e le periferiche SCSI. La vastità degli argomenti non mi permette di entrare in merito alle singole situazioni; il compito per tutti è quello di ampliare i semplici esempi proposti adeguandoli alle proprie necessità.
A Small Fix for dds2tar.
According to the man page, dds2tar should be able to use an index file generated with an unpatched tar (using -Rv or -Rvv). But my tests showed that this is not the case.
Update: This fix has already been incorporated in Debian woody.
Resources
Nessun commento:
Posta un commento
Non inserire link cliccabili altrimenti il commento verrà eliminato. Metti la spunta a Inviami notifiche per essere avvertito via email di nuovi commenti.