Periferiche SCSI e backup: concetti di base ed il loro utilizzo (2a parte).
Dovremmo aver attivato il sistema SCSI ed il supporto per i dispositivi a nastro. Inoltre è stato incluso il driver per il solo controller a nostra disposizione, sperando di rendere il kernel più snello.
Come si evince dal nome, l’opzione “Verbose SCSI error reporting” stampa tutti i messaggi in maniera prolissa, utile non solo nel caso di problemi legati al controller, ma anche durante la comunicazione tra le periferiche. È consigliabile pertanto abilitarla!
Conclusa la fase di scelta dei driver da includere possiamo provvedere alla compilazione:
[root: ~]# make dep && make bzImage [root: ~]# make modules && make modules_install … [root: ~]# cd i386/boot/ [root: ~]# cp bzImage /boot/vmlinuz-2.4.18
Aggiorniamo il nostro boot loader e riavviamo il sistema per caricare il kernel appena compilato. Ecco l’esempio di lilo.conf:
[root: ~]# vi /etc/lilo.conf
…
image=/boot/vmlinuz-2.4.18
label=Linux SCSI Support
read-only
root=/dev/hda1
…
:wq
[root: ~]# /sbin/lilo -t
# Se non riscontriamo errori
[root: ~]# /sbin/lilo
[root: ~]# reboot
Dopo il riavvio possiamo verificare che il nostro lavoro abbia portato i frutti sperati. Il filesystem “/proc” ci riserva la risposta:
[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
Il procedimento forse più ostico, e che può presentare problemi, si è concluso con un trionfo! 🙂
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.
All’inizio dell’articolo avevamo ipotizzato di lavorare su una macchina che forniva servizi web e di posta elettronica, vediamo quindi come eseguire i backup di tutti i siti internet in hosting e le mailbox degli utenti:
[root: ~]# tar cvf /dev/st0 /home/website/ /var/spool/mail/
Potremmo ad esempio schedulare tramite cron questa semplice riga ed eseguire in automatico il backup.
E se a questo punto volessimo estrarre i dati salvati? Niente di più semplice!
[root: ~]# tar xvf /dev/st0
In questa sede trattiamo degli esempi generali, il nostro interesse principale è quello di prendere confidenza con i suddetti strumenti, ma ovviamente nessuno ci vieta di provare soluzioni più eleganti e complesse; come sottolineato all’inizio dell’articolo, i backup sono prima di tutto pianificazione.
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à.