在raid 1上复制不同文件时文件损坏

我在Fedora 12盒子上有2个1TB磁盘的RAID 1configuration。 存储在那里的大部分video文件都是数字标记的。 我遇到的问题是我有一个video文件被损坏。 我从备份中复制了一个replace,并replace了坏的文件,现在它工作正常。 但是,这样做后,下一个编号的文件从350MB到200KB,而所有约.5秒的video消失。 如果我然后replace该文件,它发生在下一行。

例如:

Replace corrupt file 1.avi and file 2.avi shrinks to 200KB. Replace now corrupted 2.avi and it works but 3.avi gets screwed up. 

我已经在驱动器上运行SMARTtesting,他们报告很好。 有没有人有任何testing,我可以运行,试图找出发生了什么事?

编辑:这是一个双ext4文件系统的磁盘软件RAID 1

我不知道你在找什么样的testing,会告诉你任何你不知道的东西。

文件系统的损坏。

最简单的解决scheme是将数据复制到不同的系统(使用工作文件系统),validation它,然后吹掉现有系统上的RAID。 在单独重新格式化驱动器并重buildRAID之后,应该再次使用现有系统。

在使用Server 2003的软件RAID的Server 2003系统上发生同样的事情。 写入arrays期间发生电源故障或系统崩溃,磁盘不同步,因此文件系统显示了与您描述的相同的症状。 (同样,我跑的所有testing都对我说谎,并且说磁盘和arrays是完美的,即使它显然不是)。在arrays上的某个点之后复制的任何内容都将被损坏。 这些数据对于文件的第一个〜500KB是有效的,之后是垃圾。 图像会显示最高的x%罚款,然后在底部是白色的,文件将包含几页或有效的数据行,然后是胡言乱语等。如果我在腐败点“之前”添加文件,腐败会似乎移动到“下一个”文件,就像腐败是从arrays上的某个点偏移〜500 KB。

如果可以确定arrays中的哪个磁盘包含文件系统损坏,则可以通过拔出损坏数据的磁盘并强制arrays从正常磁盘重build来纠正问题。 (假设腐败只出现在一个磁盘上,就像我一样。)这对我很有效,而且我是如何在损坏的arrays上恢复数据的。 只有2个磁盘镜像RAID,你甚至可以强制重build每个磁盘,并看看哪个arrays工作,哪个arrays结束腐败。

后来我还是不信任它,所以我复制了数据,将数组复制,重新格式化了磁盘,重新安装了操作系统,并且警告任何人,如果我在networking上使用软件RAID发现它们,再次。 我build议你也这样做。 那么,至less关于数据。 不pipe你是否想放弃Linux软件RAID并威胁你的用户更多的是个人喜好。

听起来像你有坏文件系统的麻烦。 卸载文件系统并运行fsck -f就可以看到。 -f标志告诉fsck即使文件系统看起来干净也能运行。

你可以尝试Theodore Ts'o的debugfs

http://linux.die.net/man/8/debugfs

你可以用它来交互式地debugging你的文件系统。 查看哪些inode对应哪些文件等等。