We are storing files on FreeNAS 9.2 using ZFS. I love the data integrity claims made by ZFS, having randomly lost data in the past on servers using ext3, XFS, and ReiserFS that were not mistreated (power outages, etc). It was rare, but disastrous when a server needed a reboot, fsck kicked in, and found lots of errors.
We are also using this same NAS as a shared storage target for XenServer virtual machines. At first I was thinking about how nice it is to have our VMs backed with ZFS, but now I'm second guessing the integrity is really that failure proof.
If a VM's virtual disk is just a large file containing its own file system (assume the default recommended ext4), then what prevents it from becoming corrupted within that virtual disk? Perhaps a network cable becomes faulty and iSCSI doesn't know it received a few bad bytes to store (resiliently in ZFS)? I'm guessing there are other possible faults that can occur between the VM and the shared storage that a "trusting" file system wouldn't detect. Is the only solution to also use an error correcting file system within the VM, such as ZFS or btrfs?