Hi all,
A while back, I posted here about the issues ZFS has with USB hotplugging
of ZFS formatted media when we were trying to plan an external media backup
solution for time-slider:
http://www.opensolaris.org/jive/thread.jspa?messageID=299501
As well as the USB issues in the subject we became aware of some serious issues
with the ZFS send/recv stream format's backwards and forwards compatibility.
This was enough incentive to make us think about other potential solutions. One
of my colleagues in Xdesign (Frank Ludolph) came up with the suggestion of using
a ZFS mirror of the root pool as the mechanism to backup to an external device.
This seemed like a very nice idea. It made use of existing functionality that
already
exists in ZFS and works reliably, allows time-slider to expose yet another
great feature
of ZFS to the desktop/laptop user:
* It provides a full, reliable backup that is maintained in sync with the
main storage device
* No user interaction required. Just plug the disk in and pull it out when
you like. ZFS will
resynchronize it ASAP
* Provides a bootable backup mechanism. The mirror is bootable and the main
disk can be
fully replaced and/or recovered from it.
* Errors on the main disk can be corrected from the external device and vice
versa.
* Simplified UI - user doesn't have to configure backup schedules etc.
* Resynchronisation is always optimal because zfs handles it directly rather
than some
external program that can't optimise as effectively
* It would permit network backwork configurations if the mirror device were
an iSCSI target.
And the recent putback of:
PSARC/2008/427 iSCSI Boot
PSARC/2008/640 iSCSI With DHCP
should enable booting over the network
So I set off about testing this out and the initial results have been very
promising.
To configure the mirror I added a new device as described here:
http://darkstar-solaris.blogspot.com/2008/09/zfs-root-mirror.html
After a couple of weeks testing and trying to break the mirroring it has
continued to
work reliably despite leaving my USB mirror device detached for days on end,
adding
gigabytes of files and deleting hundreds of snapshots while detached. ZFS took
it
all in it's stride and resynced the mirror device when I reattached it. It also
withstood
my attempts to break it by disconnecting the USB mirror in the middle of a
resilver.
There are a few minor issues however which I'd love to get some feedback on in
addition
to the overall direction of this proposal:
1. When the external device is disconnected, the zpool status output reports
that the
pool is in a degraded state and displays a status message that indicates
that there
was an unrecoverable error. While this is all technically correct, and is
appropriate
in the context of a setup where it is assumed that the mirrored device is
always
connected, it might lead a user to be unnecessarily alarmed when his
"backup" mirror
disk is not connected. We're trying to use a mirror configuration here in a
manner that
is a bit different than the conventional manner, but not in any way that
it's not designed
to cope with.
2. When reattaching the external mirror device, hald and the removable media
manager try
to mount the mirror device and pop up an error message when it fails to
mount the pool.
This is an annoyance that needs a bug logged against hald I believe. ZFS
does the right thing
and starts resivering to bring the 2 mirror devices in sync.
3. The zpool status outut is not very good about estimating resilver completion
times. Resilvers
that were estimated to take 23 hours by zpool status have completed in 8
hours. At least it
wasn't the other way around :-)
So I'd like to ask if this is an appropriate use of ZFS mirror functionality?
It has many benefits
that we really should take advantage of. It would seem a real shame not to.
Secondly, i'd like
to address issue 1 above. There doesn't appear to be any fundamental,
underlying problem here.
It's just that the messages reported by zpool status might cause unnecessary
alarm to the user.
In the context that we plan to use a mirror there is nothing actually wrong
because we expect the
mirror device to get detached and reattached frequently which is not the normal
situation for a
mirror pool.
How about defining a new subtype of mirror device, such as a "backup-mirror" or
"removable-mirror"?
All the mirror functionality remains the same, but the status messages are a
bit less panicy when
the mirror device is disconnected since it's expected to happen frequently.
Time-slider is getting a lot of coverage and positive feedback from reviewers
and bloggers because it
allows ordinary users to take advantage of ZFS features in a very simple and
beneficial way. I
think this proposal presents another opportunity to bring the benefits of ZFS
to the desktop.
Remember that we're aiming at single user desktop and laptop type systems here,
nothing
huge and fancy :-)
Thanks,
Niall.
--
This message posted from opensolaris.org
_______________________________________________
zfs-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss