last update 10/ april / 2002

GNU/Linux e il backup:Un caso reale

Quella che segue è la cronaca del percorso seguito per installare un unità di backup su un server GNU/Linux.
L'intento era quello di dotare gli utenti di un file server non-NT e di fornire un servizio di backup.

Questo è il primo file server GNU/Linux introdotto nell' azienda e la scelta della distribuzione è caduta sulla distribuzione Red Hat solo per ragioni di esperienze personali.
La scelta dell'unità di backup è stata un poco atipica in quanto non è stata il risultato di un analisi tecnica, quanto piuttosto dettata da ragioni di costo, in quanto abbiamo recuperato un unità che aveva un' altra destinazione, iniziale, d'uso. In parole povere mi sono trovato a disposizione una unità HP Colorado 14G IDE interna da "riciclare".
Altra premessa fondamentale è che il sottoscritto usa Linux, come utente, da 3 anni circa, ma ha sempre amministrato reti NT (con tutti i problemi del caso). Molte cose che andrò a spiegare sono forse scontate per un professsionista ma sono un esempio di come un neofita può affrontare un problema e risolverlo.

L'installazione del sistema operativo è stata un installazione "custom". Per scelta, infatti, stati esclusi i pacchetti dei giochi e di altre amenita ritenute superflue per le funzioni scelte per il servente. Non ho eseguito l'installazione con la modalità che Red Hat definisce "server" perchè volevo avere il controllo della situazione ovvero dei pacchetti installati.
Dopo l' installazione ho verificato che, al boot, l'unità di backup veniva rilevata dal sistema come hdd (tale indicazione compare fra i messaggi mostrati all'avvio del sistema). L'unità è infatti collegata come disco slave sul secondo controller IDE e quindi l'identificazione era corretta. A questo punto non ero assolutamente al corrente di cosa fare per effettuare un backup.
Da alcuni articoli letti sulla Linux Gazette ricordavo che era sufficiente esguire un comando tar con destinazione il dispositivo che rappresenta l'unità a nastro. Mi sembra superfluo dire che qualcosa del tipo
tar -cvf nomefile /dev/hdd
non ha funzionato.

A questo punto il sottoscritto ha scaricato da internet il file BAKUP HOW-TO e, male interpretando le istruzioni contenute, ho confuso la mia unita IDE con una unità floppy (ovvero una di quellle unità di backup che si collegano in cascata al floppy disk).
Dopo vari tentativi per l'installazione del modulo ftape, (ovvero il driver per le unità floppy-tape), è giunta l'illuminazione: dopo un ennesimo stupidotentativo di scrittura su /dev/hdd ho eseguito un comando lsmod per vedere se il modulo ftape veniva caricato in memoria. Al suo posto trovavo un ide-tape caricato automaticamente.

Nuova ricerca e nuove informazioni: l'errore da me commesso era evidente non avevo a che fare con un floppy tape ma con un ide tape.
Una nota in calce alla lista delle unità di backup supportate su www.redhat.com recitava quanto segue:
Make sure you load the ide-tape.o module... the tape drive will then likely appear as /dev/ht0. Do a "ln -s /dev/ht0 /dev/tape"...
Ovvero: "Verificate di aver caricato il modulo ide-tape... l'unità a nastro a quel punto sarà identificata come /dev/ht0. Eseguite il comando ln -s /dev/ht0 /dev/tape ...." Dopo aver creato il link soprariportato vi assicuro che l'operazione:
tar -cvf nomefile /dev/tape
ha fatto il suo dovere.

Per le operazioni di backup è stato poi creato uno script (copiato di sana pianta dal "Backup how-to"), nel quale è necessario configurare le righe seguenti:
EMAILTO=<nomeutente@dominio> ovvero il destinatario degli avvisi
DESTFILE="/dev/tape" ovvero il device dell'unità
BACKUPFILES="/root /etc /home" directories di cui eseguire il backup
In tale script sono previsti 2 livelli di backup (0 o 1) da passare come parametro allo script stesso: il livello 0 esegue un backup completo, il livello uno esegue un backup incrementale .
Lo script è stato salvato in /usr/local/bin col nome backup.sh (come suggerito dall'how-to).

Dopo questo è stato "sufficiente" :-) schedulare le operazioni di backup con cron:
Cron (per i pochi che non lo sanno...tra cui il sottoscritto :-) ) è un comando atto a schedulare dei processi/comandi che vengono eseguiti in background.
Ovviamente è conveniente che i processi schedulati non richiedano iterattività da parte dell'operatore altrimenti si rischia di ritrovarsi una serie di richieste di conferma in attesa del nostro ritorno dalle ferie.

A questo punto per avere un server funzionante era sufficiente configurare samba , gli utenti, creare le directory condivise e poco altro....

di Rudi Giacomini Pilon