aboutsummaryrefslogtreecommitdiff
path: root/it_IT.ISO8859-15/books/handbook/geom/chapter.sgml
blob: 28ccb0c886bdee098d07bb10d52c4b44b0157fc5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
<?xml version="1.0" encoding="ISO8859-15" standalone="no"?>
<!--
     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&ugrave; 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&agrave; 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 &egrave; 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> &egrave;
          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
        role="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&agrave; 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 &egrave; 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&ograve; scrivere blocchi di 64k ciascuno
      su quattro differenti dischi, offrendo performances I/O migliori.  Queste
      performances possono essere ulteriormente migliorate utilizzando
      pi&ugrave; 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&ugrave; 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&agrave; una partizione di root, allora usa
          temporaneamente un mount point diverso,ad esempio <filename
            role="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&agrave;
          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&agrave; 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 role="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&agrave; completa.  Il volume &egrave;
          stato creato ed &egrave; 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 &egrave; 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
      &egrave; 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&agrave;.  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 role="directory">/</filename>).
      &Egrave; possibile creare partizioni separate per gli altri mount points,
      aumentando parecchio la difficolt&agrave; di realizzazione del progetto;
      questo &egrave; dovuto alla necessit&agrave; 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 &egrave; 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&agrave; 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 role="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&ugrave; 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&ograve; di
      numeri e informazioni varie da parte del sistema.  &Egrave; corretto.
      Esamina bene lo schermo per vedere se ci sono messaggi di errore e monta
      il device in <filename role="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 &egrave;
      garantito.</para>

    <screen>&prompt.root; <userinput>dump -L -0 -f- / |(cd /mnt && 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>&Egrave; opportuno chiarire che commentando la riga relativa
          allo swap nel file <filename>fstab</filename> ti sar&agrave; 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&agrave; 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, &egrave; 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&agrave; 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 &egrave; 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 &egrave;
      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&agrave; 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>

<!--
     Local Variables:
     mode: sgml
     sgml-declaration: "../chapter.decl"
     sgml-indent-data: t
     sgml-omittag: nil
     sgml-always-quote-attributes: t
     sgml-parent-document: ("../book.sgml" "part" "chapter")
     End:
-->