Re: [PATCH] qemu: migration: don't open storage driver too early

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/12/20 5:05 AM, Daniel P. Berrangé wrote:
> On Mon, Oct 12, 2020 at 10:55:52AM +0200, Michal Privoznik wrote:
>> On 10/12/20 10:50 AM, Daniel P. Berrangé wrote:
>>> On Sun, Oct 11, 2020 at 07:44:36PM -0400, Cole Robinson wrote:
>>>> If storage migration is requested, and the destination storage does
>>>> not exist on the remote host, qemu's migration support will call
>>>> into the libvirt storage driver to precreate the destination storage.
>>>>
>>>> The storage driver virConnectPtr is opened too early though, adding
>>>> an unnecessary dependency on the storage driver for several cases
>>>> that don't require it. This currently requires kubevirt to install
>>>> the storage driver even though they aren't actually using it.
>>>>
>>>> Push the virGetConnectStorage calls to right before the cases they are
>>>> actually needed.
>>>
>>> This pushes the connection open attempts inside a loop body. So if the
>>> VM has multiple disks, then we're going to be repeatedly opening and
>>> closing the connection which is not desirable.
>>>
>>> I think we need a global connection across all disks, which is lazy
>>> opened on first access.
>>
>> Doesn't virGetConnectStorage() cache the connection?
> 
> Yes & no.
> 
> You can call virSetConnectStorage(conn) to populate the cache with a
> pre-opened connection. If you haven't done that, then a new connection
> will be opened every time. The ltter is what this code will be doing.
> 

What is the use case for not caching the connection by default?

virSetConnect* has very few users, but virGetConnect* is sprinkled in
many places, including multiple uses in generic code in domain_conf.c.
Can this be done as part of virGetConnect*?

- Cole




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux