openstack-manuals/doc/admin-guide-cloud/ch_blockstorage.xml

175 lines
9.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section [
<!ENTITY % openstack SYSTEM "../common/entities/openstack.ent">
%openstack;
]>
<chapter 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="managing-volumes">
<title>Block Storage</title>
<para>The OpenStack Block Storage service works through the
interaction of a series of daemon processes named <systemitem
class="daemon">cinder-*</systemitem> that reside
persistently on the host machine or machines. The binaries can
all be run from a single node, or spread across multiple
nodes. They can also be run on the same node as other
OpenStack services.</para>
<section xml:id="section_block-storage-intro">
<title>Introduction to Block Storage</title>
<para>To administer the OpenStack Block Storage service, it is
helpful to understand a number of concepts. You must make
certain choices when you configure the Block Storage
service in OpenStack. The bulk of the options come down to
two choices, single node or multi-node install. You can
read a longer discussion about storage decisions in <link
xlink:href="http://docs.openstack.org/openstack-ops/content/storage_decision.html"
>Storage Decisions</link> in the <citetitle>OpenStack
Operations Guide</citetitle>.</para>
<para>OpenStack Block Storage enables you to add extra
block-level storage to your OpenStack Compute instances.
This service is similar to the Amazon EC2 Elastic Block
Storage (EBS) offering.</para>
</section>
<?hard-pagebreak?>
<xi:include
href="blockstorage/section_increase-api-throughput.xml"/>
<section xml:id="section_manage-volumes">
<title>Manage volumes</title>
<para>The default OpenStack Block Storage service
implementation is an iSCSI solution that uses Logical
Volume Manager (LVM) for Linux.</para>
<note>
<para>The OpenStack Block Storage service is not a shared
storage solution like a Storage Area Network (SAN) of
NFS volumes, where you can attach a volume to multiple
servers. With the OpenStack Block Storage service, you
can attach a volume to only one instance at a
time.</para>
<para>The OpenStack Block Storage service also provides
drivers that enable you to use several vendors'
back-end storage devices, in addition to or instead of
the base LVM implementation.</para>
</note>
<para>This high-level procedure shows you how to create and
attach a volume to a server instance.</para>
<procedure>
<title>To create and attach a volume to an
instance</title>
<step>
<para>Configure the OpenStack Compute and the
OpenStack Block Storage services through the
<filename>cinder.conf</filename> file.</para>
</step>
<step>
<para>Use the <command>cinder create</command> command
to create a volume. This command creates an LV
into the volume group (VG)
<literal>cinder-volumes</literal>.</para>
</step>
<step>
<para>Use the <command>nova volume-attach</command>
command to attach the volume to an instance. This
command creates a unique iSCSI IQN that is exposed
to the compute node.</para>
<substeps>
<step>
<para>The compute node, which runs the
instance, now has an active ISCSI session
and new local storage (usually a
<filename>/dev/sdX</filename>
disk).</para>
</step>
<step>
<para>libvirt uses that local storage as
storage for the instance. The instance
gets a new disk (usually a
<filename>/dev/vdX</filename>
disk).</para>
</step>
</substeps>
</step>
</procedure>
<para>For this particular walk through, one cloud controller
runs <systemitem class="service">nova-api</systemitem>,
<systemitem class="service"
>nova-scheduler</systemitem>, <systemitem
class="service">nova-objectstore</systemitem>,
<literal>nova-network</literal> and
<literal>cinder-*</literal> services. Two additional
compute nodes run <systemitem class="service"
>nova-compute</systemitem>. The walk through uses a
custom partitioning scheme that carves out 60&nbsp;GB of
space and labels it as LVM. The network uses the
<literal>FlatManager</literal> and
<literal>NetworkManager</literal> settings for
OpenStack Compute.</para>
<para>The network mode does not interfere with OpenStack Block
Storage operations, but you must set up networking for
Block Storage to work. For details, see <xref
linkend="ch_networking"/>.</para>
<para>To set up Compute to use volumes, ensure that Block
Storage is installed along with <package>lvm2</package>.
This guide describes how to troubleshoot your installation
and back up your Compute volumes.</para>
<section xml:id="boot-from-volume">
<title>Boot from volume</title>
<para>In some cases, you can store and run instances from
inside volumes. For information, see the <link
xlink:href="http://docs.openstack.org/user-guide/cli_nova_launch_instance_from_volume.html"
>Launch an instance from a volume</link> section
in the <link
xlink:href="http://docs.openstack.org/user-guide/"
><citetitle>OpenStack End User
Guide</citetitle></link>.</para>
</section>
<?hard-pagebreak?>
<xi:include href="blockstorage/section_nfs_backend.xml"/>
<xi:include href="blockstorage/section_glusterfs_backend.xml"/>
<xi:include href="blockstorage/section_multi_backend.xml"/>
<xi:include
href="blockstorage/section_backup-block-storage-disks.xml"/>
<xi:include href="blockstorage/section_volume-migration.xml"/>
<xi:include href="blockstorage/section_glusterfs_removal.xml"/>
<xi:include href="blockstorage/section_volume-backups.xml"/>
<xi:include
href="blockstorage/section_volume-backups-export-import.xml"/>
<section xml:id="using-lio-iscsi">
<title>Use LIO iSCSI support</title>
<para>The default <option>iscsi_helper</option> tool is
<literal>tgtadm</literal>. To use LIO iSCSI,
install the <literal>python-rtslib</literal> package,
and set <literal>iscsi_helper=lioadm</literal> in the
<filename>cinder.conf</filename> file.</para>
<para>Once configured, you can use the
<command>cinder-rtstool</command> command to
manage the volumes. This command enables you to
create, delete, and verify volumes and determine
targets and add iSCSI initiators to the system.</para>
</section>
<xi:include href="blockstorage/section_volume_number_weighter.xml"/>
<xi:include href="blockstorage/section_consistency_groups.xml"/>
<xi:include href="blockstorage/section_driver_filter_weighing.xml"/>
<xi:include href="blockstorage/section_ratelimit-volume-copy-bandwidth.xml"/>
<xi:include href="blockstorage/section_over_subscription.xml"/>
</section>
<section xml:id="troubleshooting-cinder-install">
<title>Troubleshoot your installation</title>
<para>This section provides useful tips to help you
troubleshoot your Block Storage installation.</para>
<xi:include href="blockstorage/section_ts_cinder_config.xml"/>
<xi:include href="blockstorage/section_ts_multipath_warn.xml"/>
<xi:include href="blockstorage/section_ts_eql_volume_size.xml"/>
<xi:include href="blockstorage/section_ts_vol_attach_miss_sg_scan.xml"/>
<xi:include href="blockstorage/section_ts_HTTP_bad_req_in_cinder_vol_log.xml"/>
<xi:include href="blockstorage/section_ts_duplicate_3par_host.xml"/>
<xi:include href="blockstorage/section_ts_failed_attach_vol_after_detach.xml"/>
<xi:include href="blockstorage/section_ts_failed_attach_vol_no_sysfsutils.xml"/>
<xi:include href="blockstorage/section_ts_failed_connect_vol_FC_SAN.xml"/>
<xi:include href="blockstorage/section_ts_no_emulator_x86_64.xml"/>
<xi:include href="blockstorage/section_ts_non_existent_host.xml"/>
<xi:include href="blockstorage/section_ts_non_existent_vlun.xml"/>
</section>
</chapter>