热插拔驱动器有了新名称。如果我将其重新添加到`md`阵列中,并且在重新启动后被重命名,该阵列是否仍然可以工作?


10

服务器的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-细节/ 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

    编号主要次要突袭设备状态
       0 8 17 0活动同步/ dev / sdb1
       1 0 0 1删除

1
什么数组?如果它正在扫描UID,则是sda还是sdc都不重要
Jure1873 2011年

它是一个md阵列(“ Linux软件RAID”)。所有设备的添加/删除等都指的是设备名称,但是我不知道这实际上意味着它依赖于它们,或者...我已经将其输出添加mdadm --detail到了问题中。
TJ Crowder

对于md阵列mdadm扫描所有磁盘(如/etc/mdadm.conf中所定义),因此它们在哪里都没有关系,因为它将ID写入磁盘的头中,以便重新组装阵列。
Jure1873 2011年

是的,谢谢,检查有关该问题的更新,我描述了这种行为并仔细检查了它是否有效。
TJ Crowder

1
@TJCrowder代替(或另外)更新您的问题,您可能希望将您的发现添加为答案(并接受它),因为此问题已基本解决。
丹尼斯·诺尔特

Answers:


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超级块。
#或者,根据需要指定要扫描的设备,使用通配符。
DEVICE分区

因此,可以使用/dev/sdc; 重建数组;名称可能会/dev/sda在重新启动时更改为,但是如果md按上述方法进行设置,则不会造成任何麻烦。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.