ネストされた PV の回復

ネストされた PV の回復

私の Proxmox 6.4 ホストには、250 GB の LVM シン プールがありました。そこに Ubuntu VM (ルート パーティションにも LVM を使用) を作成しましたが、誤ってオーバーサブスクライブしてしまったため、VM 内の PV は 500 GB に設定されました。

しばらくはすべて順調に動作していましたが、隠れた 250 GB の制限を超えてしまい、VM が I/O エラーでクラッシュし、起動できなくなりました。そこで、ディスクの回復を試みています。ディスクのパーティション テーブルはそのままのようです。

$ fdisk -l /dev/vm-disks/vm-101-disk-0
Disk /dev/vm-disks/vm-101-disk-0: 500 GiB, 536870912000 bytes, 1048576000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
Disklabel type: gpt
Disk identifier: 30874BBC-0B29-4083-B5BF-E973C665D87F

Device                          Start        End    Sectors  Size Type
/dev/vm-disks/vm-101-disk-0p1    2048       4095       2048    1M BIOS boot
/dev/vm-disks/vm-101-disk-0p2    4096    2101247    2097152    1G Linux filesystem
/dev/vm-disks/vm-101-disk-0p3 2101248 1048573951 1046472704  499G Linux filesystem

私は走った

$ kpartx -a /dev/vm-disks/vm-101-disk-0

/dev/mapper内部の 3 つのパーティションのエントリを作成するとvm-101-disk-0、動作します。以下を実行すると、

$ file -sL /dev/mapper/vm--disks-vm--101--disk--0p3
/dev/mapper/vm--disks-vm--101--disk--0p3: LVM2 PV (Linux Logical Volume Manager), UUID: fdOzWR-sPcy-hyYo-Lj2H-YEnZ-wK3c-J6biES, size: 535794024448

すると、ディスクの 3 番目のパーティション内に PV が表示されます。しかし、これをホストのどこかにマウントしてデータの回復を開始するにはどうすればよいでしょうか。明らかに、これはpvscan別の LV 内にあるため、ホスト システムからは見えません。回復のために何かオプションがあるのでしょうか。それとも、VM が 500 GB であると認識していたが、実際にはそうではなかったということは、修復できないほど損傷したということでしょうか。

答え1

シン プールのスペースが使い果たされたときに、VM に書き込み I/O エラーが発生しました。VM の場合、ハード ディスクが予期せずすべての書き込みを拒否したように見えます。したがって、VM がベア ハードウェアである場合、最初のアクションは、新しいハード ディスクを見つけて、この不良ハード ディスクをそこにクローンすることです。HW が修正されたら、論理構造を修正できます。

仮想マシンの場合、ハードウェアが壊れていないので、シン ボリューム操作を復元することで「ハード ディスク」を「修復」できます。シン プールを拡大し、lvextendシン プール LV を使用してスペースを追加します。

そして、完了したら、何らかのリカバリ (仮想) メディアから VM を起動し、標準のファイル システム リカバリを実行します。覚えておいてください。それほど難しいことではありません。最近のファイル システムは、一般にこの種の障害に耐えられるように設計されています。


シンLVMを監視します。データスペースの枯渇はそれほど大きな問題ではありませんが、メタデータ疲労はもっと大きな影響を及ぼす可能性があります。このような事態を起こさないようにしてください。

関連情報