Improve Active/Active configuration for the manila share service

Registered by Goutham Pacha Ravi

Manila's service components are designed to be fault tolerant and resilient. Deployers have the ability to run any number of manila-api, manila-scheduler, manila-share and manila-data processes as necessary with this fault tolerant design. However, there are some theoretical pitfalls and a lack of testing in the upstream community with manila-share running in an active-active configuration.

Pitfalls/concerns:
    - Recovering from service failures
    - Concurrency control for polling operations
    - Monitoring health of an individual host driver service

Use Cases:
    -HA to survive single node failure where pacemaker type control for active-standby support is not available
    - edge deployments with tripleo
    - non tripleo deployments with just haproxy and no pacemaker-corosync

An example of setting up two manila-share services in an active/active HA config:

manila.conf on node 1:
------------------------------
[DEFAULT]
...
host = manila-share-hostname
enabled_share_backends = backend1, backend2
share_topic = manila-share
...
[backend1]
...
[backend2]
...

manila.conf on node 2:
------------------------------
[DEFAULT]
...
host = manila-share-hostname ### Common hostname between
enabled_share_backends = backend1, backend2
share_topic = manila-share
...
[backend1] ### Common backend names in the two services
...
[backend2]

With the above configuration, both services appear to be the same, but there's no unique way to reference one of them, for example, if "manila service-list" is executed, manila-share services corresponding to backend1 will only appear once even though there are two separate services.

Blueprint information

Status:
Not started
Approver:
Goutham Pacha Ravi
Priority:
Undefined
Drafter:
Goutham Pacha Ravi
Direction:
Needs approval
Assignee:
Goutham Pacha Ravi
Definition:
Drafting
Series goal:
None
Implementation:
Unknown
Milestone target:
milestone icon zed-rc1

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.