そのため、ディスクに障害が発生し、障害のあるディスクから新しいPVにLVを移動していました。一部のLVは正常に移動されましたが、一部は移動されませんでした。その後、次の状態になりました。-2つのロックされたLV-PVが欠落しているボリュームグループ
PVを削除しようとすると、次のようになります。
vgreduce --removemissing --force vg3
Couldn't find device with uuid RQr0HS-17ts-1k6Y-Xnex-IZwi-Y2kM-vCc5mP.
Removing partial LV var.
Can't remove locked LV var
lvremove -fff vg3/var
Couldn't find device with uuid RQr0HS-17ts-1k6Y-Xnex-IZwi-Y2kM-vCc5mP.
Can't remove locked LV var
pvmove --abort
Couldn't find device with uuid RQr0HS-17ts-1k6Y-Xnex-IZwi-Y2kM-vCc5mP.
Cannot change VG vg3 while PVs are missing.
Consider vgreduce --removemissing.
Skipping volume group vg3
また、vcfgbackupを実行し、ロックアウトを編集した後に復元しようとしましたが、役に立ちませんでした。
vgcfgrestore --force vg3
Couldn't find device with uuid RQr0HS-17ts-1k6Y-Xnex-IZwi-Y2kM-vCc5mP.
Cannot restore Volume Group vg3 with 1 PVs marked as missing.
Restore failed.
それで私はさらに進んで、ディスクを元に戻しました-失敗しましたが、少しの間検出されます。
vgreduce --removemissing vg3
/dev/vg3/var: read failed after 0 of 4096 at 9638445056: Input/output error
/dev/vg3/var: read failed after 0 of 4096 at 9638502400: Input/output error
WARNING: Partial LV var needs to be repaired or removed.
WARNING: Partial LV pvmove1 needs to be repaired or removed.
There are still partial LVs in VG vg3.
To remove them unconditionally use: vgreduce --removemissing --force.
Proceeding to remove empty missing PVs.
lvremove -fff vg3/var
/dev/vg3/var: read failed after 0 of 4096 at 9638445056: Input/output error
/dev/vg3/var: read failed after 0 of 4096 at 9638502400: Input/output error
Can't remove locked LV var
pvmove --abort
/dev/vg3/var: read failed after 0 of 4096 at 9638445056: Input/output error
/dev/vg3/var: read failed after 0 of 4096 at 9638502400: Input/output error
Cannot change VG vg3 while PVs are missing.
Consider vgreduce --removemissing.
Skipping volume group vg3
そして、これは私がアイデアを失っている瞬間です。
ボリュームグループを削除できません と同様に、同じuuidで一時的なpvを作成することにより、この問題を解決しました。
UUID="RQr0HS-17ts-1k6Y-Xnex-IZwi-Y2kM-vCc5mP" # from question
dd if=/dev/zero of=/tmp/tmp.raw bs=1M count=100
losetup -f
losetup /dev/loop0 tmp.raw
pvcreate --norestorefile -u $UUID /dev/loop0 # it has arisen!
killall lvmetad # so it stops complaining about duplicate uuids
pvremove /dev/loop0 # a clean removal
losetup -D
pvscan --cache # to restart lvmetad
必要に応じてvgreduce
などで味付けします。