NAS 上的 RAID5 修复冻结,现在尝试使用 mdadm 恢复

NAS 上的 RAID5 修复冻结,现在尝试使用 mdadm 恢复

我正在运行带有 4x4TB 硬盘的 Zyxxel NAS540。几天前,NAS 开始发出蜂鸣声,我看到 RAID 处于降级状态。由于其中一个驱动器的 SMART 值非常糟糕,我关闭了 NAS,订购了替换磁盘,将其插入并通过 Web 界面开始修复过程。

几天后(周末去了)我想检查进度,但无法再登录网络界面。 NAS 也没有显示磁盘活动(LED 既没有闪烁也没有噪音)。我尝试通过 ssh 和 mdadm 获取状态,它说 3 个驱动器处于状态干净,一个处于备用状态。那么就像修复成功之前一样吗?由于无法访问,也没有明显的磁盘访问,我重新启动 NAS。

现在网络界面再次工作,但显示“音量调低”。菜单中没有办法修复它。另外,当我单击磁盘时,它显示磁盘 1,2 和 3 是“热备用”。磁盘 4 没有状态。我更换的磁盘是磁盘 3。

从那时起,我将磁盘放入我的 PC 中并运行了一些命令来弄清楚情况,因为我也失去了对 NAS 的 ssh 访问权限。这些是输出:

猫 /proc/mdstat

Personalities : [raid6] [raid5] [raid4]
unused devices: <none>

sudo mdadm --检查 /dev/sd[abcdef]3

/dev/sda3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660160 (11166.25 GiB 11989.67 GB)
  Used Dev Size : 7805773440 (3722.08 GiB 3996.56 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=384 sectors
          State : clean
    Device UUID : ac8c7cd6:a8f3d86e:cb210c2b:bcdfc2eb

    Update Time : Thu Nov 14 16:31:43 2019
       Checksum : 667f486f - correct
         Events : 1210

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 3
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdb3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660160 (11166.25 GiB 11989.67 GB)
  Used Dev Size : 7805773440 (3722.08 GiB 3996.56 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=384 sectors
          State : active
    Device UUID : 1bbec5f9:dec5a68a:d07cfdbe:e05d0cb4

    Update Time : Mon Nov 11 18:02:11 2019
       Checksum : 1cd3509 - correct
         Events : 74

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 2
   Array State : AAAA ('A' == active, '.' == missing, 'R' == replacing)
/dev/sdd3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660736 (11166.25 GiB 11989.67 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=0 sectors
          State : clean
    Device UUID : 78f30bc0:b68074ee:9a3a223c:93decfd4

    Update Time : Sun Nov 17 23:41:48 2019
       Checksum : c9cda273 - correct
         Events : 1230

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 0
   Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)
/dev/sde3:
          Magic : a92b4efc
        Version : 1.2
    Feature Map : 0x0
     Array UUID : 73e88019:b7cf694c:8584cbaa:47f57992
           Name : NAS540:2
  Creation Time : Tue Nov 24 23:18:19 2015
     Raid Level : raid5
   Raid Devices : 4

 Avail Dev Size : 7805773824 (3722.08 GiB 3996.56 GB)
     Array Size : 11708660736 (11166.25 GiB 11989.67 GB)
    Data Offset : 262144 sectors
   Super Offset : 8 sectors
   Unused Space : before=262064 sectors, after=0 sectors
          State : clean
    Device UUID : 85b74994:874b016e:609081d6:4cfcd0ee

    Update Time : Sun Nov 17 23:41:48 2019
       Checksum : d1f8a2d1 - correct
         Events : 1230

         Layout : left-symmetric
     Chunk Size : 64K

   Device Role : Active device 1
   Array State : AA.. ('A' == active, '.' == missing, 'R' == replacing)

sudo mdadm --examine --brief --scan --config=分区

ARRAY /dev/md/2  metadata=1.2 UUID=73e88019:b7cf694c:8584cbaa:47f57992 name=NAS540:2
ARRAY /dev/md/0  metadata=1.2 UUID=b705c51b:2360cd8e:6b81c03f:2072f947 name=NAS540:0
ARRAY /dev/md/1  metadata=1.2 UUID=186ed461:615007c3:ab9e4576:7b5f7084 name=NAS540:1
ARRAY /dev/md/2  metadata=1.2 UUID=73e88019:b7cf694c:8584cbaa:47f57992 name=NAS540:2

sudo mdadm --assemble --scan

mdadm: Devices UUID-73e88019:b7cf694c:8584cbaa:47f57992 and UUID-73e88019:b7cf694c:8584cbaa:47f57992 have the same name: /dev/md/2
mdadm: Duplicate MD device names in conf file were found.

所以现在我想知道接下来的步骤应该是什么样的。我发现了一些类似的情况,其中 /etc/mdadm.conf 被手动编辑以消除重复的条目。

在其他情况下,RAID 是手动组装的(例如 mdadm--assemble /dev/mdX /dev/sda3 /dev/sdb3 ...),但在这里我不知道我的 RAID 名称 (mdX)。

我有什么想法可以继续吗?

PS:是的,我有关键文件的备份,但恢复其他所有内容仍然很好。

我现在又前进了几步。我设法使用重新组装数组

mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric /dev/md2 /dev/sdd3 /dev/sde3 missing /dev/sda3

然后我使用复制分区布局

sfdisk -d

最后加入新磁盘

sudo mdadm --manage /dev/md2 --add /dev/sdb3

mdadm --details 的输出将每个设备显示为“干净”,raid 状态为“AAAA”。现在,当我尝试安装 raid 时,出现以下错误:

sudo mount /dev/md/2 /media/raid
mount: /media/raid: wrong fs type, bad option, bad superblock on /dev/md2, missing codepage or helper program, or other error.

现在Data Offset出现了差异,怀疑来自于头部中的位图。

Data Offset : 262144 sectors
Data Offset : 264192 sectors

mdadm 手册页显示:

When creating an array on devices which are 100G or larger, mdadm automatically adds an internal bitmap as it will usually be beneficial. This can be suppressed with --bitmap=none or by selecting a different consistency policy with --consistency-policy.

所以我应该使用--bitmap=none.我可以通过像手册页所说的那样运行它来解决这个问题,还是会破坏某些东西?

If the word none is given with --grow mode, then any bitmap that is present is removed.

我已设法通过手动指定数据偏移量来重新创建数组。

sudo mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric --data-offset=262144s /dev/md2 /dev/sdd3 /dev/sde3 /dev/sdc3 /dev/sda3

我现在可以安装它并访问数据。它也适用于 NAS。

答案1

正如编辑中所述,我通过mdadm --create使用正确的数据偏移量再次运行命令解决了我的问题。我的raid又变得可读了。由于我已经在新的 disk3 上运行了恢复,我能够按照我的 OP 中所述运行命令,但假设您处于故障的初始位置,您将运行:

sudo mdadm --create --assume-clean --level=5  --raid-devices=4 --metadata=1.2 --chunk=64K  --layout=left-symmetric --data-offset=262144s /dev/md2 /dev/sdd3 /dev/sde3 missing /dev/sda3

其次是

sudo mdadm --manage /dev/md2 --add /dev/sdb3

当然使用您自己的说明符而不是sdbX.

相关内容