On 2/24/23 17:11, Andrey Drobyshev wrote:
> On 2/24/23 14:02, Laszlo Ersek wrote:
>> On 2/24/23 12:55, Denis V. Lunev wrote:
>>> On 2/24/23 05:56, Laszlo Ersek wrote:
>>
>>>> I've got zero experience with in-place conversions. I've skimmed
>>>> <https://libguestfs.org/virt-v2v-in-place.1.html> now, but the use case
>>>> continues to elude me.
>>>>
>>>> What is in-place conversion good for? If you already have a libvirt
>>>> domain XML (i.e., one *not* output by virt-v2v as the result of a
>>>> conversion from a foreign hypervisor), what do you need
>>>> virt-v2v-in-place for?
>>>>
>>>> My understanding is that virt-v2v produces both an output disk (set) and
>>>> a domain description (be it a QEMU cmdline, a libvirt domain XML, an
>>>> OVF, ...), *and* that these two kinds of output belong together, there
>>>> is not one without the other. What's the data flow with inplace
>>>> conversion?
>>>>
>>>> Laszlo
>>>>
>>> We use v2v as guest convertor engine and prepare VM configuration
>>> ourselves. This looks more appropriate for us as we have different
>>> constraints under different conditions.
>>>
>>> This makes sense outside of foreign hypervisor as we could change
>>> bus of the disk and then call v2v to teach the guest to boot from
>>> new location. This was revealed very useful to fix some strange
>>> issues on the customer's side.
>>>
>>> That is it.
>>>
>>> Den
>>>
>>> P.S. Resent (original mail was accidentally sent off-list)
>>>
>>
>> So the use case is more or less "-i libvirtxml", with the domain XML
>> created from scratch (or liberally tweaked, starting from a "more
>> authentic" original domain XML).
>>
>> The cover letter mentions the following commit:
>>
>> commit b28cd1dcfeb40e7002e8d0b0ce9dcc4ce86beb6c
>> Author: Richard W.M. Jones <rjo...@redhat.com>
>> Date:   Mon Nov 8 09:00:20 2021 +0000
>>
>>     Remove requested_guestcaps / rcaps
>>
>>     This was part of the old in-place support.  When we add new in-place
>>     support we'll do something else, but currently this is dead code so
>>     remove it completely.
>>
>>     Note this removes the code for installing the virtio-scsi driver (only
>>     ever using virtio-blk).  This was also dead code in the current
>>     implementation of virt-v2v, but worth remembering in case we want to
>>     resurrect this feature in a future version.
>>
>>     Acked-by: Laszlo Ersek <ler...@redhat.com>
>>
>> So I guess that "something else" is what I'm missing here. Right now the
>> proposed use case seems to be:
>>
>> - tweak the domain XML in some way (or generate it in some "bespoke" way
>>   from the outset)
>>
>> - perform an in-place conversion with virt-v2v, making sure that
>>   virt-v2v prefers virtio-scsi as first priority. This will end up
>>   injecting the virtio-scsi guest driver into the guest.
>>
>> This looks less than ideal to me. Even if we offer virtio-scsi, that
>> should be driven by a specific knob.
>>
>> I initially thought that knob could be a new command line option.
>>
>> Then, upon reading
>>
>>     we could change bus of the disk and then call v2v to teach the guest
>>     to boot from new location
>>
>> I thought that the contents of the tweaked domain XML would *steer* the
>> guest driver selection. (This seemed plausible, because we used to have
>> "source" domain properties, and I vaguely recalled that they once had
>> been relevant for in-place conversion.) But these patches don't do any
>> such steering, AFAICT.
> 
> Yes, I think you got the scenario right -- we need to be able to provide
> the driver for the controller specified in the source domain XML.  I
> agree that changing the default might not be the best solution here.
> 
> On the other hand, AFAICT right now the way default is being chosen is
> rather strange: it's the 1st driver in the list of ["virtio_blk";
> "vrtioblk"; "viostor"] which is present in the tools directory.  What if
> it doesn't match the actual disk controller in the source VM?  Doesn't
> make much sense to me.

My understanding is that these are different driver names, but these
drivers are all for the virtio-block device. IIUC the names had changed
over time, for the same thing.

> 
>>
>> Why is the "rcaps" logic from before commit b28cd1dc not being brought
>> back?
> 
> My 5th patch actually includes bits of the b28cd1dc, namely adding
> vioscsi pciid to the registry.  I'm not sure whether bringing back the
> entire rcaps is a good idea, let's probably see what Richard has to say
> about this.  Maybe we can come up with a simpler way to "forward" the
> storage controller type when doing the initial inspection?

Yes, let's hear what Rich thinks.

Laszlo

_______________________________________________
Libguestfs mailing list
Libguestfs@redhat.com
https://listman.redhat.com/mailman/listinfo/libguestfs

Reply via email to