Das Problem
lvresize, lvextend oder lvcreate kann auf logischen Datenträgern nicht ausgeführt werden und der folgende Fehler wird nach der Ausführung eines beliebigen LVM-Befehls ausgegeben:
device-mapper: resume ioctl on (major:minor) failed: Invalid argument Unable to resume vgname-lvname (major:minor) Failed to activate new LV
Die Lösung
Der obige Fehler wird ausgelöst, wenn eine Fehlkonfiguration mit LVM vorgenommen wurde. Dieses Problem wird verursacht, wenn die PSize (Physical Size) ist größer als DevSize eingestellt (Gerätegröße). Dies kann durch die Ausgabe des folgenden Befehls überprüft werden:
# pvs -v Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/xvdc testvg1 lvm2 a- 10.00G 5.00G 5.00G 2XEI4w-LmJi-iR3B-xXVU-XxK3-dfTf-WPZXF6
Hier können Sie feststellen, dass die PSize auf 10 G eingestellt ist, die tatsächliche Gerätegröße jedoch nur 5 G beträgt und daher die PSize kleiner oder gleich DevSize sein sollte. Sie können die vorgenommenen Änderungen auch sehen, indem Sie einen Blick auf die lvm-Archivdateien werfen.
# cd /etc/lvm/archive # less testvg1_00000-320386444.vg description = "Created *before* executing 'pvresize --setphysicalvolumesize 10G /dev/xvdc'"
Oben ist die Größe des physischen Volumes für die Archivdatei auf 10 GB eingestellt, was zu einer Beschädigung oder Sperrung der LVM-Funktionalität führte.
Aktionsplan
HINWEIS :Da Sie die Größe reduzieren werden, machen Sie bitte zuerst die vollständige Sicherung, um zu verhindern, dass Ihre Daten im schlimmsten Fall verloren gehen, da dies eine sehr riskante Methode ist und Sie außerdem Ihr /root auf derselben Volgroup eingerichtet haben.
1. Machen Sie alle an Ihren logischen Volumes vorgenommenen Änderungen rückgängig und stellen Sie die ursprüngliche Größe wieder her.
2. Verwenden Sie dann pvresize -v /dev/xxxxx/xxxxx – basierend auf Ihrer Namenskonvention.
3. Überprüfen Sie nun die Ausgabe von pvs -v und stellen Sie sicher, dass PVSize und DEVSize übereinstimmen.
4. Führen Sie schließlich lvresize aus, es sollte funktionieren.
Wenn Sie die Größe des physischen Volumes erhöhen möchten, erstellen Sie zuerst eine neue Partition und initialisieren Sie sie dann mit pvcreate und fügen Sie diese Partition mit vgextend der vorhandenen Volgroup hinzu und starten Sie die normale Prozedur für lv extend.
Beispiel
Unten ist ein Beispiel für den obigen Aktionsplan:
1. Setzen Sie die an LV vorgenommenen Änderungen zurück und stellen Sie sicher, dass LVSize innerhalb der Devsize-Grenze liegt.
# lvresize -L 4G /dev/testvg1/test_lv WARNING: Reducing active logical volume to 4.00 GB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce test_lv? [y/n]: y Reducing logical volume test_lv to 4.00 GB Logical volume test_lv successfully resized
2. Verwenden Sie jetzt pvresize -v /dev/xxxx/xxxx
# pvresize -v /dev/xvdc Using physical volume(s) on command line Archiving volume group "testvg1" metadata (seqno 9). Resizing physical volume /dev/xvdc from 2559 to 1279 extents. Resizing volume "/dev/xvdc" to 10485376 sectors. Updating physical volume "/dev/xvdc" Creating volume group backup "/etc/lvm/backup/testvg1" (seqno 10). Physical volume "/dev/xvdc" changed 1 physical volume(s) resized / 0 physical volume(s) not resized
3. Überprüfung mit dem Befehl pvs -v:
# pvs -v Scanning for physical volume names PV VG Fmt Attr PSize PFree DevSize PV UUID /dev/xvdc testvg1 lvm2 a- 5.00G 1020.00M 5.00G 2XEI4w-LmJi-iR3B-xXVU-XxK3-dfTf-WPZXF6
Jetzt ist es möglich zu sehen, dass PSize gleich DevSize ist.
4. Führen Sie jetzt bitte alle anderen normalen Vorgänge mit Ihrem LVM durch.