[PATCH v3 28/36] guestfs: Configure how many extra drives to provision
Chuck Lever <[email protected]>
| Newsgroups | dev.linux.lists.kdevops |
|---|---|
| Message-ID | <[email protected]> |
From: Chuck Lever <[email protected]> Some workflows create several guests but use only one or two extra storage drives per guest. Enable configurations that reduce the amount of storage allocated per guest to conserve local persistent storage space on the host. Reviewed-by: Luis Chamberlain <[email protected]> Reviewed-by: Daniel Gomez <[email protected]> Signed-off-by: Chuck Lever <[email protected]> --- kconfigs/Kconfig.libvirt | 45 +++++++++++++++++++ .../roles/gen_nodes/templates/gen_drives.j2 | 8 ++-- .../roles/guestfs/tasks/bringup/main.yml | 2 +- 3 files changed, 50 insertions(+), 5 deletions(-) diff --git a/kconfigs/Kconfig.libvirt b/kconfigs/Kconfig.libvirt index 7fe231668229..961276ccc1b1 100644 --- a/kconfigs/Kconfig.libvirt +++ b/kconfigs/Kconfig.libvirt @@ -556,6 +556,51 @@ config LIBVIRT_HOST_PASSTHROUGH --pre 'make -s mrproper defconfig' \ \-- make -s -j$(nproc) bzImage +choice + prompt "Libvirt extra storage drive count" + default LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_4 + help + This option selects the number of extra storage drives to + provision for each libvirt guest. Reduce this number to + conserve local host storage capacity, if your workflows do + not use all the extra drives. + +config LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_0 + bool "0" + help + Provision no extra storage drives per guest. + +config LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_1 + bool "1" + help + Provision one extra storage drive per guest. + +config LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_2 + bool "2" + help + Provision two extra storage drives per guest. + +config LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_3 + bool "3" + help + Provision three extra storage drives per guest. + +config LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_4 + bool "4" + help + Provision four extra storages drive per guest. + +endchoice + +config LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT + int + output yaml + default 0 if LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_0 + default 1 if LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_1 + default 2 if LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_2 + default 3 if LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_3 + default 4 if LIBVIRT_EXTRA_STORAGE_DRIVE_COUNT_4 + choice prompt "Libvirt extra storage driver to use" default LIBVIRT_EXTRA_STORAGE_DRIVE_VIRTIO diff --git a/playbooks/roles/gen_nodes/templates/gen_drives.j2 b/playbooks/roles/gen_nodes/templates/gen_drives.j2 index 2de13da4ab8e..1040c0e19d84 100644 --- a/playbooks/roles/gen_nodes/templates/gen_drives.j2 +++ b/playbooks/roles/gen_nodes/templates/gen_drives.j2 @@ -1,6 +1,6 @@ {% import './templates/drives.j2' as drives %} {% if libvirt_extra_storage_drive_ide %} -{{ drives.gen_drive_ide(4, +{{ drives.gen_drive_ide(libvirt_extra_storage_drive_count, kdevops_storage_pool_path, hostname, libvirt_extra_drive_format, @@ -18,7 +18,7 @@ libvirt_extra_storage_aio_cache_mode, kdevops_storage_pool_path) }} {% else %} -{{ drives.gen_drive_virtio(4, +{{ drives.gen_drive_virtio(libvirt_extra_storage_drive_count, kdevops_storage_pool_path, hostname, libvirt_extra_drive_format, @@ -28,7 +28,7 @@ libvirt_extra_storage_virtio_physical_block_size) }} {% endif %} {% elif libvirt_extra_storage_drive_scsi %} -{{ drives.gen_drive_scsi(4, +{{ drives.gen_drive_scsi(libvirt_extra_storage_drive_count, kdevops_storage_pool_path, hostname, libvirt_extra_drive_format, @@ -46,7 +46,7 @@ libvirt_extra_storage_aio_cache_mode, kdevops_storage_pool_path) }} {% else %} -{{ drives.gen_drive_nvme(4, +{{ drives.gen_drive_nvme(libvirt_extra_storage_drive_count, kdevops_storage_pool_path, hostname, libvirt_extra_drive_format, diff --git a/playbooks/roles/guestfs/tasks/bringup/main.yml b/playbooks/roles/guestfs/tasks/bringup/main.yml index bd9f52603a3b..3fd677ff4659 100644 --- a/playbooks/roles/guestfs/tasks/bringup/main.yml +++ b/playbooks/roles/guestfs/tasks/bringup/main.yml @@ -102,7 +102,7 @@ path: "{{ storagedir }}/{{ inventory_hostname }}/extra{{ item }}.{{ libvirt_extra_drive_format }}" ansible.builtin.include_tasks: file: "{{ role_path }}/tasks/bringup/extra-disks.yml" - loop: "{{ range(0, 4) | list }}" + loop: "{{ range(0, libvirt_extra_storage_drive_count) | list }}" when: - not libvirt_enable_largeio|bool -- 2.51.0