openstack-manuals/doc/install-guide/section_cinder-controller.xml
Don Domingo 5fca287eb5 Apply service name conventions for Block Storage
There are several instances of "Block Storage Service" in the
upstream documentation. As was recently clarified in the docs
mailing list, these should be "Block Storage service". This patch
applies the fix.

Change-Id: I591c100ab031b75f1c0d27d45f53e32401a26e30
Partial-Bug: #1217503
2014-03-26 15:31:17 +10:00

173 lines
9.7 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="cinder-controller">
<title>Configure a Block Storage service controller</title>
<note>
<para>This section describes how to configure OpenStack Block Storage
services on the <glossterm baseform="controller node">Controller node</glossterm>
and assumes that a
second node provides storage through the <systemitem
class="service">cinder-volume</systemitem> service. For
instructions on how to configure the second node, see <xref
linkend="cinder-node"/>.</para>
</note>
<para>You can configure OpenStack to use various storage systems.
The examples in this guide show you how to configure LVM.</para>
<procedure>
<step>
<para>Install the appropriate packages for the Block Storage
service:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install cinder-api cinder-scheduler</userinput></screen>
<screen os="centos;rhel;fedora"><prompt>#</prompt> <userinput>yum install openstack-cinder</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-cinder-api openstack-cinder-scheduler</userinput></screen>
</step>
<step os="debian">
<para>Respond to the prompts for <link
linkend="debconf-dbconfig-common">database
management</link>, <link linkend="debconf-keystone_authtoken"
><literal>[keystone_authtoken]</literal> settings</link>,
<link linkend="debconf-rabbitqm">RabbitMQ credentials</link>
and <link linkend="debconf-api-endpoints">API endpoint</link>
registration.</para>
</step>
<step os="ubuntu;rhel;centos;fedora;opensuse;sles">
<para>Configure Block Storage to use your MySQL database. Edit the
<filename>/etc/cinder/cinder.conf</filename> file and add the
following key under the <literal>[database]</literal> section.
Replace <replaceable>CINDER_DBPASS</replaceable> with the password
for the Block Storage database that you will create in a later step.
</para>
<note os="ubuntu"><para>The <filename>/etc/cinder/cinder.conf</filename>
file packaged with some distributions does not include the
<literal>[database]</literal> section header. You must add this
section header to the end of the file before proceeding further.</para>
</note>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
database connection mysql://cinder:<replaceable>CINDER_DBPASS</replaceable>@<replaceable>controller</replaceable>/cinder</userinput></screen>
<programlisting os="ubuntu" language="ini">[database]
...
connection = mysql://cinder:<replaceable>CINDER_DBPASS</replaceable>@<replaceable>controller</replaceable>/cinder</programlisting>
</step>
<step os="rhel;centos;fedora;opensuse;sles">
<para>To create the Block Storage service database and tables
and a <literal>cinder</literal> database user, run the
<command>openstack-db</command> command.</para>
<screen><prompt>#</prompt> <userinput>openstack-db --init --service cinder --password <replaceable>CINDER_DBPASS</replaceable></userinput></screen>
</step>
<step os="ubuntu">
<para>Use the password that you set to log in as root to create
a <literal>cinder</literal> database.</para>
<screen><prompt>$</prompt> <userinput>mysql -u root -p</userinput>
<prompt>mysql></prompt> <userinput>CREATE DATABASE cinder;</userinput>
<prompt>mysql></prompt> <userinput>GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' \
IDENTIFIED BY '<replaceable>CINDER_DBPASS</replaceable>';</userinput>
<prompt>mysql></prompt> <userinput>GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' \
IDENTIFIED BY '<replaceable>CINDER_DBPASS</replaceable>';</userinput></screen>
</step>
<step os="ubuntu">
<para>Create the database tables for the Block Storage
service.</para>
<screen><prompt>#</prompt> <userinput>cinder-manage db sync</userinput></screen>
</step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Create a <literal>cinder</literal> user. The Block Storage
service uses this user to authenticate with the Identity
service. Use the <literal>service</literal> tenant and give
the user the <literal>admin</literal> role.</para>
<screen><prompt>$</prompt> <userinput>keystone user-create --name=cinder --pass=<replaceable>CINDER_PASS</replaceable> --email=<replaceable>cinder@example.com</replaceable></userinput>
<prompt>$</prompt> <userinput>keystone user-role-add --user=cinder --tenant=service --role=admin</userinput></screen>
</step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Add the credentials to the file
<filename>/etc/cinder/api-paste.ini</filename>. Open the
file in a text editor and locate the section
<literal>[filter:authtoken]</literal>. Set the following
options:</para>
<programlisting language="ini">[filter:authtoken]
paste.filter_factory=keystoneclient.middleware.auth_token:filter_factory
auth_host=<replaceable>controller</replaceable>
auth_port = 35357
auth_protocol = http
auth_uri = http://<replaceable>controller</replaceable>:5000
admin_tenant_name=service
admin_user=cinder
admin_password=<replaceable>CINDER_PASS</replaceable>
</programlisting>
</step>
<step os="ubuntu">
<para>Configure Block Storage to use the RabbitMQ message
broker by setting these configuration keys in the
<literal>[DEFAULT]</literal> configuration group of the
<filename>/etc/cinder/cinder.conf</filename> file. Replace
<replaceable>RABBIT_PASS</replaceable> with the password you
chose for RabbitMQ.</para>
<programlisting language="ini">[DEFAULT]
...
rpc_backend = cinder.openstack.common.rpc.impl_kombu
rabbit_host = <replaceable>controller</replaceable>
rabbit_port = 5672
rabbit_userid = guest
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
</step>
<step os="rhel;centos;fedora">
<para>Configure Block Storage to use the Qpid message broker.</para>
<screen><prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rpc_backend cinder.openstack.common.rpc.impl_qpid</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT qpid_hostname controller</userinput></screen>
</step>
<step os="sles;opensuse">
<para>Configure Block Storage to use the RabbitMQ message broker.
Replace <replaceable>RABBIT_PASS</replaceable> with the password
you chose for RabbitMQ.</para>
<screen><prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rpc_backend cinder.openstack.common.rpc.impl_kombu</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_host controller</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_port 5672</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_password <replaceable>RABBIT_PASS</replaceable></userinput></screen>
</step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Register the Block Storage service with the Identity
Service so that other OpenStack services can locate it.
Register the service and specify the endpoint using the
<command>keystone</command> command.</para>
<screen><prompt>$</prompt> <userinput>keystone service-create --name=cinder --type=volume \
--description="OpenStack Block Storage"</userinput>
<prompt>$</prompt> <userinput>keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ volume / {print $2}') \
--publicurl=http://<replaceable>controller</replaceable>:8776/v1/%\(tenant_id\)s \
--internalurl=http://<replaceable>controller</replaceable>:8776/v1/%\(tenant_id\)s \
--adminurl=http://<replaceable>controller</replaceable>:8776/v1/%\(tenant_id\)s</userinput></screen>
</step>
<step os="rhel;centos;fedora;opensuse;sles;ubuntu">
<para>Also register a service and endpoint for version 2 of the
Block Storage service API.</para>
<screen><prompt>#</prompt> <userinput>keystone service-create --name=cinderv2 --type=volumev2 \
--description="OpenStack Block Storage v2"</userinput>
<prompt>$</prompt> <userinput>keystone endpoint-create \
--service-id=$(keystone service-list | awk '/ volumev2 / {print $2}') \
--publicurl=http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--internalurl=http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s \
--adminurl=http://<replaceable>controller</replaceable>:8776/v2/%\(tenant_id\)s</userinput></screen>
</step>
<step os="ubuntu">
<para>Restart the cinder service with its new settings:</para>
<screen><prompt>#</prompt> <userinput>service cinder-scheduler restart</userinput>
<prompt>#</prompt> <userinput>service cinder-api restart</userinput></screen>
</step>
<step os="rhel;fedora;centos;opensuse;sles">
<para>Start the cinder services and configure them to start when
the system boots.</para>
<screen os="rhel;fedora;centos;opensuse;sles"><prompt>#</prompt> <userinput>service openstack-cinder-api start</userinput>
<prompt>#</prompt> <userinput>service openstack-cinder-scheduler start</userinput>
<prompt>#</prompt> <userinput>chkconfig openstack-cinder-api on</userinput>
<prompt>#</prompt> <userinput>chkconfig openstack-cinder-scheduler on</userinput></screen>
</step>
</procedure>
</section>