收起左侧

RAID5掉盘,恢复过程另一块硬盘出现问题处理过程

2
回复
221
查看
[ 复制链接 ]

2

主题

5

回帖

0

牛值

江湖小虾

2025-5-29 10:33:52 显示全部楼层 阅读模式

RAID5掉盘,恢复过程另一块硬盘出现问题处理过程

CleanShot2025-05-29at10.10.38@2x.png

一开始故障的是sdd,我更换上去了,恢复过程我还使用迅雷下载作死,大家千万别学我。

下面是第二块硬盘有问题后RAID启动失败了。

  1. 阵列缺少 slot 0 和 slot 2 的设备
  2. 当前只有 slot 1 (/dev/sdc1) 和 slot 3 (/dev/sde1) 是活跃成员
  3. /dev/sdd1 被识别为备用设备 (spare, slot -1)
  4. 阵列无法启动因为活跃设备数量不足

CleanShot2025-05-29at10.13.32@2x.png

fdisk -l

CleanShot2025-05-29at10.27.35@2x.png

根据最新的 cat /proc/mdstatfdisk -l 信息,你的 RAID5 阵列 /dev/md0 目前处于 inactive(非活动) 状态,并且所有成员盘(sdc1sdd1sde1)都被标记为 spare(备用盘),这意味着 RAID 无法自动启动。

关键发现

  1. RAID5 原本是 4 盘阵列raid-devices=4),但现在只有 3 盘在线:
    • /dev/sdc1(2.7TB)
    • /dev/sdd1(1.8TB)
    • /dev/sde1(1.8TB)
    • 缺少第 4 盘(可能是 /dev/sdb1?)
  2. /dev/sdb1 存在但未被加入 RAIDfdisk -l 显示它是 Linux RAID 类型)。

首先检查阵列详细信息:

root@NAS:~# mdadm --examine /dev/sd[cde]1
/dev/sdc1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
           Name : NAS:0  (local to host NAS)
  Creation Time : Tue Dec 17 23:56:42 2024
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 5860265984 sectors (2.73 TiB 3.00 TB)
     Array Size : 5860144128 KiB (5.46 TiB 6.00 TB)
  Used Dev Size : 3906762752 sectors (1862.89 GiB 2000.26 GB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=1953503232 sectors
          State : clean
    Device UUID : 79d5251b:69e987dc:acc2e560:bd1a5dc8

Internal Bitmap : 8 sectors from superblock
    Update Time : Thu May 29 00:50:56 2025
  Bad Block Log : 512 entries available at offset 16 sectors
       Checksum : 2590a51 - correct
         Events : 12096

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 1
   Array State : .A.A ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x9
     Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
           Name : NAS:0  (local to host NAS)
  Creation Time : Tue Dec 17 23:56:42 2024
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 3906762752 sectors (1862.89 GiB 2000.26 GB)
     Array Size : 5860144128 KiB (5.46 TiB 6.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=0 sectors
          State : clean
    Device UUID : 6e87af7b:1d0f3768:6d3034f3:448a68fd

Internal Bitmap : 8 sectors from superblock
    Update Time : Thu May 29 00:50:56 2025
  Bad Block Log : 512 entries available at offset 16 sectors - bad blocks present.
       Checksum : 417ba753 - correct
         Events : 12096

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : spare
   Array State : .A.A ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
           Name : NAS:0  (local to host NAS)
  Creation Time : Tue Dec 17 23:56:42 2024
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 3906762752 sectors (1862.89 GiB 2000.26 GB)
     Array Size : 5860144128 KiB (5.46 TiB 6.00 TB)
    Data Offset : 264192 sectors
   Super Offset : 8 sectors
   Unused Space : before=264112 sectors, after=0 sectors
          State : clean
    Device UUID : a2a1c152:2c49b698:6d3034f3:448a68fd

Internal Bitmap : 8 sectors from superblock
    Update Time : Thu May 29 00:50:56 2025
  Bad Block Log : 512 entries available at offset 16 sectors
       Checksum : 490cfb8f - correct
         Events : 12096

         Layout : left-symmetric
     Chunk Size : 512K

   Device Role : Active device 3
   Array State : .A.A ('A' == active, '.' == missing, 'R' == replacing)
root@NAS:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : inactive sdd1[2](S) sde1[3](S) sdc1[1](S)
      6836895744 blocks super 1.2

unused devices: <none>

备份超级块

mdadm --examine /dev/sdb1  # 替换 X 为你的磁盘(如 sdb1, sdc1 等)
/dev/sdb1:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x1
     Array UUID : 5536749d:c8d89340:5678399c:fc33d46d
           Name : NAS:0
  Creation Time : Tue Dec 17 23:56:42 2024
     Raid Level : raid5
   Raid Devices : 4
   Super Offset : 8 sectors  # 超级块偏移量(重要!)
   Unused Space : before=264112 sectors, after=1953503232 sectors

使用 dd 备份超级块

方法1:超级块通常位于磁盘的 末尾(metadata=1.2)开头(metadata=0.9/1.0)

  • if=/dev/sdb1:要备份的 RAID 成员盘。
  • of=...:备份文件路径。
  • bs=512:块大小(字节)。
  • count=128:备份 128 个扇区(64KB,足够覆盖超级块)。
  • skip=8:跳过前 8 个扇区(Super Offset)。
dd if=/dev/sdb1 of=/path/to/backup/sdb1_superblock.bak bs=512 count=128 skip=8

方法2:备份整个 RAID 元数据区域

dd if=/path/to/backup/sdb1_superblock.bak of=/dev/sdb1 bs=512 seek=8

恢复超级块

dd if=/path/to/backup/sdb1_superblock.bak of=/dev/sdb1 bs=512 seek=8

验证

mdadm --examine /dev/sdb1

额外安全措施

备份所有 RAID 成员盘的超级块

mdadm --examine --scan > /etc/mdadm/mdadm.conf.backup

准备开干尝试强制重新组装 RAID

其实按顺序应该先停止阵列,但我这里阵列已经GG所以直接重组。

mdadm --stop /dev/md0
root@NAS:~# mdadm --assemble --force --run /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

直接把所有硬盘加入RAID组

CleanShot2025-05-29at10.32.18@2x.png

如果启动成功,在webui上面重新加入硬盘进行数据恢复,然后检查 /proc/mdstat

  • cat /proc/mdstat

CleanShot2025-05-29at10.31.43@2x.png

完事!记得千万不要在数据恢复期间进行下载上传啥的操作,很容易GG。引以为戒。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

4

主题

109

回帖

0

牛值

初出茅庐

2025-5-30 11:48:29 显示全部楼层
最安全还是导出数据后再去尝试恢复,或者直接删除阵列再新建倒数据回去。
你可能对现场环境没看明白,我的硬盘已经快不行了,大量读写会导致另一块硬盘直接掉,阵列直接不可用。我当然知道最好备份,我也这么做了。  详情 回复
3 天前

2

主题

5

回帖

0

牛值

江湖小虾

3 天前 楼主 显示全部楼层
cavenlai 发表于 2025-5-30 11:48
最安全还是导出数据后再去尝试恢复,或者直接删除阵列再新建倒数据回去。 ...

你可能对现场环境没看明白,我的硬盘已经快不行了,大量读写会导致另一块硬盘直接掉,阵列直接不可用。我当然知道最好备份,我也这么做了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则