[virt-tools-list] [virt-manager] [PATCH] cli: --disk: Add driver.metadata_cache options

Cole Robinson crobinso at redhat.com
Wed Aug 17 14:36:06 UTC 2022


On 8/16/22 12:59 AM, Lin Ma wrote:
> Properly setting the metadata cache size can provide better performance
> in case of using big qcow2 images.
> 
> This patch introduces two driver options:
> * driver.metadata_cache.max_size
> * driver.metadata_cache.max_size.unit
> 
> E.g. --disk ...,driver.type=qcow2,\
>      driver.metadata_cache.max_size=2,\
>      driver.metadata_cache.max_size.unit=MiB
> 
> BTW, Metadata cache size control is currently supported only for qcow2.
> Regarding how to properly caluclate the cache size of qcow2, Please refer
> to qemu's documentation.
> 
> Signed-off-by: Lin Ma <lma at suse.com>
> ---
>  tests/data/cli/compare/virt-install-many-devices.xml | 9 +++++++++
>  tests/test_cli.py                                    | 1 +
>  virtinst/cli.py                                      | 7 +++++++
>  virtinst/devices/disk.py                             | 5 +++++
>  4 files changed, 22 insertions(+)
> 
> diff --git a/tests/data/cli/compare/virt-install-many-devices.xml b/tests/data/cli/compare/virt-install-many-devices.xml
> index a73343a9..a33dc16a 100644
> --- a/tests/data/cli/compare/virt-install-many-devices.xml
> +++ b/tests/data/cli/compare/virt-install-many-devices.xml
> @@ -423,6 +423,15 @@
>        </source>
>        <target dev="vdu" bus="virtio"/>
>      </disk>
> +    <disk type="file" device="disk">
> +      <driver name="qemu" type="qcow2">
> +        <metadata_cache>
> +          <max_size unit="KiB">2048</max_size>
> +        </metadata_cache>
> +      </driver>
> +      <source file="/tmp/disk1.qcow2"/>
> +      <target dev="vdv" bus="virtio"/>
> +    </disk>
>      <controller type="usb" index="0" model="ich9-ehci1">
>        <address type="pci" domain="0" bus="0" slot="4" function="7"/>
>      </controller>
> diff --git a/tests/test_cli.py b/tests/test_cli.py
> index 774db098..259ac78c 100644
> --- a/tests/test_cli.py
> +++ b/tests/test_cli.py
> @@ -605,6 +605,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser
>  --disk path=/fooroot.img,size=.0001,transient=on
>  --disk source.dir=/
>  --disk type=nvme,source.type=pci,source.managed=no,source.namespace=2,source.address.domain=0x0001,source.address.bus=0x02,source.address.slot=0x00,source.address.function=0x0
> +--disk /tmp/disk1.qcow2,size=16,driver.type=qcow2,driver.metadata_cache.max_size=2048,driver.metadata_cache.max_size.unit=KiB
>  
>  
>  --network user,mac=12:34:56:78:11:22,portgroup=foo,link_state=down,rom_bar=on,rom_file=/tmp/foo
> diff --git a/virtinst/cli.py b/virtinst/cli.py
> index c4dffd34..042b500f 100644
> --- a/virtinst/cli.py
> +++ b/virtinst/cli.py
> @@ -3497,6 +3497,8 @@ class ParserDisk(VirtCLIParser):
>          "driver.io": "io",
>          "driver.name": "driver_name",
>          "driver.type": "driver_type",
> +        "driver.metadata_cache.max_size": "metadata_cache.max_size",
> +        "driver.metadata_cache.max_size.unit": "metadata_cache.max_size.unit",
>      }
>  

I botched testing this. These aliases should never be added for new cli
properties, they are for maintaining cli backcompat when adding new
names for the same parameter (like when we changed --disk driver_name to
driver.name for consistency). So I reverted this bit

- Cole


More information about the virt-tools-list mailing list