doc/it_IT.ISO8859-15/books/handbook/geom/chapter.xml
Gabor Kovesdan a6684b4306 - Reduce the misuse of role attribute; role="directory" should actually be
class="directory"
- Add constraint to enforce this
2013-04-04 11:40:58 +00:00

432 lines
17 KiB
XML

<?xml version="1.0" encoding="iso-8859-15"?>
<!--
The FreeBSD Documentation Project
$FreeBSD$
Original revision: 1.18
-->
<chapter id="GEOM">
<chapterinfo>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Scritto da </contrib>
</author>
</authorgroup>
</chapterinfo>
<title>GEOM: Framework modulare per la trasformazione del disco</title>
<sect1 id="GEOM-synopsis">
<title>Sinossi</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>GEOM Disk Framework</primary>
<see>GEOM</see>
</indexterm>
<para>Questo articolo tratta l'utilizzo dei dischi attraverso la struttura
GEOM implementata in &os;. Questo include le più importanti
utility di controllo <acronym
role="Redundant Array of Inexpensive Disks">RAID</acronym>
che utilizzano la suddetta struttura per la loro configurazione.
Questo capitolo non si soffermerà in discussioni approfondite
su come la struttura GEOM utilizza o controlla gli I/O, il suo
sottosistema di funzionamento o il codice.
Queste informazioni sono fornite dalla manpage &man.geom.4; e
nei suoi vari riferimenti SEE ALSO. Questo capitolo non è nemmeno
la guida definitiva alla configurazione del <acronym>RAID</acronym>
Soltanto i dischi<acronym>RAID</acronym> classificati come "supportati
da GEOM" saranno discussi.</para>
<para>Dopo la lettura di questo capitolo saprai:</para>
<itemizedlist>
<listitem>
<para>Quale genere di supporto<acronym>RAID</acronym> è
disponibile attraverso GEOM.</para>
</listitem>
<listitem>
<para>Come usare le utilities di base per configurare, manutenere,
e manipolare i vari livelli di <acronym>RAID.</acronym>
</para>
</listitem>
<listitem>
<para>Come creare dei mirror, degli stripe, criptare e connettere dischi
remoti attraverso l'utilizzo di GEOM.</para>
</listitem>
<listitem>
<para>Come sbrogliare problematiche relative ai dischi connessi
attraverso GEOM.</para>
</listitem>
</itemizedlist>
<para>Prima di procedere alla lettura di questo capitolo dovresti:</para>
<itemizedlist>
<listitem>
<para>Sapere la meccanica di utilizzo dei dischi da parte di &os;.
(<xref linkend="disks"/>).</para>
</listitem>
<listitem>
<para>Sapere come configurare e installare un kernel personalizzato
sotto &os; (<xref linkend="kernelconfig"/>).</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="GEOM-intro">
<title>Introduzione a GEOM</title>
<para>GEOM permette l'accesso e il controllo alle classi &mdash; Master Boot
Records, <acronym>BSD</acronym> labels, ecc &mdash; attraverso l'uso
di forniture o di di files speciali in <filename
class="directory">/dev</filename>. Mediante il supporto di vari
software di configurazione<acronym>RAID</acronym> , GEOM fornisce un
accesso "trasparente" al sistema operativo
e alle utilità di sistema.</para>
</sect1>
<sect1 id="GEOM-striping">
<sect1info>
<authorgroup>
<author>
<firstname>Tom</firstname>
<surname>Rhodes</surname>
<contrib>Scritto da </contrib>
</author>
<author>
<firstname>Murray</firstname>
<surname>Stokely</surname>
</author>
</authorgroup>
</sect1info>
<title>RAID0 - Striping</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>Striping</primary>
</indexterm>
<para>Lo striping è un metodo utilizzato per unire gli hard disks in
un singolo volume. In molti casi, questo si ottiene attraverso dei
controllers hardware. Il sottosistema GEOM fornisce il supporto software
per il <acronym>RAID</acronym>0, conosciuto anche come disk
striping.</para>
<para>In un sistema <acronym>RAID</acronym>0, i dati sono tagliati in
blocchi che vengono "spalmati" su tutti i dischi della catena RAID.
Invece di aspettare che il sistema scriva un blocco di 256kb su un disco,
il <acronym>RAID</acronym>0 può scrivere blocchi di 64k ciascuno
su quattro differenti dischi, offrendo performances I/O migliori. Queste
performances possono essere ulteriormente migliorate utilizzando
più controllers per dischi.</para>
<para>In ogni "stripe" <acronym>RAID</acronym>0 ogni disco deve essere
della stessa grandezza degli altri, dal momento che le chiamate I/O sono
inframezzate per leggere e scrivere su più dischi in
parallelo.</para>
<mediaobject>
<imageobject>
<imagedata fileref="geom/striping" align="center"/>
</imageobject>
<textobject>
<phrase>Disk Striping Illustration</phrase>
</textobject>
</mediaobject>
<procedure>
<title>Creazione di uno stripe di dischi ATA non formattati</title>
<step>
<para>Caricare il modulo <filename>geom_stripe</filename>:</para>
<screen>&prompt.root; <userinput>kldload geom_stripe.ko</userinput></screen>
</step>
<step>
<para>Assicurati che esiste una appropriato mount point. Se il volume
in questione diventerà una partizione di root, allora usa
temporaneamente un mount point diverso,ad esempio <filename
class="directory">/mnt</filename>:</para>
<screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen>
</step>
<step>
<para>Determina i nomi dei devices per i dischi che verranno configurati
in stripe e creali. Ad esempio per configurare in modalità
stripe 2 dischi <acronym>ATA</acronym>
<filename>/dev/ad2</filename> e <filename>/dev/ad3</filename>
non ancora partizionati potresti usare il seguente comando.</para>
<screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput></screen>
</step>
<step>
<para>Se questo volume sarà utilizzato come dispositivo di root
da cui effettuare il boot, allora prima di creare il filesystem devi
utilizzare il seguente comando:</para>
<screen>&prompt.root; <userinput>fdisk -vBI /dev/stripe/st0</userinput></screen>
</step>
<step>
<para>Crea una tabella delle partizioni sul nuovo volume con in
seguente comando:</para>
<screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
</step>
<step>
<para>Questa procedura dovrebbe aver creato altri due device in
<filename class="directory">/dev/stripe</filename> in aggiunta a
<devicename>st0</devicename>. Nella fattispecie
<devicename>st0a</devicename> e <devicename>st0c</devicename>.
Ora bisogna creare un filesystem nel device
<devicename>st0a</devicename> utilizzando il comando
<command>newfs</command> come segue:</para>
<screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
<para>Dopo che per qualche secondo vedrete parecchi numeri scorrere
sullo schermo, la procedura sarà completa. Il volume è
stato creato ed è pronto per essere montato.</para>
</step>
</procedure>
<para>Per montare manualmente il dispositivo stripe appena creato usa il
seguente comando:</para>
<screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
<para>Per montare il filesystem stripe automaticamente all'avvio del
sistema, inserisci le informazioni del volume nel file
<filename>/etc/fstab</filename>:</para>
<screen>&prompt.root; <userinput>echo "/dev/stripe/st0a /mnt ufs rw 2 2" \</userinput>
<userinput>&gt;&gt; /etc/fstab</userinput></screen>
<para>Il modulo <filename>geom</filename> deve essere caricato contestualmente
all'avvio del sistema; questo lo si ottiene semplicemente inserendo la
seguente linea nel file <filename>/boot/loader.conf</filename>:</para>
<screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
</sect1>
<sect1 id="GEOM-mirror">
<title>RAID1 - Mirroring</title>
<indexterm>
<primary>GEOM</primary>
</indexterm>
<indexterm>
<primary>Disk Mirroring</primary>
</indexterm>
<para>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.</para>
<para>Per cominciare assicurati che il sistema disponga di due dischi di
identica capacità. Questo esercizio si riferisce a dischi
<acronym>SCSI</acronym>ad accesso diretto (&man.da.4;),</para>
<para>Comincia installando &os; sul primo disco creando solamente due
partizioni. Una dovrebbe essere una partizione di swap, pari al doppio
della <acronym>RAM</acronym> presente nel sistema e il resto dello spazio
dedicato al filesystem di root (<filename class="directory">/</filename>).
È 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 &man.bsdlabel.8; e &man.fdisk.8;.</para>
<para>Riavvia e aspetta che il sistema sia completamente attivo.
Non appena il boot è completato effettua il login come
<username>root</username>.</para>
<para>Crea il device <filename>/dev/mirror/gm</filename> e fai un link
dello stesso a <filename>/dev/da1</filename>:</para>
<screen>&prompt.root; <userinput>gmirror label -vnb round-robin gm0 /dev/da1</userinput></screen>
<para>Il sistema dovrebbe rispondere con:</para>
<screen>Metadata value stored on /dev/da1.
Done.</screen>
<para>Avvia GEOM,questa procedura caricherà nel kernel il modulo
<filename>/boot/kernel/geom_mirror.ko</filename></para>
<screen>&prompt.root; <userinput>gmirror load</userinput></screen>
<note>
<para>Questo comando dovrebbe ora avere creato i nodi di
device<devicename>gm0</devicename>,<devicename>gm0s1</devicename>,
<devicename>gm0s1a</devicename> e <devicename>gm0s1c</devicename> nella
directory <filename class="directory">/dev/mirror</filename>.</para>
</note>
<para>Crea una label generica e un codice di boot nel device
<devicename>gm0</devicename> appena creato utilizzando il comando
<command>fdisk</command>:</para>
<screen>&prompt.root; <userinput>fdisk -vBI /dev/mirror/gm0</userinput></screen>
<para>Ora crea una label di informazioni generica con
<command>bsdlabel</command>:</para>
<screen>&prompt.root; <userinput>bsdlabel -wB /dev/mirror/gm0s1</userinput></screen>
<note>
<para>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.</para>
</note>
<para>Utilizza l'utility &man.newfs.8; per creare un filesystem di default
sul nodo di device<devicename>gm0s1a</devicename>:</para>
<screen>&prompt.root; <userinput>newfs -U /dev/mirror/gm0s1a</userinput></screen>
<para>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 <filename class="directory">/mnt</filename>:</para>
<screen>&prompt.root; <userinput>mount /dev/mirror/gm0s1a /mnt</userinput></screen>
<para>Ora sposta tutti i dati presenti sul tuo disco di boot nel nuovo
filesystem. Questo esempio usa i comandi &man.dump.8; e &man.restore.8;
comunque anche &man.dd.1; dovrebbe funzionare nel contesto che stiamo
trattando. Evita di utilizzare &man.tar.1; dal momento che non copia il
codice di boot. In caso contrario il fallimento è
garantito.</para>
<screen>&prompt.root; <userinput>dump -L -0 -f- / |(cd /mnt &amp;&amp; restore -r -v -f-)</userinput></screen>
<para>Questo deve essere fatto per ciascun filesystem. Disponi
semplicemente il filesystem appropriato nella posizione corretta quando
digiti il suddetto comando.</para>
<para>Ora edita il file <filename>/mnt/etc/fstab</filename> "replicato" e
rimuovi,o commenta (#) la riga relativa al file di swap.
<footnote>
<para>È opportuno chiarire che commentando la riga relativa
allo swap nel file <filename>fstab</filename> ti sarà chiesto
di ristabilire in un' altra maniera l'utilizzo dello spazio di
swapping. Per maggiori informazioni a riguardo fai riferimento a
<xref linkend="adding-swap-space"/>, grazie.</para>
</footnote>
Per utilizzare il nuovo disco cambia le altre informazioni di filesystem.
Dai un' occhiata al seguente esempio:</para>
<programlisting># Device Mountpoint FStype Options Dump Pass#
#/dev/da0s2b none swap sw 0 0
/dev/mirror/gm0s1a / ufs rw 1 1
</programlisting>
<para>Ora crea un file <filename>boot.conf</filename> in entrambe le
partizioni di root; quella corrente e quella nuova. Questo file
aiuterà il <acronym>BIOS</acronym> di sistema ad effettuare il
boot dal drive corretto.</para>
<screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /boot.config</userinput></screen>
<screen>&prompt.root; <userinput>echo "1:da(1,a)/boot/loader" &gt; /mnt/boot.config</userinput></screen>
<note>
<para>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.</para>
</note>
<para>Adesso aggiungi la seguente linea al nuovo file
<filename>/boot/loader.conf</filename>:</para>
<screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' &gt;&gt; /mnt/boot/loader.conf</userinput></screen>
<para>Questo indicherà a &man.loader.8; come caricare il modulo
<filename>geom_mirror.ko</filename> durante l'inizializzazione del
sistema.</para>
<para>Riavvia il sistema:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
<para>Se tutto è andato liscio il sistema dovrebbe aver effettuato
il boot di device<devicename>gm0s1a</devicename> e il prompt di
<command>login</command> dovrebbe essere in attesa. Se qualcosa è
andato storto fai riferimento alla sezione successiva "risoluzione dei
problemi". Ora aggiungi al disco<devicename>da0</devicename> al device
<devicename>gm0</devicename>:</para>
<screen>&prompt.root; <userinput>gmirror configure -a gm0</userinput>
&prompt.root; <userinput>gmirror insert gm0 /dev/da0</userinput></screen>
<para>Il flag <option>-a</option> dice a &man.gmirror.8; di usare la
sincronizzazione automatica; ovvero mirrorare
automaticamente le scritture sul disco. La manpage descrive come
ricostruire o rimpiazzare i dischi, utilizzando
<devicename>data</devicename> al posto di
<devicename>gm0</devicename>.</para>
<sect2>
<title>Risoluzione dei problemi</title>
<sect3>
<title>Il sistema non effettua il boot</title>
<para>Se al boot il sistema mostra un prompt simile a questo:</para>
<programlisting>ffs_mountroot: can't find rootvp
Root mount failed: 6 mountroot>
</programlisting>
<para>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 &man.loader.8;.
Carica manualmente il modulo del kernel:</para>
<screen>OK? <userinput>load geom_mirror.ko</userinput>
OK? <userinput>boot</userinput></screen>
<para>Se funziona significa che per qualche ragione il modulo non era
stato caricato correttamente. Inserisci:</para>
<programlisting>options GEOM_MIRROR</programlisting>
<para>nel file di configurazione del kernek,ricompilalo e reinstallalo.
Questo dovrebbe risolvere il problema.</para>
</sect3>
</sect2>
</sect1>
</chapter>