Raid1 中的驱动器发生故障。无法更换

Raid1 中的驱动器发生故障。无法更换

我有一个软件 raid1,mdadm 通过电子邮件通知我一个驱动器发生故障。按照我在网上找到的步骤,我将驱动器标记为故障并从 raid 中移除。

我用完全相同的品牌和型号替换了该驱动器,但更换新驱动器后,突袭仍无法启动。cat /proc/mdstat 只是显示其处于非活动状态。

我也无法将新驱动器添加到阵列中,尽管我将分区从工作驱动器复制到了新驱动器,但仍一直说新驱动器上没有超级块。

我移除了新驱动器,然后重新放入了发生故障的驱动器。RAID 确实启动了,奇怪的是它现在正在尝试重建,但检查我的 mdadm.conf 时,它看起来很糟糕。

配置文件

#mdadm.conf
#
# 有关此文件的信息,请参阅 mdadm.conf(5)。
#

# 默认情况下(内置),扫描所有分区(/proc/partitions)和所有
# MD 超级块的容器。或者,使用以下方式指定要扫描的设备
# 如果需要,可以使用通配符。
#DEVICE 分区容器

# 使用 Debian 标准权限自动创建设备
创建所有者=根组=磁盘模式=0660 自动=是

# 自动将新数组标记为属于本地系统
家主

# 指示监控守护进程将邮件警报发送到哪里
邮箱地址[电子邮件保护]

# 现有 MD 数组的定义

# 此文件于 2012 年 12 月 30 日星期日 02:27:19 -0700 自动生成
# 通过 mkconf $Id$
设备 /dev/sdb1 /dev/sdb1
阵列 /dev/md0 级别=raid1 设备=/dev/sdb1,/dev/sdb1

fdisk -l

磁盘 /dev/sda:640.1 GB,640135028736 字节
255 个磁头,63 个扇区/磁道,77825 个磁柱,总共 1250263728 个扇区
单位 = 1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标识符:0x00058100

   设备启动开始结束块ID系统
/dev/sda1 * 2048 1241874431 620936192 83 Linux
/dev/sda2 1241876478 1250263039 4193281 5 扩展
/dev/sda5 1241876480 1250263039 4193280 82 Linux 交换 / Solaris

警告:在“/dev/sdb”上检测到 GPT(GUID 分区表)!实用程序 fdisk 不支持 GPT。请使用 GNU Parted。


磁盘 /dev/sdb:2000.4 GB,2000398934016 字节
255 个磁头,63 个扇区/磁道,243201 个磁柱,共计 3907029168 个扇区
单位 = 1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标识符:0x00000000

   设备启动开始结束块ID系统
/dev/sdb1 1 3907029167 1953514583+ 即 GPT
分区 1 不是从物理扇区边界开始的。

警告:在“/dev/sdc”上检测到 GPT(GUID 分区表)!实用程序 fdisk 不支持 GPT。请使用 GNU Parted。


磁盘 /dev/sdc:2000.4 GB,2000398934016 字节
255 个磁头,63 个扇区/磁道,243201 个磁柱,共计 3907029168 个扇区
单位 = 1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标识符:0x00000000

   设备启动开始结束块ID系统
/dev/sdc1 1 3907029167 1953514583+ 即 GPT
分区 1 不是从物理扇区边界开始的。

磁盘 /dev/md0:2000.3 GB,2000263380992 字节
2 个磁头,4 个扇区/磁道,488345552 个磁柱,总共 3906764416 个扇区
单位 = 1 * 512 = 512 字节的扇区
扇区大小(逻辑/物理):512 字节 / 4096 字节
I/O 大小(最小/最佳):4096 字节 / 4096 字节
磁盘标识符:0x00000000

磁盘 /dev/md0 不包含有效的分区表

我甚至不知道这里要放些什么才能有所帮助,但我真的很感激任何帮助或建议,以使这次突袭恢复正常。

更新:再次尝试后添加了更多信息。将故障驱动器放回原位后,它开始重建,然后按预期失败。

首先创建新的 mdadm.conf 文件 sudo su -c "/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf"

  1. 失败然后删除 /dev/sdc1
  2. 安装了新的高清
  3. 使用复制分区sgdisk -R /dev/sdc /dev/sdb
  4. 更新的 UUIDsgdisk -G /dev/sdc
  5. sfdisk -r /dev/sdc
  6. mdadm --manage /dev/md0 --add /dev/sdc1

尝试添加 sdc1 错误 mdadm: cannot get array info for /dev/md0

答案1

好吧,首先,如果您能提供更多关于您的设置的信息就更好了,这样我就可以填写您的分区名称等等。

正如您所说,您将其标记为失败并将其删除(我猜想mdadm --manage /dev/md0 --remove /dev/sdb1或者每个分区的 raid/物理分区是什么)。

您是否在实时系统中执行了此操作?这意味着这是一台可以关闭的机器吗?驱动器是否支持热插拔?

您还说您复制了分区表(sfdisk -d /dev/sda | sfdisk /dev/sdb)。您是怎么做到的?您的设备使用哪个分区表(MBR/GPT)?

如果是 GPT,则必须使用sgdisk -R /dev/sdb /dev/sda将分区表从 sda 复制到 sdb。

之后,您必须为其提供一个新的 UUID sgdisk -G /dev/sdb:。

然后使用sfdisk -r /dev/sdb内核重新加载您的分区表。

使用mdadm /dev/md0 -a /dev/sdb1。与删除一样,您必须对每个分区执行此操作。然后使用grub-mkdevicemap -n为 Grub2 生成新的设备映射,然后grub-install /dev/sdb

编辑:这看起来真的很愚蠢,你的 RAID 由 2 次相同的分区组成......

也许您想要创建一个新的配置:sudo su -c "/usr/share/mdadm/mkconf > /etc/mdadm/mdadm.conf"

相关内容