From 952b242722c9fb2de26ea4e3777da4aa13ae7961 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Wed, 24 Mar 2021 20:22:51 +0100 Subject: [PATCH] kvm: Do not set backing file format of DATADISK in vm start/migration (#4800) * kvm: Do not rebase DATADISK in vm start/migration * #4800: add comment and use isBlank --- .../hypervisor/kvm/resource/LibvirtComputingResource.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 4cb356c8023..275d395399f 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -4266,7 +4266,11 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv Map info = qemu.info(file); String backingFilePath = info.get(new String("backing_file")); String backingFileFormat = info.get(new String("backing_file_format")); - if (org.apache.commons.lang.StringUtils.isEmpty(backingFileFormat)) { + if (org.apache.commons.lang.StringUtils.isNotBlank(backingFilePath) + && org.apache.commons.lang.StringUtils.isBlank(backingFileFormat)) { + // VMs which are created in CloudStack 4.14 and before cannot be started or migrated + // in latest Linux distributions due to missing backing file format + // Please refer to https://libvirt.org/kbase/backing_chains.html#vm-refuses-to-start-due-to-misconfigured-backing-store-format s_logger.info("Setting backing file format of " + volPath); QemuImgFile backingFile = new QemuImgFile(backingFilePath); Map backingFileinfo = qemu.info(backingFile);