c71296175f
The XML root element of Docbook XML files should match the following format: <ELEMENT xmlns="http://docbook.org/ns/docbook" xmlns:xi="http://www.w3.org/2001/XInclude" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="THE_XML_ID_OF_THE_ELEMENT"> Change-Id: I47786e5f70b64e1b14d1015ec5613a538ef8fc52
95 lines
4.5 KiB
XML
95 lines
4.5 KiB
XML
<section xmlns="http://docbook.org/ns/docbook"
|
||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||
version="5.0"
|
||
xml:id="s-cinder-api">
|
||
|
||
<title>Highly available Block Storage API</title>
|
||
|
||
<para>Making the Block Storage (cinder) API service highly available in active / passive mode involves</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para>
|
||
Configure Block Storage to listen on the VIP address,
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
managing Block Storage API daemon with the Pacemaker cluster manager,
|
||
</para>
|
||
</listitem>
|
||
<listitem>
|
||
<para>
|
||
Configure OpenStack services to use this IP address.
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<note>
|
||
<para>Here is the
|
||
<link xlink:href="http://docs.openstack.org/trunk/install-guide/install/apt/content/ch_cinder.html">documentation</link>
|
||
for installing Block Storage service.</para>
|
||
</note>
|
||
<section xml:id="_add_block_storage_api_resource_to_pacemaker">
|
||
|
||
<title>Add Block Storage API resource to Pacemaker</title>
|
||
|
||
<para>First of all, you need to download the resource agent to your system:</para>
|
||
<screen><prompt>#</prompt> <userinput>cd /usr/lib/ocf/resource.d/openstack</userinput>
|
||
<prompt>#</prompt> <userinput>wget https://raw.github.com/madkiss/openstack-resource-agents/master/ocf/cinder-api</userinput>
|
||
<prompt>#</prompt> <userinput>chmod a+rx *</userinput></screen>
|
||
<para>You can now add the Pacemaker configuration for
|
||
Block Storage API resource. Connect to the Pacemaker cluster with <literal>crm
|
||
configure</literal>, and add the following cluster resources:</para>
|
||
<programlisting>primitive p_cinder-api ocf:openstack:cinder-api \
|
||
params config="/etc/cinder/cinder.conf" os_password="secrete" os_username="admin" \
|
||
os_tenant_name="admin" keystone_get_token_url="http://192.168.42.103:5000/v2.0/tokens" \
|
||
op monitor interval="30s" timeout="30s"</programlisting>
|
||
<para>This configuration creates</para>
|
||
<itemizedlist>
|
||
<listitem>
|
||
<para><literal>p_cinder-api</literal>, a resource for manage Block Storage API service
|
||
</para>
|
||
</listitem>
|
||
</itemizedlist>
|
||
<para><literal>crm configure</literal> 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 <literal>edit p_ip_cinder-api</literal> from the
|
||
<literal>crm configure</literal> menu and edit the resource to match your preferred
|
||
virtual IP address.</para>
|
||
<para>Once completed, commit your configuration changes by entering <literal>commit</literal>
|
||
from the <literal>crm configure</literal> menu. Pacemaker will then start the Block Storage API
|
||
service, and its dependent resources, on one of your nodes.</para>
|
||
</section>
|
||
<section xml:id="_configure_block_storage_api_service">
|
||
|
||
<title>Configure Block Storage API service</title>
|
||
|
||
<para>Edit <filename>/etc/cinder/cinder.conf</filename>:</para>
|
||
<programlisting language="ini"># 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</programlisting>
|
||
</section>
|
||
<section xml:id="_configure_openstack_services_to_use_highly_available_block_storage_api">
|
||
|
||
<title>Configure OpenStack services to use highly available Block Storage API</title>
|
||
|
||
<para>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.</para>
|
||
<para>You must create the Block Storage API endpoint with this IP.</para>
|
||
<note>
|
||
<para>If you are using both private and public IP, you should create two Virtual IPs and define your endpoint like this:</para>
|
||
</note>
|
||
<screen><prompt>$</prompt> <userinput>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'</userinput></screen>
|
||
</section>
|
||
</section>
|