Cos'è LVM
Logical Volume Manager (LVM) introduce un livello aggiuntivo tra i dischi fisici e il file system consentendo di:
– ridimensionare e spostare facilmente e online senza richiedere un'interruzione a livello di sistema.
– Utilizzo discontinuo spazio su disco
– nomi significativi per i volumi, anziché i soliti nomi criptici dei dispositivi.
– si estende su più dischi fisici
Linux LVM è molto simile a HP-UX LVM e fornisce molte altre funzionalità avanzate come snapshot, supporto cluster (GFS2, OCFS e Lustre).
Concetti
LVM comprende pochi livelli concettuali come volume fisico, volume logico e file system.
Gli strati concettuali sono a loro volta costituiti da unità più piccole come le estensioni fisiche (in caso di volumi fisici) e le estensioni logiche (in caso di volumi logici).
Volume fisico (PV)
Ogni volume fisico può essere una partizione del disco, un intero disco, un meta-dispositivo o un file di loopback. Usa il comando pvcreate per inizializzare lo storage per l'uso da parte di LVM. L'inizializzazione di un dispositivo a blocchi come volume fisico inserisce un'etichetta all'inizio del dispositivo.
Gruppo di volumi (VG)
Un gruppo di volumi riunisce una raccolta di volumi logici e volumi fisici in un'unica unità amministrativa. Il gruppo di volumi è suddiviso in estensioni fisiche di dimensioni fisse. Il comando vgcreate crea un nuovo gruppo di volumi utilizzando il percorso del volume fisico del dispositivo speciale di blocco precedentemente configurato per LVM con pvcreate.
– I VG sono costituiti da PV, che a loro volta sono costituiti da estensioni fisiche (PE). La dimensione di PE può variare in diversi VG ed è definita al momento della creazione del VG.
– La dimensione predefinita di PE è 4 MB, ma puoi modificarla al valore desiderato al momento della creazione del VG.
– Generalmente, maggiore è la dimensione del PE, migliori sono le prestazioni (sebbene un controllo meno granulare di LV).
Volume logico (LV)
Un volume logico è l'equivalente concettuale di una partizione del disco in un sistema non LVM. I volumi logici sono dispositivi a blocchi creati dalle estensioni fisiche presenti nello stesso gruppo di volumi. Puoi usare il comando lvcreate per creare un volume logico in un gruppo di volumi esistente.
File system
I file system sono costruiti su volumi logici. Il comando mkfs può essere utilizzato per creare file system su un volume logico. Una volta creato il file system, possiamo montare il volume logico secondo le nostre esigenze.
Iniziamo
L'esempio
Nell'esempio seguente vorremmo:
1. Crea 3 volumi fisici da 3 dischi fisici (/dev/sdb, /dev/sdc, /dev/sdd ).
2. Crea un gruppo di volumi da questi 3 PV (/dev/vg01 ).
3. Crea un volume Lgical in questo VG (/dev/vg01/lvol01 ).
4. Crea un file system su questo LV e montalo (/data01 ).
Crea volumi fisici
Il pvcreate Il comando viene utilizzato per inizializzare il PV per l'uso da parte di LVM. Prima di creare il PV, assicurati che il disco sia visibile nel sistema operativo. Per eseguire la scansione dei dispositivi a blocchi da utilizzare come PV, utilizzare lvmdiskscan comando.
# lvmdiskscan ....... /dev/sdb [ 2.00 GiB] /dev/sdc [ 2.00 GiB] /dev/sdd [ 2.00 GiB] 3 disks 19 partitions 0 LVM physical volume whole disks 0 LVM physical volumes
Inizializza i dispositivi a blocchi :
# pvcreate /dev/sdb /dev/sdc /dev/sdd Physical volume "/dev/sdb" successfully created Physical volume "/dev/sdc" successfully created Physical volume "/dev/sdd" successfully created
Visualizza volumi fisici
Utilizza i comandi pvdisplay , pvs e pvscan per visualizzare i PV che abbiamo appena creato.
# pvdisplay "/dev/sdb" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdb VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID Mt3F7z-a2AV-28Vn-uXe2-QejE-Z6tP-UMlQGM "/dev/sdc" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdc VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 5m1Fuc-yTRn-I2vG-bMfU-6SE7-53EA-s8VQjt "/dev/sdd" is a new physical volume of "2.00 GiB" --- NEW Physical volume --- PV Name /dev/sdd VG Name PV Size 2.00 GiB Allocatable NO PE Size 0 Total PE 0 Free PE 0 Allocated PE 0 PV UUID 1x3e2A-C0Lt-DrUA-tPSM-lsMu-sn70-qg1j8p
# pvscan PV /dev/sdb lvm2 [2.00 GiB] PV /dev/sdc lvm2 [2.00 GiB] PV /dev/sdd lvm2 [2.00 GiB] Total: 3 [6.00 GiB] / in use: 0 [0 ] / in no VG: 3 [6.00 GiB]
# pvs PV VG Fmt Attr PSize PFree /dev/sdb lvm2 a-- 2.00g 2.00g /dev/sdc lvm2 a-- 2.00g 2.00g /dev/sdd lvm2 a-- 2.00g 2.00g
Crea un gruppo di volumi
Usa vgcreate comando per creare il nuovo gruppo di volumi vg01 utilizzando i 3 PV che abbiamo appena creato. Possiamo specificare le estensioni con -s opzione e numero massimo di PV e LV nel VG utilizzando le opzioni -p e -l rispettivamente. Tutte queste opzioni sono opzionali e non devono essere necessariamente utilizzate.
# vgcreate vg01 /dev/sdb /dev/sdc /dev/sdd Volume group "vg01" successfully created
Le opzioni facoltative utilizzate con il comando vgcreate sono:
Opzione | Significato |
---|---|
-s | Dimensione dell'estensione fisica |
-p | Numero massimo di PV |
-l | Numero massimo di LV |
–alloc | politica di allocazione (contigua, ovunque o aggrappata) |
Visualizzazione delle informazioni VG
I comandi vgs e vgdisplay possono essere utilizzati per visualizzare le informazioni sul VG appena creato :
# vgs vg01 VG #PV #LV #SN Attr VSize VFree vg01 3 0 0 wz--n- 5.99g 5.99g
# vgdisplay vg01 --- Volume group --- VG Name vg01 System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size 5.99 GiB PE Size 4.00 MiB Total PE 1533 Alloc PE / Size 0 / 0 Free PE / Size 1533 / 5.99 GiB VG UUID Cw7GGz-NH3o-Sax2-5jPv-buZS-938T-tmNKFa
Attivazione e disattivazione di VG
Il vgchange il comando può essere utilizzato per attivare/disattivare un gruppo di volumi.
Per disattivare un VG :
# vgchange -a n vg01 0 logical volume(s) in volume group "vg01" now active
Per attivare un VG :
# vgchange -a y vg01 1 logical volume(s) in volume group "vg01" now active
Crea volume logico
Il volume logico ora può essere creato nel VG utilizzando il comando lvcreate .
– Se non specifichi il nome LV nel comando, per impostazione predefinita al LV viene assegnato il nome lvol# .
– Normalmente se non si specifica quale PV coprire il LV, il volume logico verrà creato sul PV su base successiva.
– Per creare un volume logico lvol01 di dimensione 5 GB:
# lvcreate -L 5G -n lvol01 vg01 Logical volume "lvol01" created
Creazione di un volume a strisce
Per creare un volume a strisce che copra tutti e 3 i PV che abbiamo creato :
# lvcreate -L 5G -I 4096 -i 3 -n lvol01 vg01 Rounding size (1280 extents) up to stripe boundary size (1281 extents) Logical volume "lvol01" created
I - PVs to span while creating striped volume i - stripe unit
Creazione del volume con mirroring
Per creare un volume con mirroring a 3 vie che copre i 3 PV (sdb, sdc, sdd):
# lvcreate -L 1G -m 2 -n lvol01 vg01 Logical volume "lvol01" created
Possiamo anche specificare quali dispositivi utilizzare durante la creazione del mirroring LV. Nel nostro caso, poiché avevamo solo 3 PV nel VG, il LV viene creato per impostazione predefinita su questi 3 PV.
Visualizzazione delle informazioni LV
I comandi lvdisplay , liv e lvscan può essere utilizzato per visualizzare le informazioni sul LV appena creato.
# lvs /dev/vg01/lvol01 LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lvol01 vg01 mwi-a-m-- 1.00g lvol01_mlog 100.00
# lvdisplay /dev/vg01/lvol01 --- Logical volume --- LV Path /dev/vg01/lvol01 LV Name lvol01 VG Name vg01 LV UUID ptlmAV-mO42-fWiJ-e2Ml-r9kj-PFcC-MOexxw LV Write Access read/write LV Creation host, time localhost.localdomain, 2014-10-22 09:04:25 -0700 LV Status available # open 0 LV Size 1.00 GiB Current LE 256 Mirrored volumes 3 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4
# lvscan ACTIVE '/dev/vg01/lvol01' [1.00 GiB] inherit
Creazione del file system
Il passaggio finale è creare un file system sul nuovo LV che abbiamo appena creato e montarlo su una directory per potervi accedere e memorizzare i dati al suo interno. Il comando mkfs può essere utilizzato per creare file system sopra il LV.
# mkfs.ext4 /dev/vg01/lvol01 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 65536 inodes, 262144 blocks 13107 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=268435456 8 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (8192 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override.
Il volume logico può essere montato, una volta creato il file system. Assicurati di aggiungere una voce a /etc/fstab , in modo che venga montato automaticamente all'avvio del sistema.
# mkdir /data01 # mount /dev/vg01/lvol01 /data01
# vi /etc/fstab /dev/vg01/lvol01 /data01 ext4 defaults 0 0
# df -h /data01 Filesystem Size Used Avail Use% Mounted on /dev/mapper/vg01-lvol01 1008M 34M 924M 4% /data01
Lo strumento grafico per gestire LVM
È disponibile un fantastico strumento grafico (system-config-lvm ) nel caso si desideri utilizzare. Se non è già installato sul sistema, installalo usando yum:
# yum install system-config-lvm
Per avviare lo strumento di amministrazione di Graphical LVM, lancia il comando :
# system-config-lvm
Configurazione LVM:Operazioni/Utilità Logical Volume (LV)
Configurazione LVM:Operazioni/Utility Volume Group (VG)
Configurazione LVM:Operazioni/Utilità Physical Volume (PV)