virt-install: Add support for blockio.discard_granularity

E.g.
    virt-install \
    ... \
    --disk /tmp/disk0.qcow2,size=16,driver.type=qcow2,blockio.discard_granularity=4096

  It results in the following domain xml:
  <disk type='file' device='disk'>
    <driver name='qemu' type='qcow2' discard='unmap'/>
    <source file='/tmp/disk0.qcow2'/>
    <target dev='vda' bus='virtio'/>
    <blockio discard_granularity="4096"/>
  </disk>

Signed-off-by: Lin Ma <lma@suse.de>
This commit is contained in:
Lin Ma 2024-11-13 15:02:33 +08:00 committed by Pavel Hrdina
parent 0054b71dd7
commit 1c0f7f62e8
4 changed files with 9 additions and 0 deletions

View File

@ -451,6 +451,12 @@
<source file="/tmp/disk2.qcow2"/>
<target dev="vdw" bus="virtio"/>
</disk>
<disk type="file" device="disk">
<driver name="qemu" type="qcow2" discard="unmap"/>
<source file="/tmp/disk3.qcow2"/>
<target dev="vdx" bus="virtio"/>
<blockio discard_granularity="4096"/>
</disk>
<controller type="usb" index="0" model="ich9-ehci1">
<address type="pci" domain="0" bus="0" slot="4" function="7"/>
</controller>

View File

@ -641,6 +641,7 @@ source.reservations.managed=no,source.reservations.source.type=unix,source.reser
--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
--disk /tmp/disk2.qcow2,size=16,driver.type=qcow2,driver.discard=unmap,driver.discard_no_unref=on
--disk /tmp/disk3.qcow2,size=16,driver.type=qcow2,blockio.discard_granularity=4096
--network user,mac=12:34:56:78:11:22,portgroup=foo,link_state=down,rom_bar=on,rom_file=/tmp/foo

View File

@ -3788,6 +3788,7 @@ class ParserDisk(VirtCLIParser):
cls.add_arg("blockio.logical_block_size", "logical_block_size")
cls.add_arg("blockio.physical_block_size", "physical_block_size")
cls.add_arg("blockio.discard_granularity", "discard_granularity")
cls.add_arg("geometry.cyls", "geometry_cyls")
cls.add_arg("geometry.heads", "geometry_heads")

View File

@ -521,6 +521,7 @@ class DeviceDisk(Device):
startup_policy = XMLProperty("./source/@startupPolicy")
logical_block_size = XMLProperty("./blockio/@logical_block_size")
physical_block_size = XMLProperty("./blockio/@physical_block_size")
discard_granularity = XMLProperty("./blockio/@discard_granularity")
iotune_rbs = XMLProperty("./iotune/read_bytes_sec", is_int=True)
iotune_ris = XMLProperty("./iotune/read_iops_sec", is_int=True)