我的 NAS 出现了一个奇怪的问题,它是一台 Zyxel 540,配备 4 个 2TB 硬盘,配置为 RAID 5。一切都运行顺利,直到我决定用一块新的 WD Red 硬盘(大小相同)替换一个硬盘。正如大家所料,NAS 会发现插入了新磁盘并开始重建 RAID,同时数据仍然安全……我已经执行过此操作并且成功了,所以……没问题!
在我的梦里...
在我更换驱动器后,NAS 说该卷无法访问。
我很慌张,所以我重新安装了旧驱动器......什么也没发生,问题仍然存在......但是可以在 NAS 管理器中访问数据,但不能通过 LAN 访问,如果不通过终端则无法复制。
我尝试(只是为了确保)使用 PhotoRec 对一个驱动器进行部分恢复。数据仍然存在,因此问题肯定出在标题或其他方面。
我尝试通过 ssh 执行一些命令来检查 RAID 的状态,例如:
mdadm --create etc
mdadm --examine /dev/md2
而且,发现驱动器顺序已经消失,因此我开始了所有组合,例如:
mdadm --create --assume-clean --level=5 --raid-devices=4 --metadata=1.2 --chunk=64K --layout=left-symmetric /dev/md2 /dev/sdd3 /dev/sdb3 /dev/sdC3 /dev/sdA3
我以为 NAS 可以用正确的组合再次工作,直到我提交了这个组合:C / A / D / B
现在我无法改变组合,我被这条消息困住了:
mdadm --stop /dev/md2
它回应道:
mdadm: Cannot get exclusive access to /dev/md2:Perhaps a running process, mounted filesystem or active volume group?
我也尝试过cat /proc/mounts
,卷未安装:(
lsof | grep /dev/md2
,什么都没有出现
和
# e2fsck -n /dev/md2
e2fsck 1.42.12 (29-Aug-2014)
Warning! /dev/md2 is in use.
ext2fs_open2: Bad magic number in super-block
e2fsck: Superblock invalid, trying backup blocks...
e2fsck: Bad magic number in super-block while trying to open /dev/md2
The superblock could not be read or does not describe a valid ext2/ext3/ext4
filesystem. If the device is valid and it really contains an ext2/ext3/ext4
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
e2fsck -b 8193 <device>
or
e2fsck -b 32768 <device>
LVM 配置:
输出自pvs
:
PV VG Fmt Attr PSize PFree
/dev/md2 vg_ca74d470 lvm2 a-- 5.45t 0
输出自vgs
:
VG #PV #LV #SN Attr VSize VFree
vg_ca74d470 1 2 0 wz--n- 5.45t 0
输出自lvs
:
LV VG Attr LSize [snip]
lv_be37a89a vg_ca74d470 -wi-a----- 5.45t
vg_info_area vg_ca74d470 -wi-a----- 100.00m
软件 RAID 配置:
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda3[1] sdd3[3] sdb3[2]
5848150464 blocks super 1.2 level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
md1 : active raid1 sdb2[4] sdd2[6] sdc2[5] sda2[7]
1998784 blocks super 1.2 [4/4] [UUUU]
md0 : active raid1 sdb1[4] sdd1[6] sdc1[5] sda1[7]
1997760 blocks super 1.2 [4/4] [UUUU]
unused devices: <none>
伙计们,我没选择了......我该怎么办?
答案1
因此您的设置如下:
- 4 个硬盘分为 3 个分区
- 3 个 RAID 阵列(2 个 RAID1、1 个 RAID5),使用所有 4 个磁盘的分区
- 1 个 LVM lv 使用 md2(RAID5 阵列)作为 PV
在更换硬盘之前,您应该mdadm.conf
从运行配置中生成:
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
从现有驱动器复制分区结构可能更简单:
sfdisk -d /dev/sda >> partitions
然后更换磁盘,并将以前的分区应用到新驱动器:
sfdisk /dev/sda << partitions
最后,您必须将新磁盘的每个分区重新插入 3 个 RAID 阵列中:
mdadm --manage /dev/md0 --add /dev/sda1
mdadm --manage /dev/md1 --add /dev/sda2
mdadm --manage /dev/md2 --add /dev/sda3
如果你需要停止或启动 LVM 锁定阵列,请使用
vgchange -an # stop all LVs
vgchange -ay # start all LVs
答案2
好消息!
我终于找回了我的数据!
我尝试使用列出的备份通过 e2fsck 恢复超级块索引,但都不起作用 :(
所以我决定回到旧计划并再次尝试逻辑开发人员组合。
我遵循的程序如下:1)使用 vgchange -an 停用卷 2)停止 md2 3)使用新组合创建阵列
当我到达 C / B / D / A 并重新启动时,NAS 终于将我的数据返回了。
我现在真的很高兴,感谢所有参与的人,我现在肯定会更频繁地看看这个地方。
祝你好运,一切顺利!
答案3
# vgs
VG #PV #LV #SN Attr VSize VFree
vg_ca74d470 1 2 0 wz--n- 5.45t 0
~ # lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv_be37a89a vg_ca74d470 -wi-a----- 5.45t
vg_info_area vg_ca74d470 -wi-a----- 100.00m
~ # cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4]
md2 : active raid5 sda3[1] sdd3[3] sdb3[2]
5848150464 blocks super 1.2 level 5, 64k chunk, algorithm 2 [4/3] [_UUU]
md1 : active raid1 sdb2[4] sdd2[6] sdc2[5] sda2[7]
1998784 blocks super 1.2 [4/4] [UUUU]
md0 : active raid1 sdb1[4] sdd1[6] sdc1[5] sda1[7]
1997760 blocks super 1.2 [4/4] [UUUU]
unused devices: <none>