You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Synology DSM7下RAID5存储池崩溃后的恢复方案咨询及实操记录

Synology DSM7下RAID5存储池崩溃后的恢复方案咨询及实操记录

我之前碰到了一个糟心的问题:DSM更新后,群晖原装缓存盘出故障导致我的RAID5存储池直接崩溃,完全无法访问。存储池底部的三点菜单里居然只有「移除存储池」的选项,连启用读写或修复卷的入口都找不到。联系群晖客服折腾了一周,才把存储池恢复成只读模式,让我能备份数据。

但远程挂着只读模式这么久总觉得不安,而且没了缓存的性能下降也让我浑身难受,于是我重新加了缓存——结果这才是真正噩梦的开始!折腾了一整天排查问题后,我决定把DSM7下的恢复步骤记录下来,希望能帮到遇到同样困境的人。

之前我听了一些RAID论坛的建议,把硬盘标记为故障、从阵列移除再重新添加,结果问题反而更糟了!当时执行cat /proc/mdstat的输出是这样的:

Personalities : [raid1] [raid6] [raid5] [raid4] [raidF1]

md2 : active raid5 sda5[6](S) sdb5[1](E) sdf5[5](E) sde5[4](E) sdd5[3](E) sdc5[2](E)

87837992640 blocks super 1.2 level 5, 64k chunk, algorithm 2 [6/5] [_EEEEE]

md1 : active raid1 sdg2[1]

2097088 blocks [12/1] [_U__________]

md0 : active raid1 sdg1[1]

2490176 blocks [12/1] [_U__________]

看起来惨不忍睹,但用mdadm -D /dev/md2查看的结果反而没那么绝望:

# mdadm -D /dev/md2

/dev/md2:
Version : 1.2
Creation Time : Fri Aug  5 22:03:13 2022
Raid Level : raid5
Array Size : 87837992640 (83768.84 GiB 89946.10 GB)
Used Dev Size : 17567598528 (16753.77 GiB 17989.22 GB)
Raid Devices : 6
Total Devices : 6
Persistence : Superblock is persistent
Update Time : Wed May 17 21:46:40 2023
State : clean
Active Devices : 5
Working Devices : 6
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Name : File01:2
UUID : 9ef80d24:68ea4c4f:3b281ebe:790302f5
Events : 1454

Number   Major   Minor   RaidDevice State
-       0        0        0      removed
1       8       21        1      faulty active sync   /dev/sdb5
2       8       37        2      faulty active sync   /dev/sdc5
3       8       53        3      faulty active sync   /dev/sdd5
4       8       69        4      faulty active sync   /dev/sde5
5       8       85        5      faulty active sync   /dev/sdf5
6       8        5        -      spare   /dev/sda5

更麻烦的是,DSM7改了底层代码,像syno_poweroff_task -d这种旧命令直接不存在了!折腾了好久终于找到了解决方案,下面是具体的恢复步骤:

第一步:卸载挂载的卷

我的阵列里有两个卷,阻止了我停止阵列,所以得用群晖新的工具先卸载它们:

# synostgvolume --unmount -p /volume1
# synostgvolume --unmount -p /syno_vg_reserved_area
# synovspace -all-unload

执行完后,用LVM工具查看,应该能看到卷处于inactive & NOT available状态:

#lvm
lvm> lvscan
inactive          '/dev/vg2/syno_vg_reserved_area' [12.00 MiB] inherit
inactive          '/dev/vg2/volume_1' [81.80 TiB] inherit

lvm> lvdisplay
--- Logical volume ---
LV Path                /dev/vg2/syno_vg_reserved_area
LV Name                syno_vg_reserved_area
VG Name                vg2
LV UUID                2E1szd-mdDP-4kkJ-YIcF-zh1B-t3t3-1hq1Ct
LV Write Access        read/write
LV Creation host, time ,
LV Status              NOT available
LV Size                12.00 MiB
Current LE             3
Segments               1
Allocation             inherit
Read ahead sectors     auto

--- Logical volume ---
LV Path                /dev/vg2/volume_1
LV Name                volume_1
VG Name                vg2
LV UUID                scFIlA-VoSt-KhC1-WP0u-DYBl-3IfY-Nrc4Cj
LV Write Access        read/write
LV Creation host, time ,
LV Status              NOT available
LV Size                81.80 TiB
Current LE             21444608
Segments               1
Allocation             inherit
Read ahead sectors     auto

第二步:重新组装阵列

现在可以执行组装命令恢复阵列了,即使我之前漏加了最后一块盘,也能先把阵列拉回来:

# mdadm --stop /dev/md2
# mdadm --verbose --create /dev/md2 --chunk=64 --level=5 --raid-devices=6 missing /dev/sda5 /dev/sdb5 /dev/sdc5 /dev/sdd5 /dev/sde5 /dev/sdf5

执行完后用mdadm --detail /dev/md2查看,阵列应该处于clean degraded状态:

# mdadm --detail /dev/md2

/dev/md2:
Version : 1.2
Creation Time : Wed May 17 22:36:29 2023
Raid Level : raid5
Array Size : 87837992640 (83768.84 GiB 89946.10 GB)
Used Dev Size : 17567598528 (16753.77 GiB 17989.22 GB)
Raid Devices : 6
Total Devices : 5
Persistence : Superblock is persistent
Update Time : Wed May 17 22:36:29 2023
State : clean, degraded
Active Devices : 5
Working Devices : 5
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
Name : Morpheous:2  (local to host Morpheous)
UUID : 96f5e08a:d64e6b15:97240cc1:54309926
Events : 1

Number   Major   Minor   RaidDevice State
-       0        0        0      removed
1       8       21        1      active sync   /dev/sdb5
2       8       37        2      active sync   /dev/sdc5
3       8       53        3      active sync   /dev/sdd5
4       8       69        4      active sync   /dev/sde5
5       8       85        5      active sync   /dev/sdf5

第三步:添加备用盘,启动重建

最后把备用盘加回去,阵列就开始自动重建了:

mdadm --manage /dev/md2 --add /dev/sda5

用cat /proc/mdstat可以看到实时的重建进度:

Personalities : [raid1] [raid6] [raid5] [raid4] [raidF1]

md2 : active raid5 sda5[6] sdf5[5] sde5[4] sdd5[3] sdc5[2] sdb5[1]

87837992640 blocks super 1.2 level 5, 64k chunk, algorithm 2 [6/5] [_UUUUU]

[>....................]  recovery =  0.0% (4341888/17567598528) finish=3980.8min speed=73531K/sec

md1 : active raid1 sdg2[1]

2097088 blocks [12/1] [_U__________]

md0 : active raid1 sdg1[1]

2490176 blocks [12/1] [_U__________]

希望这些步骤能帮到未来遇到同样问题的朋友!

备注:内容来源于stack exchange,提问作者Dwayne O

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 13:19:51