[pve-devel] applied: [PATCH qemu-server 2/2] version_guard scsi drive count

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Feb 12 10:47:30 CET 2020


On 2/10/20 4:05 PM, Stefan Reiter wrote:
> Live-migrating a VM with more than 14 SCSI disks to a node that doesn't
> support it yet is broken. Use a bumped pve-version to represent that and
> give the user a nice error message instead.
> 
> Signed-off-by: Stefan Reiter <s.reiter at proxmox.com>
> ---
> 
> This is more for correctness, since older versions (i.e. ones that don't support
> this feature) do not include the code to die with a useful message. It does,
> however, give a nice example of how $version_guard is supposed to be used.
> 
> 
>  PVE/QemuServer.pm         | 3 +++
>  PVE/QemuServer/Machine.pm | 2 +-
>  2 files changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
> index 37ffc86..27b9866 100644
> --- a/PVE/QemuServer.pm
> +++ b/PVE/QemuServer.pm
> @@ -3931,6 +3931,9 @@ sub config_to_command {
>  
>  	    my ($maxdev, $controller, $controller_prefix) = scsihw_infos($conf, $drive);
>  
> +	    die "scsi$drive->{index}: machine version 4.1~pve2 or higher is required to use more than 14 SCSI disks\n"
> +		if $drive->{index} > 13 && !&$version_guard(4, 1, 2);
> +
>  	    $pciaddr = print_pci_addr("$controller_prefix$controller", $bridges, $arch, $machine_type);
>  	    my $scsihw_type = $scsihw =~ m/^virtio-scsi-single/ ? "virtio-scsi-pci" : $scsihw;
>  
> diff --git a/PVE/QemuServer/Machine.pm b/PVE/QemuServer/Machine.pm
> index 9fbe9a8..0817d2a 100644
> --- a/PVE/QemuServer/Machine.pm
> +++ b/PVE/QemuServer/Machine.pm
> @@ -9,7 +9,7 @@ use PVE::QemuServer::Monitor;
>  # Bump this for VM HW layout changes during a release (where the QEMU machine
>  # version stays the same)
>  our $PVE_MACHINE_VERSION = {
> -    '4.1' => 1,
> +    '4.1' => 2,
>  };
>  
>  sub machine_type_is_q35 {
> 

applied



More information about the pve-devel mailing list