I have a 2TB ext4 file system (Ubuntu running Linux kernel 2.6.31-22-server x86_64). This file system is the second drive on a Drobo box plugged in via USB. We've not had problems on the first drive (Drobo limits drive size to 2TB due to some OS limitations, so if you have more space than that it appears as two separate drives).
I am sharing this files with Samba (smbd 3.4.0) with a mix of Windows and Linux workstations.
Recently we've been experiencing some data corruption in multiple files. In many cases I have an un-corrupt original file stored on one of the workstations. These are binary files of various formats, (e.g. SQLite, but others as well).
I used "split" to split a corrupt and uncorrupt file into 4096 byte chunks (this is the block size of the ext4 file system). I then ran md5sum on pairs of chunks and discovered that the chunks matched in many cases and in every case where they did not match, the corrupt chunk was a solid chunk of zeroes (620f0b67a91f7f74151bc5be745b7110
for what it's worth).
I'm trying to track down a culprit but am a bit at a loss. I don't believe Samba is at fault since I'm using it without issue on the first drive exported by the Drobo.
What can I do to narrow this down and find out what's going on?
The drobo-utils FAQ doesn't list support for ext4. Maybe you should try using ext3?
Drobo support states that Drobo doesn't support ext4.
A wild shot in the dark, but if Drobo doesn't support ext4 and you are seeing problems with chunks of zeroes... do you have extends enabled in ext4? If drobo doesn't know how to handle them, it might somehow interpret the blank spaces as data to be replicated rather than ignored, and through some weird internal logic, cause the mismatch. My recommendation is, however, the same as ptman. If Drobo doesn't support ext4, don't use it. Filesystems are complex enough to cause all sorts of strange issues when they're no supported properly and the overlying application is interacting with it at a low level, like Drobo would have to to do their disk/raid/black magic.
According to Drobo support, EXT3 is officially supported for Linux kernel 2.6.36+ and ZFS is explicitly not supported. It does not look like EXT4 or XFS is listed in there. http://support.drobo.com/app/answers/detail/a_id/29/~/which-file-systems-do-drobo-storage-devices-support%3F
According to another support document, EXT4 is explicitly not supported: http://support.drobo.com/app/answers/detail/a_id/165/related/1
(If someone sees any official support for XFS, I would be interested in hearing about it).