热插拔驱动器有了新名称。如果我将其重新添加到“md”阵列并在重新启动时重命名,该阵列还能正常工作吗?

热插拔驱动器有了新名称。如果我将其重新添加到“md”阵列并在重新启动时重命名,该阵列还能正常工作吗?

我的服务器 RAID 配置中的一个 HDD 发生故障,因此我将其从阵列中取出并让数据中心对其进行热交换。他们已经这样做了,但现在新驱动器不是了/dev/sdc/dev/sda我怀疑如果我重新启动服务器,它会/dev/sda再次出现,所以我犹豫着是否将其重新添加到阵列中,因为/dev/sdc我不想给自己设下陷阱,在下次重新启动时落入其中。如果不需要,我宁愿不重新启动服务器(如果我确实需要,那么,对我来说太糟糕了)。

如果我将其添加为/dev/sdc,重启时会出现问题吗?或者有没有办法在不重启的情况下将设备名称从 更改/dev/sdc为?/dev/sda

这是在 Ubuntu 10.04 LTS 上。它是一个md阵列(“Linux 软件 RAID”),其中目前其中一个设备(有几个)看起来像这样(“降级”,因为我已经从中删除了旧设备/dev/sda):

# mdadm --detail /dev/md0
/dev/md0:
        版本:00.90.03
  创建时间:2009 年 10 月 11 日星期日 21:07:54
     突袭级别:raid1
     数组大小:97536(95.27 MiB 99.88 MB)
  已使用开发大小:97536 (95.27 MiB 99.88 MB)
   突袭设备:2
  设备总数:1
首选辅修科目 : 0
    持久性:超级块是持久的

    更新时间:2011年6月30日星期四09:31:16
          状态:干净、降级
 活跃设备:1
工作装置:1
 故障设备:0
  备用设备:0

           UUID:496be7a5:ab9177ed:7792c71e:7dc17aa4
         事件:0.112

    编号 主要 次要 RaidDevice 状态
       0 8 17 0 活动同步 /dev/sdb1
       1 0 0 1 已移除

答案1

可以继续添加为/dev/sdc。阅读内核md文档,如果名称在重启时发生变化,则无关紧要。(这是很好的设计。)原因如下:

启动时自动检测 RAID 阵列

当 md 被编译到内核中(而不是作为模块)时,系统会扫描类型为 0xfd 的分区并自动将其组装到 RAID 阵列中。可以使用内核参数“raid=noautodetect”来抑制此自动检测。从内核 2.6.9 开始,只有具有类型 0 超级块的驱动器才能在启动时自动检测和运行。

内核参数“raid=partitionable”(或“raid=part”)表示所有自动检测到的阵列都被组装为可分区的。

虽然我没有md编译到内核中,但我的设置执行的操作与上述相同,因为它是自动加载的mdadm,并且mdadm.conf设置为扫描所有分区以查找超级块,就像内核一样:

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

因此使用 重建阵列是可以的/dev/sdc;名称可能会在重新启动时更改为,但如果按照上述设置,/dev/sda则不会造成任何问题。md

相关内容