[libvirt] Exclusive VM lock

Dmitry Andreev dandreev at virtuozzo.com
Tue Dec 15 12:26:44 UTC 2015



On 15.12.2015 11:47, Martin Kletzander wrote:
> On Mon, Dec 14, 2015 at 06:50:56PM +0300, Dmitry Andreev wrote:
>> On 14.12.2015 18:10, Peter Krempa wrote:
>>> On Mon, Dec 14, 2015 at 17:18:22 +0300, Dmitry Andreev wrote:
>>>> Hi,
>>>>
>>>> I'm looking for a mechanism to do a sequence of API calls as atomic
>>>> operation. Is there any way for libvirt's API client to acquire an
>>>> exclusive VM lock to prevent other client from changing VM state
>>>> through libvirt?
>>>
>>> No there isn't anything. Libvirt is locking only on internal events that
>>> need protection.
>>>
>>> Doing transaction locking should be relatively easy to implement on
>>> application layer though.
>>
>> Sure we can implement a lock manager on the API client side, but it
>> can't lock VM for other clients. And that’s the problem for us.
>>
>> Are maintainers interested in VM lock manager on the server side?
>> Can I move in this direction or you have something against it?
>>
>
> Well, I think that if you want to lock it in the layer above, you should
> lock it in the layer above.  And you can disable other clients, restrict
> them, etc.  Would you mind describing the use-case more thoroughly?
> Maybe we have a solution for that already.
>
We allow users to manage VMs with virt-manager but when we updates VM 
configuration using API we want the read-change-write operation to be 
atomic.

In few other cases we don't want to allow user run or stop vm while we 
doing post creation or guest configuration job.

>>>
>>> Peter
>>>
>>
>> --
>> libvir-list mailing list
>> libvir-list at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list