5fca287eb5
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
388 lines
17 KiB
XML
388 lines
17 KiB
XML
<?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 > 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> ><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>
|