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 <l...@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

Reply via email to