[lvm-devel] [PATCH 05/23] Replicator: suspend/deactivate replicator

Zdenek Kabelac zkabelac at redhat.com
Thu May 6 10:22:55 UTC 2010


Dne 6.5.2010 12:14, Alasdair G Kergon napsal(a):
> On Thu, May 06, 2010 at 10:34:47AM +0200, Zdenek Kabelac wrote:
>> With the Replicator we have the logic, which has the use case for both
>> variants (and no other target so far needed this) - thus we need to
>> distinguish between them somehow.
>>
>>      master replicator node     (replicator0)
>>            replicator-dev node  (lv1)
>>            replicator-dev node  (lv2)
>>
>> We may want to either 'remove/suspend' the whole replicator - or just one leg.
>> Thus cutting the leg without suspending master node is valid and supported
>> operation here. So to differentiate between cutting leg or replicator the
>> parent suspend flag is used. That way we may atomically freeze the whole
>> replicator and avoid damage in the ordering of rlogged data.
>  
> Elsewhere we issue the suspend at the top part of the tree that we wish to 
> suspend.  So distinguish the two cases by suspend(replicator0) vs suspend(lv1).
> 
> So I'm still not seeing the complete picture/problem here.

IMHO that would mean, that every tool which would need to suspend LV1 would
need to know that it must build first the tree for replicator and make this as
a two stage function.

i.e. mirror over replicator  - I'm not saying it's supported feature at this
moment, but from the logic how the dm_tree operates this 'one-pass' solution
seems to be a more complex solution.

Of course it could be probably overwritten to use multiple trees generated for
each leg separately after the main part of replicator is suspend - but it
looks far more complicated compared with this bool suspend_priority flag.

Zdenek




More information about the lvm-devel mailing list