On Mon, Feb 2, 2009 at 9:22 PM, Gary Mills <mi...@cc.umanitoba.ca> wrote: > On Sun, Feb 01, 2009 at 11:44:14PM -0500, Jim Dunham wrote: >> If there are two (or more) instances of ZFS in the end-to-end data >> path, each instance is responsible for its own redundancy and error >> recovery. There is no in-band communication between one instance of >> ZFS and another instances of ZFS located elsewhere in the same end-to- >> end data path. > > I must have been unclear when I stated my question. The > configuration, with ZFS on both systems, redundancy only on the > file server, and end-to-end error detection and correction, does > not exist.
> What additions to ZFS are required to make this work? None. It's simply not possible. I believe Jim already state that, but let me give some additional comment that might be helpful. (1) zfs can provide end-to-end protection ONLY if you use it end-end. This means : - no other filesystem on top of it (e.g. do not use UFS on zvol or something similar) - no RAID/MIRROR under it (i.e. it must have access to the disk as JBOD) (2) When (1) is not fulfilled, you get limited protection. For example: - when using ufs on top of zvol, or exporting zvol as iscsi, zfs can only provide protection from zvol downwards. It can not manage protection for whatever runs on top of it. - when using zfs on top of HW/SW raid or iscsi, zfs can provide SOME protection, but if certain errors occur on the HW/SW raid or iscsi it MIGHT be unable to recover from it. Here's a scenario : (1) file server (or in this case iscsi server) exports a redundant zvol to app server (2) app server uses the iscsi LUN to create zpool (this would be a single-vdev pool) (3) app server has bad memory/mobo (4) after some writes, app server will show some files have checksum errors In this scenario, app server can NOT correct the error (it doesn't have enough redundancy), and file server can NOT detect the error (because the error is not under its control). Now consider a second scenario (1) file server exports several RAW DISK to app server (2) app server uses the iscsi LUNs to create zpool with redundancy (either mirror, raidz, or raidz2) (3) app server has bad memory/mobo (4) after some writes, app server will show some files have checksum errors In this scenario, app server SHOULD be able to detect and correct the errors properly, but it might be hard to find which one is at fault : app server, file server, or the disks. Third scenario (1) file server exports several RAW DISK to app server (2) app server uses the iscsi LUNs to create zpool with redundancy (either mirror, raidz, or raidz2) (3) file server has a bad disk (4) after some writes, app server will show some files have checksum errors, or it shows that a disk is bad In this scenario, app server SHOULD be able to detect and correct the errors properly, and it should be able to identify which iscsi LUN (and consequently, which disk on file server) is broken. Fourth scenario (1) file server exports several redundant zvols to app server (2) app server uses the iscsi LUNs to create zpool with redundancy (either mirror, raidz, or raidz2) (3) file server has a bad disk, or app server has memory errors In this scenario, app server or file server SHOULD be able to detect and correct the errors properly, so you get end-to-end protection. Sort of. Fourth scenario requires redundancy on both file and app server, while you mentioned that you only want redundancy on file server while running zfs on both file and app server. That's why I said it's not possible. Hope this helps. Regards, Fajar _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss