4.4.12. Come aumentare la dimensione dei volumi logici
Per aumentare la dimensione di un volume logico utilizzate il comando
lvextend
.
Se desiderate estendere il volume logico sarà possibile indicare di quanto desiderate estenderlo, oppure specificare la grandezza dopo aver eseguito l'estensione.
Il seguente comando estende il volume logico
/dev/myvg/homevol
a 12 gigabyte.
# lvextend -L12G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 12 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
Il seguente comando aggiunge un altro gigabyte al volume logico
/dev/myvg/homevol
.
# lvextend -L+1G /dev/myvg/homevol
lvextend -- extending logical volume "/dev/myvg/homevol" to 13 GB
lvextend -- doing automatic backup of volume group "myvg"
lvextend -- logical volume "/dev/myvg/homevol" successfully extended
Come con il comando
lvcreate
, è possibile usare l'opzione -l
del comando lvextend
per specificare il numero di estensioni attraverso le quali aumentare la dimensione del volume logico. È possibile utilizzare questa opzione per specificare anche una percentuale del gruppo di volumi, o una percentuale di spazio libero disponibile nel gruppo di volumi. Il seguente comando estende il volume logico chiamato testlv
, in modo da usare tutto lo spazio non assegnato nel gruppo di volumi myvg
.
[root@tng3-1 ~]# lvextend -l +100%FREE /dev/myvg/testlv
Extending logical volume testlv to 68.59 GB
Logical volume testlv successfully resized
Dopo aver esteso il volume logico sarà necessario aumentare di conseguenza la dimensione del file system.
Per default, numerosi tool usati per la modifica della dimensione del file system aumentano la dimensione in modo da farla corrispondere alla dimensione del volume logico. In questo modo non vi sarà alcun bisogno di specificare la stessa dimensione in entrambi i comandi.
4.4.12.1. Come estendere un volume segmentato
Per aumentare la dimensione di un volume logico segmentato è necessario avere a disposizione spazio sufficiente sui volumi fisici che costituiscono il gruppo di volumi per supportare il segmento. Per esempio, se siete in possesso di un segmento a due vie la quale utilizza un intero gruppo di volumi, l'aggiunta di un volume fisico al gruppo di volumi non vi permetterà di estendere il segmento stesso. Al contrario, sarà necessario aggiungere almeno due volumi fisici al gruppo di volumi.
Per esempio, considerate un gruppo di volumi
vg
il quale consiste in due volumi fisici, come mostrato dal seguente comando vgs
.
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 0 0 wz--n- 271.31G 271.31G
È possibile creare un segmento utilizzando l'intera quantità di spazio nel gruppo di volumi.
#lvcreate -n stripe1 -L 271.31G -i 2 vg
Using default stripesize 64.00 KB Rounding up size to full physical extent 271.31 GB Logical volume "stripe1" created #lvs -a -o +devices
LV VG Attr LSize Origin Snap% Move Log Copy% Devices stripe1 vg -wi-a- 271.31G /dev/sda1(0),/dev/sdb1(0)
Da notare che ora il gruppo di volumi non possiede più spazio libero.
# vgs
VG #PV #LV #SN Attr VSize VFree
vg 2 1 0 wz--n- 271.31G 0
Il seguente comando aggiunge un altro volume fisico al gruppo di volumi, il quale avrà 135G di spazio aggiuntivo.
# vgextend vg /dev/sdc1 Volume group "vg" successfully extended # vgs VG #PV #LV #SN Attr VSize VFree vg 3 1 0 wz--n- 406.97G 135.66G
A questo punto non sarà possibile estendere il volume logico segmentato alla dimensione completa del gruppo di volumi, poichè i dispositivi interessati sono necessari per l'inserimento dei dati all'interno dei segmenti.
# lvextend vg/stripe1 -L 406G
Using stripesize of last segment 64.00 KB
Extending logical volume stripe1 to 406.00 GB
Insufficient suitable allocatable extents for logical volume stripe1: 34480
more required
Per estendere un volume logico segmentato, aggiungere prima un altro volume fisico e successivamente estendete il volume logico. In questo esempio, dopo l'aggiunta di due volumi fisici al gruppo di volumi, sarà possibile estendere il volume logico alla dimensione completa del gruppo di volumi.
#vgextend vg /dev/sdd1
Volume group "vg" successfully extended #vgs
VG #PV #LV #SN Attr VSize VFree vg 4 1 0 wz--n- 542.62G 271.31G #lvextend vg/stripe1 -L 542G
Using stripesize of last segment 64.00 KB Extending logical volume stripe1 to 542.00 GB Logical volume stripe1 successfully resized
Se non siete in possesso di un numero sufficiente di dispositivi fisici per poter estendere il volume logico segmentato, sarà comunque possibile estendere il volume se l'estensione in questione non è segmentata, tale procedura potrebbe dar luogo ad una prestazione non bilanciata. Durante l'aggiunta di spazio sul volume logico, l'operazione di default utilizza gli stessi parametri usati per lo strpping dell'ultimo segmento del volume logico esistente. Vi ricordiamo che i suddetti parametri possono essere sovrascritti. Nel seguente esempio il volume logico segmentato viene esteso in modo da utilizzare lo spazio libero restante dopo il fallimento del comando
lvextend
iniziale.
#lvextend vg/stripe1 -L 406G
Using stripesize of last segment 64.00 KB Extending logical volume stripe1 to 406.00 GB Insufficient suitable allocatable extents for logical volume stripe1: 34480 more required #lvextend -i1 -l+100%FREE vg/stripe1