我有一个失败的 raid-5 阵列,我似乎无法恢复。基本上这个故事是我在 raid 5 中有这些数据,我正在使用现在有内置 raid 的 LVM。我注意到其中一个磁盘坏了,所以我得到了一个新磁盘并发布pvmove
以将范围从故障磁盘移动到新磁盘。在迁移过程中的某个时间,旧磁盘发生故障并完全停止响应(不确定为什么会导致这种情况)。所以我重新启动了它,现在阵列根本没有出现。一切看起来都很好,例如 3/4 磁盘正在工作,而且我很确定即使是发生故障的磁盘也会暂时备份(尽管不要相信它)。但是当我发布时lvchange -a y vg-array/array-data
,dmesg 中的以下内容失败了
not clean -- starting background reconstruction
device dm-12 operational as raid disk 1
device dm-14 operational as raid disk 2
device dm-16 operational as raid disk 3
cannot start dirty degraded array.
我很确定有一些方法可以强制使用 mdadm 开始,但我还没有看到 lvm 的任何内容。但是因为我有三个磁盘,所以我所有的数据都在那里,所以它必须是可恢复的。有谁知道该怎么做?
解决方法是添加内核启动参数
/etc/default/grub
然后重新update-grub
启动。我仍然必须手动激活该卷,但在添加该参数后脏降级阵列现在是警告而不是错误。这记录在https://www.kernel.org/doc/html/latest/admin-guide/md.html#boot-time-assembly-of-degraded-dirty-arrays
添加新设备后,在其上创建一个 PV,使用 将 PV 添加到卷组
vgextend
,并使用 删除丢失的 PVvgreduce --remove --force
,我可以使用以下命令在 LVM 上修复我的 raid6 阵列我们可以通过 看到修复的进度
lvs
,它会显示在 Cpy%Sync 中。