[Libguestfs] virt-v2v: Virtio-Scsi patch

Richard W.M. Jones rjones at redhat.com
Tue Sep 15 19:08:21 UTC 2020


On Tue, Sep 15, 2020 at 09:54:32AM +0200, Jean-Louis Dupond wrote:
> Hi,
> 
> I was trying to migrate some VM's to Virtio-SCSI block devices, as
> this gives some advantages.
> 
> While checking the virt-v2v code, I found out that it supported
> Virtio-SCSI, but some bits were missing.
> In attachment a small patch that adds the missing bits :)

This isn't the patch I was expecting this morning :-)  I'm definitely
looking forward also to the SMP changes.

- - -

I think this patch as it stands has two problems:

(a) It should be split up into 3 patches.

Patch #1 would contain the change to v2v/linux_kernels.mli and
v2v/linux_kernels.ml.  IMHO this patch #1 would be completely
uncontroversial and would go straight upstream.

Patch #2 would contain the change to v2v/create_ovf.ml, and is also
uncontroversial and ready to go upstream (but as a separate change
from patch #1).

(b) Now the problem is patch #3:

> diff --git a/v2v/convert_linux.ml b/v2v/convert_linux.ml
> index a871d754..a36cc21d 100644
> --- a/v2v/convert_linux.ml
> +++ b/v2v/convert_linux.ml
> @@ -109,7 +109,7 @@ let convert (g : G.guestfs) inspect source_disks output rcaps _ =
>  
>      let block_type =
>        match rcaps.rcaps_block_bus with
> -      | None -> if kernel.ki_supports_virtio_blk then Virtio_blk else IDE
> +      | None -> if kernel.ki_supports_virtio_scsi then Virtio_SCSI else if kernel.ki_supports_virtio_blk then Virtio_blk else IDE
>        | Some block_type -> block_type in
>  
>      let net_type =

I believe this has the possibility of breaking some guests which use
hard-coded device names in /etc/fstab and other files, because
v2v/target_bus_assignment.ml is not very robust for Virtio_SCSI, and
certainly not well tested (maybe Virtuozzo have tested this a lot more
that Red Hat).

At the moment we're also looking at fixing Q35 support which kind of
overlaps here (because old SATA devices get renamed to the same as
virtio-scsi device names), so I would look at these two together.

You can certainly submit patch #3 as part of the series, but I'll
likely hang on to it before adding it so we can do some testing with
the Q35 changes.

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
Read my programming and virtualization blog: http://rwmj.wordpress.com
virt-builder quickly builds VMs from scratch
http://libguestfs.org/virt-builder.1.html




More information about the Libguestfs mailing list