Ho avuto un problema molto specifico. Ho un LVM in esecuzione su un singolo volume fisico su una macchina virtuale. La dimensione del volume logico è di ~150 GB e desidero espanderla a ~250 GB.
Sono stato in grado di espandere il volume fisico dal mio gestore di macchine virtuali, ma la modifica delle dimensioni fisiche non si riflette sul volume logico LVM.
Non ho trovato nessuna risposta direttamente e attraverso alcune sperimentazioni ho trovato una soluzione. Ho pensato di condividerlo nella mia risposta di seguito.
Risposta accettata:
Un esempio di diagramma LVM:
L'idea di LVM è che astrae il volume logico dal volume fisico, in modo tale che più volumi fisici appaiano all'utente un unico volume logico continuo.
Il file system radice è in /dev/file-server-vg/root
e lo scambio è in /dev/file-server-vg/swap
. L'idea è che possiamo effettivamente avere più dischi rigidi reali nello strato PV, e possono essere tutti aggiunti in un gruppo di volumi, che consentirà loro di apparire tutti come un unico file system continuo al sistema in /dev/file-server-vg/root
.
In questo problema ho utilizzato /dev/file-server-vg/root
come file server e sta esaurendo lo spazio. Fortunatamente questo sistema è su una macchina virtuale e sono stato in grado di espandere il volume fisico /dev/sda
utilizzando il gestore della macchina virtuale. Tuttavia, l'aumento delle dimensioni non viene passato automaticamente a /dev/file-server-vg/root
file system. Dobbiamo eseguire alcuni semplici comandi per farlo funzionare.
Prima di iniziare, usa pvdisplay
per vedere quali volumi fisici sono presenti. Questo elencherà tutti i volumi fisici e il gruppo di volumi a cui appartiene. In questo caso abbiamo solo un volume fisico che è /dev/sda3
.
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 155.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
La tabella delle partizioni corrente può essere elencata usando sudo parted
e poi print
.
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 167GB 166GB lvm
In questo esempio vogliamo espandere la capacità da 155,56 GiB a 255,56 GiB. Utilizzando il gestore della macchina virtuale di solito possiamo estendere lo spazio su disco, e in questo caso lo espanderemo di 100GiB.
Dopo che l'espansione è riuscita, la tabella delle partizioni risultante (usa print free
) sarà simile al seguente. Tieni presente che lo "Spazio libero" mostra 108 GB (~100 GiB).
Number Start End Size File system Name Flags
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 166GB lvm
167GB 275GB 108GB Free Space
Esistono due modi per espandere il volume logico:
Creare una nuova partizione e aggiungerla al gruppo di volumi, oppure
Aumentare la stessa partizione.
A mio parere, ove possibile, il secondo metodo è più ordinato. Ovviamente se /dev/sda3
è un disco rigido fisico e hai acquistato un altro disco rigido per espandere lo spazio, quindi sarà logico utilizzare il primo metodo.
In parte digita resize 3 794MB 275GB
ridimensionerà la partizione 3 per occupare tutto lo spazio libero, quasi quasi:
Number Start End Size File system Name Flags
17.4kB 1049kB 1031kB Free Space
1 1049kB 538MB 537MB fat32 boot
2 538MB 794MB 256MB ext2
3 794MB 275GB 274GB lvm
275GB 275GB 1032kB Free Space
Questo è abbastanza buono, solo 1 MB non viene utilizzato.
Correlati:come modificare la propria home directory?Successivamente riavvieremo la macchina. Questo è necessario per aggiornare la tabella delle partizioni.
Quello che vedrai ora è che il volume fisico è aumentato di dimensioni con pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name file-server-vg
PV Size 255.26 GiB / not usable 0
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 65346
Free PE 0
Allocated PE 65346
PV UUID 0EXhc4-EoHZ-b79R-ncSe-SWXI-ztPe-Fsc7zk
Questo aumento delle dimensioni verrà trasferito automaticamente al gruppo di volumi, utilizzando vgdisplay
ottieni quanto segue. Nota vgextend
in realtà non fa quello che potresti pensare che faccia. Non occupa lo spazio libero, ma viene utilizzato per aggiungere nuovi volumi fisici a un particolare gruppo di volumi.
--- Volume group ---
VG Name file-server-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 255.26 GiB
PE Size 4.00 MiB
Total PE 65346
Alloc PE / Size 65346 / 255.26 GiB
Free PE / Size 0 / 0
VG UUID NwwIgT-W0SH-aeTe-d078-hcxx-XZ6W-QfnSA0
Il volume logico non aumenta di dimensioni automaticamente. Questo in realtà ha senso perché il computer non ha idea di quale volume logico si desidera aumentare di dimensioni, o forse si desidera creare un nuovo volume logico con lo spazio aggiuntivo nel gruppo di volumi. Quindi con lvdisplay
vedrai la seguente tabella, che mostra il /dev/file-server-vg/root
ha solo 153.26GiB, ma non preoccuparti siamo molto vicini.
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 153.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1
Il modo per aumentare il volume logico è usare lvextend -L +100GB /dev/file-server-vg/root
Dopodiché espandi il file system con resize2fs /dev/file-server-vg/root
E hai finito. Puoi fare lvdisplay
per verificare che il /dev/file-server-vg/root
il volume è stato esteso a 253,26 GiB
--- Logical volume ---
LV Path /dev/file-server-vg/root
LV Name root
VG Name file-server-vg
LV UUID l6qvYZ-AmYw-tdgi-2jUu-XNB2-gecQ-6fDPt8
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 1
LV Size 253.26 GiB
Current LE 64834
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Logical volume ---
LV Path /dev/file-server-vg/swap_1
LV Name swap_1
VG Name file-server-vg
LV UUID OohMkN-rGLa-fM4M-6he2-MbM9-BBc3-Ck2Hs5
LV Write Access read/write
LV Creation host, time file-server, 2014-07-10 14:54:58 +1000
LV Status available
# open 2
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:1