更多: zhilu jiaocheng

解决方案

该错误是由于 /etc/mdadm.conf 中的错误设置造成的。
请按照下面列出的步骤解决问题:

1.首先扫描所有可能的md设备事件:

# mdadm --examine /dev/sd[a-z] | egrep 'Event|/dev/sd'

或者扫描所有设备,并提供有关 md raid UUID 的详细信息

# mdadm --examine /dev/sd[a-z]

mdadm检查命令将尝试检查所有可用磁盘信息并验证它们是否是任何md raid的一部分。

示例输出:

# mdadm --examine /dev/sd[a-z]
/dev/sdb:
Magic : a92b4efc
Version : 0.90.00
UUID : 08877d71:d7dc9c1b:16f3496b:a22042b7
Creation Time : Wed Aug 31 14:19:18 2016
Raid Level : raid5
Used Dev Size : 586061696 (558.91 GiB 600.13 GB)
Array Size : 2930308480 (2794.56 GiB 3000.64 GB)
Raid Devices : 6
Total Devices : 6
Preferred Minor : 0
Update Time : Wed Sep 21 11:33:48 2016
State : clean
Active Devices : 6
Working Devices : 6
Failed Devices : 0
Spare Devices : 0
Checksum : 153be7ed - correct
Events : 202
Layout : left-symmetric
Chunk Size : 64K
Number Major Minor RaidDevice State
this 0 8 16 0 active sync /dev/sdb
0 0 8 16 0 active sync /dev/sdb
1 1 8 48 1 active sync /dev/sdd
2 2 8 64 2 active sync /dev/sde
3 3 8 80 3 active sync /dev/sdf
4 4 8 96 4 active sync /dev/sdg
5 5 8 112 5 active sync /dev/sdh

因此 mdadm 能够找到具有该 md0 raid 的正确 UUID 的 mdraid 设备,md0 的 UUID 为:08877d71:d7dc9c1b:16f3496b:a22042b7

  1. 将该 UUID 与 /etc/mdadm.conf 中的 UUID 进行比较:
# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=6 metadata=0.90 spares=1 UUID=73560e25:92fb30cb:1c74ff07:ca1df0f7

两个 UUID 实际上并不匹配。

  1. 可以通过将每个设备作为 md0 raid 的一部分来手动挂载 mdraid:
# mdadm --assemble /dev/md0 /dev/sdb /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh
mdadm: /dev/md0 has been tarted with 6 drives.
# ls -l /dev/md0
brw-r----- 1 root disk 9, 0 Sep 23 11:18 /dev/md0
# mdadm --detail /dev/md0
/dev/md0:
Version : 0.90
Creation Time : Wed Aug 31 14:19:18 2016
Raid Level : raid5
Array Size : 2930308480 (2794.56 GiB 3000.64 GB)
Used Dev Size : 586061696 (558.91 GiB 600.13 GB)
Raid Devices : 6
Total Devices : 6
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Wed Sep 21 11:33:48 2016
State : clean
Active Devices : 6
Working Devices : 6
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 08877d71:d7dc9c1b:16f3496b:a22042b7
Events : 0.202
Number Major Minor RaidDevice State
0 8 16 0 active sync /dev/sdb
1 8 48 1 active sync /dev/sdd
2 8 64 2 active sync /dev/sde
3 8 80 3 active sync /dev/sdf
4 8 96 4 active sync /dev/sdg
5 8 112 5 active sync /dev/sdh
  1. 现在 md0 可见,扫描 pv 和 vg:
# pvscan
PV /dev/md0 VG vg_data lvm2 [2.73 TB / 546.56 GB free]
Total: 1 [2.73 TB] / in use: 1 [2.73 TB] / in no VG: 0 [0 ]
# vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg_data" using metadata type lvm2
  1. 现在激活 vg:
# vgchange -a y
  1. 验证 LV 现在是否处于活动状态和可见性
# lvscan
ACTIVE '/dev/vg_data/lvm-admin' [200.00 GB] inherit
ACTIVE '/dev/vg_data/lvm-backup' [2.00 TB] inherit
  1. 现在运行 mount 命令
# mount -a
  1. 要在 mdadm.conf 中实际修复错误的 UUID,请执行以下命令:

创建当前 mdadm.conf 的备份

# cp /etc/mdadm.conf /etc/mdadm.conf.bak1

现在用以下命令替换当前的配置文件:

# mdadm --examine --scan > /etc/mdadm.conf

上面的命令将使用适当的 raid 配置节更新 /etc/mdadm.conf。

问题

系统启动后,md0 丢失,并且在 md0 上使用的所有 LV 都没有挂载

# mount -a
mount: special device /dev/mapper/vg_test-x0 does not exist
mount: special device /dev/mapper/vg_test-y0 does not exist
# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid5 num-devices=6 metadata=0.90 spares=1 UUID=73560e25:92fb30cb:1c74ff07:ca1df0f7
# cat /proc/mdstat
Personalities :
unused devices: [none]

更多数据表明 /dev/md0 缺失:

# mdadm --detail /dev/md0
mdadm: cannot open /dev/md0: No such file or directory

md0 根本不可见,/var/log/messages 在 md0 使用的本地磁盘上没有任何 IO 问题。

mdadm报错 No arrays found in config file
日期:2020-09-17 00:14:06 来源:oir作者:oir