Improve Cinder volume performance with tmpfs for image conversion

This change implements the use of tmpfs for Cinder's image conversion
and encryption processes. Key improvements include:

- Performs image conversion and encryption in memory using tmpfs
  (use from root disk to memory of /var/lib/cinder/conversion volume)
- Reduces IO load on the cinder Docker volume
- Enhances performance for large (virtual size) images
- Improves efficiency of image format conversion and encryption

This optimization is effective when sufficient memory is available on
the cinder-volume host.

Closes-Bug: #2089345
Change-Id: Idea788fdf12f0ae51041b368802b7c958952a847
This commit is contained in:
misook 2024-11-22 19:26:22 +09:00 committed by Misook Kim
parent 9f633d05b7
commit a0c35ec1c8
4 changed files with 11 additions and 2 deletions

View File

@ -14,7 +14,7 @@ apiVersion: v1
appVersion: v1.0.0 appVersion: v1.0.0
description: OpenStack-Helm Cinder description: OpenStack-Helm Cinder
name: cinder name: cinder
version: 0.3.26 version: 0.3.27
home: https://docs.openstack.org/cinder/latest/ home: https://docs.openstack.org/cinder/latest/
icon: https://www.openstack.org/themes/openstack/images/project-mascots/Cinder/OpenStack_Project_Cinder_vertical.png icon: https://www.openstack.org/themes/openstack/images/project-mascots/Cinder/OpenStack_Project_Cinder_vertical.png
sources: sources:

View File

@ -302,7 +302,13 @@ spec:
- name: pod-shared - name: pod-shared
emptyDir: {} emptyDir: {}
- name: cinder-conversion - name: cinder-conversion
emptyDir: {} emptyDir:
{{- if .Values.conf.enable_conversion_tmpfs }}
medium: Memory
sizeLimit: {{ .Values.conf.conversion_tmpfs_size }}
{{- else }}
{}
{{- end }}
{{- if eq "true" (include "cinder.utils.has_ceph_backend" $envAll) }} {{- if eq "true" (include "cinder.utils.has_ceph_backend" $envAll) }}
- name: etcceph - name: etcceph
emptyDir: {} emptyDir: {}

View File

@ -1011,6 +1011,8 @@ conf:
- volume_type - volume_type
volume_type: [] volume_type: []
enable_iscsi: false enable_iscsi: false
enable_conversion_tmpfs: false
conversion_tmpfs_size: "10Gi"
cinder_api_uwsgi: cinder_api_uwsgi:
uwsgi: uwsgi:
add-header: "Connection: close" add-header: "Connection: close"

View File

@ -76,4 +76,5 @@ cinder:
- 0.3.24 Fix volume type create to allow encrypt volume type - 0.3.24 Fix volume type create to allow encrypt volume type
- 0.3.25 Add 2024.2 Ubuntu Jammy overrides - 0.3.25 Add 2024.2 Ubuntu Jammy overrides
- 0.3.26 Mount /run/cryptsetup in cinder-volume container - 0.3.26 Mount /run/cryptsetup in cinder-volume container
- 0.3.27 Add support for using a tmpfs for cinder image conversion
... ...