最近、Linux LVM ボリューム グループの 1 つである物理ボリュームである RAID を失いました。結局vgreduce --removemissing
、データの復元作業に取り掛かりました。
さて、今日私はその RAID を見つけました (隠れていたので聞かないでください)。
# pvdisplay -m /dev/md2
WARNING: Volume group mg20 is not consistent
"/dev/md2" is a new physical volume of "499.87 GiB"
--- NEW Physical volume ---
PV Name /dev/md2
VG Name
PV Size 499.87 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz
mg20
一貫性がありません。lost&found PV には/dev/md2
、 に存在するファイルシステムを示す古い論理ボリュームカタログのコピーが含まれている可能性があります/dev/md2
。
/dev/md2
に再統合してmg20
、そこにあるファイルシステムを保存するにはどうすればよいですか? (そして、その内容を復元する手間を省くには) 簡素化の要因は/dev/md2
、 には 1 つの LV しか含まれておらず、その LV は に完全に含まれていたことです/dev/md2
。
答え1
私は理解した1つのレイドを回復する方法。最近の LVM システムは、VG 構成のバックアップをかなり頻繁に作成します。 を使用して、バックアップのリストとそれらをトリガーしたコマンドを表示できますvgcfgrestore --list
。 を実行したときに以前から 1 つを選択しvgreduce --removemissing
、その中に次の関連部分を見つけました。
pv8 {
id = "SUXIe9-B4xG-Qlbz-5cSd-f1dh-cRQh-vOF4qz"
device = "unknown device" # Hint only
status = ["ALLOCATABLE"]
flags = ["MISSING"]
dev_size = 1048312832 # 499.875 Gigabytes
pe_start = 2048
pe_count = 127967 # 499.871 Gigabytes
}
そして
homes18 {
id = "d7yt43-PMTv-XnsH-qAff-3d5A-ilB6-eQB0Jy"
status = ["READ", "WRITE", "VISIBLE"]
flags = []
segment_count = 1
segment1 {
start_extent = 0
extent_count = 89600 # 350 Gigabytes
type = "striped"
stripe_count = 1 # linear
stripes = [
"pv8", 0
]
}
}
そこで、そのファイルのコピーを作成し、"MISSING"
から削除しましたflags =
。 も設定しましたdevice = "/dev/md2"
が、これはおそらく必要ありませんでした。 を実行したvgcfgrestore -f /etc/lvm/archive/mg20_synthetic-2015.vg mg20
ところ、mg20/homes18 が復活し、fsck に合格しました。
正直に言うと、この回答にはあまり満足していません。構成全体を復元するのは少しやりすぎです。
本当の答えは を含むかもしれないと思うlvcreate -Z n
が、これを検証するために必要な実験を実行するのは面倒だ。