EC2中修改MD成员名称

The MD member name is changed in ec2

我在 EC2 实例中使用 mdadm 创建了一个 RAID1 设备。 mdadm的版本是v3.3.2.

/sbin/mdadm --create /dev/md1 --level=1 --raid-devices=2  /dev/xvdf /dev/xvdk

这是 mdstat 的输出:

cat /proc/mdstat 
Personalities : [raid1] 
md1 : healthy raid1 xvdk[1] xvdf[0]
      41594888 blocks super 1.2 [2/2] [UU]

这是正常的。我们看到这个RAID1设备有两个成员盘xvdk和xvdf。

但是,我发现MD设备的成员在"mdadm -D"输出中变为/dev/sd*:

mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Fri Dec 11 06:29:50 2015
     Raid Level : raid1
     ...

    Number   Major   Minor   RaidDevice State
       0     202       82        0      active sync   /dev/sdf
       1     202      162        1      active sync   /dev/sdk

然后我发现这些链接是自动创建的:

ll /dev/sd*
lrwxrwxrwx. 1 root root 4 Dec 11 06:29 /dev/sdf -> xvdf
lrwxrwxrwx. 1 root root 4 Dec 11 06:29 /dev/sdk -> xvdk

我猜这是由 mdadm 完成的。我以前从未见过这个问题。

我认为MD成员的设备名称不需要更改,因为它会混淆人们。如何避免这个问题?非常感谢!

这个问题我自己解决了。在 EC2 实例中,有一个 UDEV 规则可以自动为 xvd 驱动器创建链接:

$cat /etc/udev/rules.d/99-ami-udev.rules
KERNEL=="xvd*", PROGRAM="/usr/sbin/ami-udev %k", SYMLINK+="%c"

去掉这条规则后,就OK了