我有一个 2TB 的 ext4 文件系统(Ubuntu 运行 Linux 内核 2.6.31-22-server x86_64)。此文件系统是通过 USB 插入的 Drobo 盒上的第二个驱动器。我们在第一个驱动器上没有遇到问题(由于某些操作系统限制,Drobo 将驱动器大小限制为 2TB,因此如果您的空间大于 2TB,它会显示为两个单独的驱动器)。
我正在通过 Samba(smbd 3.4.0)与 Windows 和 Linux 工作站混合共享这些文件。
最近,我们遇到了多个文件中的数据损坏问题。在许多情况下,我的一个工作站上存储着未损坏的原始文件。这些是各种格式的二进制文件(例如 SQLite,但也包括其他格式)。
我使用“split”将损坏和未损坏的文件拆分为 4096 字节块(这是 ext4 文件系统的块大小)。然后,我对成对的块运行 md5sum,发现块在许多情况下匹配,而在它们不匹配的每个情况下,损坏的块都是纯零块(620f0b67a91f7f74151bc5be745b7110
就其价值而言)。
我正在尝试找出罪魁祸首,但有点不知所措。我不认为 Samba 有问题,因为我在 Drobo 导出的第一个驱动器上使用它没有问题。
我该怎么做才能缩小范围并找出发生了什么?
答案1
这drobo 实用程序常见问题解答未列出对 ext4 的支持。也许您应该尝试使用 ext3?
Drobo 支持指出 Drobo 不支持 ext4。
答案2
瞎猜,但如果 Drobo 不支持 ext4,而您发现存在大量零的问题...您是否在 ext4 中启用了扩展?如果 drobo 不知道如何处理它们,它可能会以某种方式将空格解释为要复制而不是忽略的数据,并通过一些奇怪的内部逻辑导致不匹配。但是,我的建议与 ptman 相同。如果 Drobo 不支持 ext4,请不要使用它。文件系统非常复杂,当它们得不到正确支持并且上层应用程序在低级别与其交互时,会导致各种奇怪的问题,就像 Drobo 必须执行其磁盘/raid/黑魔法一样。
答案3
根据 Drobo 支持,EXT3 正式支持 Linux 内核 2.6.36+,ZFS 明确不受支持。EXT4 或 XFS 似乎未列在其中。http://support.drobo.com/app/answers/detail/a_id/29/~/which-file-systems-do-drobo-storage-devices-support%3F
根据另一份支持文档,EXT4明确不受支持: http://support.drobo.com/app/answers/detail/a_id/165/related/1
(如果有人看到对 XFS 的任何官方支持,我会很感兴趣听到它)。