Re: lvm2 deadlock
Jaco Kroon <[email protected]> Fri, 7 Jun 2024 11:36:21 +0200
| Newsgroups | gmane.linux.lvm.general |
|---|---|
| Organization | Ultimate Linux Solutions (Pty) Ltd |
| Message-ID | <[email protected]> |
Hi, On 2024/06/07 11:26, Zdenek Kabelac wrote: > Dne 07. 06. 24 v 11:03 Jaco Kroon napsal(a): >> Hi, >> >> On 2024/06/07 00:17, Zdenek Kabelac wrote: >>> Dne 07. 06. 24 v 0:14 Zdenek Kabelac napsal(a): >>>> Dne 05. 06. 24 v 10:59 Jaco Kroon napsal(a): >>>>> Hi, >>>> >>> >> I'm guessing your "simple way" is workable for the generic case as >> well, towards that end, is a relatively simple change to the lvm2 >> tools not perhaps to add an syncfs() call to lvcreate *just prior* to >> freezing? The hard part is probably to figure out if the LV is >> mounted somewhere, and if it is, to open() that path in order to have >> a file-descriptor to pass to syncfs()? Obviously if the LV isn't >> mounted none of this is a concern and we can just proceed. >> > > > Hi > > There is no simple answer here - > > a) 'sync' flushes all io for all disk in the system - user can play > with tools like hdparm -F /dev/xxxx - so still everything in range of > 'admin's hand'... Fair. Or sync -f /path/to/mountpoint. > > b) it's about the definition of the 'snapshot' moment - do you want to > take snapshot as of 'now' or after possibly X minutes where > everything has been flushed and meanwhile new data flown-in ?? Oh yea, that's very valid, so instead of just lvcreate the sysadmin should sync -f /path/to/mountpoint *before* issuing lvcreate in the case where "possibly X minutes from now" is acceptable. Guessing this can be a --pre-sync argument for lvcreate but obviously the sysadmin is perfectly capable (if he's aware of this caveat) just run sync -f /path/to/mountpoint just before lvcreate. > > c) lvm2 needs some 'multi LV' atomic snapshot support... > > d) with thin-pool and out-of-space potential it gets more tricky.... > > >> What would be more interesting is if cluster-lvm is in play and the >> origin LV is active/open on an alternative node? But that's well >> beyond the scope of our requirements (for now). > > Clearly in the cluster case user can use multi-node active LV only in > the case there is something that is able to 'manage' this storage - > i.g. gfs2. Surely use of ext4/xfs this way is out of question... Was referring to the case where an LV is only active on *one* node at a time, but it's on shared physical storage. Not even sure if a thin pool can be active on more than one node at a time in such a case. This is research I've not yet done. We tried gfs2 a few years back and the sheer number of unresolvable failure scenarios at the time just had us switch to glusterfs instead. I think this can be considered closed now. Thanks again for all the help and insight, I thoroughly enjoyed the discussion too, it was most insightful and I learned a lot from it. Kind regards, Jaco