[PATCH 08/19] storage: Format qcow2v3 volumes by default

Peter Krempa posted 19 patches 4 years, 12 months ago
There is a newer version of this series
[PATCH 08/19] storage: Format qcow2v3 volumes by default
Posted by Peter Krempa 4 years, 12 months ago
Format the new volumes with 'compat=1.1' since the minimum supported
qemu version is now 1.5 rather the pre-historic compat=0.10.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
---
 src/storage/storage_util.c                                      | 2 +-
 .../storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv  | 2 +-
 tests/storagevolxml2argvdata/qcow2-compat.argv                  | 2 +-
 tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv     | 2 +-
 tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv    | 2 +-
 .../qcow2-luks-convert-encrypt2fileqcow2.argv                   | 2 +-
 tests/storagevolxml2argvdata/qcow2-luks.argv                    | 2 +-
 .../qcow2-nobacking-convert-prealloc-compat.argv                | 2 +-
 .../storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv | 2 +-
 .../qcow2-nocapacity-convert-prealloc.argv                      | 2 +-
 tests/storagevolxml2argvdata/qcow2-nocapacity.argv              | 2 +-
 tests/storagevolxml2argvdata/qcow2-nocow-compat.argv            | 2 +-
 tests/storagevolxml2argvdata/qcow2-zerocapacity.argv            | 2 +-
 13 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c
index b5adb05826..6d8dd3cc16 100644
--- a/src/storage/storage_util.c
+++ b/src/storage/storage_util.c
@@ -777,7 +777,7 @@ storageBackendCreateQemuImgOpts(virStorageEncryptionInfoDefPtr encinfo,
     if (info->compat)
         virBufferAsprintf(&buf, "compat=%s,", info->compat);
     else if (info->format == VIR_STORAGE_FILE_QCOW2)
-        virBufferAddLit(&buf, "compat=0.10,");
+        virBufferAddLit(&buf, "compat=1.1,");

     if (info->features && info->format == VIR_STORAGE_FILE_QCOW2) {
         if (virBitmapIsBitSet(info->features,
diff --git a/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv b/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
index 1320e2ee2f..c313a04fb3 100644
--- a/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
+++ b/tests/storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv
@@ -1,7 +1,7 @@
 qemu-img \
 create \
 -f qcow2 \
--o compat=0.10 /var/lib/libvirt/images/sparse-qcow2.img 1073741824K
+-o compat=1.1 /var/lib/libvirt/images/sparse-qcow2.img 1073741824K
 qemu-img \
 convert \
 --image-opts \
diff --git a/tests/storagevolxml2argvdata/qcow2-compat.argv b/tests/storagevolxml2argvdata/qcow2-compat.argv
index 3071d7a790..5ee974afe9 100644
--- a/tests/storagevolxml2argvdata/qcow2-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-compat.argv
@@ -2,4 +2,4 @@ qemu-img \
 create \
 -f qcow2 \
 -b /dev/null \
--o backing_fmt=raw,compat=0.10 /var/lib/libvirt/images/OtherDemo.img 5242880K
+-o backing_fmt=raw,compat=1.1 /var/lib/libvirt/images/OtherDemo.img 5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv b/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
index 1971da200d..dcafffc3a4 100644
--- a/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv
@@ -2,4 +2,4 @@ qemu-img \
 convert \
 -f raw \
 -O qcow2 \
--o compat=0.10 /dev/HostVG/Swap /var/lib/libvirt/images/OtherDemo.img
+-o compat=1.1 /dev/HostVG/Swap /var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
index de8aef4233..891746d921 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv
@@ -3,7 +3,7 @@ create \
 -f qcow2 \
 --object secret,id=OtherDemoLuks.img_encrypt0,file=/path/to/secretFile \
 -o encrypt.format=luks,encrypt.key-secret=OtherDemoLuks.img_encrypt0,\
-compat=0.10 /var/lib/libvirt/images/OtherDemoLuks.img 5242880K
+compat=1.1 /var/lib/libvirt/images/OtherDemoLuks.img 5242880K
 qemu-img \
 convert \
 --image-opts \
diff --git a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
index 517156ca83..fc9c4ab825 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt2fileqcow2.argv
@@ -1,7 +1,7 @@
 qemu-img \
 create \
 -f qcow2 \
--o compat=0.10 /var/lib/libvirt/images/sparse-qcow2.img 1073741824K
+-o compat=1.1 /var/lib/libvirt/images/sparse-qcow2.img 1073741824K
 qemu-img \
 convert \
 --image-opts \
diff --git a/tests/storagevolxml2argvdata/qcow2-luks.argv b/tests/storagevolxml2argvdata/qcow2-luks.argv
index 4b51b374ca..c0568e10e3 100644
--- a/tests/storagevolxml2argvdata/qcow2-luks.argv
+++ b/tests/storagevolxml2argvdata/qcow2-luks.argv
@@ -5,4 +5,4 @@ create \
 --object secret,id=OtherDemoLuks.img_encrypt0,file=/path/to/secretFile \
 -o backing_fmt=raw,encrypt.format=luks,\
 encrypt.key-secret=OtherDemoLuks.img_encrypt0,\
-compat=0.10 /var/lib/libvirt/images/OtherDemoLuks.img 5242880K
+compat=1.1 /var/lib/libvirt/images/OtherDemoLuks.img 5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv b/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
index 87489641d5..c237ab0cc9 100644
--- a/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nobacking-convert-prealloc-compat.argv
@@ -3,5 +3,5 @@ convert \
 -f raw \
 -O qcow2 \
 -o preallocation=metadata,\
-compat=0.10 /var/lib/libvirt/images/sparse.img \
+compat=1.1 /var/lib/libvirt/images/sparse.img \
 /var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv b/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
index a883030744..fa83143b5e 100644
--- a/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv
@@ -2,4 +2,4 @@ qemu-img \
 create \
 -f qcow2 \
 -o preallocation=metadata,\
-compat=0.10 /var/lib/libvirt/images/OtherDemo.img 5242880K
+compat=1.1 /var/lib/libvirt/images/OtherDemo.img 5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
index 049d2d73b5..f62da6fabe 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocapacity-convert-prealloc.argv
@@ -3,5 +3,5 @@ convert \
 -f raw \
 -O qcow2 \
 -o preallocation=falloc,\
-compat=0.10 /var/lib/libvirt/images/sparse.img \
+compat=1.1 /var/lib/libvirt/images/sparse.img \
 /var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nocapacity.argv b/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
index 30bcfb00c7..d696af60d7 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocapacity.argv
@@ -2,4 +2,4 @@ qemu-img \
 create \
 -f qcow2 \
 -b /dev/null \
--o backing_fmt=raw,compat=0.10 /var/lib/libvirt/images/OtherDemo.img
+-o backing_fmt=raw,compat=1.1 /var/lib/libvirt/images/OtherDemo.img
diff --git a/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
index 5e327dab0b..b5d18ccc12 100644
--- a/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
+++ b/tests/storagevolxml2argvdata/qcow2-nocow-compat.argv
@@ -3,4 +3,4 @@ create \
 -f qcow2 \
 -b /dev/null \
 -o backing_fmt=raw,nocow=on,\
-compat=0.10 /var/lib/libvirt/images/OtherDemo.img 5242880K
+compat=1.1 /var/lib/libvirt/images/OtherDemo.img 5242880K
diff --git a/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv b/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
index 95dfc65d9b..bc6e5ee758 100644
--- a/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
+++ b/tests/storagevolxml2argvdata/qcow2-zerocapacity.argv
@@ -1,4 +1,4 @@
 qemu-img \
 create \
 -f qcow2 \
--o compat=0.10 /var/lib/libvirt/images/OtherDemo.img 0K
+-o compat=1.1 /var/lib/libvirt/images/OtherDemo.img 0K
-- 
2.29.2

Re: [PATCH 08/19] storage: Format qcow2v3 volumes by default
Posted by Jiri Denemark 4 years, 12 months ago
On Thu, Feb 11, 2021 at 16:37:47 +0100, Peter Krempa wrote:
> Format the new volumes with 'compat=1.1' since the minimum supported
> qemu version is now 1.5 rather the pre-historic compat=0.10.
> 
> Signed-off-by: Peter Krempa <pkrempa@redhat.com>
> ---
>  src/storage/storage_util.c                                      | 2 +-
>  .../storagevolxml2argvdata/luks-convert-encrypt2fileqcow2.argv  | 2 +-
>  tests/storagevolxml2argvdata/qcow2-compat.argv                  | 2 +-
>  tests/storagevolxml2argvdata/qcow2-from-logical-compat.argv     | 2 +-
>  tests/storagevolxml2argvdata/qcow2-luks-convert-encrypt.argv    | 2 +-
>  .../qcow2-luks-convert-encrypt2fileqcow2.argv                   | 2 +-
>  tests/storagevolxml2argvdata/qcow2-luks.argv                    | 2 +-
>  .../qcow2-nobacking-convert-prealloc-compat.argv                | 2 +-
>  .../storagevolxml2argvdata/qcow2-nobacking-prealloc-compat.argv | 2 +-
>  .../qcow2-nocapacity-convert-prealloc.argv                      | 2 +-
>  tests/storagevolxml2argvdata/qcow2-nocapacity.argv              | 2 +-
>  tests/storagevolxml2argvdata/qcow2-nocow-compat.argv            | 2 +-
>  tests/storagevolxml2argvdata/qcow2-zerocapacity.argv            | 2 +-
>  13 files changed, 13 insertions(+), 13 deletions(-)

Reviewed-by: Jiri Denemark <jdenemar@redhat.com>

Re: [PATCH 08/19] storage: Format qcow2v3 volumes by default
Posted by Daniel P. Berrangé 4 years, 12 months ago
On Thu, Feb 11, 2021 at 04:37:47PM +0100, Peter Krempa wrote:
> Format the new volumes with 'compat=1.1' since the minimum supported
> qemu version is now 1.5 rather the pre-historic compat=0.10.

I understand the desire to do this, but this is none the less a
semantic change to the behaviour of the APIs. It is the same
situation as arbitrarily changing the defaults for any part of
the domain XML.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

Re: [PATCH 08/19] storage: Format qcow2v3 volumes by default
Posted by Peter Krempa 4 years, 12 months ago
On Fri, Feb 12, 2021 at 10:49:02 +0000, Daniel Berrange wrote:
> On Thu, Feb 11, 2021 at 04:37:47PM +0100, Peter Krempa wrote:
> > Format the new volumes with 'compat=1.1' since the minimum supported
> > qemu version is now 1.5 rather the pre-historic compat=0.10.
> 
> I understand the desire to do this, but this is none the less a
> semantic change to the behaviour of the APIs. It is the same
> situation as arbitrarily changing the defaults for any part of
> the domain XML.

I'm aware of that, but at certain point it IMO doesn't make sense to try
to stick with a prehistoric format just for the sake of it and IMO this
is it.

Nonetheless, it's not strictly required. I can just use the new format
for the non-shared-storage migration rather than globally if we want to
stay in the cave.

Re: [PATCH 08/19] storage: Format qcow2v3 volumes by default
Posted by Daniel P. Berrangé 4 years, 12 months ago
On Fri, Feb 12, 2021 at 11:55:36AM +0100, Peter Krempa wrote:
> On Fri, Feb 12, 2021 at 10:49:02 +0000, Daniel Berrange wrote:
> > On Thu, Feb 11, 2021 at 04:37:47PM +0100, Peter Krempa wrote:
> > > Format the new volumes with 'compat=1.1' since the minimum supported
> > > qemu version is now 1.5 rather the pre-historic compat=0.10.
> > 
> > I understand the desire to do this, but this is none the less a
> > semantic change to the behaviour of the APIs. It is the same
> > situation as arbitrarily changing the defaults for any part of
> > the domain XML.
> 
> I'm aware of that, but at certain point it IMO doesn't make sense to try
> to stick with a prehistoric format just for the sake of it and IMO this
> is it.

Well that's a policy decision and it is upto the user or mgmt app to
decide when they wish to drop compatibility with old distros. RHEL
had continued to publish its cloud images with old format until very
recently for sake of compat. I don't think libvirt should be forcing
that decision onto people as it sabotages libvirt's value of providing
long term stable behaviour to applications.


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|