* LVM2 headers @ 2025-03-04 8:29 DeCay 2025-03-04 14:25 ` Zdenek Kabelac 0 siblings, 1 reply; 5+ messages in thread From: DeCay @ 2025-03-04 8:29 UTC (permalink / raw) To: linux-lvm Hello! I came across a rust library (https://crates.io/crates/lvm-sys) which depends on lvm2app.h. This header doesn't exist anymore, as far as I was able to find. What's the right way to interact with LVM2 programmatically at the moment ? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: LVM2 headers 2025-03-04 8:29 LVM2 headers DeCay @ 2025-03-04 14:25 ` Zdenek Kabelac 2025-03-04 17:13 ` DeCay 0 siblings, 1 reply; 5+ messages in thread From: Zdenek Kabelac @ 2025-03-04 14:25 UTC (permalink / raw) To: DeCay, linux-lvm Dne 04. 03. 25 v 9:29 DeCay napsal(a): > Hello! > > I came across a rust library (https://crates.io/crates/lvm-sys) which depends > on lvm2app.h. This header doesn't exist anymore, as far as I was able to find. > > What's the right way to interact with LVM2 programmatically at the moment ? > There is either DBus API or just simple good old fashioned 'exec(lvm)' of lvm2 command. We were unable to provide and maintain the C API - as there are simply too many restriction which cannot be easily satisfied with any random binary. So easiest is to simply run lvm2 command or if you are able to consume DBus API - you can try to go this path - however than there are many limitations. Regards Zdenek ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: LVM2 headers 2025-03-04 14:25 ` Zdenek Kabelac @ 2025-03-04 17:13 ` DeCay 2025-03-04 23:48 ` Demi Marie Obenour 0 siblings, 1 reply; 5+ messages in thread From: DeCay @ 2025-03-04 17:13 UTC (permalink / raw) To: Zdenek Kabelac, linux-lvm Interesting, thank you for your answer! Yes, DBus should work for my use-case. At the same time, I'm looking into lvm2cmd.h right now, but it seems to be designed for the CLI `lvm` you mentioned. On 3/4/25 6:25 PM, Zdenek Kabelac wrote: > Dne 04. 03. 25 v 9:29 DeCay napsal(a): >> Hello! >> >> I came across a rust library (https://crates.io/crates/lvm-sys) which >> depends on lvm2app.h. This header doesn't exist anymore, as far as I >> was able to find. >> >> What's the right way to interact with LVM2 programmatically at the >> moment ? >> > > There is either DBus API or just simple good old fashioned 'exec(lvm)' > of lvm2 command. > > We were unable to provide and maintain the C API - as there are simply > too many restriction which cannot be easily satisfied with any random > binary. > > So easiest is to simply run lvm2 command or if you are able to consume > DBus API - you can try to go this path - however than there are many > limitations. > > Regards > > Zdenek ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: LVM2 headers 2025-03-04 17:13 ` DeCay @ 2025-03-04 23:48 ` Demi Marie Obenour 2025-03-06 10:36 ` Zdenek Kabelac 0 siblings, 1 reply; 5+ messages in thread From: Demi Marie Obenour @ 2025-03-04 23:48 UTC (permalink / raw) To: DeCay, Zdenek Kabelac, linux-lvm [-- Attachment #1: Type: text/plain, Size: 770 bytes --] On Tue, Mar 04, 2025 at 09:13:54PM +0400, DeCay wrote: > Interesting, thank you for your answer! Yes, DBus should work for my > use-case. > > At the same time, I'm looking into lvm2cmd.h right now, but it seems to be > designed for the CLI `lvm` you mentioned. LVM2 can't be embedded in an application because there are points where if LVM crashes, the whole system must be rebooted. Furthermore, there are points where accessing memory that is not mlock'd might hang forever. If you plan to frequently perform LVM operations, then LVM is probably the wrong tool for the job. LVM operations often take 0.3 seconds or more and are highly disruptive to other I/O on the system. -- Sincerely, Demi Marie Obenour (she/her/hers) Invisible Things Lab [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: LVM2 headers 2025-03-04 23:48 ` Demi Marie Obenour @ 2025-03-06 10:36 ` Zdenek Kabelac 0 siblings, 0 replies; 5+ messages in thread From: Zdenek Kabelac @ 2025-03-06 10:36 UTC (permalink / raw) To: Demi Marie Obenour, DeCay, linux-lvm Dne 05. 03. 25 v 0:48 Demi Marie Obenour napsal(a): > On Tue, Mar 04, 2025 at 09:13:54PM +0400, DeCay wrote: >> Interesting, thank you for your answer! Yes, DBus should work for my >> use-case. >> >> At the same time, I'm looking into lvm2cmd.h right now, but it seems to be >> designed for the CLI `lvm` you mentioned. > > LVM2 can't be embedded in an application because there are points where > if LVM crashes, the whole system must be rebooted. Furthermore, there > are points where accessing memory that is not mlock'd might hang > forever. Yep it's around this logic where lvm2 needs to lock itself into memory whenever it needs to suspend devices - as this may suspend access to swap device if such device would be living on currently suspended LV. There could be possibly some mode where user is 'promising', he is not using lvm2 on devices he using to run his system - in this case the rules might be way more relaxed - but explain all this to all users is probably too complex... > If you plan to frequently perform LVM operations, then LVM is probably > the wrong tool for the job. LVM operations often take 0.3 seconds or > more and are highly disruptive to other I/O on the system. We are continuously making lvm2 faster but clearly if there is a suspend operation that requires to flush all disk IO operation - that may cause a significant 'sleep' delay. On the other hand - if the user does require much higher responsiveness of such lvm2 commands - he then needs to significantly reduce 'dirty-page-cache' size used by his system - so there are no long flushing delays. If there are seen more delays for other reason unrelated to suspend IO wait, I'd like to see them with timed example whether we can run them faster. Regards Zdenek ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2025-03-06 10:36 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-03-04 8:29 LVM2 headers DeCay 2025-03-04 14:25 ` Zdenek Kabelac 2025-03-04 17:13 ` DeCay 2025-03-04 23:48 ` Demi Marie Obenour 2025-03-06 10:36 ` Zdenek Kabelac
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).