我的服务器 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