[OpenIndiana-discuss] ZFS High-Availability and Sync Replication

Sašo Kiselkov skiselkov.ml at gmail.com
Thu Nov 15 14:06:52 UTC 2012


On 11/15/2012 12:48 PM, Dan Swartzendruber wrote:
> How sophisticated does it need to be?  I do 5-min dataset-based replication
> to a remote pool using zrep, but that's all I use it for - a backup... 

Well, it's more of a question of mapping out the landscape of available
tools. Async replication with no automatic failover is easy enough to do
using periodic point-in-time snapshots, as you write. I was hoping
there'd be something more akin to DRBD or such like, i.e. some
cluster-aware logic behind it, something that can automatically switch
over sharing services (or something I can use to implement such an
automatic switchover, such as corosync/pacemaker), etc. In general, I've
identified these possible HA/replication scenarios:

 1) Shared-nothing nodes, i.e. separate heads & JBODs
    a) periodic async replication, run zrep/zynk/whatever every few
       minutes/seconds to send over the diffs to snapshots
    b) AVS for continuous sync/async replication

 2) Shared-storage nodes, i.e. separate heads with shared JBODs

In case 1 I need to handle two things:
  A) shipping the deltas over to the other node
  B) ensuring fail-over in case one node goes down (i.e. promote the
     slave to a master, enable file sharing services, take over IPs and
     possibly reverse the replication flow)

In case 2 I only need to handle the fail-over, as the data is the same,
but I need to handle it with very high reliability - a split brain in
this case would be catastrophic (perhaps by doing a STONITH on the other
node's PDUs).

I could code this myself, but then I suspect I'd be reinventing the
wheel. This problem certainly isn't unique to myself and there's a good
chance somebody already took care of it. Sadly, though, my Google
searches haven't been very fruitful so far.

Cheers,
--
Saso



More information about the OpenIndiana-discuss mailing list