From: Daniel Gomez <da.gomez@kernel.org>
To: Chuck Lever <cel@kernel.org>, kdevops@lists.linux.dev
Cc: Chuck Lever <chuck.lever@oracle.com>
Subject: Re: [PATCH v2 29/37] guestfs: Configure how many extra drives to provision
Date: Tue, 2 Sep 2025 22:19:54 +0200 [thread overview]
Message-ID: <6fd30a08-3808-4cac-88dc-e879c9f484d9@kernel.org> (raw)
In-Reply-To: <20250902135426.815079-30-cel@kernel.org>
On 02/09/2025 15.54, Chuck Lever wrote:
> From: Chuck Lever <chuck.lever@oracle.com>
>
> 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.
>
> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
This should allow workflows to specify the nr of drives needed, right?
Looks great optimization, thanks!
Reviewed-by: Daniel Gomez <da.gomez@samsung.com>
> ---
> 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
I see we are defaulting to what we had. So it's up to the user or defconfig to
leverage this.
> + 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.
Curious, any reason to have a menu/choice instead of int?
> +
> +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
>
next prev parent reply other threads:[~2025-09-02 20:19 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-02 13:53 [PATCH v2 00/37] Various fixes Chuck Lever
2025-09-02 13:53 ` [PATCH v2 01/37] scripts: Update gen_ssh_key.sh Chuck Lever
2025-09-02 13:53 ` [PATCH v2 02/37] terraform/azure: Fix count of managed disks Chuck Lever
2025-09-02 13:53 ` [PATCH v2 03/37] terraform/azure: Remove tags from terraform configuration Chuck Lever
2025-09-02 13:53 ` [PATCH v2 04/37] terraform/azure: Enable network acceleration Chuck Lever
2025-09-02 13:53 ` [PATCH v2 05/37] terraform/azure: Make the resource group name a variable Chuck Lever
2025-09-02 13:53 ` [PATCH v2 06/37] terraform/azure: Remove the provider version constraint Chuck Lever
2025-09-02 13:53 ` [PATCH v2 07/37] terraform/azure: Update the RHEL publishers Chuck Lever
2025-09-02 13:53 ` [PATCH v2 08/37] terraform/oci: Work around oracle/oci provider bug Chuck Lever
2025-09-02 13:53 ` [PATCH v2 09/37] terraform/oci: Add Kconfig choices for disk performance provisioning Chuck Lever
2025-09-02 13:53 ` [PATCH v2 10/37] terraform/oci: Enable preemptible compute instances Chuck Lever
2025-09-02 13:53 ` [PATCH v2 11/37] terraform/aws: Fix zone selection for us_west1 Chuck Lever
2025-09-02 13:53 ` [PATCH v2 12/37] Revert "terraform/aws: Add Oracle Linux AMI selections" Chuck Lever
2025-09-02 13:54 ` [PATCH v2 13/37] terraform/aws: Remove unused terraform tags Chuck Lever
2025-09-02 13:54 ` [PATCH v2 14/37] terraform/GCE: Fix the default disk throughput values Chuck Lever
2025-09-02 13:54 ` [PATCH v2 15/37] terraform/gce: Remove unused tags Chuck Lever
2025-09-02 13:54 ` [PATCH v2 16/37] terraform/gce: Remove support for Fedora Chuck Lever
2025-09-02 13:54 ` [PATCH v2 17/37] terraform/gce: Update existing machine types and introduce new ones Chuck Lever
2025-09-02 13:54 ` [PATCH v2 18/37] terraform: Create the user's .ssh/config if it does not already exist Chuck Lever
2025-09-02 13:54 ` [PATCH v2 19/37] pynfs: Don't install xdrlib3 on older RHEL Chuck Lever
2025-09-02 13:54 ` [PATCH v2 20/37] guestfs: Update the guestfs playbook description Chuck Lever
2025-09-02 19:36 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 21/37] gen_hosts: Add 'localhost' to the [all] group Chuck Lever
2025-09-02 19:39 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 22/37] gen_hosts: Add [service] group to the builder host template Chuck Lever
2025-09-02 19:43 ` Daniel Gomez
2025-09-02 19:47 ` Chuck Lever
2025-09-02 20:38 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 23/37] guestfs: Don't run the 'destroy' tags on the controller Chuck Lever
2025-09-02 19:54 ` Daniel Gomez
2025-09-02 19:59 ` Chuck Lever
2025-09-02 20:40 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 24/37] base_image: Skip "locales-all" package on Fedora Chuck Lever
2025-09-02 19:57 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 25/37] update_etc_hosts: ipaddr Chuck Lever
2025-09-02 19:59 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 26/37] Add an Ansible requirements.yml file Chuck Lever
2025-09-02 20:06 ` Daniel Gomez
2025-09-02 20:13 ` Chuck Lever
2025-09-02 13:54 ` [PATCH v2 27/37] terraform/oci: Clean up white space in route table resource Chuck Lever
2025-09-02 20:10 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 28/37] guestfs: Correct the spelling of "drives" Chuck Lever
2025-09-02 20:14 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 29/37] guestfs: Configure how many extra drives to provision Chuck Lever
2025-09-02 20:19 ` Daniel Gomez [this message]
2025-09-02 20:23 ` Chuck Lever
2025-09-02 13:54 ` [PATCH v2 30/37] ltp: Replace /opt with a symlink to data partition Chuck Lever
2025-09-02 13:54 ` [PATCH v2 31/37] terraform: Squelch Ansible complaints about missing inventory file Chuck Lever
2025-09-02 13:54 ` [PATCH v2 32/37] terraform: Skip localhost when waiting for targets to reboot Chuck Lever
2025-09-02 13:54 ` [PATCH v2 33/37] devconfig: include the "service" group in the playbooks hosts list Chuck Lever
2025-09-02 20:27 ` Daniel Gomez
2025-09-02 20:30 ` Chuck Lever
2025-09-02 20:45 ` Daniel Gomez
2025-09-02 13:54 ` [PATCH v2 34/37] Makefile: Remove CONFIG_TOPDIR_PATH_HAS_SHA256SUM Chuck Lever
2025-09-02 13:54 ` [PATCH v2 35/37] Makefile: Set TOPDIR_PATH and generate its sha256sum at run time Chuck Lever
2025-09-02 13:54 ` [PATCH v2 36/37] ansible.cfg: generate an ansible.cfg file in TOPDIR Chuck Lever
2025-09-02 13:54 ` [PATCH v2 37/37] inventory: generate the inventory pathname dynamically Chuck Lever
2025-09-02 15:24 ` [PATCH v2 00/37] Various fixes Luis Chamberlain
2025-09-02 20:34 ` Daniel Gomez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6fd30a08-3808-4cac-88dc-e879c9f484d9@kernel.org \
--to=da.gomez@kernel.org \
--cc=cel@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=kdevops@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox