** Description changed:

- This is a regression in eoan for me. I use virt-manager to create vms,
- and I noticed that creating one now takes more than a minute.
+ [Impact]
+ 
+  * The defaults of virt-manager for disk allocation always worked fine
+    when qcow2 had nothing but sparse support. So sparse=True vs
+    sparse=False made no difference. So it always set sparse=False.
+    Then qcow2 grows non-sparse support, and virt-manager is suddenly
+    defaulting to it, which is not the intention.
+ 
+ 
+  * For upgraders from pre-Focal this was a regression in two ways:
+     a) allocation of qcow changed to non-sparse (fallocate based) 
+        potentially consuming more space
+     b) depending on the underlying FS this made the allocation much 
+        slower
+ 
+  * Fix by applying the upstream change that Defaults to sparse when 
+    requested format isn't raw (for raw the assumption ill stay that 
+    users do that for runtime performance, so non-sparse on those stays 
+    as-is)
+ 
+ [Test Case]
+ 
+  * open virt-manager and create a new guest which includes creating a 
+    new image for it
+    * when clicking "finish" the image will be created (which e.g. on ZFS 
+      will take quite some time)
+    * In the background grep ps output if the qemu-img call for qcow (the 
+      default) is using "preallocation=fallocate" (wrong) or 
+      "preallocation=metadata" (correct)
+ 
+ [Regression Potential]
+ 
+  * For upgraders from pre-focal it actually ensures behavior stays as is 
+    (no change/regression there)
+  * For users of ZFS where the allocation was slow it fixes this 
+    slowness.
+  * But for people using Focal all the time and on non-ZFS there will be 
+    a behavior change in no more doing falloc pre-allocating the qemu 
+    image. To be cleear there are four modes:
+    1. no allocation
+    2. metadata allocation - is initially larger but can improve 
+       performance when the image needs to grow
+    3. falloc - preallocates space for image by calling posix_fallocate
+    4. full - writes data to the underlying storage
+    The fix changes the default from 3->2 which it always was and should 
+    be. As the patch says: "If users want to override it, they can
+    do it via custom created storage."
+    (To be clear, upstream changed this as we fixed it here, so on 
+     further upgrades what we apply here will be the behavior anyway, it 
+     seems wrong to keep Focal the only one in between kept different)
+ 
+ [Other Info]
+  
+  * The slowness effect might be further mitigated by ZFS implementing 
+    more falloc options (thanks Richard for that hint) but that won't be 
+    in Focal.
+ 
+ ----
+ 
+ 
+ This is a regression in eoan for me. I use virt-manager to create vms, and I 
noticed that creating one now takes more than a minute.
  
  Looking at the process listing while the backing disk is being created, I see 
this qemu-img command line:
  15658 ?        Ssl    0:00 /usr/sbin/libvirtd
  23726 ?        Sl     0:04  \_ /usr/bin/qemu-img create -f qcow2 -o 
preallocation=falloc,compat=1.1,lazy_refcounts 
/var/lib/libvirt/images/live-server.qcow2 41943040K
  
  If I run qemu-img with that preallocation parameter set, even on bionic,
  then it also takes a very long time.
  
  On eoan, for comparison:
  andreas@nsn7:~$ time qemu-img create -f qcow2 no-prealloc-image.qcow2 40G
  Formatting 'no-prealloc-image.qcow2', fmt=qcow2 size=42949672960 
cluster_size=65536 lazy_refcounts=off refcount_bits=16
  
  real  0m0,016s
  user  0m0,010s
  sys   0m0,006s
- andreas@nsn7:~$ qemu-img info no-prealloc-image.qcow2 
+ andreas@nsn7:~$ qemu-img info no-prealloc-image.qcow2
  image: no-prealloc-image.qcow2
  file format: qcow2
  virtual size: 40G (42949672960 bytes)
  disk size: 17K
  cluster_size: 65536
  Format specific information:
-     compat: 1.1
-     lazy refcounts: false
-     refcount bits: 16
-     corrupt: false
- andreas@nsn7:~$ du -hs no-prealloc-image.qcow2 
+     compat: 1.1
+     lazy refcounts: false
+     refcount bits: 16
+     corrupt: false
+ andreas@nsn7:~$ du -hs no-prealloc-image.qcow2
  17K   no-prealloc-image.qcow2
- andreas@nsn7:~$ 
- 
+ andreas@nsn7:~$
  
  and now with preallocation=falloc:
  andreas@nsn7:~$ time qemu-img create -f qcow2 -o preallocation=falloc 
with-prealloc-image.qcow2 40G
  Formatting 'with-prealloc-image.qcow2', fmt=qcow2 size=42949672960 
cluster_size=65536 preallocation=falloc lazy_refcounts=off refcount_bits=16
  
  real  1m43,196s
  user  0m3,564s
  sys   1m26,720s
- andreas@nsn7:~$ qemu-img info with-prealloc-image.qcow2 
+ andreas@nsn7:~$ qemu-img info with-prealloc-image.qcow2
  image: with-prealloc-image.qcow2
  file format: qcow2
  virtual size: 40G (42949672960 bytes)
  disk size: 2.7M
  cluster_size: 65536
  Format specific information:
-     compat: 1.1
-     lazy refcounts: false
-     refcount bits: 16
-     corrupt: false
- andreas@nsn7:~$ du -hs with-prealloc-image.qcow2 
+     compat: 1.1
+     lazy refcounts: false
+     refcount bits: 16
+     corrupt: false
+ andreas@nsn7:~$ du -hs with-prealloc-image.qcow2
  2,8M  with-prealloc-image.qcow2
  andreas@nsn7:~$
  
  ProblemType: Bug
  DistroRelease: Ubuntu 19.10
  Package: libvirt-daemon 5.4.0-0ubuntu5
  ProcVersionSignature: Ubuntu 5.3.0-13.14-generic 5.3.0
  Uname: Linux 5.3.0-13-generic x86_64
  NonfreeKernelModules: zfs zunicode zavl icp zcommon znvpair
  ApportVersion: 2.20.11-0ubuntu7
  Architecture: amd64
  Date: Mon Oct  7 11:36:03 2019
  InstallationDate: Installed on 2019-10-07 (0 days ago)
  InstallationMedia: Ubuntu 19.10 "Eoan Ermine" - Beta amd64 (20191006)
  SourcePackage: libvirt
  UpgradeStatus: No upgrade log present (probably fresh install)
  modified.conffile..etc.libvirt.nwfilter.allow-arp.xml: [inaccessible: [Errno 
13] Permission denied: '/etc/libvirt/nwfilter/allow-arp.xml']
  modified.conffile..etc.libvirt.nwfilter.allow-dhcp-server.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/nwfilter/allow-dhcp-server.xml']
  modified.conffile..etc.libvirt.nwfilter.allow-dhcp.xml: [inaccessible: [Errno 
13] Permission denied: '/etc/libvirt/nwfilter/allow-dhcp.xml']
  modified.conffile..etc.libvirt.nwfilter.allow-incoming-ipv4.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/allow-incoming-ipv4.xml']
  modified.conffile..etc.libvirt.nwfilter.allow-ipv4.xml: [inaccessible: [Errno 
13] Permission denied: '/etc/libvirt/nwfilter/allow-ipv4.xml']
  modified.conffile..etc.libvirt.nwfilter.clean-traffic-gateway.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/clean-traffic-gateway.xml']
  modified.conffile..etc.libvirt.nwfilter.clean-traffic.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/nwfilter/clean-traffic.xml']
  modified.conffile..etc.libvirt.nwfilter.no-arp-ip-spoofing.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/no-arp-ip-spoofing.xml']
  modified.conffile..etc.libvirt.nwfilter.no-arp-mac-spoofing.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/no-arp-mac-spoofing.xml']
  modified.conffile..etc.libvirt.nwfilter.no-arp-spoofing.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/nwfilter/no-arp-spoofing.xml']
  modified.conffile..etc.libvirt.nwfilter.no-ip-multicast.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/nwfilter/no-ip-multicast.xml']
  modified.conffile..etc.libvirt.nwfilter.no-ip-spoofing.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/nwfilter/no-ip-spoofing.xml']
  modified.conffile..etc.libvirt.nwfilter.no-mac-broadcast.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/nwfilter/no-mac-broadcast.xml']
  modified.conffile..etc.libvirt.nwfilter.no-mac-spoofing.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/nwfilter/no-mac-spoofing.xml']
  modified.conffile..etc.libvirt.nwfilter.no-other-l2-traffic.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/no-other-l2-traffic.xml']
  modified.conffile..etc.libvirt.nwfilter.no-other-rarp-traffic.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/no-other-rarp-traffic.xml']
  modified.conffile..etc.libvirt.nwfilter.qemu-announce-self-rarp.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/qemu-announce-self-rarp.xml']
  modified.conffile..etc.libvirt.nwfilter.qemu-announce-self.xml: 
[inaccessible: [Errno 13] Permission denied: 
'/etc/libvirt/nwfilter/qemu-announce-self.xml']
  modified.conffile..etc.libvirt.qemu.conf: [inaccessible: [Errno 13] 
Permission denied: '/etc/libvirt/qemu.conf']
  modified.conffile..etc.libvirt.qemu.networks.default.xml: [inaccessible: 
[Errno 13] Permission denied: '/etc/libvirt/qemu/networks/default.xml']

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1847105

Title:
  very slow disk creation, snapshotting

To manage notifications about this bug go to:
https://bugs.launchpad.net/virt-manager/+bug/1847105/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to