From 5b11bb39daf25ce659b72715e79371b899e22032 Mon Sep 17 00:00:00 2001 From: Alan Bishop Date: Mon, 4 Mar 2019 14:54:34 -0500 Subject: [PATCH] Support cinder-volume running active-active Add the ability to run the cinder-volume service in an active-active configuration via a new CinderVolumeCluster parameter. The cinder-volume service runs A/A only when configured with a cluster name. Change-Id: Ic76742d3835d93bf16f5d9c13a2786fd7a373423 Depends-On: I615af64086d46356f322094d9f3b4e29557ed899 --- deployment/cinder/cinder-volume-container-puppet.yaml | 10 ++++++++++ environments/cinder-volume-active-active.yaml | 8 ++++++++ .../cinder-volume-active-active-976f2bc33ab52c94.yaml | 8 ++++++++ 3 files changed, 26 insertions(+) create mode 100644 environments/cinder-volume-active-active.yaml create mode 100644 releasenotes/notes/cinder-volume-active-active-976f2bc33ab52c94.yaml diff --git a/deployment/cinder/cinder-volume-container-puppet.yaml b/deployment/cinder/cinder-volume-container-puppet.yaml index 85d346c09b..2689954972 100644 --- a/deployment/cinder/cinder-volume-container-puppet.yaml +++ b/deployment/cinder/cinder-volume-container-puppet.yaml @@ -61,6 +61,15 @@ parameters: description: > The Ceph cluster name must be at least 1 character and contain only letters and numbers. + CinderVolumeCluster: + default: '' + description: > + The cluster name used for deploying the cinder-volume service in an + active-active (A/A) configuration. This configuration requires the + Cinder backend drivers support A/A, and the cinder-volume service not + be managed by pacemaker. If these criteria are not met then the cluster + name must be left blank. + type: string CinderEnableNfsBackend: default: false description: Whether to enable or not the NFS backend for Cinder @@ -187,6 +196,7 @@ outputs: - tripleo::profile::base::cinder::volume::cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend} tripleo::profile::base::cinder::volume::cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend} tripleo::profile::base::cinder::volume::cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend} + tripleo::profile::base::cinder::volume::cinder_volume_cluster: {get_param: CinderVolumeCluster} tripleo::profile::base::cinder::volume::nfs::cinder_nfs_mount_options: {get_param: CinderNfsMountOptions} tripleo::profile::base::cinder::volume::nfs::cinder_nfs_servers: {get_param: CinderNfsServers} tripleo::profile::base::cinder::volume::nfs::cinder_nfs_snapshot_support: {get_param: CinderNfsSnapshotSupport} diff --git a/environments/cinder-volume-active-active.yaml b/environments/cinder-volume-active-active.yaml new file mode 100644 index 0000000000..316cefbda0 --- /dev/null +++ b/environments/cinder-volume-active-active.yaml @@ -0,0 +1,8 @@ +resource_registry: + # For A/A mode, do not run the cinder-volume service under pacemaker. + OS::TripleO::Services::CinderVolume: ../deployment/cinder/cinder-volume-container-puppet.yaml + # Cinder requires etcd for use as its Distributed Lock Manager (DLM). + OS::TripleO::Services::Etcd: ../deployment/etcd/etcd-container-puppet.yaml + +parameter_defaults: + CinderVolumeCluster: tripleo diff --git a/releasenotes/notes/cinder-volume-active-active-976f2bc33ab52c94.yaml b/releasenotes/notes/cinder-volume-active-active-976f2bc33ab52c94.yaml new file mode 100644 index 0000000000..e595b383c2 --- /dev/null +++ b/releasenotes/notes/cinder-volume-active-active-976f2bc33ab52c94.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + Add the ability to configure the cinder-volume service to run in + active-active (A/A) mode using the cluster name specified by the new + CinderVolumeCluster parameter. Note that A/A mode requires the backend + driver support running A/A. Cinder's RBD driver supports A/A, but most + other cinder drivers currently do not.