我使用以下磁盘和命令创建了 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 系统。