如何正确配置 mdadm.conf

如何正确配置 mdadm.conf

我有2个mdadm数组。很久以前,当只有一次突袭时,我写道mdadm.conf,它看起来像这样:

# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md/pv00 level=raid1 num-devices=2 UUID=55dc183e:d7199ced:929f5f4a:123c24a3

由于没有第二次突袭,我认为将其添加到其中将是一个好主意。所以我运行命令mdadm --detail --scan >> /etc/mdadm.conf

但现在,第一个raid有2个条目

# mdadm.conf written out by anaconda
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md/pv00 level=raid1 num-devices=2 UUID=55dc183e:d7199ced:929f5f4a:123c24a3
ARRAY /dev/md/pv00 metadata=1.2 name=server.local:pv00 UUID=55dc183e:d7199ced:929f5f4a:123c24a3
ARRAY /dev/md/25 metadata=1.2 spares=2 name=server.local:25 UUID=a883dfb5:1a8f32ce:fd20e5d8:156a01ff
  • 第一:我应该删除旧条目并只保留新条目吗?哪一个更好?
  • 第二:为什么新旧条目有区别?旧的有level=raid1 num-devices=2,新的却只有metadata=1.2
    编辑:部分找到答案
  • 第三:找到信息,没有它,突袭就不会开始。但是,安装此阵列的 fstab 中的条目似乎会自动启动它。那么到底需要还是不需要呢?

还发现有些人写来mdadm.conf更新mdadm --verbose --detail --scan > /etc/mdadm.conf 来源。合适吗?它还输出驱动器位置,例如:

ARRAY /dev/md/pv00 level=raid1 num-devices=2 metadata=1.2 name=server.local:pv00 UUID=55dc183e:d7199ced:929f5f4a:123c24a3
   devices=/dev/sdi2,/dev/sdj1
ARRAY /dev/md/25 level=raid6 num-devices=6 metadata=1.2 spares=2 name=server.local:25 UUID=a883dfb5:1a8f32ce:fd20e5d8:156a01ff
   devices=/dev/sda1,/dev/sdb1,/dev/sdc1,/dev/sdd1,/dev/sdf1,/dev/sdg1

它的语法正确吗?据我所知。驱动器/dev/sd*可能会改变。那么添加devices到其中安全吗?我最近不得不更换系统上的 SATA 电缆,并且字母发生了变化,因为我没有注意将它们连接到同一端口。

答案1

手册mdadm页是这样写的(强调我的):

echo 'DEVICE /dev/hd*[0-9] /dev/sd*[0-9]' > mdadm.conf`
mdadm --detail --scan >> mdadm.conf

这将创建一个原型配置文件描述当前活动的阵列,这些阵列已知由 IDE 或 SCSI 驱动器的分区组成。 使用前应检查该文件,因为它可能包含不需要的详细信息。

现在,针对你的问题,

据我所知。驱动器/dev/sd*可能会改变。那么向其中添加设备安全吗?

不仅仅是设备名称可能会改变。其他一切也可能会改变!

mdadm支持增长数组。所以你可以添加更多改变的设备num-devices=2,或者改变raid level=raid1。驱动器可能会发生故障,从而导致备用驱动器自动接管,这种情况会发生变化,spares=2因为阵列中仍可用的备用驱​​动器将减少。即使name=没有受到保护mdadm处理主机和数组名称的方式存在各种问题。元数据版本过去已更改,如果您使用过metadata=0.90,则mdadm可以将其更新为metadata=1.0.如果以后有新的元数据,也许可以再次更新。

数组在其整个生命周期中不变的一件事是UUID=a883dfb5:1a8f32ce:fd20e5d8:156a01ff,因此我在您链接的问题中的建议:

对于每个数组,仅使用 UUID,不使用其他内容。

所有这些变量的唯一目的是识别正确的数组,而 UUID 本身就可以完美地完成这一任务,不需要其他任何东西。所以只要删除其他的东西就可以了。

当然,如果你确实愿意,你也可以更改UUID。但与阵列正常操作期间发生的其他更改相比,这是一个更加深思熟虑的操作。

mdadm --detail --scan只是一个起点,但不应按字面意思使用mdadm.conf。就像联机帮助页所述,它太详细了,太多细节可能会导致程序集失败。

答案2

您可能需要在编辑 mdadm.conf 文件后更新启动设置,然后重新启动以验证:

$ sudo vi /etc/mdadm/mdadm.conf

$ sudo update-initramfs -u
update-initramfs: Generating /boot/initrd.img-5.19.0-35-generic
I: The initramfs will attempt to resume from /dev/sdg5
I: (UUID=9fdd3772-4599-40b0-89e3-ec79fd4787be)
I: Set the RESUME variable to override this.

$ sudo reboot

请阅读:https://raid.wiki.kernel.org/index.php/Tweaking,_tuning_and_troubleshooting

相关内容