Frank,
On Fri, 2 Feb 2007, Torrey McMahon wrote:
Jason J. W. Williams wrote:
Hi Jim,

Thank you very much for the heads up. Unfortunately, we need the
write-cache enabled for the application I was thinking of combining
this with. Sounds like SNDR and ZFS need some more soak time together
before you can use both to their full potential together?
Well...there is the fact that SNDR works with other FS other then 
ZFS. (Yes, I know this is the ZFS list.) Working around architectural 
issues for ZFS and ZFS alone might cause issues for others.
SNDR has some issues with logging UFS as well. If you start a SNDR 
live copy on an active logging UFS (not _writelocked_), the UFS log 
state may not be copied consistently.
Treading "very" carefully, UFS logging may have issues with being 
replicated, not the other way around. SNDR replication (after 
synchronizing) maintains a write-order consistent volume, thus if there 
is an issue with UFS logging being able to access an SNDR secondary, 
then UFS logging will also have issues with accessing a volume after 
Solaris crashes. The end result of Solaris crashing, or SNDR replication 
stopping, is a write-ordered, crash-consistent volume.
Given that both UFS logging and SNDR are (near) perfect (or there would 
be a flood of escalations), this issue in all cases I've seen to date, 
is that the SNDR primary volume being replicated is mounted with UFS 
logging enable, but the SNDR secondary is not mounted with UFS logging 
enabled. Once this condition happens, the problem can be resolved by 
fixing /etc/vfstab to correct the inconsistent mount options, and then 
performing an SNDR update sync.
If you want a live remote replication facility, it _NEEDS_ to talk to 
the filesystem somehow. There must be a callback mechanism that the 
filesystem could use to tell the replicator "and from exactly now on 
you start replicating". The only entity which can truly give this 
signal is the filesystem itself.
There is an RFE against SNDR for something called "in-line PIT". I hope 
that this work will get done soon.
And no, that _not_ when the filesystem does a "flush write cache" 
ioctl. Or when the user has just issued a "sync" command or similar.
For ZFS, it'd be when a ZIL transaction is closed (as I understand 
it), for UFS it'd be when the UFS log is fully rolled. There's no 
notification to external entities when these two events happen.
Because ZFS is always on-disk consistent, this is not an issue. So far 
in ALL my testing with replicating ZFS with SNDR, I have not seen ZFS fail!
Of course be careful to not confuse my stated position with another 
closely related scenario. That being accessing ZFS on the remote node 
via a forced import "zpool import -f <name>", with  active SNDR 
replication, as ZFS is sure to panic the system. ZFS, unlike other 
filesystems has 0% tolerance to corrupted metadata.
Jim


SNDR tries its best to achieve this detection, but without actually _stopping_ all I/O (on UFS: writelocking), there's a window of vulnerability still open. And SNDR/II don't stop filesystem I/O - by basic principle. That's how they're sold/advertised/intended to be used.
I'm all willing to see SNDR/II go open - we could finally work these 
issues !
FrankH.

I think the best of both worlds approach would be to let SNDR plug-in 
to ZFS along the same lines the crypto stuff will be able to plug in, 
different compression types, etc. There once was a slide that showed 
how that worked....or I'm hallucinating again.
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to