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.rei...@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 {
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to