Installazione di Gentoo con LVM2
1.
Introduzione
Questa guida si basa su un esempio fatto con due hard disk IDE. 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.
Avvertenza:
Questo documento non deve essere considerato un tutorial su LVM2. Deve servire
da supplemento alla procedura di installazione descritta nella parte 1 del manuale. E'
necessaria la lettura del manuale di installazione di Gentoo prima
di iniziare la procedura di installazione.
|
Nota:
Per una guida completa su LVM si consiglia di visitare
http://tldp.org/HOWTO/LVM-HOWTO
|
Requisiti iniziali
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 mirror di Gentoo sotto
/releases/x86/current/installcd. Altre architetture potrebbero
essere ugualmente supportate.
Se si sta installando LVM2 su un sistema già esistente con dello spazio
disponibile su hard disk, occorre attivare il modulo LVM2 (dm-mod).
Questo modulo è disponibile in gentoo-sources. La compilazione del
kernel e la configurazione di LVM2 viene affrontata più avanti in questa guida.
Non tutti i kernel della serie 2.4 forniti da Gentoo supportano LVM2!
Partizioni
Il sistema preso in esempio ha due hard disk IDE così partizionati:
- /dev/hda1 -- /boot
- /dev/hda2 -- (swap)
- /dev/hda3 -- /
- /dev/hda4 -- Utilizzato da LVM2
- /dev/hdb1 -- Utilizzato da LVM2
Importante:
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.
|
Ok, ora si comincia...
2.
Installazione
Seguire il manuale, ma con le seguenti correzioni al capitolo 4. Preparazione
dei dischi.
Utilizzare fdisk come descritto nel manuale, ma seguendo lo schema delle
partizioni menzionato sopra. Ricordarsi che è solo un esempio, e che va
adattato alle proprie esigenze.
Creare una piccola partizione fisica per /boot (hda1). In questo
esempio /boot non viene gestita da LVM2. In questa partizione
vengono memorizzati il bootloader e i vari kernel. Una partizione di 64MB
dovrebbe essere sufficientemente grande.
Creare una partizione di swap (hda2).
Creare una partizione per / (root) (hda3). 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 /opt, /usr, /home, /var e /tmp in un
volume group (vg) LVM2. In questo caso, 1GB dovrebbe essere sufficiente.
Nota:
Non si consiglia di inserire le directory seguenti in una partizione
LVM2: /etc, /lib, /mnt,
/proc, /sbin, /dev e /root.
In questo modo sarebbe comunque possibile accedere al sistema (corrotto, ma
ancora in qualche modo utilizzabile) come root, se malauguratamente qualcosa
andasse storto.
|
Supponendo che le partizioni di boot, 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).
Nota:
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.
|
Creare il filesystem su /dev/hda1 e /dev/hda3, e
creare ed attivare la partizione di swap su /dev/hda2 come
descritto nel manuale Gentoo.
Caricare il modulo di LVM2 dm-mod.
Codice 2.1: Caricamento del modulo di LVM2 |
# modprobe dm-mod
|
Prima di effettuare lo scan e di attivare LVM, si potrebbe voler modificare
/etc/lvm/lvm.conf 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 IDE.
Codice 2.2: Attivazione di LVM |
# nano -w /etc/lvm/lvm.conf
filter = [ "a/.*/" ]
filter = [ "a|/dev/hd[ab]|", "r/.*/" ]
# vgscan
Reading all physical volumes. This may take a while...
No volume groups found
# vgchange -a y
|
Preparare le partizioni.
Codice 2.3: Preparazione delle partizioni |
# pvcreate /dev/hda4 /dev/hdb1
No physical volume label read from /dev/hda4
Physical volume "/dev/hda4" successfully created
No physical volume label read from /dev/hdb1
Physical volume "/dev/hdb1" successfully created
|
Impostare un volume group. Un volume group è la combinazione di più unità
fisiche in un'unica unità logica.
In questo esempio, /dev/hda1, /dev/hda2 e
/dev/hda3 sono le partizioni di /boot, swap e root,
perciò quelle da combinare sono /dev/hda4 e
/dev/hdb1. Questo può essere ottenuto con un singolo comando, ma,
come nell'esempio, prima si creerà il volume group e poi verrà esteso.
Codice 2.4: Creazione ed estenzione del volume group |
# vgcreate vg /dev/hda4
/etc/lvm/backup: fsync failed: Invalid argument
Volume group "vg" successfully created
# vgextend vg /dev/hdb1
/etc/lvm/backup: fsync failed: Invalid argument
Volume group "vg" successfully extended
|
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:
| Directory |
Dimensione |
| /usr |
10 GB |
| /home |
5 GB |
| /opt |
5 GB |
| /var |
10 GB |
| /tmp |
2 GB |
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.
Nota:
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.
|
Codice 2.5: Creazione ed estensione dei volumi logici |
# lvcreate -L10G -nusr vg
Logical volume "usr" created
# lvcreate -L5G -nhome vg
# lvcreate -L5G -nopt vg
# lvcreate -L10G -nvar vg
# lvcreate -L2G -ntmp vg
# lvextend -L+5G /dev/vg/home
|
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.
Codice 2.6: Creazione dei filesystem |
# mke2fs -j /dev/vg/usr
# mke2fs -j /dev/vg/home
# mke2fs -j /dev/vg/opt
# mke2fs -j /dev/vg/var
# mke2fs -j /dev/vg/tmp
|
Come descritto nel manuale effettuare il mount delle partizioni e allo stesso
modo dei volumi logici LVM2 sostituendo però i soliti /dev/hdxx con
/dev/vg/logical_volumename.
Codice 2.7: Mount dei volumi logici |
# mkdir /mnt/gentoo/usr
# mount /dev/vg/usr /mnt/gentoo/usr
# mkdir /mnt/gentoo/home
# mount /dev/vg/home /mnt/gentoo/home
# mkdir /mnt/gentoo/opt
# mount /dev/vg/opt /mnt/gentoo/opt
# mkdir /mnt/gentoo/var
# mount /dev/vg/var /mnt/gentoo/var
# mkdir /mnt/gentoo/tmp
# mount /dev/vg/tmp /mnt/gentoo/tmp
|
Nota:
Il resto della procedura di installazione è simile al manuale, perciò d'ora
in avanti verranno evidenziate solo le differenze.
|
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:
Codice 2.8: Selezione del modulo LVM2 in un kernel 2.4.x |
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
< > Logical volume manager (LVM) support
<M> Device-mapper support
< > Mirror (RAID-1) support
|
Codice 2.9: Selezione del modulo LVM2 in un kernel 2.6.x |
Device Drivers --->
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
< > RAID support
<M> Device mapper support
|
Il modulo compilato si chiama dm-mod.ko
Dopo aver compilato il kernel e installato i suoi moduli aggiungere la riga
seguente al file /etc/modules.autoload.d/kernel-{KV}, dove {KV}
rappresenta la versione del kernel (2.4 o 2.6), in modo da fare caricare il
modulo di LVM2 all'avvio della macchina:
Codice 2.10: Aggiunta del modulo di LVM2 in /etc/modules.autoload.d/kernel-2.6 |
# nano -w /etc/modules.autoload.d/kernel-2.6
dm-mod
|
A questo punto installare il pacchetto lvm2.
Importante:
Assicurarsi che il link /usr/src/linux 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
/usr/src/linux/include/linux.
|
Codice 2.11: Installazione del pacchetto lvm2 |
# emerge lvm2
|
Modificare /etc/lvm/lvm.conf come descritto precedentemente. 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.
Nel modificare il file /etc/fstab seguire il manuale ed aggiungere
i volumi logici LVM2. Ancora una volta, qui ci sono alcune linee necessarie per
il nostro esempio:
Codice 2.12: Frammento di /etc/fstab |
/dev/hda1 /boot ext3 noauto,noatime 1 2
/dev/hda2 none swap sw 0 0
/dev/hda3 / 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
|
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:
Codice 2.13: Arresto di LVM2 |
# vgchange -a n
|
Una volta riavviata la macchina tutte le partizioni dovrebbero essere visibili e
montate.
3.
Continuare Dopo un Riavvio
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:
Codice 3.1: Riattivare i volumi |
# vgscan --mknodes
|
I cd di installazione con strumenti meno recenti potrebbero necessitare invece
di riattivare i volumi:
Codice 3.2: Riattivare i volumi |
# vgexport -a vg
# vgexport -a vg
# vgimport -a vg
# vgchange -a y
|
4.
Risorse
5.
Ringraziamenti
Si ringrazia Thilo Bangert e Terje Kvernes per il loro aiuto e per i
commenti su questo documento.
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|