From: Chuck Lever <cel@kernel.org>
To: Daniel Gomez <da.gomez@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 16:23:50 -0400 [thread overview]
Message-ID: <c6f1bc61-b63d-4c97-a126-cb9223c0ee45@kernel.org> (raw)
In-Reply-To: <6fd30a08-3808-4cac-88dc-e879c9f484d9@kernel.org>
On 9/2/25 4:19 PM, Daniel Gomez wrote:
> 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?
This is the way drive count is handled in the terraform provider menus.
So, the reason is "consistency with existing input methods", no other
reason.
>> +
>> +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
>>
--
Chuck Lever
next prev parent reply other threads:[~2025-09-02 20:23 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
2025-09-02 20:23 ` Chuck Lever [this message]
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=c6f1bc61-b63d-4c97-a126-cb9223c0ee45@kernel.org \
--to=cel@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=da.gomez@kernel.org \
--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