OPSSSSSSSS I° parte dell HowTo
Logical Volume Manager Mini-HowTo
Di Marcarelli Marco
marcarelli80@libero.it
Ver 0.2 10/07/2003
--------------------------------
Come utilizzare in pochi semplici passi
un utilissimo strumento come LVM.
Ovvero come gestire in modo molto efficiente
lo spazio disco a nostra disposizione.
--------------------------------
1)Disclaimer & Copyright:
La procedura che andrò ad esporre non è di per se particolarmente pericolosa,
ma poichè si andrà ad agire sulla tabelal delle partizioni degòi HDD è
sempre consigliabile la massima prudenza nell'eseguire le operazioni, senza
contare un minimo di dimestichezza con i comandi che si va ad utilizzare, nel
dubbio un sano "man nomecomando" non è proprio da sconsigliarsi!!
Quanto descritto nel presente documento a funzionato perfettamente per
l'autore ma potrebbe non essere altrettanto vero per alcuni di voi,
quindi qualsisasi uso da parte vostra delle seguenti informazioni è da
considerarsi a vostro rischio e pericolo.
Questo documento è CopyLeft, copiate, migliorate più che potete!!
2)Introduzione:
Quanto scritto di seguito è stato testato dall'autore su Slack9.0, MDK9.1
e Debian Woody3.0, per altre distro come RH e soprattutto Suse non posso
garantire, anche se ad esempio Suse offre un ottimo supporto tramite Yast.
In questo scritto darò per scontato che abbiate un minimo di conoscenze
riguardanti il partizionamento, la gestione dei dischi con fdisk, una
certa dimestichezza con tool per manipolare il file system come mke2fs o
mkreiserfs.
E' ovvio che dovreste avere un minimo di informazioni su cos'è LVM, e
soprattutto su cosa volete fare, ovvero che abbiate un idea abbastanza
chiara di cosa andare a realizzare. Questo implica che abbiate una certa
idea sul/sui vostri hard disk ed il loro partizionamento.
2.1)Cos'è LVM:
Al momento questa è una guida pratica e, come suggerito nell'introduzione,
spero che già abbiate un idea di cosa sia LVM.
2.2)Perchè LVM:
Per non avere problemi di spazio su disco che finisce, aggiungendo spazio
al volo alle vostre partizioni contenenti dati!
2.3)Documentazione:
Innazitutto il link della Documentazione letta da me :
<http://tldp.org/HOWTO/LVM-HOWTO> *(sul sito del LDP, è in inglese!)
Poi c'è qualcosa nella documentazione allegata la Kernel Linux, ma ho notato
che è abbastanza datata:
/usr/src/linux/Documentation/LVM-HOWTO
3)Situazione di partenza:
Assumerò che abbiate un sitema linux istallato e funzionante con un kernel
della serie 2.4.x (in modo che abbiate LVM compreso nei sorgenti del kernel).
Gli odierni dischi hanno dimensioni talmente grandi che spesso nel decidere
come partizionare il disco, magari per consentirci di istallare due distro
linux, si incontrano delle difficoltà.
Ebbene Immagino che abbiate dello spazio disco non allocato, o anche una o più
partizioni già fatte, ma libere!!
4)Preparazione del sistema:
Allora prima di tutto vediamo se il nostro sistema è già a posto, oppure se
c'e da fare qualche piccola operazione preliminare.
Innanzitutto vediamo quali moduli del kernel sono caricati:
# lsmod | less
Se non c'è lvm-mod provate a caricarlo :
# modprobe lvm-mod
Se tutto va bene allora non c'è problema, ci rimane solo da inserire il modulo
nella lista dei moduli da caricare al boot, altrimenti c'è da fare una compilazione
del kernel, quindi procuratevi i sorgenti e compilate un kernel con il supporto lvm.
Io ho provato ad usare LVM su una Slack9.0 ed una MDK 9.1, sulla prima è tutto
pronto, sulla seconda invece ho dovuto caricare il modulo ed aggiungerlo poi nel
file /etc/modules e poi istallare lvm, ovvero il pacchetto che fornisce a livello
user-space le utility per lavorare con LVM:
# urpmi lvm (* nota: io ho aggiunto le fonti da internet
<http://plf.zarb.org/~nanardon/urpmiweb.php#third>)
Per Debian ovviamente apt-get è uno strumento insuperabile:
# apt-get install lvm
Ora dovrete verificare che il vostro kernel abbia il supporto per il file system
che avete scelto per realizzare il vostro LVM, quindi solite lsmod/modprobe.
Nota: Vi faccio notare che la scelta di un fs journaled è altamente consigliato,
anche se non strettamente necessario. Inoltre se segliete un fs ReiserFS o XFS
avrete una serie di vantaggi che vedremo più avanti!
Fatte queste semplici operazioni dovrebbe essere tutto pronto per il prossimo
passo, quindi iniziamo ...
N.B.: Ogni volta che introduco un comando un bel man nomecomando è consigliato!
5) Creiamo un LV:
Poniamo il caso più semplice e banale di un sistema così formato:
/dev/hdg1 / 698M 423M 275M 60% MDK9.1
/dev/hdg5 /usr 3.4G 2.1G 1.1G 66% MDK9.1
/dev/hdg6 /home 1.2G 509M 742M 41% MDK9.1
/dev/hdg7 swap
/dev/hdg8 / 3.4G 2.1G 1.1G 66% Slack9.0
/dev/hdg10 N.A. 11.3G Spazio non assegnato per LVM
Andremo ad usare /dev/hdg10 per realizzare un LVM dove stipare i nostri dati!!
5.1) Primo Passo:
# vgscan
Dovete lanciarlo la prima volta in modo che vengano creati nel vostro sistema i file
nelle directory /etc/lvmconf e /etc/lvmtab.d .
5.2) Secondo Passo:
ATTENZIONE: Ora ad operare con fdisk per modificare il tipo della partizione, perciò
attenti a ciò che fate, poichè è questa l'unica operazione durante la quale potreste
addirittura perdere tutti i vostri dati!
QUINDI: in questo passo sarò abbastanza prolisso, per evitarvi guai (sono un santo ^_^)
ora sta a voi stare attenti a non fare danni!!
Prepariamo lo spazio disco per LVM, da root:
#fdisk /dev/hdg
The number of cylinders for this disk is set to 3737.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): m
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition
l list known partition types
m print this menu
n add a new partition
o create a new empty DOS partition table
p print the partition table
q quit without saving changes
s create a new empty Sun disklabel
t change a partition's system id
u change display/entry units
v verify the partition table
w write table to disk and exit
x extra functionality (experts only)
Command (m for help): t
Partition number (1-10):
Hex code (type L to list codes): L
0 Empty 1c Hidden Win95 FA 70 DiskSecure Mult bb Boot Wizard hid
1 FAT12 1e Hidden Win95 FA 75 PC/IX be Solaris boot
2 XENIX root 24 NEC DOS 80 Old Minix c1 DRDOS/sec (FAT-
3 XENIX usr 39 Plan 9 81 Minix / old Lin c4 DRDOS/sec (FAT-
4 FAT16 <32M 3c PartitionMagic 82 Linux swap c6 DRDOS/sec (FAT-
5 Extended 40 Venix 80286 83 Linux c7 Syrinx
6 FAT16 41 PPC PReP Boot 84 OS/2 hidden C: da Non-FS data
7 HPFS/NTFS 42 SFS 85 Linux extended db CP/M / CTOS / .
8 AIX 4d QNX4.x 86 NTFS volume set de Dell Utility
9 AIX bootable 4e QNX4.x 2nd part 87 NTFS volume set df BootIt
a OS/2 Boot Manag 4f QNX4.x 3rd part 8e Linux LVM e1 DOS access
b Win95 FAT32 50 OnTrack DM 93 Amoeba e3 DOS R/O
c Win95 FAT32 (LB 51 OnTrack DM6 Aux 94 Amoeba BBT e4 SpeedStor
e Win95 FAT16 (LB 52 CP/M 9f BSD/OS eb BeOS fs
f Win95 Ext'd (LB 53 OnTrack DM6 Aux a0 IBM Thinkpad hi ee EFI GPT
10 OPUS 54 OnTrackDM6 a5 FreeBSD ef EFI (FAT-12/16/
11 Hidden FAT12 55 EZ-Drive a6 OpenBSD f0 Linux/PA-RISC b
12 Compaq diagnost 56 Golden Bow a7 NeXTSTEP f1 SpeedStor
14 Hidden FAT16 <3 5c Priam Edisk a8 Darwin UFS f4 SpeedStor
16 Hidden FAT16 61 SpeedStor a9 NetBSD f2 DOS secondary
17 Hidden HPFS/NTF 63 GNU HURD or Sys ab Darwin boot fd Linux raid auto
18 AST SmartSleep 64 Novell Netware b7 BSDI fs fe LANstep
1b Hidden Win95 FA 65 Novell Netware b8 BSDI swap ff BBT
Hex code (type L to list codes): 8e
Command (m for help):w
The partition table has been altered!
The kernel still uses the old table.
The new table will be used at the next reboot.
Syncing disks.
Se il disco su cui lavorate è quello su cui è istallato il sistema dovrete riavviare
(Winzoz docet) altrimenti se operate su un disco che non è di sistema potete continuare!
5.3) Terzo Passo:
Ok ora tutto è veramente pronto per iniziare, andiamo quindi ad eseguire le prime vere
operazioni:
# pvcreate /dev/hdg10
pvcreate -- physical volume "/dev/hdg10" successfully created
Laconico ma significativo!! Abbiamo creato un Volume Fisico.
5.4) Quarto Passo:
#vgcreate myvg /dev/hdg10
vgcreate -- INFO: using defoult physical extent size 4MB
vgcreate -- INFO: maximux logical volume size is 255.99 Gigabyte
vgcreate -- doing automatic backup of volume group "myvg"
vgcreate -- volume group "myvg" successfully created and activated
Ancora una volta tutto è filato liscio, se volete saperne di più c'è il comando
# vgdisplay /dev/myvg
Esatto ora mmvg è stato posto sotto /dev ed è visto come un dispositivo!
5.5) Quinto Passo:
Creiamo ora un logical volume:
#lvcreate -L 2000M -n dati_lv myvg
Adesso provate a dare il seguente comando:
# lvdisplay /dev/myvg/dati_lv
5.6) Sesto Passo:
Ora formattiamo il volume logico, utilizzando un filesystem di vostro gradimento,
io ho scelto ReiserFS, e prima di tutto dovete controllare il supporto del vostro
kernel per il fs scelto, oltre ovviamente ai tool per modificare tale filesystem.
Con Slack non ho avuto problemi, mentre con MDK e Debian ho dovuto istallare
i tool per ReiserFS tramite i tool della distribuzione, urpmi o apt-get!
Ora che tutto è a posto :
# mkreiserfs /dev/myvg/dati_lv
5.7) Settimo Passo:
Montiamo il logica volume appena creato e godiamoci i frutti di tanto duro lavoro:
# mkdir /mnt/dati_lv
# mount /dev/myvg/dati_lv /mnt/dati_lv
Ed osserviamo quanto fatto:
# df -h
Noterete i 33MB occupati da Reiser per il journal!!
6) Utilità del LVM:
E' un pò che state scaricando ogg e divx dalla rete,per non contare il vari software
scaricati dalla rete, e state stipando tutto nella nuova partizione. Non ci vorrà molto
perchè riempiate tutto lo spazio che avevate predisposto (soli due Giga!) così andiamo
ora ad ampliare la partizione, avete capito bene, andiamo ad aumentare lo spazio a nostra
disposizione!
6.1) Aumento della dimensione di un LV:

) altrimenti se operate su un disco che non è di sistema potete continuare!
Rispondi quotando