Das Problem
Der Benutzer kann das LVM-Dateisystem mit Snapshot nicht erweitern, Fehler „Snapshot-Ursprungsvolumes können nur bei Inaktivität in der Größe geändert werden:Versuchen Sie lvchange -an “. Der Benutzer hat einen Snapshot auf Nicht-Root erstellt LVM-Volume wie unten gezeigt.
# lvcreate --size 100M --snapshot --name testsnap /dev/testVG/testLV Logical volume "testsnap" created
# lvs -a -o+devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices LogVol00 VolGroup00 -wi-ao 7.91G /dev/vda2(0) LogVol01 VolGroup00 -wi-ao 1.97G /dev/vda2(253) testLV testVG owi-a- 1.00G /dev/vdb1(0) testsnap testVG swi-a- 100.00M testLV 0.01 /dev/vdb1(256)
# vgs -a VG #PV #LV #SN Attr VSize VFree VolGroup00 1 2 0 wz--n- 9.88G 0 testVG 2 2 1 wz--n- 3.99G 2.89G
Wenn der Benutzer versucht, das Dateisystem mit dem zugehörigen Snapshot zu erweitern, würde er einen Fehler wie unten gezeigt ausgeben.
# lvextend -L +1G /dev/testVG/testLV Snapshot origin volumes can be resized only while inactive: try lvchange -an
Die Lösung
LVs mit Snapshot müssen vor dem Erweitern/Skalieren deaktiviert werden, da eine Online-Größenänderung von LVM-Partitionen mit Snapshot nicht möglich ist. Befolgen Sie die unten beschriebenen Schritte:
1. Deaktivieren Sie zuerst die LVM-Partition und überprüfen Sie die aktuelle Größe des LV.
# lvchange -an /dev/testVG/testLV
# lvs -a -o+devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices LogVol00 VolGroup00 -wi-ao 7.91G /dev/vda2(0) LogVol01 VolGroup00 -wi-ao 1.97G /dev/vda2(253) testLV testVG owi--- 1.00G /dev/vdb1(0) testsnap testVG swi--- 100.00M testLV /dev/vdb1(256)
2. Führen Sie nun die Größenänderung durch und überprüfen Sie die LV-Größe erneut.
# lvextend -L +1G /dev/testVG/testLV Extending logical volume testLV to 2.00 GB Logical volume testLV successfully resized
# lvs -a -o+devices LV VG Attr LSize Origin Snap% Move Log Copy% Convert Devices LogVol00 VolGroup00 -wi-ao 7.91G /dev/vda2(0) LogVol01 VolGroup00 -wi-ao 1.97G /dev/vda2(253) testLV testVG owi--- 2.00G /dev/vdb1(0) testLV testVG owi--- 2.00G /dev/vdb1(281) testLV testVG owi--- 2.00G /dev/vdc1(0) testsnap testVG swi--- 100.00M testLV /dev/vdb1(256)
3. Der nächste Schritt besteht darin, die Größe des mit dem LV verknüpften LVM-Snapshots zu ändern.
# lvextend -L +100M /dev/testVG/testsnap Extending logical volume testsnap to 200.00 MB Logical volume testsnap successfully resized