Ich hatte ein ganz spezielles Problem. Ich habe einen LVM, der auf einem einzelnen physischen Volume auf einer virtuellen Maschine ausgeführt wird. Die Größe des logischen Volumes beträgt ca. 150 GB und ich möchte es auf ca. 250 GB erweitern.
Ich konnte das physische Volume von meinem Virtual Machine Manager aus erweitern, aber die Änderung der physischen Größe wird nicht auf meinem logischen LVM-Volume widergespiegelt.
Ich habe keine Antworten direkt gefunden und durch einige Experimente eine Lösung gefunden. Ich dachte, ich werde es in meiner Antwort unten teilen.
Akzeptierte Antwort:
Ein Beispiel für ein LVM-Diagramm:
Die Idee von LVM ist, dass es das logische Volume vom physischen Volume abstrahiert, sodass mehrere physische Volumes für den Benutzer als ein einziges kontinuierliches logisches Volume erscheinen.
Das Root-Dateisystem befindet sich in /dev/file-server-vg/root
und der Swap befindet sich in /dev/file-server-vg/swap
. Die Idee ist, dass wir tatsächlich mehrere echte Festplatten in der PV-Schicht haben können, und sie können alle zu einer Volume Group hinzugefügt werden, wodurch sie alle als ein einziges kontinuierliches Dateisystem für das System unter /dev/file-server-vg/root
.
Bei diesem Problem habe ich /dev/file-server-vg/root
verwendet als Dateiserver und der Speicherplatz wird knapp. Glücklicherweise befindet sich dieses System auf einer virtuellen Maschine, und ich konnte das physische Volume /dev/sda
erweitern mit dem Virtual Machine Manager. Die Größenzunahme wird jedoch nicht automatisch an /dev/file-server-vg/root
weitergegeben Dateisystem. Wir müssen ein paar einfache Befehle ausführen, damit dies funktioniert.
Bevor wir beginnen, verwenden Sie pvdisplay
um zu sehen, welche physischen Volumes vorhanden sind. Dadurch werden alle physischen Volumes und die Volume-Gruppe aufgelistet, zu der sie gehören. In diesem Fall haben wir nur ein physisches Volume, nämlich /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
Die aktuelle Partitionstabelle kann mit sudo parted
aufgelistet werden und dann 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 diesem Beispiel möchten wir die Kapazität von 155,56 GiB auf 255,56 GiB erweitern. Mit dem Virtual Machine Manager können wir normalerweise den Speicherplatz erweitern, und in diesem Fall werden wir ihn um 100 GiB erweitern.
Nach erfolgreicher Erweiterung wird die resultierende Partitionstabelle (verwenden Sie print free
) sieht wie folgt aus. Bitte beachten Sie, dass der „Freie Speicherplatz“ 108 GB (~100 GiB) anzeigt.
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
Es gibt zwei Möglichkeiten, das logische Volume zu erweitern:
Erstellen Sie eine neue Partition und fügen Sie diese der Volume Group hinzu, oder
Erhöhen Sie dieselbe Partition.
Meiner Meinung nach ist die zweite Methode nach Möglichkeit sauberer. Natürlich wenn /dev/sda3
eine physische Festplatte ist und Sie eine weitere Festplatte gekauft haben, um den Speicherplatz zu erweitern, dann ist es logisch, die erste Methode zu verwenden.
Geben Sie in parted resize 3 794MB 275GB
ein wird die Größe von Partition 3 ändern, um den gesamten freien Speicherplatz einzunehmen, naja fast:
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
Das ist gut genug, nur 1 MB wird nicht verwendet.
Siehe auch:Wie ändere ich das eigene Home-Verzeichnis?Als nächstes werden wir die Maschine neu starten. Dies wird benötigt, um die Partitionstabelle zu aktualisieren.
Was Sie jetzt sehen werden, ist, dass das physische Volume mit pvdisplay
an Größe zugenommen hat
--- 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
Diese Größenzunahme wird automatisch mit vgdisplay
an die Volumengruppe weitergegeben du bekommst folgendes. Bitte vgextend
beachten tut nicht wirklich das, was Sie vielleicht denken. Es belegt nicht den freien Speicherplatz, sondern wird zum Hinzufügen neuer physischer Volumes zu einer bestimmten Volume-Gruppe verwendet.
--- 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
Das logische Volume wird nicht automatisch größer. Dies ist tatsächlich sinnvoll, da der Computer keine Ahnung hat, welches logische Volume Sie vergrößern möchten, oder Sie vielleicht ein neues logisches Volume mit dem zusätzlichen Speicherplatz in der Volume-Gruppe erstellen möchten. Also mit lvdisplay
Sie werden die folgende Tabelle sehen, die /dev/file-server-vg/root
zeigt hat nur 153,26 GiB, aber keine Sorge, wir sind sehr nah dran.
--- 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
Der Weg zum Erhöhen des logischen Volumens ist die Verwendung von lvextend -L +100GB /dev/file-server-vg/root
Erweitern Sie danach das Dateisystem mit resize2fs /dev/file-server-vg/root
Und du bist fertig. Sie können lvdisplay
ausführen um zu überprüfen, ob die Datei /dev/file-server-vg/root
Volumen wurde auf 253,26 GiB erweitert
--- 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