Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

6.4. 物理ボリュームメタデータの復元

物理ボリュームのボリュームグループメタデータが間違えて書き換えられたり、破損したり した場合は、メタデータエリアが正しくないこと、又はシステムが特定の UUID を持つ物理 ボリュームを見つけることが出来ないことを示すエラーメッセージが出ます。物理ボリュームのデータを復元するには、紛失したメタデータと同じ UUID を指定して、物理ボリューム上に新規のメタデータエリアを書き込みます。

警告

機能している LVM 論理ボリュームについては、この手順を試みないで下さい。 間違えた UUID を指定するとデータ損失の原因となります。
以下の例では、メタデータエリアが欠如していたり、破損している場合に出る 出力の種類を示しています。
[root@link-07 backup]# lvs -a -o +devices
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  Couldn't find all physical volumes for volume group VG.
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  Couldn't find all physical volumes for volume group VG.
  ...
上書きされている物理ボリュームの UUID は、/etc/lvm/archive ディレクトリを 開けば見つけることができます。そのボリュームの最後の有効なアーカイブ化した LVM メタデータの VolumeGroupName_xxxx.vg ファイルを 確認します。
別の方法としては、そのボリュームを停止して、partial (-P) 引数をセットすると欠如/破損した物理ボリュームの UUID を見つけることが出来ます。
[root@link-07 backup]# vgchange -an --partial
  Partial mode. Incomplete volume groups will be activated read-only.
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  Couldn't find device with uuid 'FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk'.
  ...
pvcreate コマンドで、--uuid--restorefile 引数を使用して、物理ボリュームの復元をします。 以下の例では、/dev/sdh1 デバイスを上記の UUID (FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk)を持つ物理ボリュームとしてラベルを付けます。このコマンドがボリュームグループ用の最も最近の正しい アーカイブのメタデータ VG_00050.vg に含まれているメタデータ情報で ボリュームグループラベルを復元します。 restorefile 引数は、ボリュームグループ上の 古いものと互換性のある新規物理ボリュームを作るように pvcreate コマンドに 指示をして、新規のメタデータは、古い物理ボリュームが含んでいたデータの場所に配置されないように 確認します。(これは、例えば、オリジナルの pvcreate コマンドが、メタデータの 配置制御をするコマンドライン引数を使用していた場合や、物理ボリュームが本来、異なるデフォルトを 使用するソフトウェアの異なるバージョンを使用して作成されていた場合などに発生可能です)。 pvcreate コマンドは LVM メタデータエリアのみを上書きし、既存の データエリアには影響を与えません。
[root@link-07 backup]# pvcreate --uuid "FmGRh3-zhok-iVI8-7qTD-S5BI-MAEN-NYM5Sk" --restorefile /etc/lvm/archive/VG_00050.vg /dev/sdh1
  Physical volume "/dev/sdh1" successfully created
You can then use the vgcfgrestore command to restore the volume group's metadata.
[root@link-07 backup]# vgcfgrestore VG
  Restored volume group VG
これで論理ボリュームが表示できるようになります。
[root@link-07 backup]# lvs -a -o +devices
  LV     VG   Attr   LSize   Origin Snap%  Move Log Copy%  Devices
  stripe VG   -wi--- 300.00G                               /dev/sdh1 (0),/dev/sda1(0)
  stripe VG   -wi--- 300.00G                               /dev/sdh1 (34728),/dev/sdb1(0)
以下のコマンドはボリュームをアクティベートしてそのアクティブになったボリュームを表示します。
[root@link-07 backup]# lvchange -ay /dev/VG/stripe
[root@link-07 backup]# lvs -a -o +devices
  LV     VG   Attr   LSize   Origin Snap%  Move Log Copy%  Devices
  stripe VG   -wi-a- 300.00G                               /dev/sdh1 (0),/dev/sda1(0)
  stripe VG   -wi-a- 300.00G                               /dev/sdh1 (34728),/dev/sdb1(0)
オン・ディスク LVM メタデータが、それを書き換えるデータと同じ容量である場合、このコマンドは物理ボリュームを復元できます。メタデータの書き換えが メタデータエリアを越えた場合、ボリューム上のデータは影響を受ける可能性があります。そのデータを復元するには、fsck コマンドを使用すると良いでしょう。