add runs_at_least_qemu_version to check if we can backup IOThread disks

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Thomas Lamprecht 2019-10-23 10:39:16 +02:00
parent 19e9b30895
commit 48343b3f1d
2 changed files with 13 additions and 1 deletions

View File

@ -7203,6 +7203,15 @@ sub version_cmp {
return 0;
}
sub runs_at_least_qemu_version {
my ($vmid, $major, $minor, $extra) = @_;
my $v = PVE::QemuServer::vm_qmp_command($vmid, { execute => 'query-version' });
$v = $v->{qemu};
return version_cmp($v->{major}, $major, $v->{minor}, $minor, $v->{micro}, $extra) >= 0;
}
sub qemu_machine_pxe {
my ($vmid, $conf) = @_;

View File

@ -77,7 +77,10 @@ sub prepare {
$self->loginfo("exclude disk '$ds' '$volid' (backup=no)");
return;
} elsif ($drive->{iothread}) {
die "disk '$ds' '$volid' (iothread=on) can't use backup feature currently. Please set backup=no for this drive";
if (!PVE::QemuServer::runs_at_least_qemu_version($vmid, 4, 0, 1)) {
die "disk '$ds' '$volid' (iothread=on) can't use backup feature with running QEMU " .
"version < 4.0.1! Either set backup=no for this drive or upgrade QEMU and restart VM\n";
}
} else {
my $log = "include disk '$ds' '$volid'";
if (defined $drive->{size}) {