From 11a887ece5b5bab287ff77b09337dc44c4e6e976 Mon Sep 17 00:00:00 2001 From: Lin Ma Date: Tue, 16 Aug 2022 12:59:57 +0800 Subject: cli: --disk: Add driver.metadata_cache options 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 --- virtinst/cli.py | 7 +++++++ virtinst/devices/disk.py | 5 +++++ 2 files changed, 12 insertions(+) (limited to 'virtinst') 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", } def _add_advertised_aliases(self): @@ -3696,6 +3698,11 @@ class ParserDisk(VirtCLIParser): cls.add_arg("driver.queues", "driver_queues") cls.add_arg("driver.error_policy", "error_policy") + cls.add_arg("driver.metadata_cache.max_size", + "driver_metadata_cache_max_size") + cls.add_arg("driver.metadata_cache.max_size.unit", + "driver_metadata_cache_max_size_unit") + cls.add_arg("iotune.read_bytes_sec", "iotune_rbs") cls.add_arg("iotune.write_bytes_sec", "iotune_wbs") cls.add_arg("iotune.total_bytes_sec", "iotune_tbs") diff --git a/virtinst/devices/disk.py b/virtinst/devices/disk.py index dc59fd13..9609ebac 100644 --- a/virtinst/devices/disk.py +++ b/virtinst/devices/disk.py @@ -481,6 +481,11 @@ class DeviceDisk(Device): driver_iothread = XMLProperty("./driver/@iothread", is_int=True) driver_queues = XMLProperty("./driver/@queues", is_int=True) + driver_metadata_cache_max_size = XMLProperty( + "./driver/metadata_cache/max_size", is_int=True) + driver_metadata_cache_max_size_unit = XMLProperty( + "./driver/metadata_cache/max_size/@unit") + error_policy = XMLProperty("./driver/@error_policy") serial = XMLProperty("./serial") wwn = XMLProperty("./wwn") -- cgit v1.2.1