这是我的情况。
我有一台带有 Dell Perc 7i 控制器(LSI 控制器)的 Dell 服务器。
我的一个驱动器给我一个故障预测警告,所以我打电话给他们的支持,他们出来更换了驱动器并且阵列自行重建,非常标准。
两周后,另一个驱动器发出了“故障预测”警告。我想这可能是一批驱动器有问题,或者是巧合,等等。所以我联系了支持人员,并进行了更深入的调查。我意识到,另一个没有发生故障的驱动器上有坏块,这些坏块在重建过程中被复制了过来。所以现在我到处都是坏块,它们正在慢慢毁掉我的阵列。我发现这被称为穿孔阵列。
因此他们的建议是更换所有驱动器、重建阵列并从备份中恢复。但我已经遇到这个问题几个星期了,这意味着我的备份很糟糕……如果我从以前的备份(一个月前)恢复,那么我的数据库中将丢失大约 4 周的数据,这对我们的办公室来说是完全不可接受的。
我的问题是...有没有人能够从类似的事情中恢复过来而不必丢失数据或不采用整个方法(把一切都扔出窗外并重新开始)?
我确实找到了一个涵盖我的情况的链接,不确定它是否能阐明情况:http://www.theprojectbot.com/raid/what-is-a-punctured-raid-array/
任何帮助或指导都将不胜感激!你们觉得呢?
答案1
我认为你的系统仍然运行正常,所以最好的办法是即时备份、转储磁盘/阵列、重建并从备份中恢复。
坏块并不总是意味着您的备份也坏了。如果您没有遇到任何性能问题或文件损坏,那么您的备份应该仍然足够完整,可以完成恢复。
要进行测试,请取出您最近的备份并检查最重要的数据。如果它仍然完好无损,则您的备份可能很好。
此时,存在风险,因为您无法 100% 确定您的备份是否良好,或者现在备份不会导致文件丢失。但是,您的阵列将要最终失败并强制恢复,所以这是您唯一真正的选择。
答案2
现在就执行以下操作:
- 停止轮换备份或删除此系统的旧备份。您想保留当前拥有的所有备份。
- 对服务器进行完整备份。
希望磁盘仍然足够好,您的数据是完整的,并且您在运行新的完整备份时不会遇到任何问题。
然后废弃这些磁盘,并构建一个新的 RAID 阵列。一旦准备就绪,请尝试从您刚刚进行的备份中进行恢复。运气好的话,这就是您需要做的全部事情。
如果失败,请尝试下一个最旧的,再下一个最旧的,等等。一定要测试系统的功能 - 仅仅因为它可以启动,并不意味着它完全可以运行。特别是,测试数据库是否有损坏。
如果您必须从较旧的备份中恢复整个系统,那也没关系。获取最新的备份,然后仅恢复数据库文件和其他重要文件。测试它们以确保它们正常工作。同样,如果失败,请尝试下一个最旧的备份。
使用此过程可最大限度地减少数据丢失。
答案3
Grant 和 Nathan C 提供的答案对于如何处理备份/恢复以及解决数据完整性问题非常有用。
以下是有关在重新创建虚拟磁盘和从备份恢复时如何处理 RAID 集的更清晰的详细信息:
- 确认您已对数据进行了良好的备份
- 删除现有虚拟磁盘;之后所有磁盘都应显示为“就绪”状态
- 重新创建新的虚拟磁盘;推荐设置:禁用自适应预读、写回和磁盘缓存
- 您应该有一个在线虚拟磁盘,并且正在进行后台初始化。
- 继续从备份中恢复;对于 7.2K 主轴,后台初始化通常以大约 600GB/小时的速度运行,因此如果您的备份恢复可以运行得更快,请让初始化提前开始,否则当恢复期间没有新的空间立即可用时,您的备份软件可能会出现写入延迟问题。
笔记:如果你一直在使用 RAID5,那么你应该严重地这次请考虑使用 RAID6。根据当前行业标准最佳实践,对于这种规模的阵列,RAID5 对于业务关键数据并不可靠。大容量 SATA/NL-SAS 磁盘在重建期间遇到 URE 的风险也更高,这会导致您正在处理的穿孔。RAID6 大大降低了这种风险,并且对于当前可用驱动器容量的关键数据通常是可以接受的。