Laszlo Ersek
2023-Feb-24 12:02 UTC
[Libguestfs] [V2V PATCH 0/5] Bring support for virtio-scsi back to Windows
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 <rjones at 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 <lersek at 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. Why is the "rcaps" logic from before commit b28cd1dc not being brought back? Laszlo
Andrey Drobyshev
2023-Feb-24 16:11 UTC
[Libguestfs] [V2V PATCH 0/5] Bring support for virtio-scsi back to Windows
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 <rjones at 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 <lersek at 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.> > 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?> Laszlo >
Reasonably Related Threads
- [V2V PATCH 0/5] Bring support for virtio-scsi back to Windows
- [V2V PATCH 0/5] Bring support for virtio-scsi back to Windows
- [V2V PATCH 0/5] Bring support for virtio-scsi back to Windows
- [V2V PATCH 0/5] Bring support for virtio-scsi back to Windows
- [V2V PATCH 0/5] Bring support for virtio-scsi back to Windows