[libvirt] New QEMU daemon for persistent reservations

Paolo Bonzini pbonzini at redhat.com
Wed Oct 4 09:47:04 UTC 2017


On 04/10/2017 10:28, Daniel P. Berrange wrote:
> On Tue, Oct 03, 2017 at 06:53:56PM +0200, Paolo Bonzini wrote:
>> On 03/10/2017 18:39, Daniel P. Berrange wrote:
>>> On Tue, Oct 03, 2017 at 06:35:03PM +0200, Paolo Bonzini wrote:
>>>> And later on we might have other ways to implement persistent
>>>> reservations in QEMU.  So while I'm not a big fan(*) of the
>>>> driver='helper' moniker, I don't think an attribute is enough.  Maybe
>>>> driver='external'?...
>>>
>>> Yes, if there's a choice of ways to manage reservations, we could
>>> reflect that as  'reservations=passthrough|emulated' or something
>>> like that. 
>>>
>>> I just don't think the concept of a helper program should be visible
>>> in the XML, as it is an impl detail that is totally QEMU specific and
>>> could conceivably change eg not even needed with unpriv_sgio,
>>
>> Not sure about that, the mpathpersist behavior is somewhat magic and I
>> am not really sure we should enable it by default, even with unpriv_sgio.
>>
>>> and if
>>> kernel were enhanced could be usable without needing a helper elsewhere
>>> too.
>>
>> It's an implementation detail for system mode, but not for user mode
>> (where ACLs on the socket are used to allow access to a privileged
>> operation).
>>
>> So:
>>
>>    <reservations enable='yes'/>
>>
>> (uses helper from global configuration if not a libiscsi drive) vs.
>>
>>    <reservations enable='yes'/>
>>      <source ... />
>>    </pr>
> 
> What do you mean by <source> here ?  If that's the chardev source I would
> really prefer not to have that visible.

Yes, it's the chardev source.  See above: in user mode, ACLs on the
socket are used to allow access to a privileged operation, so the source
has to be there.  It's not the most common mode, but it's the only one
that works for user mode and hardcoding a (possibly distro-specific)
socket path in libvirtd is worse IMO.

Paolo

>>
>> (for user mode) vs.
>>
>>    <reservations enable='no'>
>>
>> (fails if libiscsi || CAP_SYS_RAWIO || unpriv_sgio)?
> 
> Regards,
> Daniel
> 




More information about the libvir-list mailing list