Manuale di FreeBSD | ||
---|---|---|
Indietro | Capitolo 19 GEOM: Framework modulare per la trasformazione del disco | Avanti |
Il mirroring è una tecnologia utilizzata da molte aziende e utenti casalinghi per il salvataggio dei dati senza interruzioni. La presenza di un "mirror" significa semplicemente che il disco B replica il disco A;oppure che i dischi C e D replicano i dischi A e B. Indipendentemente dalla configurazione del disco, l'aspetto importante è che le informazioni presenti su un disco o una partizione sono letteralmente "replicati". Successivamente queste informazioni possono essere facilmente ripristinate,salvate senza che si verifichino disservizi o interruzioni nel loro accesso e, addirittura, conservate fisicamente in cassaforte.
Per cominciare assicurati che il sistema disponga di due dischi di identica capacità. Questo esercizio si riferisce a dischi SCSIad accesso diretto (da(4)),
Comincia installando FreeBSD sul primo disco creando solamente due partizioni. Una dovrebbe essere una partizione di swap, pari al doppio della RAM presente nel sistema e il resto dello spazio dedicato al filesystem di root (/). È possibile creare partizioni separate per gli altri mount points, aumentando parecchio la difficoltà di realizzazione del progetto; questo è dovuto alla necessità di alterare manualmente i settaggi di bsdlabel(8) e fdisk(8).
Riavvia e aspetta che il sistema sia completamente attivo. Non appena il boot è completato effettua il login come root.
Crea il device /dev/mirror/gm e fai un link dello stesso a /dev/da1:
# gmirror label -vnb round-robin gm0 /dev/da1
Il sistema dovrebbe rispondere con:
Metadata value stored on /dev/da1. Done.
Avvia GEOM,questa procedura caricherà nel kernel il modulo /boot/kernel/geom_mirror.ko
# gmirror load
Nota: Questo comando dovrebbe ora avere creato i nodi di devicegm0,gm0s1, gm0s1a e gm0s1c nella directory /dev/mirror.
Crea una label generica e un codice di boot nel device gm0 appena creato utilizzando il comando fdisk:
# fdisk -vBI /dev/mirror/gm0
Ora crea una label di informazioni generica con bsdlabel:
# bsdlabel -wB /dev/mirror/gm0s1
Nota: Se sono presenti più slices e partizioni, i flags dei due comandi precedenti richiederanno delle modifiche. Queste modifiche devono combaciare con la grandezza delle slices e delle partizioni dell'altro disco.
Utilizza l'utility newfs(8) per creare un filesystem di default sul nodo di devicegm0s1a:
# newfs -U /dev/mirror/gm0s1a
Questo dovrebbe causare la visualizzazione di un bel pò di numeri e informazioni varie da parte del sistema. È corretto. Esamina bene lo schermo per vedere se ci sono messaggi di errore e monta il device in /mnt:
# mount /dev/mirror/gm0s1a /mnt
Ora sposta tutti i dati presenti sul tuo disco di boot nel nuovo filesystem. Questo esempio usa i comandi dump(8) e restore(8) comunque anche dd(1) dovrebbe funzionare nel contesto che stiamo trattando. Evita di utilizzare tar(1) dal momento che non copia il codice di boot. In caso contrario il fallimento è garantito.
# dump -L -0 -f- / |(cd /mnt && restore -r -v -f-)
Questo deve essere fatto per ciascun filesystem. Disponi semplicemente il filesystem appropriato nella posizione corretta quando digiti il suddetto comando.
Ora edita il file /mnt/etc/fstab "replicato" e rimuovi,o commenta (#) la riga relativa al file di swap. [1] Per utilizzare il nuovo disco cambia le altre informazioni di filesystem. Dai un' occhiata al seguente esempio:
# Device Mountpoint FStype Options Dump Pass# #/dev/da0s2b none swap sw 0 0 /dev/mirror/gm0s1a / ufs rw 1 1
Ora crea un file boot.conf in entrambe le partizioni di root; quella corrente e quella nuova. Questo file aiuterà il BIOS di sistema ad effettuare il boot dal drive corretto.
# echo "1:da(1,a)/boot/loader" > /boot.config
# echo "1:da(1,a)/boot/loader" > /mnt/boot.config
Nota: Lo abbiamo inserito in entrambe le partizioni di root per assicurarci un boot corretto. Se per qualche ragione il sistema non potesse leggere la nuova partizione di root, è disponibile una procedura di recupero.
Adesso aggiungi la seguente linea al nuovo file /boot/loader.conf:
# echo 'geom_mirror_load="YES"' >> /mnt/boot/loader.conf
Questo indicherà a loader(8) come caricare il modulo geom_mirror.ko durante l'inizializzazione del sistema.
Riavvia il sistema:
# shutdown -r now
Se tutto è andato liscio il sistema dovrebbe aver effettuato il boot di devicegm0s1a e il prompt di login dovrebbe essere in attesa. Se qualcosa è andato storto fai riferimento alla sezione successiva "risoluzione dei problemi". Ora aggiungi al discoda0 al device gm0:
# gmirror configure -a gm0 # gmirror insert gm0 /dev/da0
Il flag -a
dice a gmirror(8) di usare la
sincronizzazione automatica; ovvero mirrorare automaticamente le scritture sul disco. La
manpage descrive come ricostruire o rimpiazzare i dischi, utilizzando data al posto di gm0.
Se al boot il sistema mostra un prompt simile a questo:
ffs_mountroot: can't find rootvp Root mount failed: 6 mountroot>
Riavvia la macchina utilizzando il tasto di reset o il pulsante di accensione. Arrivato al menu del boot, scegli l'opzione sei (6). Questo forzerà il sistema al prompt di loader(8). Carica manualmente il modulo del kernel:
OK? load geom_mirror.ko OK? boot
Se funziona significa che per qualche ragione il modulo non era stato caricato correttamente. Inserisci:
options GEOM_MIRROR
nel file di configurazione del kernek,ricompilalo e reinstallalo. Questo dovrebbe risolvere il problema.
[1] |
È opportuno chiarire che commentando la riga relativa allo swap nel file fstab ti sarà chiesto di ristabilire in un' altra maniera l'utilizzo dello spazio di swapping. Per maggiori informazioni a riguardo fai riferimento a Sezione 11.14, grazie. |
Questo, ed altri documenti, possono essere scaricati da ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Per domande su FreeBSD, leggi la documentazione prima di contattare <[email protected]>.
Per domande su questa documentazione, invia una e-mail a <[email protected]>.