磁盘完全故障后 RAID5 降级 - 现在该怎么办?

磁盘完全故障后 RAID5 降级 - 现在该怎么办?

我在 NAS 上运行 OMV 3.0.99。我设置了一个包含三个 5TB WD RED 驱动器的 RAID5(使用 mdadm)。我以前(2016 年)使用 OMV GUI 设置过 RAID。

最近,其中一个磁盘出现故障(以前是 /dev/sdd)。当我回到家时,我注意到它在启动时发出奇怪的声音,并且在 LINUX 中不再被识别。该设备似乎物理损坏,我已经设置了 RMA,因为我仍然拥有驱动器的保修。现在我正在等待替换驱动器,并问自己当新驱动器到达时我应该做什么来恢复我的 RAID。

关于我的驱动器的一些说明:

  1. /dev/sda 是我的系统驱动器
  2. RAID 包含磁盘 /dev/sdb、sdc 和 sdd。驱动器 /dev/sdd 发生故障,并且已从 NAS 机箱中物理移除。
  3. 现在 /dev/sdd 被分配给我的备份磁盘(在 RAID 磁盘发生故障之前曾是 sde)

以下是我的系统的一些重要输出:

uname -a输出

Linux homenas 4.9.0-0.bpo.6-amd64 #1 SMP Debian 4.9.88-1+deb9u1~bpo8+1 (2018-05-13) x86_64 GNU/Linux

cat /proc/mdstat

Personalities : [raid6] [raid5] [raid4] 
md127 : active raid5 sdb[0] sdc[1]
        9767278592 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_]
unused devices: <none>

blkid

/dev/sda1: UUID="911053a9-f06c-4479-becb-cb8faa2a5783" TYPE="ext4" PARTUUID="2c92f843-01"
/dev/sda5: UUID="28ae7474-1d14-48a6-9e8e-2ed31e060803" TYPE="swap" PARTUUID="2c92f843-05"
/dev/sdb: UUID="bb8b3798-d160-71b4-cc60-bc8fdc8e0761" UUID_SUB="e52bb12c-23e1-7c8f-a7f7-d52d4b2b46a9" LABEL="HomeNAS:NAS" TYPE="linux_raid_member"
/dev/sdc: UUID="bb8b3798-d160-71b4-cc60-bc8fdc8e0761" UUID_SUB="d9eac207-7167-d19e-c1de-8c7525b77d48" LABEL="HomeNAS:NAS" TYPE="linux_raid_member"
/dev/sdd1: UUID="523cffe7-115d-49b4-95e0-7549aecdf064" TYPE="ext4" PARTUUID="fba4a7ee-026a-497f-9b3d-bbdec92cb0d6"
/dev/md127: UUID="bd5ef96f-5587-4211-95c0-10219985ff6d" TYPE="ext4"

fdisk -l | grep "Disk "

Disk /dev/sda: 29,8 GiB, 32017047552 bytes, 62533296 sectors
Disk identifier: 0x2c92f843
Disk /dev/sdb: 4,6 TiB, 5000981078016 bytes, 9767541168 sectors
Disk /dev/sdc: 4,6 TiB, 5000981078016 bytes, 9767541168 sectors
Disk /dev/sdd: 1,8 TiB, 2000394706432 bytes, 3907020911 sectors
Disk identifier: C0401C51-A74A-4675-935E-AF9BF6706166
Disk /dev/md127: 9,1 TiB, 10001693278208 bytes, 19534557184 sectors

cat /etc/mdadm/mdadm.conf

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#
# by default, scan all partitions (/proc/partitions) for MD superblocks.
# alternatively, specify devices to scan, using wildcards if desired.
# Note, if no DEVICE line is present, then "DEVICE partitions" is assumed.
# To avoid the auto-assembly of RAID devices a pattern that CAN'T match is
# used if no RAID devices are configured.
DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# definitions of existing MD arrays
ARRAY /dev/md/NAS metadata=1.2 name=HomeNAS:NAS UUID=bb8b3798:d16071b4:cc60bc8f:dc8e0761
# instruct the monitoring daemon where to send mail alerts
MAILADDR <<<<REMOVED FOR PRIVACY RESONS>>>>

mdadm --detail --scan --verbose

ARRAY /dev/md127 level=raid5 num-devices=3 metadata=1.2 name=HomeNAS:NAS UUID=bb8b3798:d16071b4:cc60bc8f:dc8e0761
      devices=/dev/sdb,/dev/sdc

mdadm --detail /dev/md127

/dev/md127:
          Version : 1.2
Creation Time : Sat Mar 12 17:22:49 2016
       Raid Level : raid5
       Array Size : 9767278592 (9314.80 GiB 10001.69 GB)
  Used Dev Size : 4883639296 (4657.40 GiB 5000.85 GB)
   Raid Devices : 3
  Total Devices : 2
    Persistence : Superblock is persistent
            Update Time : Sun Jan 27 13:11:42 2019
                  State : clean, degraded 
         Active Devices : 2
        Working Devices : 2
         Failed Devices : 0
          Spare Devices : 0
                 Layout : left-symmetric
             Chunk Size : 512K
                   Name : HomeNAS:NAS
                   UUID : bb8b3798:d16071b4:cc60bc8f:dc8e0761
                 Events : 305
            Number   Major   Minor   RaidDevice State
               0       8       16        0      active sync   /dev/sdb
               1       8       32        1      active sync   /dev/sdc
               4       0        0        4      removed

我搜索了互联网并找到了不同的步骤,但我不知道在我的情形下哪些是必要的:

  1. 将磁盘标记为故障
  2. 从阵列中删除磁盘
  3. 将阵列中剩余磁盘的分区表复制到新的替换驱动器
  4. 将驱动器重新添加到阵列(-->重建将自动启动)

由于磁盘完全损坏,并且不再存在于 Linux 中,因此我无法将其标记为损坏并将其从阵列中删除。我找到了以下命令来从阵列中删除不再存在的磁盘: mdadm /dev/md127 -r detached

建议在安装新驱动器之前使用此命令吗?或者在我的情况下不需要从阵列中移除驱动器?

非常感谢您的指导!提前致谢

答案1

基本上这只是一个简单的

mdadm /dev/md127 --add /dev/newdrive

然后watch cat /proc/mdstat和/或dmesg -w重建进度或失败。

越早将新驱动器添加到阵列越好。如果在等待期间另一个驱动器发生故障,那就完了。如果您没有数据备份,请尽快备份。

通常情况下,您还会先在驱动器上创建分区表,然后将该分区用于 RAID,而不是直接使用该驱动器。但对于您来说,这是不可能的,因为您的阵列中已经有未分区的驱动器,现在添加分区表,大小将不再匹配。

运行没有分区表的驱动器是数据丢失的潜在原因。太多软件会在没有看到分区表时帮你创建分区表,但你也很容易不小心创建分区表。

相关内容