<?xml version='1.0' encoding="UTF-8"?>
<!DOCTYPE guide SYSTEM "/dtd/guide.dtd">
<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/doc/it/lvm2.xml,v 1.21 2012/11/05 14:43:56 ago Exp $ -->

<guide lang="it">
<title>Installazione di Gentoo con LVM2</title>

<author title="Autore">
  <mail link="avi@CFFtechnologies.com">Avi Schwartz</mail>
</author>
<author title="Contributi">
  <mail link="rajiv@gentoo.org">Rajiv Manglani</mail>
</author>
<author title="Redazione">
  <mail link="neysx@gentoo.org">Xavier Neys</mail>
</author>
<author title="Traduzione">
  <mail link="emix@solira.org">Emilio Pavia</mail>
</author>
<author title="Traduzione">
  <mail link="gianni.costanzi@gmail.com">Gianni Costanzi</mail>
</author>

<abstract>
Questa guida descrive la configurazione di un sistema Gentoo per l'utilizzo
del Logical Volume Manager versione 2 (LVM2).
</abstract>

<!-- The content of this document is licensed under the CC-BY-SA license -->
<!-- See http://creativecommons.org/licenses/by-sa/2.5 -->
<license/>

<version>6</version>
<date>2012-04-01</date>

<chapter>
<title>Introduzione</title>
<section>
<body>

<p>
Questa guida si basa su un esempio fatto con due hard disk SATA. Ciò vuol dire
che molto probabilmente è necessario modificare le unità, i nomi delle
partizioni e le loro dimensioni per essere adattata alla propria configurazione
e alle proprie esigenze.
</p>

<warn>
Questo documento non deve essere considerato un tutorial su LVM2. Deve servire
da supplemento alla procedura di installazione descritta nella <uri
link="/doc/it/handbook/handbook-x86.xml?part=1">parte 1 del manuale</uri>. E'
necessaria la <e>lettura</e> del manuale di installazione di Gentoo <e>prima</e>
di iniziare la procedura di installazione.
</warn>

<note>
Per una guida completa su LVM si consiglia di visitare
<uri>http://tldp.org/HOWTO/LVM-HOWTO</uri>
</note>
</body>
</section>

<section>
<title>Requisiti iniziali</title>
<body>

<p>
Se si sta effettuando una nuova installazione di Gentoo, occorre un CD avviabile
con il supporto a LVM2, come ad esempio il CD di installazione di Gentoo. E'
possibile trovare il CD di installazione per l'architettura x86 sui <uri
link="/main/en/mirrors.xml">mirror</uri> di Gentoo sotto
<path>/releases/x86/current/installcd</path>. Altre architetture potrebbero
essere ugualmente supportate.
</p>

<p>
Se si sta installando LVM2 su un sistema già esistente con dello spazio
disponibile su hard disk, occorre attivare il modulo LVM2 (<path>dm-mod</path>) 
nel kernel. Questo modulo è disponibile in <path>gentoo-sources</path>. 
La compilazione del kernel e la configurazione di LVM2 viene affrontata 
più avanti in questa guida.
</p>

<p>
Non tutti i kernel della serie 2.4 forniti da Gentoo supportano LVM2!
</p>

</body>
</section>

<section>
<title>Partizioni</title>
<body>

<p>
Il sistema preso in esempio ha due hard disk SATA così partizionati:
</p>

<ul>
  <li>/dev/sda1  --  /boot</li>
  <li>/dev/sda2  --  (swap)</li>
  <li>/dev/sda3  --  /</li>
  <li>/dev/sda4  --  Utilizzato da LVM2</li>
  <li>/dev/sdb1  --  Utilizzato da LVM2</li>
</ul>

<impo>
Fare attenzione ai nomi delle partizioni poiché è facile confondere le a con le
b, e i numeri delle partizioni. Un passo falso potrebbe causare la cancellazione
della partizione sbagliata.
</impo>

<p>
Ok, ora si comincia...
</p>

</body>
</section>
</chapter>

<chapter>
<title>Installazione</title>
<section>
<body>

<p>
Seguire il manuale, ma con le seguenti correzioni al capitolo <e>4. Preparazione
dei dischi</e>.
</p>

<p>
Utilizzare <c>fdisk</c> come descritto nel manuale, ma seguendo lo schema delle
partizioni menzionato sopra. Ricordarsi che è solo <e>un esempio</e>, e che va
adattato alle proprie esigenze.
</p>

<p>
Creare una piccola partizione fisica per <path>/boot</path> (sda1). In questo
esempio <path>/boot</path> non viene gestita da LVM2. In questa partizione
vengono memorizzati il bootloader e i vari kernel. Una partizione di 64MB
dovrebbe essere sufficientemente grande.
</p>

<p>
Creare una partizione di swap (sda2).
</p>

<p>
Creare una partizione per / (root) (sda3). Se si fosse interessati a gestire la
partizione di root con LVM (cosa che non raccomandiamo), si può visitare, nella
sezione 'Risorse' alla fine di questa guida, un link ad un mini-guida su come
fare ciò. Non occorre assegnare troppo spazio alla partizione di root se si
decide di tenere <path>/opt, /usr, /home, /var</path> e <path>/tmp</path> in un
volume group (vg) LVM2. In questo caso, 1GB dovrebbe essere sufficiente.
</p>

<note>
<b>Non</b> si consiglia di inserire le directory seguenti in una partizione
LVM2: <path>/etc</path>, <path>/lib</path>, <path>/mnt</path>,
<path>/proc</path>, <path>/sbin</path>, <path>/dev</path> e <path>/root</path>.
In questo modo sarebbe comunque possibile accedere al sistema (corrotto, ma
ancora in qualche modo utilizzabile) come root, se malauguratamente qualcosa
andasse storto.
</note>

<p>
Supponendo che le partizioni di <path>boot</path>, swap e root non utilizzino
l'intero disco fisico, creare una quarta partizione sul disco ed impostarla di
tipo 8e (Linux LVM). Se si hanno più dispositivi fisici che si vogliono
utilizzare con LVM, creare una partizione su ognuno di essi ed impostarla dello
stesso tipo (8e).
</p>

<note>
Considerando le grosse dimensioni dei dischi odierni, si potrebbe pensare di
dividere il proprio hard disk in piccole partizioni anziché crearne un'unica
grossa da aggiungere in un unico blocco ad un volume group LVM2. Dopo tutto LVM2
permette di gestire facilmente il ridimensionamento dei volumi. Questa soluzione
lascia alcune partizioni non allocate che potrebbero servire al di fuori di un
gruppo LVM2. In breve, non si deve utilizzare lo spazio su disco se non è
necessario. Per esempio si può pensare di dividere un hard disk da 160 GB in 8
partizioni da 20 GB ciascuna.
</note>

<p>
Creare il filesystem su <path>/dev/hda1</path> e <path>/dev/hda3</path>, e
creare ed attivare la partizione di swap su <path>/dev/hda2</path> come
descritto nel manuale Gentoo.
</p>

<p>
Avviare il servizio lvm.
</p>

<pre caption="Avvio del servizio lvm">
# <i>rc-config start lvm</i>
</pre>

<p>
È consigliato aggiungere il servizio lvm al runlevel boot. In questo modo
LVM2 sarà attivato ogni volta che si avvia il sistema.
</p>

<pre caption="Aggiungere lvm al runlevel boot">
# <i>rc-config add lvm boot</i>
</pre>

<p>
Prima di effettuare lo scan e di attivare LVM, si potrebbe voler modificare
<path>/etc/lvm/lvm.conf</path> per escludere alcuni dispositivi. In modo
predefinito, LVM2 effettua la scansione di tutti i dispositivi, persino del
CDROM, il che potrebbe generare messaggi d'errore. Nell'esempio seguente, la
linea che consente la scansione di tutti i dispositivi è sostituita da una linea
che evita la scansione di tutti i dispositivi tranne i propri due dischi SATA.
</p>

<pre caption="Attivazione di LVM">
<comment>(Evitare la scansione di tutti i dispositivi tranne i propri dischi)</comment>
# <i>nano -w /etc/lvm/lvm.conf</i>
<comment>(Cercare la linea seguente)</comment>
  filter = [ "a/.*/" ]
<comment>(Sostituire tale linea con la seguente, in modo da effettuare la scansione di /dev/sda e /dev/sdb e di nessun altro dispositivo)</comment>
  filter = [ "a|/dev/sd[ab]|", "r/.*/" ]
<comment>(Salvare il file ed uscire da nano)</comment>
# <i>vgscan</i>
  Reading all physical volumes.  This may take a while...
  No volume groups found
<comment>(Rendere disponibile ogni volume group precedentemente impostato)</comment>
# <i>vgchange -a y</i>
</pre>

<p>
Preparare le partizioni.
</p>

<pre caption="Preparazione delle partizioni">
# <i>pvcreate /dev/sda4 /dev/sdb1</i>
  No physical volume label read from /dev/sda4
  Physical volume "/dev/sda4" successfully created
  No physical volume label read from /dev/sdb1
  Physical volume "/dev/sdb1" successfully created
</pre>

<p>
Impostare un volume group. Un volume group è la combinazione di più unità
fisiche in un'unica unità logica.
</p>

<p>
In questo esempio, <path>/dev/sda1</path>, <path>/dev/sda2</path> e
<path>/dev/sda3</path> sono le partizioni di <path>/boot</path>, swap e root,
perciò quelle da combinare sono <path>/dev/sda4</path> e
<path>/dev/sdb1</path>. Questo può essere ottenuto con un singolo comando, ma,
come nell'esempio, prima si creerà il volume group e poi verrà esteso.
</p>


<pre caption="Creazione ed estenzione del volume group">
<comment>(Creare un volume group di nome vg)</comment>
# <i>vgcreate vg /dev/sda4</i>
  /etc/lvm/backup: fsync failed: Invalid argument <comment>(Ignorare questo avviso)</comment>
  Volume group "vg" successfully created
<comment>(Estendere il volume group esistente)</comment>
# <i>vgextend vg /dev/sdb1</i>
  /etc/lvm/backup: fsync failed: Invalid argument <comment>(Ignorare ancora questo avviso e quelli più avanti)</comment>
  Volume group "vg" successfully extended
</pre>

<p>
Creare i volumi logici. I volumi logici sono l'equivalente delle partizioni che
verrebbero create utilizzando fdisk in un ambiente non LVM2. Nell'esempio
vengono create le seguenti partizioni:
</p>

<table>
<tr>
  <th>Directory</th>
  <th>Dimensione</th>
</tr>
<tr>
  <ti>/usr</ti>
  <ti>10 GB</ti>
</tr>
<tr>
  <ti>/home</ti>
  <ti>5 GB</ti>
</tr>
<tr>
  <ti>/opt</ti>
  <ti>5 GB</ti>
</tr>
<tr>
  <ti>/var</ti>
  <ti>10 GB</ti>
</tr>
<tr>
  <ti>/tmp</ti>
  <ti>2 GB</ti>
</tr>
</table>

<p>
Dato che si sta utilizzando LVM2 non ci si deve preoccupare molto dello spazio
assegnato alle partizioni perché queste ultime possono essere ridimensionate in
qualsiasi momento in base alle esigenze.
</p>

<note>
Terje Kvernes ha fatto notare che è più semplice aumentare la dimensione di una
partizione anziché ridurla. Per questo è conveniente iniziare con partizioni più
piccole ed aumentare le dimensioni quando serve.
</note>

<pre caption="Creazione ed estensione dei volumi logici">
# <i>lvcreate -L10G -nusr  vg</i>
  Logical volume "usr" created <comment>(Gli altri messaggi simili non vengono mostrati)</comment>
# <i>lvcreate -L5G  -nhome vg</i>
# <i>lvcreate -L5G  -nopt  vg</i>
# <i>lvcreate -L10G -nvar  vg</i>
# <i>lvcreate -L2G  -ntmp  vg</i>
<comment>(Nell'esempio si mostra come ingrandire un volume logico di altri 5 GB)</comment>
# <i>lvextend -L+5G /dev/vg/home</i>
</pre>


<p>
Creare i filesystem sui volumi logici nello stesso modo in cui si farebbe sulle
normali partizioni. Qui viene utilizzato ext3 ma qualsiasi filesystem va bene.
</p>

<pre caption="Creazione dei filesystem">
# <i>mke2fs -j /dev/vg/usr</i>
# <i>mke2fs -j /dev/vg/home</i>
# <i>mke2fs -j /dev/vg/opt</i>
# <i>mke2fs -j /dev/vg/var</i>
# <i>mke2fs -j /dev/vg/tmp</i>
</pre>


<p>
Come descritto nel manuale effettuare il mount delle partizioni e allo stesso
modo dei volumi logici LVM2 sostituendo però i soliti <path>/dev/hdxx</path> con
<path>/dev/vg/logical_volumename</path>.
</p>

<pre caption="Mount dei volumi logici">
<comment>(Assicurarsi di aver fatto prima il mount della partizione di root come descritto nel manuale)</comment>
# <i>mkdir /mnt/gentoo/usr</i>
# <i>mount /dev/vg/usr /mnt/gentoo/usr</i>
# <i>mkdir /mnt/gentoo/home</i>
# <i>mount /dev/vg/home /mnt/gentoo/home</i>
# <i>mkdir /mnt/gentoo/opt</i>
# <i>mount /dev/vg/opt /mnt/gentoo/opt</i>
# <i>mkdir /mnt/gentoo/var</i>
# <i>mount /dev/vg/var /mnt/gentoo/var</i>
# <i>mkdir /mnt/gentoo/tmp</i>
# <i>mount /dev/vg/tmp /mnt/gentoo/tmp</i>
</pre>

<note>
Il resto della procedura di installazione è simile al manuale, perciò d'ora
in avanti verranno evidenziate solo le differenze.
</note>

<p>
Quando si configura il kernel assicurarsi di configurare il supporto a LVM2 (non
tutti i kernel della serie 2.4 lo supportano). Selezionare il modulo LVM2 nel
modo seguente:
</p>

<pre caption="Selezione del modulo LVM2 in un kernel 2.4.x">
Multiple devices driver support (RAID and LVM)  ---&gt;
  [*] Multiple devices driver support (RAID and LVM)
  &lt; &gt;  RAID support
<comment>(Notare che LVM non è selezionato di proposito perchè è relativo a LVM1)</comment>
  &lt; &gt;  Logical volume manager (LVM) support
  &lt;M&gt;  Device-mapper support
  &lt; &gt;   Mirror (RAID-1) support
</pre>

<pre caption="Selezione del modulo LVM2 in un kernel 2.6.x">
Device Drivers  ---&gt;
 Multi-device support (RAID and LVM)  ---&gt;
   [*] Multiple devices driver support (RAID and LVM)
   &lt; &gt;   RAID support
   &lt;M&gt;   Device mapper support
</pre>

<p>
Il modulo compilato si chiama <path>dm-mod.ko</path>
</p>

<p>
Nel caso in cui <path>/usr</path> o <path>/var</path> sono su una partizione LVM
occorre creare anche un'immagine initramfs. Non dimenticare poi di modificare i
file di configurazione del proprio bootloader in modo da effettuare il boot con
l'immagine initramfs appena creata (aggiungere <c>dolvm</c> ai parametri di
boot).
</p>

<pre caption="Creare un'immagine initramfs">
# <i>emerge genkernel</i>
# <i>genkernel --lvm --install initramfs</i>
# <i>nano -w /boot/grub/grub.conf</i>
<comment>(...)</comment>
title Gentoo Linux
root (hd0,0)
kernel /kernel-3.2.2-gentoo-r5 root=/dev/sda1 <i>dolvm</i>
<i>initrd /initramfs-genkernel-x86_64-3.2.2-gentoo-r5</i>
</pre>

<p>
A questo punto installare il pacchetto lvm2.
</p>

<impo>
Assicurarsi che il link <path>/usr/src/linux</path> punti ai sorgenti del kernel
utilizzato perchè l'ebuild di lvm2 dipende dall'ebuild di device-mapper che
controlla la presenza di un file sorgente richiesto sotto
<path>/usr/src/linux/include/linux</path>.
</impo>

<pre caption="Installazione del pacchetto lvm2">
# <i>emerge lvm2</i>
</pre>

<p>
Modificare <path>/etc/lvm/lvm.conf</path> come descritto <uri
link="#doc_chap2_pre2">precedentemente</uri>. Questo file modificato fa parte
dell'ambiente di installazione e scomparirà dopo il riavvio successivo. Questa
volta si sta modificando quello reale all'interno della nuova installazione
Gentoo.
</p>

<p>
Nel modificare il file <path>/etc/fstab</path> seguire il manuale ed aggiungere
i volumi logici LVM2. Ancora una volta, qui ci sono alcune linee necessarie per
il nostro esempio:
</p>

<pre caption="Frammento di /etc/fstab">
/dev/sda1     /boot   ext3    noauto,noatime 1 2
/dev/sda2     none    swap    sw             0 0
/dev/sda3     /       ext3    noatime        0 1
# Volumi Logici
/dev/vg/usr   /usr    ext3    noatime        0 2
/dev/vg/home  /home   ext3    noatime        0 2
/dev/vg/opt   /opt    ext3    noatime        0 2
/dev/vg/var   /var    ext3    noatime        0 2
/dev/vg/tmp   /tmp    ext3    noatime        0 2
</pre>

<p>
Raggiunta nel manuale la fine della parte relativa all'installazione, ricordarsi
di effettuare l'umount di tutti i volumi logici LVM2, ed eseguire il comando
seguente prima di riavviare:
</p>

<pre caption="Arresto di LVM2">
# <i>vgchange -a n</i>
</pre>

<p>
Una volta riavviata la macchina tutte le partizioni dovrebbero essere visibili e
montate.
</p>

</body>
</section>
</chapter>

<chapter>
<title>Continuare Dopo un Riavvio</title>
<section>
<body>

<p>
Se l'installazione di Gentoo è stata interrotta in un certo momento e la si
vuole riprendere, per prima cosa si devono creare i nodi di dispositivo dei
volumi:
</p>

<pre caption="Riattivare i volumi">
  # <i>vgscan --mknodes</i>
</pre>

<p>
I cd di installazione con strumenti meno recenti potrebbero necessitare invece
di riattivare i volumi:
</p>

<pre caption="Riattivare i volumi">
<comment>(Disattivare prima tutti i volumi)</comment>
# <i>vgexport -a vg</i>
<comment>(Esportare tutti i volumi)</comment>
# <i>vgexport -a</i>
<comment>(Importare tutti i volumi)</comment>
# <i>vgimport -a</i>
<comment>(Riattivare tutti i volumi)</comment>
# <i>vgchange -a y</i>
</pre>

</body>
</section>
</chapter>

<chapter>
<title>Risorse</title>
<section>

<body>
<ul>
  <li>
    <uri link="http://sources.redhat.com/lvm2">Home Page</uri> ufficiale di LVM2
  </li>
  <li><uri link="http://tldp.org/HOWTO/LVM-HOWTO">LVM Howto</uri></li>
  <li>
    Articoli di Daniel Robbins riguardanti LVM su IBM DeveloperWorks: <uri
    link="/doc/it/articles/lvm-p1.xml">Parte 1</uri> e <uri
    link="/doc/it/articles/lvm-p2.xml">Parte 2</uri>
  </li>
  <li>
    Come fare il boot con il filesystem di root sotto LVM:
   <uri>http://www.the-infinite.org/archive/docs/lvm/howto-boot-off-root-lv.txt</uri>
</li>
</ul>

</body>
</section>
</chapter>

<chapter>
<title>Ringraziamenti</title>
<section>
<body>

<p>
Si ringrazia <mail link="bangert@gentoo.org">Thilo Bangert</mail> e <mail
link="terjekv@math.uio.no">Terje Kvernes</mail> per il loro aiuto e per i
commenti su questo documento.
</p>

</body>
</section>
</chapter>
</guide>
