CentOS 7创建的mdadm阵列在重启后消失

CentOS 7创建的mdadm阵列在重启后消失

我使用以下磁盘和命令创建了 raid1:

$ ls -l /dev/disk/by-id/ata-ST3000*
lrwxrwxrwx 1 root root 9 Sep 19 07:27 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1 -> ../../sdc
lrwxrwxrwx 1 root root 9 Sep 19 07:27 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 -> ../../sda

$ mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1

我将相关信息添加到 mdadm.conf 中。我对 ARRAY 行使用了“mdadm --detail --scan >> /etc/mdadm.conf”:

$ cat /etc/mdadm.conf
DEVICE /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3
DEVICE /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1
ARRAY /dev/md0 metadata=1.2 name=jaime.WORKGROUP:0 UUID=93f2cb73:2d124630:562f1dd9:bf189029
MAILADDR your@address

我创建并安装了文件系统:

$ mkfs -t xfs /dev/md0
$ mount -t xfs /dev/md0 /data

重新启动后,/dev/md0 不再存在,我无法组装阵列:

$ mdadm --assemble /dev/md0 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F04NR1
mdadm: Cannot assemble mbr metadata on /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3
mdadm: /dev/disk/by-id/ata-ST3000DM001-9YN166_Z1F190E3 has no superblock - assembly aborted



$ blkid
/dev/sda: PTTYPE="gpt"
/dev/sdb1: UUID="5c7d3f2b-c975-46a3-a116-e9fc156c1de5" TYPE="xfs"
/dev/sdb2: UUID="JhoqjI-N6R6-O9zt-Xumq-TnFX-OUCd-Lg9YHy" TYPE="LVM2_member"
/dev/sdc: PTTYPE="gpt"
/dev/mapper/centos-swap: UUID="3b882d4d-b900-4c59-9912-60a413699db4" TYPE="swap"
/dev/mapper/centos-root: UUID="08df953d-d4f4-4e83-bf4b-41f14a98a12e" TYPE="xfs"
/dev/mapper/centos-home: UUID="2358f723-5e7f-49ed-b207-f32fe34b1bbc" TYPE="xfs"

答案1

对于你们所有人,我找到了一个适合我的解决方法..也许这可以帮助你们..这里是:

Raid 挂载消失是因为系统在引导或启动期间没有读取 mdadm.conf 文件。因此,我所做的是编辑文件/etc/rc.d/rc.local以包含以下命令:

sleep 10
mdadm --assemble --scan
sleep 10
mount -a

现在,每次我重新启动系统时,它都会读取此文件,运行其中提到的命令并挂载 raid 挂载。

答案2

理论上,可以从“裸驱动器”(未分区)进行突袭,但我注意到您的磁盘显示为 gpt 分区,而不是 md 驱动器。一般来说,通过对磁盘进行分区,然后在 md 阵列中使用分区,我发现了更好的成功/稳定性。

我会尝试创建一个分区表,将分区类型设置为 linux raid 自动检测(如果我没记错的话,fd 在 fdisk 中)。然后重新创建您的阵列。

另外,我发现如果我不使用 mdadm.conf,我会取得更好的成功。现代版本的 md 工具将从所涉及分区的超级块中获取所需的所有信息。

答案3

我遇到这个问题,它在故障排除过程中对我有很大帮助。但所有答案都不能解决我的问题。

所以也许这可以帮助遇到同样问题的人。就我而言,我在 RedHat Linux 7.2 上有两个 NVME 驱动器。

SELinux 与 nvme 存在问题,并阻止 mdadm 与它们一起工作。

症状:

按照本线程问题中的描述创建软件 RAID。重启后,RAID 消失:

  • /proc/mdstat为空且不/dev/md0存在
  • mdadm --assemble --scan启动 RAID。

解决方案:

我在我的例子中禁用了selinux。我知道这在每个系统上都是不可能的。但也许你从我的帖子中找到了正确的方向。

答案4

这似乎是使用 fd 类型(Linux raid 自动检测)格式化磁盘分区的更好方法,但请注意 fdisk 中的对齐消息!我收到了这些警告,并使用用于创建分区的分离工具解决了它们,然后使用 fdisk 将它们设置为键入“fd”。然后按照您的操作进行操作,RAID 设备将在启动时自动形成。通过 /etc/fstab 中的条目,它甚至会被安装......

需要注意的是:使用 /etc/mdadm.conf 破坏了我的 RHEL7 3.10.0-514.6.1.el7.x86_6 系统。

相关内容