6d17f8e033
Change-Id: Ide1e0d529014363474c1026c1d11cb169074734f
186 lines
8.4 KiB
XML
186 lines
8.4 KiB
XML
<section xml:id="GPFS-driver" 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">
|
|
<title>IBM GPFS volume driver</title>
|
|
<para>IBM General Parallel File System (GPFS) is a cluster file
|
|
system that provides concurrent access to file systems from
|
|
multiple nodes. The storage provided by these nodes can be
|
|
direct attached, network attached, SAN attached, or a
|
|
combination of these methods. GPFS provides many features
|
|
beyond common data access, including data replication, policy
|
|
based storage management, and space efficient file snapshot
|
|
and clone operations.</para>
|
|
<section xml:id="GPFS-driver-background">
|
|
<title>How the GPFS driver works</title>
|
|
<para>The GPFS driver enables the use of GPFS in a fashion
|
|
similar to that of the NFS driver. With the GPFS driver, instances do not
|
|
actually access a storage device at the block level.
|
|
Instead, volume backing files are created in a GPFS file
|
|
system and mapped to instances, which emulate a block
|
|
device.</para>
|
|
<para>
|
|
<note>
|
|
<para>GPFS software must be installed and running on
|
|
nodes where Block Storage and Compute
|
|
services run in the OpenStack environment.
|
|
A GPFS file system must also be created and
|
|
mounted on these nodes before starting the
|
|
<literal>cinder-volume</literal> service. The
|
|
details of these GPFS specific steps are covered
|
|
in <citetitle>GPFS: Concepts, Planning, and Installation Guide</citetitle>
|
|
and <citetitle>GPFS: Administration and Programming Reference</citetitle>.
|
|
</para>
|
|
</note>
|
|
</para>
|
|
<para>Optionally, the Image Service can be configured to store images on
|
|
a GPFS file system. When a Block Storage volume is created from
|
|
an image, if both image data and volume data reside in the
|
|
same GPFS file system, the data from image file is moved
|
|
efficiently to the volume file using copy-on-write
|
|
optimization strategy.</para>
|
|
</section>
|
|
<section xml:id="GPFS-driver-options">
|
|
<title>Enable the GPFS driver</title>
|
|
<para>To use the Block Storage service with the GPFS driver, first set the
|
|
<literal>volume_driver</literal> in
|
|
<filename>cinder.conf</filename>:</para>
|
|
<programlisting>volume_driver = cinder.volume.drivers.ibm.gpfs.GPFSDriver</programlisting>
|
|
<para>The following table contains the configuration options
|
|
supported by the GPFS driver.</para>
|
|
<xi:include
|
|
href="../../../common/tables/cinder-storage_gpfs.xml"/>
|
|
<note>
|
|
<para>The <literal>gpfs_images_share_mode</literal>
|
|
flag is only valid if the Image Service is configured to
|
|
use GPFS with the <literal>gpfs_images_dir</literal> flag.
|
|
When the value of this flag is
|
|
<literal>copy_on_write</literal>, the paths
|
|
specified by the
|
|
<literal>gpfs_mount_point_base</literal> and
|
|
<literal>gpfs_images_dir</literal> flags must both
|
|
reside in the same GPFS file system and in the same
|
|
GPFS file set.</para>
|
|
</note>
|
|
</section>
|
|
<section xml:id="GPFS-volume-options">
|
|
<title>Volume creation options</title>
|
|
<para>It is possible to specify additional volume
|
|
configuration options on a per-volume basis by specifying
|
|
volume metadata. The volume is created using the specified
|
|
options. Changing the metadata after the volume is created
|
|
has no effect. The following table lists the volume
|
|
creation options supported by the GPFS volume
|
|
driver.</para>
|
|
<table rules="all">
|
|
<caption>Volume Create Options for GPFS Volume
|
|
Drive</caption>
|
|
<thead>
|
|
<tr>
|
|
<th>Metadata Item Name</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td><literal>fstype</literal></td>
|
|
<td>Specifies whether to create a file system or a swap
|
|
area on the new volume. If
|
|
<literal>fstype=swap</literal> is
|
|
specified, the mkswap command is used to
|
|
create a swap area. Otherwise the mkfs command
|
|
is passed the specified file system type, for example
|
|
ext3, ext4 or ntfs.</td>
|
|
|
|
</tr>
|
|
<tr>
|
|
<td><literal>fslabel</literal></td>
|
|
<td>Sets the file system label for
|
|
the file system specified by <literal>fstype</literal> option.
|
|
This value is only used if <literal>fstype</literal> is
|
|
specified.</td>
|
|
</tr>
|
|
<tr>
|
|
<td><literal>data_pool_name</literal></td>
|
|
<td>
|
|
<para>Specifies the GPFS storage pool to which the volume is to be assigned.
|
|
Note: The GPFS storage pool must already have been
|
|
created.</para>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><literal>replicas</literal></td>
|
|
<td>
|
|
<para>Specifies how many copies of the volume
|
|
file to create. Valid values are 1, 2,
|
|
and, for GPFS V3.5.0.7 and later, 3. This
|
|
value cannot be greater than the value of
|
|
the <literal>MaxDataReplicas</literal> attribute of the file
|
|
system.</para>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><literal>dio</literal></td>
|
|
<td>
|
|
<para>Enables or disables the Direct I/O caching
|
|
policy for the volume file. Valid values
|
|
are <literal>yes</literal> and <literal>no</literal>.</para>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><literal>write_affinity_depth</literal></td>
|
|
<td>
|
|
<para>Specifies the allocation policy to be used
|
|
for the volume file. Note: This option
|
|
only works if <literal>allow-write-affinity</literal> is
|
|
set for the GPFS data pool.</para>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><literal>block_group_factor</literal></td>
|
|
<td>
|
|
<para>Specifies how many blocks are laid out
|
|
sequentially in the volume file to behave
|
|
as a single large block. Note: This option
|
|
only works if <literal>allow-write-affinity</literal> is
|
|
set for the GPFS data pool.</para>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td><literal>write_affinity_failure_group</literal></td>
|
|
<td>
|
|
<para>Specifies the range of nodes (in GPFS
|
|
shared nothing architecture) where
|
|
replicas of blocks in the volume file are
|
|
to be written. See <citetitle>GPFS: Administration and
|
|
Programming Reference</citetitle> for more
|
|
details on this option.</para>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<simplesect>
|
|
<title>Example: Volume creation options</title>
|
|
<para>This example shows the creation of a 50GB volume with an <systemitem>ext4</systemitem>
|
|
file system labeled <literal>newfs</literal> and direct IO enabled:</para>
|
|
<screen><prompt>$</prompt> <userinput>cinder create --metadata fstype=ext4 fslabel=newfs dio=yes --display-name volume_1 50</userinput> </screen>
|
|
</simplesect>
|
|
</section>
|
|
<section xml:id="GPFS-operational-notes">
|
|
<title>Operational notes for GPFS driver</title>
|
|
<simplesect>
|
|
<title>Snapshots and clones</title>
|
|
<para>Volume snapshots are implemented using the GPFS file
|
|
clone feature. Whenever a new snapshot is created, the
|
|
snapshot file is efficiently created as a read-only
|
|
clone parent of the volume, and the volume file uses
|
|
copy-on-write optimization strategy to minimize data
|
|
movement.</para>
|
|
<para>Similarly when a new volume is created from a snapshot or from an existing volume, the
|
|
same approach is taken. The same approach is also used when a new volume is created
|
|
from an Image Service image, if the source image is in raw format, and
|
|
<literal>gpfs_images_share_mode</literal> is set to
|
|
<literal>copy_on_write</literal>.</para>
|
|
</simplesect>
|
|
</section>
|
|
</section>
|