[lvm-devel] [RFC 0/6] Waiting for the missing device in mirror

Zdenek Kabelac zkabelac at redhat.com
Mon Jun 8 08:38:29 UTC 2015


Dne 8.6.2015 v 09:48 Lidong Zhong napsal(a):
> Hi List,
>
> The implementation here is trying to add another policy for the
> missing leg/log device in mirror. We want to wait the device for some
> time in case of a temporary device failure, especially a network disconnection
> for clvmd, to avoid a full disk recovery.
>
> This version is kind of a draft. There are many immature places to improve. So comments
> and suggestions are welcomed.
>
> The responding kernel part is here:
> https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/
> commit/?h=for-next&id=ed63287dd670f8e9d2412a913de7fdc50a689831

Hi

I think you should please start first with the very precise description what 
you are trying to achieve/fix - then we should discuss how to reach desired goal.

With very light overview of patches there are number of problem which can't 
fit lvm2 design.

#1 - Never store any device major:minor in lvm2 metadata - everything is 
strictly PV UUID oriented (there are number of daemons these days)

#2 - Activation layer & Command layer are 2 separate entities - so your 
command may run on different node then the actual activation happens (unless 
you do a local activation) -  the layer separator is ATM 'lock' - the code 
before lock and  after lock do not share any data - and the 'activation' layer 
knows only what is in written metadata on disk (just for optimization purposes 
there is some internal mechanism of caching and reusing of some existing data).

#3 - There is no 'hidden' data exchange channel via /tmp for activation - 
everything goes strictly via written and committed metadata, and for every 
such metadata state there needs to be some clear recovery path (e.g. what 
happens after 'power-off' with each committed lvm2 metadata state)

I do not yet quite understand what are you trying to achieve - but I've not 
noticed any patch for 'dmeventd' which is the actual tool that fixes broken 
mirrors - so could that tool by anyhow used for detection of some temporary 
network failures ?

Regards

Zdenek




More information about the lvm-devel mailing list