Sorry for double-post. This thread was posted separately to
opensolaris-help and zfs-discuss. So I''m replying to both lists.
> I''m wondering what the possibilities of two-way replication are
for a
> ZFS storage pool.
Based on all the description you gave, I wouldn''t call this two-way
replication. Because two-way replication implies changes are happening at
both sides, that need to be propagated and merged both ways. What
you''re
talking about is to have a one-way replication, and then later, reverse the
direction, and then later reverse the direction. At all points, your
changes are only happening at one side. This is infinitely easier than what
your subject implies.
Unless somebody knows more than I do ... As for VM''s, I think
it''s
important that you know you shouldn''t expect live sync. If you send a
snapshot of a local pool to the remote side, then 1 second later the remote
pool is already 1 second behind, and in a possibly different state than the
local pool. If you fail the local pool, you''ll have to connect to the
remote pool, and tell your VM to revert to whatever the latest snapshot was
on the remote pool.
Thinking about how to migrate back to the local storage ...
Suppose you have a local snapshot called "tank at 12345" and you send
it to the
remote side. That means these two filesystems are now in sync at that
snapshot. If you can, make the local filesystem read-only as long as
you''re
making modifications on the remote side. Then you can send an incremental
snap from remote "tank at 12345" to "tank at 23456" back to
the local side. Make
the remote side read-only while you''re allowing modifications to the
local
side, and vice-versa.
The complication that could arise, is when you want to send an incremental
snap to a filesystem which has been modified after the "baseline" snap
was
taken. This would happen if you synced the two sides, and made
modifications to the local side, and had an unintentionally failed local
pool. You would then connect your VM to the remote pool, and made
modifications to the remote pool. When your local pool comes back online
... These two pools were synced some time ago, but they''ve both been
modified since. You would have to find a way to revert the local pool back
to the snap where they were in sync (I don''t know how to do that, I
don''t
know for sure it''s even possible). You would have to acknowledge
risking
the loss of local changes that happened after the sync. And you would send
the remote incremental snap @23456 to the local side.