openstack-manuals/doc/config-reference/block-storage/drivers/coraid-driver.xml
Christian Berendt 6d17f8e033 fixed several prompts inside screen environments
Change-Id: Ide1e0d529014363474c1026c1d11cb169074734f
2014-05-06 23:18:13 +02:00

388 lines
17 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xmlns:xi="http://www.w3.org/2001/XInclude"
xml:id="coraid_aoe_driver_configuration">
<title>Coraid AoE driver configuration</title>
<para>Coraid storage appliances can provide block-level storage to
OpenStack instances. Coraid storage appliances use the low-latency
ATA-over-Ethernet (ATA) protocol to provide high-bandwidth data
transfer between hosts and data on the network.</para>
<para>Once configured for OpenStack, you can:</para>
<itemizedlist>
<listitem>
<para>Create, delete, attach, and detach block storage
volumes.</para>
</listitem>
<listitem>
<para>Create, list, and delete volume snapshots.</para>
</listitem>
<listitem>
<para>Create a volume from a snapshot, copy an image to a
volume, copy a volume to an image, clone a volume, and get
volume statistics.</para>
</listitem>
</itemizedlist>
<para>This document describes how to configure the OpenStack Block
Storage service for use with Coraid storage appliances.</para>
<section xml:id="coraid_terminology">
<title>Terminology</title>
<para>These terms are used in this section:</para>
<informaltable rules="all">
<thead>
<tr>
<th>Term</th>
<th>Definition</th>
</tr>
</thead>
<tbody>
<tr>
<td>AoE</td>
<td>ATA-over-Ethernet protocol</td>
</tr>
<tr>
<td>EtherCloud Storage Manager (ESM)</td>
<td>ESM provides live monitoring and management of
EtherDrive appliances that use the AoE protocol, such as
the SRX and VSX.</td>
</tr>
<tr>
<td>Fully-Qualified Repository Name (FQRN)</td>
<td>The FQRN is the full identifier of a storage profile.
FQRN syntax is:
<replaceable>performance_class</replaceable><command>-</command><replaceable>availability_class</replaceable><command>:</command><replaceable>profile_name</replaceable><command>:</command><replaceable>repository_name</replaceable></td>
</tr>
<tr>
<td>SAN</td>
<td>Storage Area Network</td>
</tr>
<tr>
<td>SRX</td>
<td>Coraid EtherDrive SRX block storage appliance</td>
</tr>
<tr>
<td>VSX</td>
<td>Coraid EtherDrive VSX storage virtualization
appliance</td>
</tr>
</tbody>
</informaltable>
</section>
<section xml:id="coraid_requirements">
<title>Requirements</title>
<para>To support the OpenStack Block Storage service, your SAN
must include an SRX for physical storage, a VSX running at least
CorOS v2.0.6 for snapshot support, and an ESM running at least
v2.1.1 for storage repository orchestration. Ensure that all
storage appliances are installed and connected to your network
before you configure OpenStack volumes.</para>
<para>In order for the node to communicate with the SAN, you must
install the Coraid AoE Linux driver on each Compute node on the
network that runs an OpenStack instance.</para>
</section>
<section xml:id="coraid_overview">
<title>Overview</title>
<para>To configure the OpenStack Block Storage for use with Coraid
storage appliances, perform the following procedures:</para>
<procedure>
<step>
<para><link linkend="coraid_installing_aoe_driver">Download
and install the Coraid Linux AoE driver</link>.</para>
</step>
<step>
<para><link linkend="coraid_creating_storage_profile">Create a
storage profile by using the Coraid ESM GUI</link>.</para>
</step>
<step>
<para><link linkend="coraid_creating_storage_repository"
>Create a storage repository by using the ESM GUI and
record the FQRN</link>.</para>
</step>
<step>
<para><link linkend="coraid_configuring_cinder.conf">Configure
the <filename>cinder.conf</filename> file</link>.</para>
</step>
<step>
<para><link linkend="coraid_creating_associating_volume_type"
>Create and associate a block storage volume
type</link>.</para>
</step>
</procedure>
</section>
<section xml:id="coraid_installing_aoe_driver">
<title>Install the Coraid AoE driver</title>
<para>Install the Coraid AoE driver on every compute node that
will require access to block storage.</para>
<para>The latest AoE drivers will always be located at <link
xlink:href="http://support.coraid.com/support/linux/"
>http://support.coraid.com/support/linux/</link>.</para>
<para>To download and install the AoE driver, follow the
instructions below, replacing “aoeXXX” with the AoE driver file
name:</para>
<procedure>
<step>
<para>Download the latest Coraid AoE driver.</para>
<para>
<screen><prompt>$</prompt> <userinput>wget http://support.coraid.com/support/linux/aoeXXX.tar.gz</userinput></screen>
</para>
</step>
<step>
<para>Unpack the AoE driver.</para>
</step>
<step>
<para>Install the AoE driver.</para>
<screen><prompt>$</prompt> <userinput>cd aoeXXX</userinput></screen>
<screen><prompt>$</prompt> <userinput>make</userinput></screen>
<screen><prompt>#</prompt> <userinput>make install</userinput></screen>
</step>
<step>
<para>Initialize the AoE driver.</para>
<para>
<screen><prompt>#</prompt> <userinput>modprobe aoe</userinput></screen>
</para>
</step>
<step>
<para>Optionally, specify the Ethernet interfaces that the
node can use to communicate with the SAN.</para>
<para>The AoE driver may use every Ethernet interface
available to the node unless limited with the
<literal>aoe_iflist</literal> parameter. For more
information about the <literal>aoe_iflist</literal>
parameter, see the <filename>aoe readme</filename> file
included with the AoE driver.</para>
<para>
<screen><prompt>#</prompt> <userinput>modprobe aoe_iflist="<replaceable>eth1 eth2 ...</replaceable>"</userinput></screen>
</para>
</step>
</procedure>
</section>
<section xml:id="coraid_creating_storage_profile">
<title>Create a storage profile</title>
<para>To create a storage profile using the ESM GUI:</para>
<procedure>
<step>
<para>Log in to the ESM.</para>
</step>
<step>
<para>Click <guibutton>Storage Profiles</guibutton> in the
<guilabel>SAN Domain</guilabel> pane.</para>
</step>
<step>
<para>Choose <guimenuitem>Menu &gt; Create Storage
Profile</guimenuitem>. If the option is unavailable, you
might not have appropriate permissions. Make sure you are
logged in to the ESM as the SAN administrator.</para>
</step>
<step>
<para>Use the storage class selector to select a storage
class.</para>
<para>Each storage class includes performance and availability
criteria (see the Storage Classes topic in the ESM Online
Help for information on the different options).</para>
</step>
<step>
<para>Select a RAID type (if more than one is available) for
the selected profile type.</para>
</step>
<step>
<para>Type a <guilabel>Storage Profile</guilabel> name.</para>
<para>The name is restricted to alphanumeric characters,
underscore (_), and hyphen (-), and cannot exceed 32
characters.</para>
</step>
<step>
<para>Select the drive size from the drop-down menu.</para>
</step>
<step>
<para>Select the number of drives to be initialized for each
RAID (LUN) from the drop-down menu (if the selected RAID
type requires multiple drives).</para>
</step>
<step>
<para>Type the number of RAID sets (LUNs) you want to create
in the repository by using this profile.</para>
</step>
<step>
<para>Click <guibutton>Next</guibutton>.</para>
</step>
</procedure>
</section>
<section xml:id="coraid_creating_storage_repository">
<title>Create a storage repository and get the FQRN</title>
<para>Create a storage repository and get its fully qualified
repository name (FQRN):</para>
<procedure>
<step>
<para>Access the <guilabel>Create Storage
Repository</guilabel> dialog box.</para>
</step>
<step>
<para>Type a Storage Repository name.</para>
<para>The name is restricted to alphanumeric characters,
underscore (_), hyphen (-), and cannot exceed 32
characters.</para>
</step>
<step>
<para>Click <guibutton>Limited</guibutton> or
<guibutton>Unlimited</guibutton> to indicate the maximum
repository size.</para>
<para><guibutton>Limited</guibutton> sets the amount of space
that can be allocated to the repository. Specify the size in
TB, GB, or MB.</para>
<para>When the difference between the reserved space and the
space already allocated to LUNs is less than is required by
a LUN allocation request, the reserved space is increased
until the repository limit is reached.</para>
<note>
<para>The reserved space does not include space used for
parity or space used for mirrors. If parity and/or mirrors
are required, the actual space allocated to the repository
from the SAN is greater than that specified in reserved
space.</para>
</note>
<para><emphasis role="bold">Unlimited</emphasis>—Unlimited
means that the amount of space allocated to the repository
is unlimited and additional space is allocated to the
repository automatically when space is required and
available.</para>
<note>
<para>Drives specified in the associated Storage Profile
must be available on the SAN in order to allocate
additional resources.</para>
</note>
</step>
<step>
<para>Check the <guibutton>Resizeable LUN</guibutton>
box.</para>
<para>This is required for OpenStack volumes.</para>
<note>
<para>If the Storage Profile associated with the repository
has platinum availability, the Resizeable LUN box is
automatically checked.</para>
</note>
</step>
<step>
<para>Check the <guibutton>Show Allocation Plan API
calls</guibutton> box. Click
<guibutton>Next</guibutton>.</para>
</step>
<step>
<para>Record the FQRN and click
<guibutton>Finish</guibutton>.</para>
<para>The FQRN is located in the first line of output
following the <literal>Plan</literal> keyword in the
<guilabel>Repository Creation Plan</guilabel> window. The
FQRN syntax is
<replaceable>performance_class</replaceable><command>-</command><replaceable>availability_class</replaceable><command>:</command><replaceable>profile_name</replaceable><command>:</command><replaceable>repository_name</replaceable>.</para>
<para>In this example, the FQRN is
<literal>Bronze-Platinum:BP1000:OSTest</literal>, and is
highlighted.</para>
<figure>
<title>Repository Creation Plan screen</title>
<mediaobject>
<imageobject>
<imagedata
fileref="../../../common/figures/coraid/Repository_Creation_Plan_screen.png"
/>
</imageobject>
</mediaobject>
</figure>
<para>Record the FQRN; it is a required parameter later in the
configuration procedure.</para>
</step>
</procedure>
</section>
<section xml:id="coraid_configuring_cinder.conf">
<title>Configure options in the cinder.conf file</title>
<para>Edit or add the following lines to the file<filename>
/etc/cinder/cinder.conf</filename>:</para>
<programlisting language="ini">volume_driver = cinder.volume.drivers.coraid.CoraidDriver
coraid_esm_address = <replaceable>ESM_IP_address</replaceable>
coraid_user = <replaceable>username</replaceable>
coraid_group = <replaceable>Access_Control_Group_name</replaceable>
coraid_password = <replaceable>password</replaceable>
coraid_repository_key = <replaceable>coraid_repository_key</replaceable></programlisting>
<xi:include href="../../../common/tables/cinder-coraid.xml"/>
<para>Access to storage devices and storage repositories can be
controlled using Access Control Groups configured in ESM.
Configuring <filename>cinder.conf</filename> to log on to ESM as
the SAN administrator (user name <literal>admin</literal>), will
grant full access to the devices and repositories configured in
ESM.</para>
<para>Optionally, you can configure an ESM Access Control Group
and user. Then, use the <filename>cinder.conf</filename> file to
configure access to the ESM through that group, and user limits
access from the OpenStack instance to devices and storage
repositories that are defined in the group.</para>
<para>To manage access to the SAN by using Access Control Groups,
you must enable the Use Access Control setting in the <emphasis
role="bold">ESM System Setup</emphasis> &gt;<emphasis
role="bold"> Security</emphasis> screen.</para>
<para>For more information, see the ESM Online Help.</para>
</section>
<section xml:id="coraid_creating_associating_volume_type">
<title>Create and associate a volume type</title>
<para>Create and associate a volume with the ESM storage
repository.</para>
<procedure>
<step>
<para>Restart Cinder.</para>
<screen><prompt>#</prompt> <userinput>service openstack-cinder-api restart</userinput></screen>
<screen><prompt>#</prompt> <userinput>service openstack-cinder-scheduler restart</userinput></screen>
<screen><prompt>#</prompt> <userinput>service openstack-cinder-volume restart</userinput></screen>
</step>
<step>
<para>Create a volume.</para>
<screen><prompt>$</prompt> <userinput>cinder type-create <replaceable>volume_type_name</replaceable></userinput></screen>
<para>where <replaceable>volume_type_name</replaceable> is the
name you assign the volume. You will see output similar to
the following:</para>
<screen><computeroutput>+--------------------------------------+-------------+
| ID | Name |
+--------------------------------------+-------------+
| 7fa6b5ab-3e20-40f0-b773-dd9e16778722 | JBOD-SAS600 |
+--------------------------------------+-------------+</computeroutput></screen>
<para>Record the value in the ID field; you use this
value in the next step.</para>
</step>
<step>
<para>Associate the volume type with the Storage
Repository.</para>
<para>
<screen><prompt>#</prompt> <userinput>cinder type-key <replaceable>UUID</replaceable> set <replaceable>coraid_repository_key</replaceable>=<replaceable>FQRN</replaceable></userinput></screen>
</para>
<informaltable rules="all">
<thead>
<tr>
<th align="center">Variable</th>
<th align="center">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><replaceable>UUID</replaceable></td>
<td>The ID returned from the <command>cinder
type-create</command> command. You can use the
<command>cinder type-list</command> command to recover
the ID.</td>
</tr>
<tr>
<td><replaceable>coraid_repository_key</replaceable></td>
<td>The key name used to associate the Cinder volume
type with the ESM in the
<filename>cinder.conf</filename> file. If no key
name was defined, this is default value for
<literal>coraid_repository</literal>.</td>
</tr>
<tr>
<td><replaceable>FQRN</replaceable></td>
<td>The FQRN recorded during the Create Storage
Repository process.</td>
</tr>
</tbody>
</informaltable>
</step>
</procedure>
</section>
</section>