好的,以下是我的故事。我有 3 个磁盘 raid 5,其中一个磁盘出现了一些表面错误,而我不知道。我尝试修复 mysql 中损坏的数据库表,但机器在写入时冻结。我使用硬重置重新启动。似乎其他 2 个磁盘正在写入数据。
他们已经更换了坏的硬盘,所以物理硬盘没有问题。Adaptec 3405 控制器中的逻辑阵列显示坏条带。CHKDSK /f 删除了一些坏的临时文件。但我有几个文件无法复制到这个驱动器上(I/O 错误),我猜它们位于磁盘的“坏条带”部分。
服务器是生产服务器。目前我无法更改它,磁盘已更改,并且不起作用的文件对服务器没有意义。
现在我的问题是:NTFS 的行为就像磁盘有表面错误一样,因为 Adaptec 控制器将它们标记为不可读。我知道我可以重建阵列,但我不能,因为它是生产服务器(我将数据移动到另一台服务器,这需要时间)。问题并不严重,因为坏扇区磁盘已被替换。我不需要坏条带中的其他不可读文件。
但我问过 Adaptec,新文件是否不会出现 I/O 错误,因为适配器将它们标记为坏文件,他们告诉我:不会。现在情况很危险,因为数据库随时可能被写入坏条带(从操作系统角度来看是坏块)。
我只需要一个工具进行表面扫描,将所有坏块(映像备份程序告诉我有 32 个)放入一个“坏”文件中,新文件将无法写入那里。磁盘不会进一步降级,因为硬盘错误不再存在,故障磁盘已被交换。
我知道当磁盘出现故障时,重新映射坏块是不好的,但是我的情况现在已经解决了,我只需要将坏块映射到一些虚拟的 bad.txt 文件(例如,该文件驻留在磁盘上),这样就不会尝试将任何内容写入那里。
我希望我说得足够清楚。我找不到这样的软件,我找到了一个表面扫描仪,但它不能生成坏文件 :-( 好吧,我不会删除我的坏的 3 个文件,但控制器中的坏条带可能还有其他扇区,我想创建一个指向这些扇区的新文件,这样写入时就不会再发生损坏。我根本不需要读取那些文件……
答案1
在这种情况下,当您已经与供应商讨论过您的硬件问题,而他们的回答并不令人满意时,您需要重建。获取服务器的完整映像,从头重建 RAID(并在其中放入热备用,没有备用的 RAID5 只会丢失数据),然后将映像恢复到新创建的(无错误)RAID 卷上。