Problém
Nelze provést lvresize, lvextend nebo lvcreate na logických svazcích a po provedení jakéhokoli příkazu LVM se zobrazí níže uvedená chyba:
device-mapper: resume ioctl on (major:minor) failed: Invalid argument Unable to resume vgname-lvname (major:minor) Failed to activate new LV
Řešení
Výše uvedená chyba se spustí, pokud byla s LVM provedena nějaká nesprávná konfigurace. Tento problém je způsoben nastavením PSize (Fyzická velikost) je nastavena na větší hodnotu než Velikost vývojáře (Velikost zařízení). Lze to ověřit výstupem níže uvedeného příkazu:
# 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
Zde si můžete všimnout, že PSize je nastavena na 10G, ale skutečná velikost zařízení je pouze 5G, a proto by PSize měla být menší nebo rovna DevSize. Také můžete vidět provedené změny, když se podíváte na archivní soubory lvm.
# cd /etc/lvm/archive # less testvg1_00000-320386444.vg description = "Created *before* executing 'pvresize --setphysicalvolumesize 10G /dev/xvdc'"
Výše je velikost fyzického svazku pro archivní soubor nastavena na 10G, což vedlo k poškození nebo uzamčení funkčnosti LVM.
Akční plán
POZNÁMKA :Protože se chystáte zmenšit velikost, nejprve prosím udělejte kompletní zálohu, abyste zabránili ztrátě dat v nejhorším případě, protože je to velmi riskantní metoda a také jste nastavili svůj /root na stejné volgroup.
1. Vraťte zpět všechny změny provedené na vašich logických svazcích a nastavte je na původní velikost.
2. Potom použijte pvresize -v /dev/xxxxx/xxxxx — na základě vaší konvence pojmenování.
3. Nyní zkontrolujte výstup pvs -v a ujistěte se, že se hodnoty PVSize a DEVSize shodují.
4. Nakonec spusťte lvresize, mělo by to fungovat.
Pokud chcete zvětšit velikost fyzického svazku, pak nejprve vytvořte nový oddíl a poté inicializujte pomocí pvcreate a přidejte tento oddíl do existující skupiny volgroup pomocí vgextend a spusťte normální postup pro rozšíření lv.
Příklad
Níže je uveden příklad výše uvedeného akčního plánu:
1. Vraťte zpět změny provedené na LV a ujistěte se, že LVSize je v rámci limitu Devsize.
# 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. Nyní použije 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. Ověření příkazem 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
Nyní je možné vidět, že PSize se rovná DevSize.
4. Nyní prosím proveďte jakoukoli jinou normální operaci s vaším LVM.