18be804cdb
Follow our conventions for title capitalization and usage of project/service names. Follow conventions on using active voice, no -ing for titles. Co-Authored-By: Diane Fleming <diane.fleming@rackspace.com> Change-Id: I05e368f8dda436454d2daca1a6775105032a39fc Partial-Bug: #1217503
75 lines
2.6 KiB
Plaintext
75 lines
2.6 KiB
Plaintext
[[s-cinder-api]]
|
|
==== Highly available Block Storage API
|
|
|
|
Making the Block Storage (cinder) API service highly available in active / passive mode involves
|
|
|
|
* Configure Block Storage to listen on the VIP address,
|
|
* managing Block Storage API daemon with the Pacemaker cluster manager,
|
|
* Configure OpenStack services to use this IP address.
|
|
|
|
NOTE: Here is the
|
|
http://docs.openstack.org/trunk/install-guide/install/apt/content/ch_cinder.html[documentation]
|
|
for installing Block Storage service.
|
|
|
|
|
|
===== Add Block Storage API resource to Pacemaker
|
|
|
|
First of all, you need to download the resource agent to your system:
|
|
|
|
----
|
|
cd /usr/lib/ocf/resource.d/openstack
|
|
wget https://raw.github.com/madkiss/openstack-resource-agents/master/ocf/cinder-api
|
|
chmod a+rx *
|
|
----
|
|
|
|
You can now add the Pacemaker configuration for
|
|
Block Storage API resource. Connect to the Pacemaker cluster with +crm
|
|
configure+, and add the following cluster resources:
|
|
|
|
----
|
|
include::includes/pacemaker-cinder_api.crm[]
|
|
----
|
|
|
|
This configuration creates
|
|
|
|
* +p_cinder-api+, a resource for manage Block Storage API service
|
|
|
|
+crm configure+ supports batch input, so you may copy and paste the
|
|
above into your live pacemaker configuration, and then make changes as
|
|
required. For example, you may enter +edit p_ip_cinder-api+ from the
|
|
+crm configure+ menu and edit the resource to match your preferred
|
|
virtual IP address.
|
|
|
|
Once completed, commit your configuration changes by entering +commit+
|
|
from the +crm configure+ menu. Pacemaker will then start the Block Storage API
|
|
service, and its dependent resources, on one of your nodes.
|
|
|
|
===== Configure Block Storage API service
|
|
|
|
Edit +/etc/cinder/cinder.conf+:
|
|
----
|
|
# We have to use MySQL connection to store data:
|
|
sql_connection=mysql://cinder:password@192.168.42.101/cinder
|
|
|
|
# We bind Block Storage API to the VIP:
|
|
osapi_volume_listen = 192.168.42.103
|
|
|
|
# We send notifications to High Available RabbitMQ:
|
|
notifier_strategy = rabbit
|
|
rabbit_host = 192.168.42.102
|
|
----
|
|
|
|
|
|
===== Configure OpenStack services to use highly available Block Storage API
|
|
|
|
Your OpenStack services must now point their Block Storage API configuration to
|
|
the highly available, virtual cluster IP address -- rather than a
|
|
Block Storage API server's physical IP address as you normally would.
|
|
|
|
You must create the Block Storage API endpoint with this IP.
|
|
|
|
NOTE: If you are using both private and public IP, you should create two Virtual IPs and define your endpoint like this:
|
|
----
|
|
keystone endpoint-create --region $KEYSTONE_REGION --service-id $service-id --publicurl 'http://PUBLIC_VIP:8776/v1/%(tenant_id)s' --adminurl 'http://192.168.42.103:8776/v1/%(tenant_id)s' --internalurl 'http://192.168.42.103:8776/v1/%(tenant_id)s'
|
|
----
|