我有一台服务器,里面有 6 个磁盘,其中 5 个在 RAID5 阵列中。今天我下班回家发现房东用电钻把房子打扫了一遍,电源也重置了。现在,我的服务器无法正常启动。
在启动过程中,系统警告我 RAID 阵列已降级,并询问我是否仍要启动它。无论我回答是或否,我都会被加载到 initramfs 中。从那里,我发现阵列中的 2 个磁盘被标记为已移除,但是我可以通过 mdadm 重新添加这些磁盘,它报告它们没有问题,整个阵列处于活动同步状态,并且它处于活动状态但未启动。
我检查过了,操作系统所在的驱动器没有问题。我可以安装并浏览它,但我不知道如何加载它。即便如此,我也不明白为什么我的 5 个驱动器中有 2 个同时从阵列中移除。同一天发生 2 次故障的可能性似乎不大,而且 dmesg 中没有显示任何故障驱动器消息。
有什么建议吗?我那里有很多不可替代的东西,我以为由于有 RAID 阵列,这些东西是安全的。
更新:正如下面提到的,我能够使用以下方式组装 raid 阵列
mdadm --assemble /dev/md0
然后我重新添加已删除的驱动器
mdadm /dev/md0 --re-add /dev/sda1
mdadm /dev/md0 --re-add /dev/sdb1
然后我可以启动阵列,然后将其安装到 initramfs 中的文件夹中
mdadm -R /dev/md0
mount /mnt/raid
但是,一旦我重新启动机器,RAID 阵列就会显示为已降级,并且服务器会启动到 initramfs。我尝试浏览 RAID 阵列,一切似乎都在那里,并且可以完全访问。我检查过,UUID 肯定是我的 OS 磁盘中显示的那个。
更新 2:好的,不太清楚这里发生了什么。我尝试通过输入“exit”来启动操作系统,这使我退出了 initramfs。第一次,内核崩溃,说无法安装驱动器(可能是因为我在 initramfs 中安装了它?)。然后我重新启动服务器,在 initramfs 加载后立即输入 exit,一切恢复正常。我的所有文件都完好无损。我现在正在检查驱动器。有什么建议,下次重新启动之前我应该做些什么来确保这种情况不会再次发生?
答案1
因此,如果您可以安装它,我假设 5 个磁盘中至少有 4 个是好的,请尝试运行:
mdadm --assemble --force /dev/md0
如果 md0 是您的 raid 阵列。我以前从未使用过该命令,但是根据手册页:
Assemble
Assemble the parts of a previously created array into an active
array. Components can be explicitly given or can be searched
for. mdadm checks that the components do form a bona fide
array, and can, on request, fiddle superblock information so as
to assemble a faulty array.