[root@localhost ~] vgdisplay
--- Volume group ---
VG Name vg_root
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 7
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 297,59 GiB
PE Size 4,00 MiB
Total PE 76182
Alloc PE / Size 59392 / 232,00 GiB
Free PE / Size 16790 / 65,59 GiB
VG UUID XXXXXXXXXX
PV:
[root@localhost ~] pvdisplay
--- Physical volume ---
PV Name /dev/mapper/udisks-luks-uuid-ASDFASDF
VG Name vg_root
PV Size 297,59 GiB / not usable 2,00 MiB
Allocatable yes
PE Size 4,00 MiB
Total PE 76182
Free PE 16790
Allocated PE 59392
PV UUID YYYYYYYYYYY
Also ich habe eine VG mit 65 GByte freiem Speicherplatz. Aber wenn ich diese Volumengruppe um ~ 50 GByte verkleinern möchte:
pvresize -tv --setphysicalvolumesize 247G /dev/mapper/udisks-luks-uuid-ASDFASDF
Test mode: Metadata will NOT be updated and volumes will not be (de)activated.
Using physical volume(s) on command line
Test mode: Skipping archiving of volume group.
/dev/mapper/udisks-luks-uuid-ASDFASDF: Pretending size is 517996544 not 624087040 sectors.
Resizing volume "/dev/mapper/udisks-luks-uuid-ASDFASDF" to 624087040 sectors.
Resizing physical volume /dev/mapper/udisks-luks-uuid-ASDFASDF from 0 to 63231 extents.
/dev/mapper/udisks-luks-uuid-ASDFASDF: cannot resize to 63231 extents as later ones are allocated.
0 physical volume(s) resized / 1 physical volume(s) not resized
Test mode: Wiping internal cache
Wiping internal VG cache
Die Fehlermeldung lautet also:
cannot resize to 63231 extents as later ones are allocated.
F: Wie kann ich vg_root defragmentieren, um den nicht benötigten Teil zu entfernen?
ps: Ich habe bereits herausgefunden, dass ich nur die PV-Größe ändern muss, um die VG-Größe zu ändern, oder gibt es bessere Befehle, um die VG-Größe zu ändern (Beispiel: Was kann ich tun, wenn ich mehrere VGs auf einer PV ausführen würde? ... )?
quelle
sudo pvmove --alloc anywhere /dev/sdX2:60000-76182 /dev/sdX2:3000-19182
Die folgenden Schritte sind erforderlich, um die Größe einer LVM- oder LVM2-Partition zu ändern:
Der letzte Befehl
pvresize
kann den Fehler ergebenSie müssen den nicht zugewiesenen Speicherplatz am Ende des LVM neu anordnen. Das heißt nach root und Swap_1 Partition. Mit diesem Befehl können Sie die aktuelle Anordnung des Speicherplatzes anzeigen
pvs
zeigt die Ausgabe wie folgt anVerwenden Sie nun
pvmove
, um die externe Fragmentierung zu entfernen:Nun wollen wir sehen, ob das Verschieben des Swap-Volumes erfolgreich war.
sollte die neue Reihenfolge der Bände anzeigen:
Verwenden Sie anschließend GParted und ändern Sie die Größe des LVM auf den maximal verwendeten Bereich. Der Rest wird im nicht zugewiesenen Raum sein.
quelle
pvmove --alloc anywhere /dev/sda5:yyyy-end 0-newend
mit "newend" als Ende - JJJJ berechnet. Ich bin mir jedoch nicht sicher, ob dies funktioniert, wenn der freie Speicherplatz am Anfang kleiner als der zu verschiebende Bereich ist. Auch ich denke, es gibt einen Tippfehler in Ihren pvs-Ausgaben, ich denke, Sie meinten/dev/sda5:0-xxx
statt/dev/sda:0-xxx
.--resizefs
Parameter vonlvresize
kümmert sich bereits um die Größenänderung des zugrunde liegenden Dateisystems.Dieser ältere Beitrag behandelt diese Art des Schrumpfens, damit Sie den neuen Platz für etwas anderes nutzen können. Sie müssen die Größe jedoch zuvor an die Daten anpassen. Dies sollte auch die und andere Fehler abdecken, die Sie erhalten. Da es älter ist, lesen Sie zuerst durch:
quelle
Ich benutze diese Methode, nicht sicher, ob es die beste ist, aber für mich funktioniert
Berechnen Sie die Differenz, die das Problem verursacht
324% 4 = 0 kein Problem
aber
324% 32 = 10,125
Das ist das Problem, also passt es nicht
Ich denke, es heißt "get real number"
beteiligte Partitionen aufzulisten
dann
Ich muss zusätzliche 4M hinzufügen, um zu arbeiten, ich denke, es hängt mit der alten PE-Größe zusammen
endlich
quelle
Frühere Antworten halfen mir, dieses Problem zu lösen, aber ich musste es automatisieren und schrieb daher pvshrink
Dies ruft pvmove für Sie so oft auf, wie es zum Defragmentieren des PV erforderlich ist, und ändert dann die Größe auf die minimal mögliche Größe (die aufgrund von Metadaten etwas größer ist als die verwendete Größe).
quelle