我最近丢失了一个 RAID,它是我的一个 Linux LVM 卷组的物理卷。我最终做了一个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
仅包含一个 LV,并且该 LV 完全包含在 上/dev/md2
。
答案1
我想通了A恢复 raid 的方法。现代 LVM 系统经常备份 VG 配置。您可以使用 查看备份列表以及触发备份的命令vgcfgrestore --list
。我选择了之前执行的那个,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
,但我懒得进行必要的实验来验证这一点。