我在 Linux 中的故障排除能力并不令人印象深刻,正如您所知。另一方面,我可以很好地遵循指示。我有一个带有 Linux raid 的 Linux 服务器。它运行良好,大约半年没有任何问题,但后来我遇到了电源故障,从那以后一直遇到同样的问题。重建 raid 后,我所有的文件都还在,所以这是一件好事。当我重新启动服务器时,raid 设备 md0 消失了。
pi@pinas:~ $ cat /proc/mdstat
Personalities :
unused devices: <none>
pi@pinas:~ $ ls /dev/md*
pi@pinas:~ $
我在这里发现了一个似乎对其他人有所帮助的问题,但我尝试了它并没有帮助。我还查看了其他几个网站都说类似的话。我使用 webmin 创建 raid 并且 mdadm.conf “看起来” ok。我不知道我是否在互联网上搜索正确的东西,或者即使我正在查看正确的日志文件。有没有人有任何想法?
提前致谢。
***编辑 1
root@pinas:/home/pi# service mdadm start
Failed to start mdadm.service: Unit mdadm.service is masked.
我想知道 mdadm 服务是否正在运行。该进程当前在系统上未处于活动状态,我不知道如何判断它是否配置为在启动时启动,如何启动它或将其配置为在启动时启动。
***编辑 2
systemctl list-unit-files
[email protected] static
[email protected] static
mdadm-waitidle.service masked
mdadm.service masked
[email protected] static
mdmonitor.service static
我找到了这个。我不知道这是否很糟糕,但它看起来很可疑。这是应该的吗?他们都没有说启用,我认为他们应该。有任何想法吗?
***编辑 3
systemctl list-unit-files
[email protected] static
[email protected] static
mdadm-waitidle.service masked
mdadm.service masked
[email protected] static
mdmonitor.service static
dpkg-reconfigure mdadm
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Processing triggers for initramfs-tools (0.120+deb8u3) ...
我运行了@telcoM 建议的命令,这是输出。我也尝试过重新安装这些命令,但输出仍然相同。
我已经尝试在网上查看其他几个类似名称的踏板,但到目前为止我还没有发现任何似乎有用的东西。我认为问题与启动时未启动的服务有关,但我对 Linux 服务的经验不足,不知道如何修复它。@roaima 建议这是 initramfs 的问题,但我不知道如何检查或更正。有没有人有任何想法?
***编辑 4
CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/0 metadata=1.2 UUID=d3434dfc:2fb4792e:0b64f806:67e35ee3 name=raspberrypi:0
ARRAY /dev/md/0 metadata=1.2 UUID=40fb937f:870c7c13:46774666:87445bc5 name=pinas:0
这是我的 mdadm.conf 文件的输出。这很有趣,因为第一个列出的数组没有正确的名称......
在遇到同样的问题后,这个食谱对我有用。找遍了整个网络试图找到答案,最后遇到了这个,仍然没有帮助。
我看到的问题是多方面的。
mdadm 将设备文件重新分配
/dev/md0
到/dev/md127
下次重新启动时。所以你不能只使用 fstab 中的设备文件。我最终从创建的文件系统中使用了 UUID。几乎所有网络上的 RAID 驱动器设置教程都显示了使用驱动器设备文件创建 RAID 设备,如下所示:
相反,我使用了分区设备文件,如下所示:
第二种形式需要使用
gdisk
或在每个磁盘上正确创建分区fdisk
。我使用gdisk
并将其分配为 typefd00
,这是一个 raid 分区。有很多关于需要更新的讨论
/etc/mdadm/mdadm.conf
。这是错误的。我故意删除了那个文件。这不是必需的。(见下文)这就是它的全部。完整的食谱如下...
fd00
使用Linux RAID类型的一个分区对每个驱动器进行分区:现在您应该在 /dev 中看到磁盘设备和分区设备
现在使用分区设备文件,而不是磁盘设备,使用 mdadm 创建您选择的 RAID
现在检查
/dev/disk
是否有任何 UUID 与您的新/dev/md0
RAID 关联。应该没有。创建新的文件系统,然后你现在应该有一个 UUID
/dev/md0
瞧,就是这样。
修改 /etc/fstab 并为新 RAID 添加挂载 确保使用 UUID,而不是设备文件。
在这里,看
/etc/mdadm/mdadm.conf
不 不需要。重启
RAID 已挂载,但 mdadm 已将设备文件从 重命名
md0
为md127
好在我们使用了 UUID 而不是实际的设备文件。
看 md0 从 /dev 消失了
而已。现在我正在享受运行速度超过 600 MB/秒的 10 TB RAID0
您
/proc/mdstat
表示没有加载任何 RAID 特性(即 RAID1、RAID5 等),因此甚至没有尝试激活 RAID 集。此消息表明
mdadm.service
已以最强大的方式禁用:不会显式尝试启动该服务,即使有其他东西依赖于该服务,也不会启动它。与 roaima 链接的问题一样,尝试以 root 身份运行这些命令:
第一个将重新配置
mdadm
软件包,并应检测所有 RAID 集,并让您选择在启动时自动激活哪些 RAID 集:通常“全部”是一个很好的答案。mdadm.service
如果我理解正确的话,这也应该注意被掩盖。完成后,第二个命令将更新您的 initramfs,因此更新的配置文件也将在您的 initramfs 中更新,并且将在启动的最早阶段执行的脚本将获得存在 RAID 集的信息应该被激活。
至少部分问题是
/dev/md/0
您的mdadm conf
. 你需要先解决这个问题。然后让您的阵列运行,最后您可以按照新 RAID 阵列不会自动组装,导致启动问题的说明进行操作-
该服务没有启动,因为它被屏蔽了。这是我如何找到如何揭开它的方法。下一个问题是 mdadm-raid 服务没有启动 raid。这就是我让raid在启动时开始的方式。往下看“Mon Jul 31, 2017 7:49 pm”找到相关帖子。这可能不是最好的解决方案,但在 10 次重新启动后,raid 仍然每次都开始。我非常感谢那些试图回答这个问题的人所做的努力。现在我只需要整理提供的其他服务。但这是另一天的问题。