mdadm RAID 1 配置已删除

mdadm RAID 1 配置已删除

今天早上,我们的一台大型生产服务器由于端口 0(可启动端口)上的 HDD 故障而崩溃。

该服务器在 RAID 1 中使用 mdadm 运行 CentOS 6.5。尽管一名实习生更换了硬盘(这很好)并尝试重建 RAID 阵列,但失败了。看起来他删除了 RAID 配置。

现在,我处于救援模式(数据中心网络启动)。

fdisk -l以下是:root@rescue:~# fdisk -l的输出

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sda doesn't contain a valid partition table

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000a5c6d

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        4096    41947135    20971520   fd  Linux raid autodetect
/dev/sdb2        41947136  1952468991   955260928   fd  Linux raid autodetect
/dev/sdb3      1952468992  1953519615      525312   82  Linux swap / Solaris

Disk /dev/md2: 978.2 GB, 978187124736 bytes
2 heads, 4 sectors/track, 238815216 cylinders, total 1910521728 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md2 doesn't contain a valid partition table

Disk /dev/md1: 21.5 GB, 21474770944 bytes
2 heads, 4 sectors/track, 5242864 cylinders, total 41942912 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table
root@rescue:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[1]
      20971456 blocks [2/1] [_U]

md2 : active raid1 sdb2[1]
      955260864 blocks [2/1] [_U]

unused devices: <none>

sda是更换的磁盘,而sdb是 RAID 磁盘。

以下是输出cat /proc/mdstat

root@rescue:~# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1] [raid10] [raid6] [raid5] [raid4] [multipath] [faulty]
md1 : active raid1 sdb1[1]
      20971456 blocks [2/1] [_U]

md2 : active raid1 sdb2[1]
      955260864 blocks [2/1] [_U]

unused devices: <none>

我如何重建 RAID?例如,将 sdb 的内容重新复制到 sda,然后保持 RAID 正常工作?

答案1

首先,您必须创建一个/dev/sda/dev/sdb使用 fdisk 类似的分区表。

然后,您发出:

mdadm --manage /dev/md1 --fail /dev/sda1
mdadm --manage /dev/md2 --fail /dev/sda2

命令将 /dev/sdaX 镜像标记为失败。MD 层可能已将这些镜像视为失败,因此这些镜像可能会显示错误消息。

然后,从 RAID 中移除 sdaX:

mdadm --manage /dev/md1 --remove /dev/sda1
mdadm --manage /dev/md2 --remove /dev/sda2

同样,MD 可能认为这些已被删除,因此可能会出现错误消息。

最后将更换的硬盘添加到阵列中:

mdadm --manage /dev/md1 --add /dev/sda1
mdadm --manage /dev/md2 --add /dev/sda2

此后您应该会看到/proc/mdstat系统正在重建阵列。

相关内容