openstack-manuals/doc/install-guide/section_cinder-node.xml
2014-09-15 12:31:59 +00:00

232 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<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-install-storage-node">
<?dbhtml stop-chunking?>
<title>Configure a Block Storage service node</title>
<para>After you configure the services on the controller node,
configure a second system to be a Block Storage service node. This
node contains the disk that serves volumes.</para>
<para>You can configure OpenStack to use various storage systems.
This example uses LVM.</para>
<procedure>
<step>
<para>Use the instructions in <xref linkend="ch_basic_environment"/> to
configure the system. Note the following differences from the
installation instructions for the controller node:</para>
<itemizedlist>
<listitem>
<para>Set the host name to <literal>block1</literal> and use
<literal>10.0.0.41</literal> as IP address on the management
network interface. Ensure that the IP addresses and host
names for both controller node and Block Storage service
node are listed in the <filename>/etc/hosts</filename> file
on each system.</para>
</listitem>
<listitem>
<para>Follow the instructions in <xref linkend="basics-ntp"
/> to synchronize from the controller node.</para>
</listitem>
</itemizedlist>
</step>
<step os="ubuntu">
<para>Install the required LVM packages, if they are not already
installed:</para>
<screen><prompt>#</prompt> <userinput>apt-get install lvm2</userinput></screen>
</step>
<step>
<para>Create the LVM physical volume and volume group. This guide
assumes a second disk <literal>/dev/sdb</literal> that is used
for this purpose:</para>
<screen><prompt>#</prompt> <userinput>pvcreate /dev/sdb</userinput>
<prompt>#</prompt> <userinput>vgcreate cinder-volumes /dev/sdb</userinput></screen>
</step>
<step>
<para>Add a filter entry to the <literal>devices</literal>
section in the <filename>/etc/lvm/lvm.conf</filename> file to
keep LVM from scanning devices used by virtual
machines:</para>
<programlisting>devices {
...
filter = [ "a/sda1/", "a/sdb/", "r/.*/"]
...
}</programlisting>
<note>
<para>You must add required physical volumes for LVM on the
Block Storage host. Run the <command>pvdisplay</command>
command to get a list or required volumes.</para>
</note>
<para>Each item in the filter array starts with either an
<literal>a</literal> for accept, or an <literal>r</literal>
for reject. The physical volumes that are required on the
Block Storage host have names that begin with
<literal>a</literal>. The array must end with
"<literal>r/.*/</literal>" to reject any device not
listed.</para>
<para>In this example, <literal>/dev/sda1</literal> is the
volume where the volumes for the operating system for the node
reside, while <literal>/dev/sdb</literal> is the volume
reserved for <literal>cinder-volumes</literal>.</para>
</step>
<step>
<para>After you configure the operating system, install the
appropriate packages for the Block Storage service:</para>
<screen os="ubuntu;debian"><prompt>#</prompt> <userinput>apt-get install cinder-volume</userinput></screen>
<screen os="centos;rhel;fedora"><prompt>#</prompt> <userinput>yum install openstack-cinder-volume targetcli</userinput></screen>
<screen os="opensuse;sles"><prompt>#</prompt> <userinput>zypper install openstack-cinder-volume tgt</userinput></screen>
</step>
<step os="fedora;rhel;centos">
<para>Start and enable the target service.</para>
<screen><prompt>#</prompt> <userinput>service target start</userinput>
<prompt>#</prompt> <userinput>chkconfig target on</userinput></screen>
</step>
<step os="debian">
<para>Respond to the <systemitem class="library"
>debconf</systemitem> prompts about the <link
linkend="debconf-dbconfig-common">database
management</link>, <link linkend="debconf-keystone_authtoken"
><literal>[keystone_authtoken]</literal> settings</link>,
and <link linkend="debconf-rabbitmq">RabbitMQ
credentials</link>. Make sure to enter the same details as
you did for your Block Storage service controller node.</para>
<para>Another screen prompts you for the <systemitem
class="library">volume-group</systemitem> to use. The Debian
package configuration script detects every active volume group
and tries to use the first one it sees, provided that the
<systemitem class="library">lvm2</systemitem> package was
installed before Block Storage. This should be the case if you
configured the volume group first, as this guide recommends.</para>
<para>If you have only one active volume group on your Block
Storage service node, you do not need to manually enter its
name when you install the <systemitem class="service"
>cinder-volume</systemitem> package because it is detected
automatically. If no <systemitem class="library"
>volume-group</systemitem> is available when you install
<systemitem class="service">cinder-common</systemitem>, you
must use <command>dpkg-reconfigure</command> to manually
configure or re-configure <systemitem class="service"
>cinder-common</systemitem>.</para>
</step>
<step os="fedora;rhel;centos;opensuse;sles;ubuntu">
<para os="fedora;rhel;centos;opensuse;sles">Copy the
<filename>/etc/cinder/cinder.conf</filename> configuration
file from the controller, or perform the following steps to
set the keystone credentials:</para>
<screen os="fedora;rhel;centos;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf DEFAULT \
auth_strategy keystone</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
auth_uri http://<replaceable>controller</replaceable>:5000</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
auth_host <replaceable>controller</replaceable></userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
auth_protocol http</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
auth_port 35357</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
admin_user cinder</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
admin_tenant_name service</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf keystone_authtoken \
admin_password <replaceable>CINDER_PASS</replaceable></userinput></screen>
<para os="ubuntu">Edit the
<filename>/etc/cinder/cinder.conf</filename> configuration
file and add this section for keystone credentials:</para>
<programlisting os="ubuntu" language="ini">...
[keystone_authtoken]
auth_uri = http://<replaceable>controller</replaceable>:5000
auth_host = <replaceable>controller</replaceable>
auth_port = 35357
auth_protocol = http
admin_tenant_name = service
admin_user = cinder
admin_password = <replaceable>CINDER_PASS</replaceable></programlisting>
</step>
<step os="fedora;rhel;centos">
<para>Configure Block Storage to use the lioadm iscsi_helper:</para>
<screen os="fedora;rhel;centos">
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT iscsi_helper lioadm</userinput></screen>
</step>
<step os="ubuntu">
<para>Configure Block Storage to use the RabbitMQ message
broker.</para>
<para>In the <literal>[DEFAULT]</literal> configuration section
of the <filename>/etc/cinder/cinder.conf</filename> file, set
these configuration keys and replace
<replaceable>RABBIT_PASS</replaceable> with the password you
chose for RabbitMQ:</para>
<programlisting language="ini">[DEFAULT]
...
rpc_backend = rabbit
rabbit_host = <replaceable>controller</replaceable>
rabbit_port = 5672
rabbit_userid = guest
rabbit_password = <replaceable>RABBIT_PASS</replaceable></programlisting>
</step>
<step os="sles;opensuse;rhel;centos;fedora">
<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 rabbit</userinput>
<prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT rabbit_host <replaceable>controller</replaceable></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="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 to the <literal>[database]</literal>
section. Replace <replaceable>CINDER_DBPASS</replaceable> with
the password you chose for the Block Storage database:</para>
<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>
<note os="ubuntu">
<para>In some distributions, the
<filename>/etc/cinder/cinder.conf</filename> file does not
include the <literal>[database]</literal> section header.
You must add this section header to the end of the file
before you proceed.</para>
</note>
</step>
<step>
<para>Configure Block Storage to use the Image Service. Block Storage
needs access to images to create bootable volumes. Edit the
<filename>/etc/cinder/cinder.conf</filename> file and update the
<option>glance_host</option> option in the <literal>[DEFAULT]</literal>
section:</para>
<screen os="rhel;centos;fedora;opensuse;sles"><prompt>#</prompt> <userinput>openstack-config --set /etc/cinder/cinder.conf \
DEFAULT glance_host <replaceable>controller</replaceable></userinput></screen>
<programlisting os="ubuntu;debian" language="ini">[DEFAULT]
...
glance_host = <replaceable>controller</replaceable></programlisting>
</step>
<step os="ubuntu">
<para>Restart the Block Storage services with the new
settings:</para>
<screen><prompt>#</prompt> <userinput>service cinder-volume restart</userinput>
<prompt>#</prompt> <userinput>service tgt restart</userinput></screen>
</step>
<step os="opensuse;sles">
<para>Start and configure the Block Storage services to start
when the system boots:</para>
<screen><prompt>#</prompt> <userinput>service tgtd start</userinput>
<prompt>#</prompt> <userinput>chkconfig tgtd on</userinput></screen>
</step>
<step os="rhel;centos;fedora;opensuse;sles">
<para>Start and configure the cinder volume service to start
when the system boots:</para>
<screen><prompt>#</prompt> <userinput>chkconfig openstack-cinder-volume on</userinput>
<prompt>#</prompt> <userinput>service openstack-cinder-volume start</userinput></screen>
</step>
</procedure>
</section>