犯了一个可怕的愚蠢错误。请告诉我我应该如何最好地继续。我的配置是 4x4TB 驱动器的 RAID5。最重要的是,LVM 具有各种分区,包括 /、交换、所有内容。配置是基于数据中心安装脚本的,非常自动化。
一段时间以来,我遇到了各种性能问题,一些进程不断在我的驱动器上进行读写,因此阅读有关块大小的文章后,我发现我应该做一个实验,将块大小从 512K 减少到 64K。因此,只需更改这一点:
mdadm --grow -c 64 --backup-file=/root/somefile.txt /dev/md2
是的,该文件应该放在外部,但没有连接任何其他东西,并继续冒险。命令立即退出,所以发现就是这样。执行 ls,OK,然后服务器开始不响应。唯一正常工作的是一些进程,如 nginx,它们的优先级为 -10,没有办法阻止它们以查看发生了什么,因为什么都没有工作:webmin 一直在加载,SSH 要求输入用户和密码,然后没有控制台,现有的 SSH 连接在第二次 ls 时被阻止。我发现我的监控服务器和其他进程现在正在消耗我所有的 I/O 资源,这就是为什么我不能做任何事情,除非我杀死它们,所以,从我的数据中心控制台,向服务器发送 CTRL+ALT+DEL,它不起作用。最后,我发现硬重置会重新启动并停止一些稍后需要手动重启的事情,这样我才能看到哪里出了问题。我想这是一个大错误。
服务器没有重新启动,因为现在找不到 /dev/md2 并且所有内容都在该 RAID5 卷上。
我阅读了很多关于各种 mdadm --analyze --scan 和恢复策略的文章,但我真的不想再碰我的系统,除非我请教一些专家。是我的愚蠢导致了这种情况。
我无法形容从近 11TB 的独特数据中恢复尽可能多的数据有多么重要。不幸的是,我后来了解到,尽管 mdadm 退出速度很快,但后台进程仍在运行,最重要的是 --grow 的第一部分至关重要。几分钟后,电源中断了,可能是在开始增长后 10 分钟。
请提供建议。谢谢!
答案1
我在 Phil Turmel 的帮助下找到了答案[电子邮件保护]就我而言,邮件列表
mdadm -E /dev/sd[a-d]3 (partitions involved in the volume)
给出了一致的信息,并显示重塑在某个地方停止在~50MB 处,奇怪的是。
mdadm -Av --invalid-backup --backup-file=/some/real/empty/file /dev/md2 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3
确实起了作用,因为尽管您告诉 mdadm 备份文件无效,但您必须提供另一个文件才能继续操作。
我真的建议使用如下描述的覆盖文件https://raid.wiki.kernel.org/index.php/Recovering_a_failed_software_RAID#Making_the_harddisks_read-only_using_an_overlay_file因为这样我就可以首先使用无效的备份,挂载分区并提取正确的备份,通过丢弃覆盖来恢复我所有的驱动器更改,然后
mdadm -Av --backup-file=/extracted/valid/backup/file /dev/md2 /dev/sda3 /dev/sdb3 /dev/sdc3 /dev/sdd3
一切顺利,没有问题。
如果您仍然没有该文件,您可以简单地在第一个命令处停止,尽管可能会丢失一些数据。但是,除非您非常不幸地丢失了一些重要的文件系统/卷元数据,否则损失应该很小。
不过,我强烈建议向[电子邮件保护]当有疑问时,事情通常可以恢复,但错误的举动可能会真正摧毁一切。