問題
論理ボリュームで lvresize、lvextend、または lvcreate を実行できず、LVM コマンドの実行後に以下のエラーが表示されます:
device-mapper: resume ioctl on (major:minor) failed: Invalid argument Unable to resume vgname-lvname (major:minor) Failed to activate new LV
解決策
上記のエラーは、LVM で何らかの設定ミスがあった場合に発生します。この問題は、PSize が (物理サイズ) が DevSize よりも大きく設定されています (デバイスサイズ)。以下のコマンドの出力で確認できます:
# 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
ここでは、PSize が 10G に設定されていますが、実際のデバイス サイズは 5G のみであるため、PSize は DevSize 以下である必要があります。また、lvm アーカイブ ファイルを見ることで、加えられた変更を確認できます。
# cd /etc/lvm/archive # less testvg1_00000-320386444.vg description = "Created *before* executing 'pvresize --setphysicalvolumesize 10G /dev/xvdc'"
上記では、アーカイブ ファイルの物理ボリューム サイズが 10G に設定されているため、LVM 機能の破損またはロックが発生しました。
行動計画
注意 :サイズを縮小するため、最初に完全なバックアップを作成して、最悪の場合にデータが失われないようにしてください。これは非常に危険な方法であり、/root を同じ volgroup にセットアップしているからです。
1. 論理ボリュームに加えたすべての変更を元に戻し、元のサイズに戻します。
2.次に、命名規則に基づいて pvresize -v /dev/xxxxx/xxxxx を使用します。
3. pvs -v の出力をチェックして、PVSize と DEVSize が一致していることを確認します。
4.最後に lvresize を実行すると、動作するはずです。
物理ボリュームのサイズを増やしたい場合は、最初に新しいパーティションを作成してから、pvcreate で初期化し、vgextend でこのパーティションを既存の volgroup に追加して、lv 拡張の通常の手順を開始します。
例
以下は、上記の行動計画の例です:
1. LV で行われた変更を元に戻し、LVSize が 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. 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. 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
これで、PSize が DevSize と等しいことがわかります。
4. 次に、LVM でその他の通常の操作を実行してください。