From 3a68118d9b3f5ace5038f7c9f48564cb9296aa35 Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Fri, 11 Feb 2022 17:24:18 +0200 Subject: [PATCH] Implement nova direct RBD image retrieve When nova don't use rbd images (ie local storage) it still might be good idea to use direct connection to rbd to get images rather then connect through HTTP. Change-Id: I4f2d7cf54e07376c7a25d45093f5d83be5422234 --- defaults/main.yml | 7 ++++++- releasenotes/notes/nova_glance_rbd-ab6e9b0f5dd7b9ec.yaml | 6 ++++++ tasks/main.yml | 2 +- templates/nova.conf.j2 | 5 +++++ 4 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/nova_glance_rbd-ab6e9b0f5dd7b9ec.yaml diff --git a/defaults/main.yml b/defaults/main.yml index 8e414f2b..cadbe4a1 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -365,12 +365,17 @@ nova_nfs_client: [] # Enble and define nova_libvirt_images_rbd_pool to use rbd as nova backend #nova_libvirt_images_rbd_pool: vms nova_libvirt_images_rbd_pool: '' -nova_ceph_client: '{{ cinder_ceph_client }}' +nova_ceph_client: "{{ cinder_ceph_client }}" # Enabled upstream if RBD is in use on cinder backends, which requires that # ceph be deployed on the nova compute hosts to enable volume backed instances. nova_cinder_rbd_inuse: False +# Enable compute nodes to retrieve images from RBD directly rather then through +# HTTP if images_type is NOT set to RBD. Must be False if nova images stored in RBD. +nova_glance_rbd_inuse: False +nova_glance_images_rbd_pool: "{{ glance_rbd_store_pool | default('images') }}" + # Used to determine if we need a Ceph client nova_rbd_inuse: "{{ (nova_libvirt_images_rbd_pool | length > 0) or (nova_cinder_rbd_inuse | bool) }}" diff --git a/releasenotes/notes/nova_glance_rbd-ab6e9b0f5dd7b9ec.yaml b/releasenotes/notes/nova_glance_rbd-ab6e9b0f5dd7b9ec.yaml new file mode 100644 index 00000000..213223a1 --- /dev/null +++ b/releasenotes/notes/nova_glance_rbd-ab6e9b0f5dd7b9ec.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + New variables ``nova_glance_rbd_inuse`` and ``nova_glance_images_rbd_pool`` have + been implemented that allows deployer to easily configure nova to retrieve glance + images from RBD directly, if nova uses local storage for ephemeral drives. diff --git a/tasks/main.yml b/tasks/main.yml index 8e3dd54b..49182215 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -270,7 +270,7 @@ when: - nova_virt_type != 'ironic' - nova_services['nova-compute']['group'] in group_names - - nova_rbd_inuse | bool + - (nova_rbd_inuse | bool) or (nova_glance_rbd_inuse | bool) tags: - ceph diff --git a/templates/nova.conf.j2 b/templates/nova.conf.j2 index 90800102..0d89d772 100644 --- a/templates/nova.conf.j2 +++ b/templates/nova.conf.j2 @@ -133,6 +133,11 @@ enabled = False # Glance [glance] insecure = {{ keystone_service_internaluri_insecure | bool }} +{% if nova_glance_rbd_inuse | bool %} +rbd_user = {{ nova_ceph_client }} +rbd_pool = {{ nova_glance_images_rbd_pool }} +rbd_ceph_conf = /etc/ceph/ceph.conf +{% endif %} # Neutron [neutron]