我们正在使用ZFS在FreeNAS 9.2上存储文件。 我非常喜欢ZFS提出的数据完整性声明,在过去的服务器上使用ext3,XFS和ReiserFS在没有任何处理(停电等)的情况下随机丢失了数据。 当服务器需要重新启动时,这种情况非常罕见,但却是灾难性的,fsck被踢了进来,发现了很多错误。
我们也使用这台相同的NAS作为XenServer虚拟机的共享存储目标。 起初,我正在考虑让我们的虚拟机支持ZFS是多么的好,但是现在我第二次猜测完整性就是真正的失败certificate。
如果虚拟机的虚拟磁盘只是一个包含自己的文件系统的大文件(假设默认值为ext4),那么是什么防止虚拟磁盘在虚拟磁盘中被破坏呢? 也许networking电缆出现故障,iSCSI不知道它收到了一些坏字节存储(弹性地在ZFS中)? 我猜测在虚拟机和“信任”文件系统无法检测到的共享存储之间可能会出现其他可能的错误。 唯一的解决scheme是在虚拟机中使用错误更正文件系统,例如ZFS或btrfs?
对不起,没有什么可以阻止你的客人发生。
保护你的环境!
而且,即使在VM中, ZFS文件系统也可能有问题。
Every 3.0s: zpool status -v Fri Dec 27 12:49:47 2013 pool: vol1 state: ONLINE status: One or more devices has experienced an error resulting in data corruption. Applications may be affected. action: Restore the file in question if possible. Otherwise restore the entire pool from backup. see: http://zfsonlinux.org/msg/ZFS-8000-8A scan: scrub in progress since Fri Dec 27 12:35:06 2013 42.1G scanned out of 46.3G at 48.9M/s, 0h1m to go 0 repaired, 90.80% done config: NAME STATE READ WRITE CKSUM vol1 ONLINE 0 0 167 sdb ONLINE 0 0 448 errors: Permanent errors have been detected in the following files: <metadata>:<0x67> <metadata>:<0x6f> <metadata>:<0x8e> vol1/ppro:/isam/IM00013.ISI vol1/ppro:/isam/IM00014.ISI vol1/ppro:/isam/IM00015.ISI vol1/ppro:/isam/IM00016.ISI