This commit is contained in:
gferg 2004-09-20 13:01:13 +00:00
parent afa447e3fc
commit a5067b7a68
22 changed files with 5175 additions and 0 deletions

View File

@ -0,0 +1,155 @@
<chapter id="addfeatures"><title>Adding features to an existing volume</title>
<para>This chapter tells how to add additional EVMS features to an
already existing EVMS volume.
</para>
<sect1 id="whyadd"><title>Why add features to a volume?</title>
<para>EVMS lets you add features such as drive linking to
a volume that already exists. By adding features, you avoid having to potentially
destroy the volume and recreate it from scratch. For example, take the
scenario of a volume that contains important data but is almost full.
If you wanted to add more data to that volume but no free space existed on the
disk immediately after the segment, you could add a drive link to the volume.
The drive link concatenates another object to the end of the volume and
continues seamlessly.
</para>
</sect1>
<sect1 id="exaddfeature"><title>Example: add drive linking to an existing volume</title>
<para> The following example shows how to add drive linking to a volume with
the EVMS GUI, Ncurses, and CLI interfaces.
</para>
<blockquote><example><title>Add drive linking to an existing volume</title>
<para>The following sections show how to add a drive link to volume
<filename>/dev/evms/vol</filename> and call the drive link "DL."
</para>
</example>
<para><note><title>NOTE</title><para>Drive linking can be done only on
EVMS volumes; therefore, <filename>/dev/evms/vol</filename> must be converted to an EVMS volume if it is not
already. </para></note></para>
</blockquote>
<sect2 id="addfeaturegui"><title>Using the EVMS GUI</title>
<para>Follow these steps to add a drive link to the volume with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Add</guimenuitem><guimenuitem>Feature to Volume</guimenuitem></menuchoice>.
</para>
</listitem>
<listitem><para>Select <guimenuitem>/dev/evms/vol</guimenuitem>
</para></listitem>
<listitem><para>Click <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Select <guimenuitem>Drive Linking Feature</guimenuitem>.
</para></listitem>
<listitem><para>Click <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Type <userinput>DL</userinput> in the Name Field.</para>
</listitem>
<listitem><para>Click <guibutton>Add</guibutton>.</para>
</listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps to add a drive link with the GUI
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes</guimenuitem> tab, right click
<filename>/dev/evms/vol</filename>.</para></listitem>
<listitem><para>Click <guimenuitem>Add feature...</guimenuitem></para></listitem>
<listitem><para>Continue adding the drive link beginning with step 3 of the
GUI instructions.</para></listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="addfeaturesncurses"><title>Using Ncurses</title>
<para>Follow these steps to add a drive link to a volume with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Add</guimenuitem>
<guimenuitem>Feature to Volume</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select
<guimenuitem>/dev/evms/vol</guimenuitem>.
</para></listitem>
<listitem><para>Activate <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Select
<guimenuitem>Drive Linking Feature</guimenuitem>.
</para></listitem>
<listitem><para>Activate <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Press <keycap>Spacebar</keycap> to edit the Name field.
</para></listitem>
<listitem><para>At the &quot;::&quot; prompt enter <userinput>DL</userinput>.
</para></listitem>
<listitem><para>Press <keycap>Enter</keycap>.
</para></listitem>
<listitem><para>Activate <guibutton>Add</guibutton>.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps to add a drive link with the
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Volumes view, press <keycap>Enter</keycap> on <guimenuitem>/dev/evms/vol</guimenuitem>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Add feature</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue adding the drive link beginning with step 3 of the Ncurses instructions.</para>
</listitem>
</orderedlist>
</sect2>
<!-- CLI-->
<sect2 id="addfeaturescli"><title>Using the CLI</title>
<para>Use the
<command>add feature</command> to add a feature to an existing volume.
Specify the command name followed by a colon, followed by any options
and the volume to operate on. To determine the options for a given
feature, use the following query:
</para>
<programlisting>query: plugins, plugin=DriveLink, list options</programlisting>
<para>
The option names and descriptions are listed to help you construct
your command. For our example, the command would look like the following:
</para>
<programlisting>add feature: DriveLink={ Name=&quot;DL }, /dev/evms/vol</programlisting>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,379 @@
<chapter id="evmsassignseg"><title>Adding and removing a segment manager</title>
<para> This chapter discusses when to use a segment manager, what the different types of segment managers are, how to add a segment manager to a disk, and how to remove a
segment manager. </para>
<sect1 id="whenassign"><title>When to add a segment manager</title>
<para>Adding a segment manager to a disk allows the disk to be subdivided into
smaller storage objects called disk segments. The
<command>add</command> command causes a
segment manager to create appropriate metadata and expose freespace
that the segment manager
finds on the disk. You need to add segment managers when you
have a new disk or
when you are switching from one partitioning scheme to another. </para>
<para>EVMS displays disk segments as the following types: </para>
<itemizedlist><listitem><para>Data: a set of contiguous sectors that has been allocated
from a disk and can be used to construct a volume or object.</para></listitem>
<listitem><para>Freespace: a set of contiguous sectors that are unallocated
or not in use. Freespace can be used to create a segment.</para></listitem>
<listitem><para>Metadata: a set of contiguous sectors that contain
information needed by the segment manager.</para></listitem>
</itemizedlist>
</sect1>
<sect1 id="smtypes"><title>Types of segment managers</title>
<para>There are seven types of segment managers in EVMS: DOS, GPT, S/390, Cluster, BSD, MAC, and BBR. </para>
<sect2 id="defaultseg"><title>DOS Segment Manager</title>
<para>The most
commonly used segment manager is the DOS Segment Manager. This plug-in
provides support for traditional DOS disk partitioning. The
DOS Segment Manager also recognizes and supports the following variations
of the DOS partitioning scheme:
<itemizedlist><listitem><para>OS/2: an OS/2 disk has additional metadata
sectors that contain information needed to reconstruct disk segments.</para></listitem>
<listitem><para>Embedded partitions: support for BSD, SolarisX86, and UnixWare
is sometimes found embedded in primary DOS partitions.
The DOS Segment Manager recognizes and supports these
slices as disk segments.</para></listitem></itemizedlist></para>
</sect2>
<sect2 id="gptseg"><title>GUID Partitioning Table (GPT) Segment Manager</title>
<para>The GUID Partitioning Table (GPT) Segment Manager handles the
new GPT partitioning scheme
on IA-64 machines. The Intel
<citetitle>Extensible Firmware Interface Specification</citetitle>
requires that firmware be able to discover partitions and produce logical devices that
correspond to disk partitions. The partitioning scheme described in
the specification is called GPT due to the extensive use of
Globally Unique Identifier (GUID) tagging. GUID is a 128 bit long
identifier, also referred to as a Universally Unique Identifier (UUID).
As described in the Intel <citetitle>Wired For Management Baseline Specification</citetitle>,
a GUID is a combination of time and space fields that produce an
identifier that is unique across an entire UUID space.
These identifiers are used extensively on GPT partitioned disks
for tagging entire disks and individual partitions.
GPT partitioned disks serve several functions, such as:</para>
<itemizedlist>
<listitem><para>keeping a primary and backup copy of metadata</para>
</listitem>
<listitem><para>replacing msdos partition nesting by allowing many partitions</para>
</listitem>
<listitem><para>using 64 bit logical block addressing</para>
</listitem>
<listitem><para>tagging partitions and disks with GUID descriptors</para>
</listitem>
</itemizedlist>
<para>The GPT Segment Manager scales better to large disks. It provides more redundancy with added reliability and uses unique names. However, the GPT Segment Manager is not compatible with DOS, OS/2, or Windows&reg;. </para></sect2>
<sect2 id="s390sm"><title>S/390 Segment Manager</title>
<para>The S/390 Segment Manager is used exclusively on System/390
mainframes. The S/390 Segment Manager has the ability to recognize
various disk layouts found on an S/390 machine, and provide
disk segment support for this architecture. The two most common disk
layouts are Linux Disk Layout (LDL) and Common Disk Layout (CDL). </para>
<para>The principle difference between LDL and CDL is that an LDL disk
cannot be further subdivided. An LDL disk will produce a single metadata
disk segment and a single data disk segment. There is no freespace on an
LDL disk, and you cannot delete or re-size the data segment. A CDL disk can
be subdivided into multiple data disk segments
because it contains metadata that is missing from an LDL disk, specifically
the Volume Table of Contents (vtoc) information.</para>
<para>The S/390 Segment Manager is the only segment manager plug-in
capable of understanding the unique S/390 disk layouts. The S/390 Segment Manager
cannot be added or removed from a disk. </para></sect2>
<sect2><title>Cluster segment manager</title>
<para>The cluster segment manager (CSM) supports high availability clusters. When the
CSM is added to a shared storage disk, it writes metadata on the disk that:</para>
<itemizedlist>
<listitem><para>provides a unique disk ID (guid)</para></listitem>
<listitem><para>names the EVMS container the disk will reside within</para></listitem>
<listitem><para>specifies the cluster node (nodeid) that owns the disk</para></listitem>
<listitem><para>specifies the cluster (clusterid)</para></listitem>
</itemizedlist>
<para>This metadata allows the CSM to build containers for supporting failover situations.
It does so by constructing an EVMS container object that consumes all shared disks
discovered by the CSM and belonging to the same container. These shared storage
disks are consumed by the container and a single data segment is produced by the
container for each consumed disk. A failover of the EVMS resource is
accomplished by simply reassigning the CSM container to the standby cluster node and
having that node re-run its discovery process.</para>
<para>Adding disks to CSM containers implies that only disk storage objects are
acceptable to the CSM. This is an important aspect of the CSM. Other segment
managers can be embedded within storage objects and used to further subdivide them.
However, the CSM cannot add any other kind of storage object to a CSM container
because the container is meant to be a disk group and the entire disk group is
reassigned during a failover. So, the CSM only accepts disks when constructing
containers. This is important to remember when adding the CSM to a disk. If you
choose <command>Add</command> and the CSM does not appear in the list of selectable plug-ins when you know you have a disk, you should look at the Volume list and see if the disk has
already been listed as a compatibility volume. If you simply delete the volume, the disk will
become an available object and the CSM will then appear in the list of plug-ins
because it now has an available disk that it can add to a container.</para>
</sect2>
<sect2><title>BSD segment manager</title>
<para>BSD refers to the Berkeley Software Distribution UNIX&reg; operating system. The EVMS
BSD segment manager is responsible for recognizing and producing EVMS segment
storage objects that map BSD partitions. A BSD disk may have a slice table in the
very first sector on the disk for compatibility purposes with other operating systems.
For example, a DOS slice table might be found in the usual MBR sector. The BSD disk
would then be found within a disk slice that is located using the compatibility slice table.
However, BSD has no need for the slice table and can fully dedicate the disk to
itself by placing the disk label in the very first sector. This is called a &quot;fully dedicated
disk&quot; because BSD uses the entire disk and does not provide a compatibility slice table.
The BSD segment manager recognizes such &quot;fully dedicated disks&quot; and provides mappings for
the BSD partitions.</para>
</sect2>
<sect2><title>MAC segment manager</title>
<para>Apple-partitioned disks use a disk label that is recognized by the MAC segment
manager. The MAC segment manager recognizes the disk label during discovery and
creates EVMS
segments to map the MacOS disk partitions.</para>
</sect2>
<sect2><title>BBR segment manager</title>
<para>The bad block replacement (BBR) segment manager enhances the reliability of
a disk by remapping bad storage blocks. When BBR is added to a disk, it writes
metadata on the disk that:</para>
<itemizedlist>
<listitem><para>reserves replacement blocks</para></listitem>
<listitem><para>maps bad blocks to reserved blocks</para></listitem>
</itemizedlist>
<para>Bad blocks occur when an I/O error is detected for a write operation.
When this happens, I/O normally fails and the failure code is returned to the
calling program code. BBR detects failed write operations and remaps the I/O to a
reserved block on the disk. Afterward, BBR restarts the I/O using the reserve block.</para>
<para>Every block of storage has an address, called a logical block address, or LBA.
When BBR is added to a disk, it provides two critical functions: remap and recovery.
When an I/O operation is sent to disk, BBR inspects the LBA in the I/O command to see
if the LBA has been remapped to a reserve block due to some earlier I/O error.
If BBR finds a mapping between the LBA and a reserve block, it updates the I/O
command with the LBA of the reserve block before sending it on to the disk.
Recovery occurs when BBR detects an I/O error and remaps the bad block to a
reserve block. The new LBA mapping is saved in BBR metadata so that subsequent
I/O to the LBA can be remapped.</para>
</sect2>
</sect1>
<sect1 id="assignsegex"><title>Adding a segment manager to an existing disk</title>
<para>When you add a segment manager to a disk, the segment manager
needs to change the basic
layout of the disk. This change means that some sectors are
reserved for metadata and the remaining sectors are
made available for creating data disk segments. Metadata sectors
are written to disk to save information
needed by the segment manager; previous information found on the
disk is lost. Before adding a
segment manager to an existing disk, you must remove any existing
volume management structures, including any previous segment manager.</para>
</sect1>
<sect1 id="assignsegnew"><title>Adding a segment manager to a new disk</title>
<para>When a new disk is added to a system,
the disk usually contains no data and has not
been partitioned. If this is the case, the disk shows up in EVMS as a compatibility volume because
EVMS cannot tell if the disk is being used as a volume. To add a segment manager to the disk so that it
can be subdivided into smaller disk segment objects, tell EVMS that the disk is not a
compatibility volume by deleting the volume information.</para>
<para>If the new disk was moved from another system, chances are good that the disk already contains
metadata. If the disk does contain metadata, the disk shows up in EVMS with storage objects that
were produced from the existing metadata. Deleting these objects will allow you to add a different
segment manager to the disk, and you lose any old data. </para>
</sect1>
<sect1 id="assignex"><title>Example: add a segment manager</title>
<para>This section shows how to add
a segment manager with EVMS.</para>
<para>EVMS initially displays the
physical disks it sees as volumes. Assume that you have added a new
disk to the system that EVMS
sees as <filename>sde</filename>.
This disk contains no data and has not been subdivided
(no partitions). EVMS assumes that this
disk is a compatibility volume known as <filename>/dev/evms/sde</filename>. </para>
<blockquote><example><title>Add the DOS Segment Manager</title>
<para>Add the DOS Segment Manager to disk <filename>sde</filename>.</para></example></blockquote>
<note><title>NOTE</title>
<para>In the following example, the DOS Segment
Manager creates two segments on the disk:
a metadata segment known as <filename>sde_mbr</filename>, and a
segment to represent the available space on
the drive, <filename>sde_freespace1</filename>. This freespace
segment (<filename>sde_freespace1</filename>) can be
divided into
other segments because it represents space on
the drive that is not in use.</para></note>
<sect2 id="assignseggui"><title>Using the EVMS GUI</title>
<para>To add the DOS Segment Manager to <filename>sde</filename>, first
remove the volume, <filename>/dev/evms/sde</filename>:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Delete</guimenuitem>
<guimenuitem>Volume</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Select <filename>/dev/evms/sde</filename>.</para></listitem>
<listitem><para>Click <guibutton>Delete</guibutton>.</para></listitem>
</orderedlist>
<para>Alternatively, you can remove the volume through the GUI context sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes tab</guimenuitem>, right click <filename>/dev/evms/sde</filename>.</para></listitem>
<listitem><para>Click <guibutton>Delete</guibutton>.</para></listitem>
</orderedlist>
<para>After the volume is removed, add the DOS Segment Manager:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Add</guimenuitem>
<guimenuitem>Segment Manager to Storage Object</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Select <guilabel>DOS Segment Manager</guilabel>.</para></listitem>
<listitem><para>Click <guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Select <guilabel>sde</guilabel></para></listitem>
<listitem><para>Click <guibutton>Add</guibutton></para></listitem>
</orderedlist>
</sect2>
<sect2 id="assignsegncur"><title>Using Ncurses</title>
<para>To add the DOS Segment Manager to <filename>sde</filename>, first remove the
volume <filename>/dev/evms/sde</filename>:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Delete</guimenuitem>
<guimenuitem>Segment Manager to Storage Object</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Select <filename>/dev/evms/sde</filename>.</para></listitem>
<listitem><para>Activate <guibutton>Delete</guibutton>.</para></listitem>
</orderedlist>
<para>Alternatively, you can remove the volume through the context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Logical Volumes view, press <keycap>Enter</keycap> on
<filename>/dev/evms/sde</filename>.</para>
</listitem>
<listitem><para>Activate <guibutton>Delete</guibutton>.</para>
</listitem>
</orderedlist>
<para>After the volume is removed, add the DOS Segment Manager:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Add</guimenuitem>
<guimenuitem>Segment Manager to Storage Object</guimenuitem></menuchoice></para></listitem>
<listitem><para>Select <guilabel>DOS Segment Manager</guilabel>.</para></listitem>
<listitem><para>Activate <guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Select <guilabel>sde</guilabel>.
</para></listitem>
<listitem><para>Activate <guibutton>Add</guibutton>.</para></listitem>
</orderedlist>
</sect2>
<sect2 id="assignsegcli"><title>Using the CLI</title>
<para>To add the DOS Segment Manager to sde, first tell EVMS that this disk is not a
volume and is available for use:</para>
<programlisting>Delete:/dev/evms/sde</programlisting>
<para>Next, add the DOS Segment Manager to sde by typing the following:</para>
<programlisting>Add:DosSegMgr={},sde</programlisting>
</sect2>
</sect1>
<sect1 id="removeseg"><title>Removing a segment manager</title>
<para>When a segment manager is removed from a disk, the disk can be reused by
other plug-ins. The <command>remove</command> command causes the segment manager to remove its
partition or slice table from the disk, leaving the raw disk storage object that then
becomes an available EVMS storage object. As an available storage object,
the disk is free to be used by any plug-in when storage objects are created or expanded.
You can also add any of the segment managers to the available disk storage object
to subdivide the disk into segments.</para>
<para>Most segment manager plug-ins check to determine if any of the segments are still in
use by other plug-ins or are still part of volumes. If a segment manager determines
that there are no disks from which it can safely remove itself, it will not be listed
when you use the <command>remove</command> command. In this case, you should delete the
volume or storage object that is consuming segments from the disk you want to reuse.</para>
</sect1>
<sect1 id="rmvex"><title>Example: remove a segment manager</title>
<para>This section shows how to remove
a segment manager with EVMS.</para>
<blockquote><example><title>Remove the DOS Segment Manager</title>
<para>Remove the DOS Segment Manager from disk <filename>sda</filename>.</para></example></blockquote>
<note><title>NOTE</title>
<para>In the following example, the DOS Segment
Manager has one primary partition on disk <filename>sda</filename>.
The segment is a compatibility volume known as
<filename>/dev/evms/sda1</filename>.</para></note>
<sect2 id="removeseggui"><title>Using the EVMS GUI context sensitive menu</title>
<para>Follow these steps to remove a segment manager with the GUI context sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes</guimenuitem> tab, right click <filename>/dev/evms/sda1</filename>..</para></listitem>
<listitem><para>Click <guibutton>Delete</guibutton>.</para></listitem>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Remove</guimenuitem>
<guimenuitem>Segment Manager from Storage Object</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Select <guimenuitem>DOS Segment Manager, sda</guimenuitem>.</para></listitem>
<listitem><para>Click <guibutton>Remove</guibutton>.</para></listitem>
</orderedlist>
</sect2>
<sect2 id="removesegcur"><title>Using Ncurses</title>
<para>Follow these steps to remove a segment manager with the Ncurses interface:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Delete</guimenuitem>
<guimenuitem>Volume</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Select <filename>/dev/evms/sda1</filename>.</para></listitem>
<listitem><para>Activate <guibutton>Delete</guibutton>.</para></listitem>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Remove</guimenuitem>
<guimenuitem>Segment Manager from Storage Object</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Activate <guibutton>Remove</guibutton>.</para></listitem>
</orderedlist>
</sect2>
<sect2 id="removesegcli"><title>Using the CLI</title>
<para>Follow these steps to remove a segment manager with the CLI:</para>
<programlisting>Delete:/dev/evms/sda1</programlisting>
<programlisting>Remove: sda</programlisting>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,256 @@
<appendix id="appxlvm2"><title>The LVM2 plug-in</title>
<para>The LVM2 plug-in provides compatibility with the new volume format
introduced by the LVM2 tools from Red Hat (previously Sistina).
This plug-in is very similar in functionality to the LVM plug-in. The primary
difference is the new, improved metadata format.
LVM2 is still based on the concept of volume groups (VGs), which are constructed
from physical volumes (PVs) and produce logical volumes (LVs).</para>
<para>Just like the LVM plug-in, the LVM2 plug-in represents volume groups as EVMS containers
and represents logical volumes as EVMS regions.
LVM2 containers combine storage objects (disks, segments, or other regions) to
create a pool of freespace. Regions are then created from this freespace, with a variety
of mappings to the consumed objects.</para>
<sect1 id="contops"><title>Container operations</title>
<sect2><title>Creating LVM2 containers</title>
<para>Containers are created with an initial set of objects.
These objects can be disks, segments, or regions. There are two options
available when creating an LVM2 container:</para>
<para><variablelist>
<varlistentry><term>name</term>
<listitem><para>The name of the new container.
</para></listitem>
</varlistentry>
<varlistentry><term>extent_size</term>
<listitem><para>The physical-extent (PE) size, which is the granularity with which regions
can be created. The default is 32 MB. Unlike the LVM1 plug-in, there is no
limitation to the number of extents that can be allocated to an LVM2 region.
</para></listitem>
</varlistentry>
</variablelist></para>
</sect2>
<sect2><title>Adding objects to LVM2 containers</title>
<para>You can add objects to existing LVM containers in order to increase
the pool of storage that is available for creating regions.
Because the name and extent-size are set when the container is created,
no options are available when you add new objects to a container.
Each object must be large enough to hold at least one physical extent.
If an object is not large enough to satisfy this requirement, the LVM2 plug-in
will not allow the object to be added to the container.</para>
</sect2>
<sect2><title>Removing objects from LVM2 containers</title>
<para>You can remove a consumed object from its container as long as no regions
are mapped to that object.
The LVM2 plug-in does not allow objects that are in use to be removed from their
container. If an object must be removed, you can delete or shrink regions, or
move extents, in order to free the object from use.</para>
<para>No options are available for removing objects from LVM containers.</para>
</sect2>
<sect2><title>Expanding consumed objects in LVM2 containers</title>
<para>In addition to adding new objects to an LVM2 container, you can also expand
the space in a container by expanding one of the existing consumed objects (PVs).
For example, if a PV is a disk-segment with freespace immediately following it on
the disk, you can expand that segment, which will increase the amount of freespace
in the container. Likewise, if a PV is a RAID-0 or RAID-5 region, you can expand
that region by adding additional objects, which in turn increases the freespace in the
container.</para>
<para>When using the GUI or text-mode UIs, PV-expand is performed by expanding
the container. If any of the existing PVs are expandable, they will appear in the
expand-points list. Choose the PV to expand, and then the options for expanding
that object. After the PV has expanded, the container's freespace will reflect the
additional space available on that PV.</para>
<para>When using the CLI, PV-expand is performed by expanding the appropriate object
directly. The CLI and the EVMS engine will route the necessary commands so the
container is expanded at the same time.</para>
<para>The options for expanding a PV are dependent on the plug-in that owns that PV object.
Please see the appropriate plug-in's appendix for more details on options for that object.</para>
</sect2>
<sect2><title>Shrinking consumed objects in LVM2 containers</title>
<para>
In addition to removing existing objects from an LVM2 container, you can
also reduce the size of a container by shrinking one of the existing
consumed objects (PVs). This is only allowed if the consumed object
has physical extents (PEs) at the end of the object that are not allocated
to any LVM2 regions. In this case, LVM2 will allow the object to
shrink by the number of unused PEs at the end of that object.
</para>
<para>
For example, if a PV is a desk-segment, you can shrink that segment,
which will decrease the amount of freespace in the container. Likewise,
if a PV is a RAID-0 or RAID-5 region, you can shrink that region by
removing one of the objects, which in turn decreases the freespace in
the container.
</para>
<para>
When using the GUI or text-mode UIs, PV-shrink is performed by shrinking
the container. If any of the existing PVs are shrinkable, they will
appear in the shrink-points list. Choose the PV to shrink, and then the
options for shrinking that object. After the PV has shrunk, the container's
freespace will reflect the reduced space available on that PV.
</para>
<para>
When using the CLI, PV-shrink is performed by shrinking the appropriate
object directly. The CLI and the EVMS engine will route the necessary
commands so the container is shrunk at the same time.
</para>
<para>
The options for shrinking a PV are dependent on the plug-in that owns
that PV object. Please see the appropriate plug-in's appendix for more
details on options for that object.
</para>
</sect2>
<sect2><title>Deleting LVM2 containers</title>
<para>You can delete a container as long as the container does not have any produced
regions.
The LVM2 plug-in does not allow containers to be deleted if they have any regions.
No options are available for deleting LVM2 containers.</para>
</sect2>
<sect2><title>Renaming LVM2 containers</title>
<para>You can rename an existing LVM2 container.
When renaming an LVM2 container,
all of the regions produced from that container will automatically have their names changed as
well, because the region names include the container name.
In the EVMS GUI and text-mode UIs, this is done using the
<command>modify properties</command> command,
which is available through the &quot;Actions&quot; menu or the context-sensitive pop-up menus.
In the EVMS CLI, this is done using the <command>set </command>command.</para>
<para>See <xref linkend="renamereg2"></xref> for more information about the effects of renaming the regions.</para>
</sect2>
</sect1>
<sect1 id="regionops"><title>Region operations</title>
<sect2><title>Creating LVM2 regions</title>
<para>You create LVM2 regions from the freespace in LVM2 containers.
If there is at least one extent of freespace in the container, you can create a new region.</para>
<para>The following options are available for creating LVM2 regions:</para>
<variablelist>
<varlistentry><term>name</term>
<listitem>
<para>The name of the new region.</para>
</listitem>
</varlistentry>
<varlistentry><term>size</term>
<listitem>
<para>The size of the new region. This size must be a multiple of the
container's extent-size. If it isn't, the size will be rounded down as appropriate.
By default, all of the available freespace in the container will be used for the new region.</para>
</listitem>
</varlistentry>
<varlistentry><term>stripes</term>
<listitem>
<para>If the container consumes two or more objects, and each object has unallocated
extents, then the new region can be striped across multiple objects. This is similar to
RAID-0 striping and achieves an increased amount of I/O throughput. This option
specifies how many objects the new region should be striped across. By default, new
regions are not striped, and this value is set to 1.</para>
</listitem>
</varlistentry>
<varlistentry><term>stripe_size</term>
<listitem>
<para>The granularity of striping. The default value is 64 KB. Use this option only if the
stripes option is greater than 1.</para>
</listitem>
</varlistentry>
<varlistentry><term>pvs</term>
<listitem>
<para>A list of names of the objects the new region should map to. By default, this
list is empty, which means all available objects will be used to allocate space to the new region.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2><title>Expanding LVM2 regions</title>
<para>You can expand an existing LVM region if there are any unused extents in the
container. The following options are available for expanding LVM regions.</para>
<variablelist>
<varlistentry><term>size</term>
<listitem><para>The amount of space to add to the region. This is a delta-size,
not the new absolute size of the region. As with creating new regions,
this size must be a multiple of the container's extent-size, and will be rounded
down if necessary.</para>
</listitem>
</varlistentry>
<varlistentry><term>stripes</term>
<listitem><para>The number of objects to stripe this new portion of the region across.
This value can be different than the number of stripes in the existing region.
For example, if the region was created originally with three stripes, but now only
two objects are available, then the new portion of the region could be striped
across just those two objects. The number of stripes for the last mapping in the
region will be used as the default.</para>
</listitem>
</varlistentry>
<varlistentry><term>stripe_size</term>
<listitem><para>The granularity of striping. As with the number of stripes, this value
can be different than the stripe-size for the existing region. By default, the
stripe-size of the last mapping in the region is used.</para>
</listitem>
</varlistentry>
<varlistentry><term>pvs</term>
<listitem><para>A list of names of the objects the region should be expanded onto.
By default, this list is empty, which means all available objects will be used to
allocate additional space for the region.</para>
</listitem>
</varlistentry>
</variablelist>
</sect2>
<sect2><title>Shrinking LVM2 regions</title>
<para>You can shrink an existing LVM region by removing extents from the end of
the region. Regions must have at least one extent, so regions cannot be
shrunk to zero.</para>
<para>The following options are available when shrinking LVM regions.
Because regions are always shrunk by removing space from the end of the region,
a list of objects cannot be specified in this command.</para>
<variablelist>
<varlistentry><term>size</term>
<listitem><para>The amount of space to remove from the region.
This is a delta-size, not the new absolute size of the region.
As with creating and expanding regions, this size must be a multiple of
the container's extent-size, and will be rounded down if necessary.</para>
</listitem></varlistentry>
</variablelist>
</sect2>
<sect2><title>Deleting LVM2 regions</title>
<para>You can delete an existing LVM region as long as it is not currently a
compatibility volume, an EVMS volume, or consumed by another EVMS plug-in.
No options are available for deleting LVM regions.</para>
</sect2>
<sect2 id="renamereg2"><title>Renaming LVM2 regions</title>
<para>You can rename an existing LVM2 region. In the EVMS GUI and text-mode UIs, this
is done using the <command>modify properties</command> command, which is available through the &quot;Actions&quot;
menu or the context-sensitive pop-up menus. In the EVMS CLI, this is done using the
<command>set</command> command.</para>
<para>If the renamed LVM2 region has a compatibility volume on it, then the name of that
compatibility volume will also change. In order for this to work correctly, that volume must
be unmounted before the name is changed. Also, be sure to update your
<filename>/etc/fstab</filename> file if the volume is listed, or the volume won't be mounted properly the next
time the system boots.</para>
<para>If the renamed LVM2 region has an EVMS volume or another storage object built on it,
then the region's name change will be transparent to the upper layers. In this case, the
rename can be done while the volume is mounted.</para>
</sect2>
</sect1>
</appendix>

View File

@ -0,0 +1,180 @@
<appendix id="ntfsfsim"><title>NTFS file system interface module</title>
<para>
The NTFS FSIM lets EVMS users create and manage Windows&reg; NT&reg;
file systems from within the EVMS interfaces.
</para>
<sect1 id="createntfsfsim"><title>Creating NTFS file systems</title>
<para>
NTFS file systems can be created with <command>mkfs</command> on any EVMS
or compatibility volume that is at least 1 MB in size and that does not already
have a file system.
The following options are available for creating
NTFS file systems:</para>
<variablelist>
<varlistentry><term>label</term>
<listitem>
<para>
Specify a volume label for the file system. The default is none.
</para>
</listitem>
</varlistentry>
<varlistentry><term>cluster-size</term>
<listitem>
<para>Specify the size of clusters in bytes. Valid cluster size values
are powers of two, with at least 256, and at most 65536 bytes per cluster.
If omitted, mkntfs cluster-size is determined by the volume size. The
value is determined as follows:
</para>
<programlisting>
Volume size Default cluster
0-512 MB 512 bytes
512 MB-1 GB 1024 bytes
1 GB-2 GB 2048 bytes
2 GB+ 4096 bytes
</programlisting>
</listitem>
</varlistentry>
<varlistentry><term>mft-zone-mult</term>
<listitem>
<para>Set the MFT zone multiplier, which determines the size of the
MFT zone to use on the volume. The MFT zone is the area at the
beginning of the volume reserved for the master file table (MFT),
which stores the on disk inodes (MFT records). Note that small files
are stored entirely within the node. Thus, if you expect to use the
volume for storing large numbers of very small files, it is useful
to set the zone multiplier to a higher value. Note that the MFT zone
is resized on the fly as required during operation of the NTFS driver,
but choosing a good value will reduce fragmentation. Valid
values are 12.5 (the default), 25, 37.5, and 50.
</para>
</listitem>
</varlistentry>
<varlistentry><term>compress</term>
<listitem>
<para>Enable compression on the volume.
</para>
</listitem>
</varlistentry>
<varlistentry><term>quick</term>
<listitem>
<para>Perform quick format. This skips both zeroing of the volume
and bad sector checking.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="fixntfsfsim"><title>Fixing NTFS file systems</title>
<para>
The NTFS FSIM can run the <command>ntfsfix</command> utility on an
NTFS file system.
</para>
<para>
<command>ntfsfix</command> fixes NTFS partitions altered in any manner
with the Linux NTFS driver. <command>ntfsfix</command> is not a Linux
version of <command>chkdsk</command>. <command>ntfsfix</command>
only tries to leave the NTFS
partition in a not-so-inconsistent state after the NTFS driver has written
to it.
</para>
<para>
Running <command>ntfsfix</command> after mounting an NTFS volume
read-write is recommended for reducing the chance of severe data loss
when Windows NT or Windows 2000 tries to remount the affected volume.
</para>
<para>
In order to use <command>ntfsfix</command>, you must unmount the
NTFS volume. After running <command>ntfsfix</command>, you can safely
reboot into Windows NT or Windows 2000. Please note that
<command>ntfsfix</command> is not an <command>fsck</command>-like tool.
<command>ntfsfix</command> is not guaranteed to fix all the
alterations provoked by the NTFS driver.
</para>
<para>
The following option is available for running <command>ntfsfix</command>
on an NTFS file system:
</para>
<variablelist>
<varlistentry><term>force</term>
<listitem>
<para>
Force <command>ntfsfix</command> to write changes even if it
detects that the file system is dirty. The default is false.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="clonentfsfsim"><title>Cloning NTFS file systems</title>
<para>
The NTFS FSIM can run the <command>ntfsclone</command> utility to
copy an NTFS file system from one volume to another.
<command>ntfsclone</command> is faster than <command>dd</command>
because it only copies the files and the file system data instead
of the entire contents of the volume.
</para>
<para>
The following options are available for running <command>ntfsclone</command>
on an NTFS file system:
</para>
<variablelist>
<varlistentry><term>target</term>
<listitem>
<para>The volume onto which the file system should be cloned.
</para>
</listitem>
</varlistentry>
<varlistentry><term>force</term>
<listitem>
<para>
Force <command>ntfsclone</command> to copy the file system
even if it detects that the volume is dirty. The default is false.
</para>
</listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1 id="removentfsfsim"><title>Removing NTFS file systems</title>
<para>
An NTFS file system can be removed from its volume if the file system
is unmounted.
This operation involves erasing the superblock from the volume so
the file system will not be recognized in the future.
There are no options available for removing file systems.
</para>
</sect1>
<sect1 id="expandshrinkntfsfsim"><title>Expanding and shrinking NTFS
file systems</title>
<para>
An NTFS file system is automatically expanded or shrunk when its volume
is expanded for shrunk. However, NTFS only allows these operations if the
volume is unmounted.
</para>
</sect1>
</appendix>

View File

@ -0,0 +1,747 @@
<chapter id="clusterops"><title>Clustering operations</title>
<para>This chapter discusses how to configure cluster storage containers (referred to throughout
this chapter as &quot;cluster containers&quot;), a feature provided by the EVMS Cluster Segment
Manager (CSM).</para>
<para>Disks that are physically accessible from all of the nodes of the cluster can be
grouped together as a single manageable entity. EVMS storage objects can then be
created using storage from these containers.</para>
<para>Ownership is assigned to a container to make the container either private or shared.
A container that is owned by any one node of the cluster is called a private container.
EVMS storage objects and storage volumes created using space from a private
container are accessible from only the owning node.</para>
<para>A container that is owned by all the nodes in a cluster is called a shared container.
EVMS storage objects and storage volumes created using space from a shared
container are accessible from all nodes of the cluster simultaneously.</para>
<para>EVMS provides the tools to convert a private container to a shared container, and
a shared container to a private container. EVMS also provides the flexibility to
change the ownership of a private container from one cluster node to another
cluster node.</para>
<sect1><title>Rules and restrictions for creating cluster containers</title>
<para>Note the following rules and limitations for creating cluster containers:
</para>
<itemizedlist>
<listitem>
<para>Do not assign non-shared disks to a cluster container.
</para>
</listitem>
<listitem>
<para>Storage objects and volumes created on a cluster container must not
span across multiple cluster containers.
The EVMS Engine enforces this rule by disallowing such configurations.
</para>
</listitem>
<listitem>
<para>Do not assign RAID-1, RAID-5, BBR, or snapshotting
to storage objects on a shared cluster container. These plug-ins
can be used on private cluster containers.
</para>
</listitem>
</itemizedlist>
</sect1>
<sect1><title>Example: create a private cluster container</title>
<para>This section tells how to create a sample private
container and provides instructions for completing the following task:</para>
<blockquote><example><title>Create a private cluster container</title>
<para>Given a system with three available shared disks
(<filename>sdd</filename>, <filename>sde</filename>, and
<filename>sdf</filename>),
use the EVMS Cluster Segment Manager to combine these disk drives into a
container called <filename>Priv1</filename> owned by <filename>node1</filename>.
</para>
</example>
</blockquote>
<sect2><title>Using the EVMS GUI</title>
<para>To create a container with the EVMS GUI, follow these steps:</para>
<orderedlist>
<listitem><para>Select
<menuchoice><guimenu>Actions</guimenu><guimenuitem>Create</guimenuitem>
<guimenuitem>Container</guimenuitem>
</menuchoice> to see a list of plug-ins that support container creation.
</para>
</listitem>
<listitem><para>Select the <guimenuitem>Cluster Segment Manager</guimenuitem>.</para>
</listitem>
<listitem><para>Click <guibutton>Next</guibutton>.</para>
<para>The next dialog window contains a list of storage objects that
the CSM can use to create a container.</para>
</listitem>
<listitem><para>Select <filename>sdd</filename>, <filename>sde</filename>, and <filename>sdf</filename> from the list.</para>
</listitem>
<listitem><para>Click <guibutton>Next</guibutton>.</para>
</listitem>
<listitem><para>In the first pull-down menu, select the &quot;Node Id&quot; of the cluster node that
owns this container (<guimenuitem>node1</guimenuitem>). Select &quot;Storage Type&quot; as
<guimenuitem>private</guimenuitem> from the second pull-down menu.</para>
</listitem>
<listitem><para>Enter the name <userinput>Priv1</userinput> for the Container Name.</para>
</listitem>
<listitem><para>Click <guibutton>Create</guibutton>.</para>
<para>A window opens that displays the outcome.</para>
</listitem>
<listitem><para>Commit the changes.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using Ncurses</title>
<para>To create the private container with the Ncurses interface, follow these steps:
</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem><guimenuitem>Container</guimenuitem></menuchoice> to see a list
of plug-ins that support container creation.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow and select Cluster Segment Manager by
pressing <keycap>spacebar</keycap>. The plug-in you selected is marked with an &quot;x.&quot; </para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
<para>The next submenu contains a list of disks that the Cluster Segment Manager finds
acceptable to use for the creation of a container.</para>
</listitem>
<listitem><para>Use <keycap>spacebar</keycap> to select <filename>sdd</filename>, <filename>sde</filename>,
and <filename>sdf</filename> from the list. The disks you select are marked with an &quot;x.&quot;</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>On the Create Storage Container - Configuration Options menu, press
<keycap>spacebar</keycap> on the Node Id, which will provide a list of nodes from
which to select.</para>
</listitem>
<listitem><para>Press <keycap>spacebar</keycap> on the node <filename>node1</filename> and
then press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow and press <keycap>spacebar</keycap> on the
Storage Type. A list of storage types opens.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow to
<guimenuitem>private entry</guimenuitem> and press <keycap>spacebar</keycap>.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow to
<guimenuitem>Container Name</guimenuitem> and press <keycap>spacebar</keycap>.</para>
<para>The Change Option Value menu opens and asks for the Container Name. Type
in the name of the container as <userinput>Priv1</userinput>, and press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap> to complete the operation.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>An operation to create a private cluster container with the CLI takes three parameters: the name
of the container, the type of the container, and the nodeid to which the container belongs.
</para>
<para>On the CLI, type the following command to create the private container
<filename>Priv1</filename>:</para>
<programlisting>create: container,CSM={name=&quot;Priv1&quot;,type=&quot;private&quot;,nodeid=&quot;node1&quot;},sdd,sde,sdf</programlisting>
</sect2>
</sect1>
<sect1><title>Example: create a shared cluster container</title>
<para>This section tells how to create a sample shared container and provides
instructions to help you complete the following task:</para>
<blockquote><example><title>Create a shared cluster container</title>
<para>Given a system with three available shared disks
(<filename>sdd</filename>, <filename>sde</filename>, and
<filename>sdf</filename>),
use the EVMS Cluster Segment Manager to combine these disk drives into a shared
container called <filename>Shar1</filename>.
</para>
</example>
</blockquote>
<sect2><title>Using the EVMS GUI</title>
<para>To create a shared cluster container with the EVMS GUI, follow these steps:</para>
<orderedlist>
<listitem><para>Select
<menuchoice><guimenu>Actions</guimenu><guimenuitem>Create</guimenuitem>
<guimenuitem>Container</guimenuitem>
</menuchoice> to see a list of plug-ins that support container creation.
</para>
</listitem>
<listitem><para>Select the <guimenuitem>Cluster Segment Manager</guimenuitem>.</para>
</listitem>
<listitem><para>Click <guibutton>Next</guibutton>.</para>
<para>The next dialog window contains a list of storage objects that
the CSM can use to create a container.</para>
</listitem>
<listitem><para>Select <filename>sdd</filename>, <filename>sde</filename>, and <filename>sdf</filename> from the list.</para>
</listitem>
<listitem><para>Click <guibutton>Next</guibutton>.</para>
</listitem>
<listitem><para>You do not need to change the &quot;Node Id&quot; field. Select
Storage Type as
<guimenuitem>shared</guimenuitem> from the second pull-down menu.</para>
</listitem>
<listitem><para>Enter the name <userinput>Shar1</userinput> for the Container Name.</para>
</listitem>
<listitem><para>Click <guibutton>Create</guibutton>. A window opens to display the outcome.</para>
</listitem>
<listitem><para>Commit the changes.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using Ncurses</title>
<para>To create a shared cluster contained with the Ncurses interface, follow these steps:</para>
<orderedlist><listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem>
<guimenuitem>Container</guimenuitem>
</menuchoice> to see a list of plug-ins that support container creation.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow and select Cluster Segment Manager by
pressing <keycap>spacebar</keycap>. The plug-in you selected is marked with an &quot;x.&quot; </para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
<para>The next submenu contains a list of disks that the Cluster Segment Manager finds
acceptable to use for the creation of a container.</para>
</listitem>
<listitem><para>Use <keycap>spacebar</keycap> to select <filename>sdd</filename>, <filename>sde</filename>,
and <filename>sdf</filename> from the list. The disks you select are marked with an &quot;x.&quot;</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>The Create Storage Container - Configuration Options menu open;
ignore the &quot;Node Id&quot; menu.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow and press <keycap>spacebar</keycap> on the
Storage Type. A list of storage types opens.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow to
<guimenuitem>shared entry</guimenuitem> and press <keycap>spacebar</keycap>.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow to
<guimenuitem>Container Name</guimenuitem> and press <keycap>spacebar</keycap>.</para>
<para>The Change Option Value menu opens and asks for the Container Name. Type
in the name of the container as <userinput>Shar1</userinput>, and press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap> to complete the operation.</para>
</listitem>
<listitem><para>Quit Ncurses and run <command>evms_activate</command> on each of the cluster
nodes. This process will be automated in future releases of EVMS.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>An operation to create a shared cluster container with the CLI takes two parameters:
the name of the container and the type of the container.</para>
<para>On the CLI, type the following command to create shared container <filename>Shar1</filename>:</para>
<programlisting>create: container,CSM={name=&quot;Shar1&quot;,type=&quot;shared&quot;},sdd,sde,sdf</programlisting>
</sect2>
</sect1>
<sect1><title>Example: convert a private container to a shared container</title>
<para>This section tells how to convert a sample private container to a shared
container and provides instructions for completing the following task:</para>
<blockquote><example><title>Convert a private container to shared</title>
<para>Given a system with a private storage container <filename>Priv1</filename> owned
by <filename>evms1</filename>, convert
<filename>Priv1</filename> to a shared storage container with the same name.</para>
</example>
</blockquote>
<note><title>CAUTION</title>
<para>Ensure that no application
is using the volumes on the container on any node of the cluster.</para></note>
<sect2><title>Using the EVMS GUI</title>
<para>Follow these steps to convert a private cluster container to a shared cluster
container with the EVMS GUI:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Modify</guimenuitem><guimenuitem>Container</guimenuitem></menuchoice> to see a list of containers.</para>
</listitem>
<listitem><para>Select the container <guimenuitem>Priv1</guimenuitem> and press <keycap>Next</keycap>.</para>
<para>A Modify Properties dialog box opens.</para>
</listitem>
<listitem><para>Change &quot;Type&quot; to &quot;shared&quot; and click <keycap>Modify</keycap>.</para>
<para>A window opens that displays the outcome.</para>
</listitem>
<listitem><para>Commit the changes.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using Ncurses</title>
<para>Follow these steps to convert a private cluster container to a shared cluster
container with the Ncurses interface:</para>
<orderedlist><listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Modify</guimenuitem><guimenuitem>Container</guimenuitem></menuchoice> to see a list of containers.</para>
</listitem>
<listitem><para>The Modify Container Properties dialog opens. Select the container
<filename>Priv1</filename> by
pressing <keycap>spacebar</keycap>. The container you selected is marked with an &quot;x.&quot;</para>
<para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Use <keycap>spacebar</keycap> to select <filename>sdd</filename>, <filename>sde</filename>,
and <filename>sdf</filename> from the list. The disks you select are marked with an &quot;x.&quot;</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>The Modify Container Properties - Configuration Options&quot; dialog opens. Scroll down with the <keycap>down</keycap> arrow and press <keycap>spacebar</keycap> on &quot;Type&quot;.</para>
</listitem>
<listitem><para>Press <keycap>spacebar</keycap>.</para>
</listitem>
<listitem><para>The Change Option Value dialog opens. Type <userinput>shared</userinput> and press <keycap>Enter</keycap>.</para>
<para>The changed value now displays in the Modify Container Properties -
Configuration Options dialog.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
<para>The outcome of the command is displayed at the bottom of the screen.</para>
</listitem>
<listitem><para>Save the changes by clicking <keycap>Save</keycap> in the <guimenuitem>Actions</guimenuitem> pulldown menu.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>The <command>modify</command> command modifies the properties of a container. The first argument
of the command is the object to modify, followed by its new properties. The command
to convert the private container to a shared container in the example is:</para>
<programlisting>modify: Priv1,type=shared</programlisting>
</sect2>
</sect1>
<sect1><title>Example: convert a shared container to a private container</title>
<para>This section tells how to convert a sample shared container to a private
container and provides instructions for completing the following task:</para>
<blockquote><example><title>Convert a shared container to private</title>
<para>Given a system with a shared storage container <filename>Shar1</filename>, convert
<filename>Shar1</filename> to a private storage container owned by node <filename>node1</filename> (where
<filename>node1</filename> is the nodeid of one of the cluster nodes).</para>
</example>
</blockquote>
<note><title>CAUTION</title>
<para>Ensure that no application
is using the volumes on the container of any node in the cluster.</para></note>
<sect2><title>Using the EVMS GUI</title>
<para>Follow these steps to convert a shared cluster container to a private cluster
container with the EVMS GUI:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Modify</guimenuitem><guimenuitem>Container</guimenuitem></menuchoice> to see a list of containers.</para>
</listitem>
<listitem><para>Select the container <guimenuitem>Shar1</guimenuitem> and press <keycap>Next</keycap>.</para>
<para>A Modify Properties dialog opens.</para>
</listitem>
<listitem><para>Change &quot;Type&quot; to &quot;private&quot; and the &quot;Node&quot; field to <filename>node1</filename>. Click <keycap>Modify</keycap>.</para>
<para>A window opens that displays the outcome.</para>
</listitem>
<listitem><para>Commit the changes.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using Ncurses</title>
<para>Follow these steps to convert a shared cluster container to a private cluster
container with the Ncurses interface:</para>
<orderedlist><listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Modify</guimenuitem>
<guimenuitem>Container</guimenuitem></menuchoice></para>
</listitem>
<listitem>
<para>The Modify Container Properties dialog opens. Select the container
<filename>Shar1</filename> by
pressing <keycap>spacebar</keycap>. The container you selected is marked with an &quot;x.&quot;</para>
<para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>The Modify Container Properties - Configuration Options&quot; dialog opens. Scroll down with the <keycap>down</keycap> arrow and press <keycap>spacebar</keycap> on the &quot;Type&quot; field.</para>
</listitem>
<listitem><para>Press <keycap>spacebar</keycap>.</para>
</listitem>
<listitem><para>The Change Option Value dialog opens. Select <userinput>private</userinput> and press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>The Modify Container Properties -
Configuration Options dialog opens. Scroll down the list to <guimenuitem>NodeId</guimenuitem>
with the <keycap>down</keycap> arrow
and press <keycap>spacebar</keycap>.</para></listitem>
<listitem><para>The Change Option Value dialog opens. Select <userinput>node1</userinput> and press <keycap>Enter</keycap>.</para></listitem>
<listitem><para>The changed values now display in the Modify Container Properties -
Configuration Options dialog. Press <keycap>Enter</keycap>. </para>
<para>The outcome of the command is displayed at the bottom of the screen.</para>
</listitem>
<listitem><para>Save the changes by clicking <keycap>Save</keycap> in the <guimenuitem>Actions</guimenuitem> pulldown.</para></listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>The <command>modify</command> command modifies the properties of a container. The first argument
of the command is the object to modify, followed by its new properties. The command
to convert the shared container to a private container in the example is:</para>
<programlisting>modify: Shar1,type=private,node=node1</programlisting>
</sect2>
</sect1>
<sect1><title>Example: deport a private or shared container</title>
<para>
When a container is deported, the node disowns the container and deletes
all the objects created in memory that belong to that container.
No node in
the cluster can discover objects residing on a deported container or
create objects for a deported container.
This section explains how to deport a private or shared container.
</para>
<blockquote><example><title>Deport a cluster container</title>
<para>Given a system with a private or shared storage container named
<filename>c1</filename>, deport <filename>c1</filename>.
</para>
</example>
</blockquote>
<sect2><title>Using the EVMS GUI</title>
<para>
To deport a container with the EVMS GUI, follow these steps:
</para>
<orderedlist>
<listitem>
<para>Select
<menuchoice><guimenu>Actions</guimenu><guimenuitem>Modify</guimenuitem><guimenuitem>Container</guimenuitem></menuchoice>.
</para>
</listitem>
<listitem>
<para>Select the container <filename>c1</filename> and press
<keycap>Next</keycap>.
</para>
<para>
A Modify Properties dialog opens.
</para>
</listitem>
<listitem>
<para>Change "Type" to "deported." Click <keycap>Modify</keycap>.
</para>
<para>
A window opens that displays the outcome.
</para>
</listitem>
<listitem>
<para>Commit the changes.
</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using Ncurses</title>
<para>
To deport a container with Ncurses, follow these steps:
</para>
<orderedlist>
<listitem>
<para>Scroll down the list with the <keycap>down</keycap> arrow to
<guimenuitem>Modify</guimenuitem>. Press <keycap>Enter</keycap>.
</para>
<para>
A submenu is displayed.
</para>
</listitem>
<listitem>
<para>Scroll down until Container is highlighted. Press <keycap>Enter</keycap>.
</para>
<para>
The Modify Container Properties dialog opens.
</para>
</listitem>
<listitem>
<para>Select the container <filename>csm/c1</filename> by pressing
<keycap>spacebar</keycap>. The container you selected is marked with an "x."
</para>
</listitem>
<listitem>
<para>
Press <keycap>Enter</keycap>.
</para>
<para>
The Modify Container Properties - Configuration Options dialog opens.
</para>
</listitem>
<listitem>
<para>Scroll down and press <keycap>spacebar</keycap> on the "Type" field.
</para>
</listitem>
<listitem>
<para>
Press <keycap>spacebar</keycap>.
</para>
<para>
The Change Option Value dialog opens.
</para>
</listitem>
<listitem>
<para>Type <userinput>deported</userinput> and press <keycap>Enter</keycap>.
</para>
<para>
The changed value is displayed in the Modify Container Properties -
Configuration Options dialog.
</para>
</listitem>
<listitem>
<para>Press <keycap>Enter</keycap>.
</para>
<para>
The outcome of the command is displayed at the bottom of the screen.
</para></listitem>
<listitem>
<para>Commit the changes by clicking <keycap>Save</keycap> in the
<guimenuitem>Actions</guimenuitem> pulldown.
</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>
To deport a container from the CLI, execute the following command
at the CLI prompt:
</para>
<programlisting>
modify: c1,type=deported
</programlisting>
</sect2>
</sect1>
<sect1><title>Deleting a cluster container</title>
<para>
The procedure for deleting a cluster container is the same for deleting
any container. See <xref linkend="examdelrecur"></xref>
</para></sect1>
<sect1><title>Failover and Failback of a private container on Linux-HA</title>
<para>EVMS supports the Linux-HA cluster manager in EVMS V2.0 and later. Support for
the RSCT cluster
manager is also available as of EVMS V2.1, but is not as widely tested.</para>
<para><note><title>NOTE</title>
<para>Ensure that <command>evms_activate</command> is called in one of the startup scripts
before the <command>heartbeat</command> startup script is called. If <command>evms_activate</command> is not called, failover
might not work correctly. </para>
</note></para>
<para>Follow these steps to set up failover and failback of a private container:</para>
<orderedlist>
<listitem><para>Add an entry in <filename>/etc/ha.d/haresources</filename> for each
private container to be failed over. For example, if <filename>container1</filename> and
<filename>container2</filename> are to
be failed over together to the same node with <filename>node1</filename> as the owning node, add the
following entry to <filename>/etc/ha.d/haresources</filename>:</para>
<programlisting>node1 evms_failover::container1 evms_failover::container2</programlisting>
<para><filename>node1</filename> is the cluster node that owns this resource. The resource is failed over
to the other node when <filename>node1</filename> dies.</para>
<para>Similarly, if <filename>container3</filename> and <filename>container4</filename> are to be failed over together to the same
node with <filename>node2</filename> as the owning node, then add the following entry to
<filename>/etc/ha.d/haresources</filename>:</para>
<programlisting>node2 evms_failover::container3 evms_failover::container4</programlisting>
<para>Refer to
<ulink url="http://www.linux-ha.org/download/GettingStarted.html">http://www.linux-ha.org/download/GettingStarted.html</ulink> for more details on the
semantics of resource groups.</para>
</listitem>
<listitem><para>Validate that the <filename>/etc/ha.d</filename>, <filename>/etc/ha.cf</filename> and <filename>/etc/ha.d/haresources</filename> files are the same
on all the nodes of the cluster.</para>
</listitem>
<listitem><para>The heartbeat cluster manager must be restarted, as follows, after the
<filename>/etc/ha.d/haresources</filename> file has been changed:</para>
<programlisting>/etc/init.d/heartbeat restart</programlisting>
<note><title>NOTE</title>
<para>
Do not add shared containers to the list of failover resources; doing so causes
EVMS to respond unpredictably.</para>
</note>
</listitem>
</orderedlist>
</sect1>
<sect1><title>Remote configuration management</title>
<para>EVMS supports the administration of cluster nodes by any node in the cluster. For
example, storage on remote cluster node <filename>node1</filename> can be administered from cluster node
<filename>node2</filename>. The following sections show how to set up remote administration
through the various EVMS user interfaces.</para>
<sect2><title>Using the EVMS GUI</title>
<para>To designate <filename>node2</filename> as the node to administer from the GUI, follow these steps:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Settings</guimenu><guimenuitem>Node Administered...</guimenuitem></menuchoice></para>
</listitem>
<listitem><para>Select <filename>node2</filename>.</para>
</listitem>
<listitem><para>Click <keycap>Administer</keycap> to switch to the new node.</para>
</listitem>
</orderedlist>
<para>
The GUI gathers information about the objects, containers, and volumes on
the other node. The status
bar displays the message "Now administering node node2," which indicates
that the GUI is switched over to node node2.
</para>
</sect2>
<sect2><title>Using Ncurses</title>
<para>To designate <filename>node2</filename> as the node to administer from Ncurses, follow these steps:</para>
<orderedlist>
<listitem><para>Go to the <guimenuitem>Settings</guimenuitem> pulldown menu.</para>
</listitem>
<listitem><para>Scroll down with the <keycap>down</keycap> arrow to the &quot;Node Administered&quot; option and
press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>The Administer Remote Node dialog opens. Select <filename>node2</filename> and press
<keycap>spacebar</keycap>.</para>
<para>The node you selected is marked with an &quot;x.&quot;</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>After a while, you will be switched over to
the node <filename>node2</filename>.</para></listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>To designate <filename>node2</filename> as a node administrator from the CLI, issue this command:</para>
<programlisting>evms -n node2</programlisting>
</sect2>
</sect1>
<sect1><title>Forcing a cluster container to be active</title>
<para>
A private container and its objects are made active on a node if:</para>
<itemizedlist>
<listitem>
<para>
the private container is owned by the node
</para>
</listitem>
<listitem>
<para>
the container is not deported
</para>
</listitem>
<listitem>
<para>
the node is in a cluster membership that currently has quorum
</para>
</listitem>
</itemizedlist>
<para>
Similarly, a shared container and its objects are made active on a node if
the node is in a cluster that currently has quorum.
However, the administrator can force the
activation of private and shared containers by overriding these rules.
</para>
<note><title>NOTE</title>
<para>
Use extreme caution when performing this operation by ensuring that the
node on which the cluster container resides is the only active node in the
cluster. Otherwise, the data in volumes on shared and private containers
on the node can get corrupted.
</para>
</note>
<orderedlist>
<listitem>
<para>
Enabling maintenance mode in the <filename>/etc/evms.conf</filename> file.
The option to modify in the <filename>/etc/evms.conf</filename> file is the
following:
</para>
<programlisting>
# cluster segment manager section
csm {
# admin_mode=yes # values are: yes or no
# The default is no. Set this key to
# yes when you wish to force the CSM
# to discover objects from all cluster
# containers, allowing you to perform
# configuration and maintenance. Setting
# admin_mode to yes will cause the CSM
# to ignore container ownership, which
# will allow you to configure storage
# in a maintenance mode.
</programlisting>
<para>
</para></listitem>
<listitem>
<para>
Running <command>evms_activate</command> on the node.
</para>
</listitem>
</orderedlist>
</sect1>
</chapter>

View File

@ -0,0 +1,45 @@
<chapter id="evmsmigrate"><title>Viewing compatibility volumes after migrating</title>
<para>Migrating to EVMS allows you to have the flexibility of EVMS without losing the integrity of your existing data. EVMS discovers existing volume management volumes as compatibility volumes. After you have installed EVMS, you can view your existing volumes with the interface of your choice. </para>
<sect1 id="guimigrate"><title>Using the EVMS GUI</title>
<para>If you are using the EVMS GUI as your preferred interface, you can view your migrated volumes by typing <command>evmsgui</command> at the command prompt. The following window opens, listing your migrated volumes. </para>
<figure><title>GUI start-up window</title>
<mediaobject><imageobject><imagedata format="PNG" fileref="gui_active.png"/></imageobject>
<textobject><phrase>GUI start-up window</phrase></textobject></mediaobject></figure></sect1>
<sect1 id="ncurmigrate"><title>Using Ncurses</title>
<para>If you are using the Ncurses interface, you can view your migrated volumes by
typing <command>evmsn</command> at the command prompt. The following window opens, listing your migrated volumes. </para>
<figure><title>Ncurses start-up window</title>
<mediaobject>
<imageobject><imagedata format="PNG" fileref="ncurses_active.png"/></imageobject>
<textobject>
<phrase>Ncurses start-up window</phrase></textobject></mediaobject></figure>
</sect1>
<sect1 id="climigrate"><title>Using the CLI</title>
<para>If you are using the Command Line Interpreter (CLI) interface, you can view
your migrated volumes by following these steps:</para>
<orderedlist><listitem><para>Start the Command Line Interpreter by typing
<command>evms</command> at the command line.</para></listitem>
<listitem><para>Query the volumes by typing the following at the
<prompt>EVMS</prompt> prompt:</para>
<programlisting>query:volumes</programlisting>
<para>Your migrated volumes are displayed as results of the
query. </para></listitem></orderedlist>
<figure><title>CLI volume query results</title>
<mediaobject><imageobject><imagedata format="PNG" fileref="cli_active.png"/></imageobject>
<textobject><phrase>CLI volume query</phrase></textobject></mediaobject></figure>
</sect1>
</chapter>

View File

@ -0,0 +1,194 @@
<chapter id="evmsconvert"><title>Converting volumes</title>
<para> This chapter discusses converting compatibility volumes to EVMS
volumes and converting EVMS volumes to compatibility volumes. For a discussion
of the differences between compatibility and EVMS volumes, see <xref linkend="evmscreatevol"></xref>.</para>
<sect1><title>When to convert volumes</title>
<para>There are several different scenarios that might help you determine
what type of volumes you need.
For example, if you wanted persistent names or to make full use of
EVMS features, such as Drive Linking or Snapshotting, you would convert
your compatibility volumes to EVMS volumes.
In another situation, you might decide that a volume needs to be
read by a system that understands the underlying volume management scheme.
In this case, you would convert your EVMS volume to a
compatibility volume.</para>
<para>A volume can only be converted when it is offline.
This means the volume must be unmounted and otherwise not in use.
The volume must be unmounted because the conversion operation changes both
the name and the device number of the volume.
Once the volume is converted, you can remount it using its new name.</para>
</sect1>
<sect1 id="comptoevms"><title>Example: convert compatibility volumes to EVMS volumes</title>
<para>A compatibility volume
can be converted to an EVMS volume in the following situations:
<itemizedlist><listitem><para>The compatibility volume has no file system (FSIM) on it.</para></listitem>
<listitem><para>The compatibility volume has a file system, but the file system can be shrunk (if necessary) to make
room for the EVMS metadata.</para></listitem></itemizedlist></para>
<para>This section provides a detailed explanation of how to convert compatibility
volumes to EVMS volumes and provides instructions to help you complete the following task. </para>
<blockquote><example><title>Convert a compatibility volume</title>
<para>You have a compatibility volume <filename>/dev/evms/hda3</filename>
that you want to make into an EVMS volume named <filename>my_vol</filename>.</para></example></blockquote>
<sect2 id="c2egui"><title>Using the EVMS GUI</title>
<para>Follow these steps to convert a compatibility volume with the EVMS GUI:</para>
<orderedlist>
<listitem><para>Choose <menuchoice><guimenu>Action</guimenu>
<guimenuitem>Convert </guimenuitem>
<guimenuitem>Compatibility Volume to EVMS</guimenuitem>
</menuchoice>. </para></listitem>
<listitem><para>Select <filename>/dev/evms/hda3</filename>
from the list of available volumes.</para></listitem>
<listitem><para>Type <filename>my_vol</filename> in the name field.</para></listitem>
<listitem><para>Click the <guibutton>Convert</guibutton> button
to convert the volume.</para></listitem>
</orderedlist>
<para>Alternatively, you can perform some of the steps to convert the volume from the GUI
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes</guimenuitem> tab, right click
on <filename>/dev/evms/hda3</filename>.</para></listitem>
<listitem><para>Click <guimenuitem>Convert to EVMS Volume...</guimenuitem></para></listitem>
<listitem><para>Continue to convert the volume beginning with step 3 of the GUI
instructions.</para></listitem></orderedlist>
</sect2>
<sect2 id="c2encur"><title>Using Ncurses</title>
<para>Follow these instructions to convert a compatibility volume to an EVMS volume
with the Ncurses
interface:</para>
<orderedlist>
<listitem><para>Choose <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Convert</guimenuitem><guimenuitem>Compatibility Volume to EVMS Volume</guimenuitem></menuchoice></para></listitem>
<listitem><para>Select <filename>/dev/evms/hda3</filename> from the list
of available volumes.</para></listitem>
<listitem><para>Type <userinput>my_vol</userinput> when prompted for the name.
Press <keycap>Enter</keycap>.</para></listitem>
<listitem><para>Activate <guibutton>Convert</guibutton>.</para></listitem>
</orderedlist>
<para>Alternatively, you can perform some of the steps to convert the volume from the
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Volumes view, press <keycap>Enter</keycap> on <filename>/dev/evms/hda3</filename>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Convert to EVMS Volume</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue to convert the volume beginning with step 3 of the Ncurses
instructions.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>To convert a volume, use the <command>Convert</command> command.
The <command>Convert</command> command takes the name of a volume as its first argument, and
then <option>name=</option> for what you want to name the new volume
as the second argument. To complete the example and convert a volume, type the
following command at the <prompt>EVMS:</prompt> prompt:</para>
<programlisting>convert: /dev/evms/hda3, Name=my_vol</programlisting>
</sect2>
</sect1>
<sect1 id="evmstocomp"><title>Example: convert EVMS volumes to compatibility volumes</title>
<para>An EVMS volume can be converted to a compatibility volume only if the volume does not have EVMS
features on it. This section provides a detailed explanation of how to convert EVMS volumes to compatibility volumes
by providing instructions to help you complete the following task. </para>
<blockquote><example><title>Convert an EVMS volume</title>
<para>You have an EVMS volume, <filename>/dev/evms/my_vol</filename>,
that you want to make a compatibility volume.</para></example></blockquote>
<sect2 id="e2cgui"><title>Using the EVMS GUI</title>
<para>Follow these instructions to convert an EVMS volume to a compatibility
volume with the EVMS GUI:</para>
<orderedlist>
<listitem><para>Choose <menuchoice><guimenu>Action</guimenu>
<guimenuitem>Convert </guimenuitem>
<guimenuitem>EVMS Volume to Compatibility Volume</guimenuitem>
</menuchoice>. </para></listitem>
<listitem><para>Select <filename>/dev/evms/my_vol</filename>
from the list of available volumes.</para></listitem>
<listitem><para>Click the <guibutton>Convert</guibutton> button
to convert the volume.</para></listitem>
</orderedlist>
<para>Alternatively, you can perform some of the steps to convert the volume through
the GUI context sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes</guimenuitem> tab, right click
<filename>/dev/evms/my_vol</filename>.</para></listitem>
<listitem><para>Click <guimenuitem>Convert to Compatibility Volume...</guimenuitem></para></listitem>
<listitem><para>Continue converting the volume beginning with step 3 of the
GUI instructions.</para></listitem>
</orderedlist>
</sect2>
<sect2 id="e2cncur"><title>Using Ncurses</title>
<para>Follow these instructions to convert an EVMS volume to a compatibility volume
with the Ncurses interface:</para>
<orderedlist>
<listitem><para>Choose <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Convert</guimenuitem><guimenuitem>EVMS Volume to
Compatibility Volume</guimenuitem></menuchoice></para></listitem>
<listitem><para>Select <filename>/dev/evms/my_vol</filename> from the
list of available volumes.</para></listitem>
<listitem><para>Activate <guibutton>Convert</guibutton>.
</para></listitem>
</orderedlist>
<para>Alternatively, you can perform some of the steps to convert the volume through
the context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Volumes view, press <keycap>Enter</keycap> on <filename>/dev/evms/my_vol</filename>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Convert to Compatibility Volume</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue to convert the volume beginning with step 3 of the Ncurses
instructions.</para>
</listitem>
</orderedlist>
</sect2>
<sect2 id="e2ccli"><title>Using the CLI</title>
<para>To convert a volume use the <command>Convert</command> command.
The <command>Convert</command> command takes the name of a volume as its first argument, and
the keyword <option>compatibility</option> to indicate a change to a compatibility volume
as the second argument. To complete the example and convert a volume, type the
following command at the <prompt>EVMS:</prompt> prompt:</para>
<programlisting>convert: /dev/evms/my_vol, compatibility</programlisting></sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,135 @@
<chapter id="evmscreatecont"><title>Creating a container </title>
<para>This chapter discusses when and how to create a container. </para>
<sect1 id="whencont"><title>When to create a container</title>
<para>Segments and disks can be combined to form a container. Containers allow
you to combine
storage objects and then subdivide those combined storage objects
into new storage objects. You can
combine storage objects to implement the volume group concept
as found in the AIX and Linux logical volume managers.</para>
<para>Containers are the beginning of more flexible
volume management. You might want to create a container in order to account for flexibility in your future storage needs. For example, you might
need to add additional disks when your applications or users need more storage. </para>
</sect1>
<sect1 id="contex"><title>Example: create a container</title>
<para>This section provides a detailed explanation of how to create a container with EVMS by providing instructions
to help you complete the following task.</para>
<blockquote><example><title>Create &quot;Sample Container&quot;</title>
<para>Given a system with three available disk drives
(<filename>sdc</filename>, <filename>sdd</filename>, <filename>hdc</filename>),
use the EVMS LVM Region Manager to combine these disk drives into a
container called "Sample Container" with a PE size of 16 MB. </para></example></blockquote>
<sect2 id="guicont"><title>Using the EVMS GUI</title>
<para>To create a container using the EVMS GUI, follow these steps:
<orderedlist>
<listitem><para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem>
<guimenuitem>Container</guimenuitem></menuchoice>
to see a list plug-ins that support container creation.</para></listitem>
<listitem><para>Select the
<guimenu>LVM Region Manager</guimenu>. Click
<guibutton>Next</guibutton>.</para>
<para>The next dialog window contains a list of storage objects
that the LVM Region Manager can use to create a container. </para></listitem>
<listitem><para>Select <guilabel>sdc</guilabel>, <guilabel>sdd</guilabel>, and
<guilabel>hdc</guilabel> from the list. Click
<guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Enter the name <userinput>Sample Container</userinput>
for the container and <userinput>16MB</userinput> in the
<guilabel>PE size</guilabel> field.</para></listitem>
<listitem><para>Click
<guibutton>Create</guibutton>.
A window opens to display the
outcome.</para>
</listitem>
</orderedlist>
</para>
</sect2>
<!--ncurses-->
<sect2 id="ncurcont"><title>Using Ncurses</title>
<para>To create a container using the Ncurses interface, follow these
steps:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem><guimenuitem>Container</guimenuitem></menuchoice>
to see a list of plug-ins that support container creation.</para> </listitem>
<listitem><para>Select the
<guimenuitem>LVM Region Manager</guimenuitem>. Activate
<keycap>Next</keycap>. </para>
<para>The next dialog window contains a list
of storage objects that the LVM Region Manager can use to
create the container.</para></listitem>
<listitem><para>Select <guilabel>sdc</guilabel>, <guilabel>sdd</guilabel>, and
<guilabel>hdc</guilabel> from the list. Activate
<guibutton>Next</guibutton>.</para> </listitem>
<listitem><para>Press <keycap>spacebar</keycap> to select the field for
the container name. </para> </listitem>
<listitem><para>Type <userinput>Sample Container</userinput> at the "::" prompt. Press
<keycap>Enter</keycap>.</para> </listitem>
<listitem><para>Scroll down until <guilabel>PE Size</guilabel> is highlighted.
Press <keycap>spacebar</keycap>.</para></listitem>
<listitem><para>Scroll down until <guilabel>16MB</guilabel> is highlighted.
Press <keycap>spacebar</keycap>.</para></listitem>
<listitem><para>Activate <guibutton>OK</guibutton>.</para></listitem>
<listitem><para>Activate <guibutton>Create</guibutton>.</para></listitem>
</orderedlist>
</para>
</sect2>
<!--CLI-->
<sect2 id="clicont"><title>Using the CLI</title>
<para>The <command>Create</command> command
creates containers. The first argument
in the <command>Create</command> command is the type of object to
produce, in this case a container. The
<command>Create</command> command then accepts
the following arguments: the region manager to
use along with any parameters it might need, and
the segments or disks to create the container
from. The command to complete the previous example is:</para>
<programlisting>Create:Container,LvmRegMgr={name="Sample Container",pe_size=16MB},sdc,sdd,hdc
</programlisting>
<para>The previous example accepts the default values for all options
you don't specify. To see the options for this command type:
<programlisting>query:plugins,plugin=LvmRegMgr,list options</programlisting></para>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,157 @@
<chapter id="evmscreatereg"><title>Creating regions</title>
<para>Regions can be created from containers, but they can also be created from other
regions, segments, or disks. Most region managers that support containers create one or more
freespace regions to represent the freespace within the container. This function is
analogous to the way a segment manager creates a freespace segment to represent unused disk
space. </para>
<sect1><title>When to create regions</title>
<para>You can create regions because you want the features provided by
a certain region manager or because you want the features provided by
that region manager. You can also create regions to be compatible with
other volume management technologies, such as MD or LVM.
For example, if you wanted to make a volume that is compatible with Linux LVM,
you would create a region out of a Linux LVM container and then a compatibility volume from that region. </para>
</sect1>
<sect1 id="crregex"><title>Example: create a region</title>
<para>This section tells how to create a region with EVMS by
providing instructions to help you complete the following task.</para>
<blockquote><example><title>Create &quot;Sample Region&quot;</title>
<para>Given the container "Sample Container," which has a freespace region of
8799 MB, create a data region 1000 MB in size named "Sample Region."</para></example></blockquote>
<sect2 id="guireg"><title>Using the EVMS GUI</title>
<para>To create a region, follow these steps:
<orderedlist><listitem><para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem><guimenuitem>Region</guimenuitem></menuchoice>
</para></listitem>
<listitem><para>Select
the <guisubmenu>LVM Region
Manager</guisubmenu>. Click <guibutton>Next</guibutton>.</para>
<note><title>NOTE</title>
<para>You might
see additional region managers that were
not in the selection list when you were creating the storage container
because not all region
managers are required to support containers.</para></note></listitem>
<listitem><para>Select the freespace region from
the container you created in
<xref linkend="evmscreatecont"></xref>.
Verify that the region is named
<filename>lvm&sol;Sample Container&sol;Freespace</filename>.
Click <guibutton>Next</guibutton>.</para>
<para>The fields in the next window are the options for the
LVM Region Manager plug-in, the options marked with an "*" are required. </para></listitem>
<listitem><para>Fill in the name, <userinput>Sample Region</userinput>.</para></listitem>
<listitem><para>Enter <userinput>1000MB</userinput> in the <guilabel>size</guilabel> field.</para></listitem>
<listitem><para>Click the
<guibutton>Create</guibutton> button to complete the
operation. A window opens to display the outcome.</para>
</listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps for creating a region with the GUI context sensitive menu:</para>
<orderedlist><listitem><para>From the <guimenuitem>Regions</guimenuitem> tab, right click
<filename>lvm/Sample Container/Freespace</filename>.</para></listitem>
<listitem><para>Click <guibutton>Create Region</guibutton>.</para></listitem>
<listitem><para>Continue beginning with step 4 of the GUI instructions.</para></listitem>
</orderedlist>
</sect2>
<!--ncurses-->
<sect2 id="ncurreg"><title>Using Ncurses</title>
<para>To create a region, follow these steps:
<orderedlist>
<listitem><para>Select
<menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem>
<guimenuitem>Region</guimenuitem></menuchoice>.</para> </listitem>
<listitem><para>Select the
<guimenuitem>LVM Region
Manager</guimenuitem>. Activate <keycap>Next</keycap>.</para>
</listitem>
<listitem><para>Select the freespace
region from the container you created
earlier in <xref linkend="evmscreatecont"></xref>. Verify that
the region is named
<filename>lvm&sol;Sample Container&sol;Freespace</filename>.</para></listitem>
<listitem><para>Scroll to the <guilabel>Name</guilabel> field, and press
<keycap>spacebar</keycap>.</para></listitem>
<listitem><para>Type <userinput>Sample Region</userinput> at the "::" prompt.
Press <keycap>Enter</keycap>.</para></listitem>
<listitem><para>Scroll to the <guilabel>size</guilabel> field,
and press <keycap>spacebar</keycap>.</para></listitem>
<listitem><para>Type <userinput>1000MB</userinput> at the "::" prompt.
Press <keycap>Enter</keycap>.</para></listitem>
<listitem><para>Activate <guibutton>Create</guibutton>.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps for creating a region with the
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Storage Regions view, press <keycap>Enter</keycap> on
<filename>lvm/Sample Container/Freespace</filename>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Create Region</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue beginning with step 4 of the Ncurses instructions.</para>
</listitem>
</orderedlist>
</sect2>
<!--CLI-->
<sect2 id="clireg"><title>Using the CLI</title>
<para>Create regions with the <command>Create</command>
command. Arguments to the <command>Create </command>command are
the following: keyword Region, the name of the
region manager to use, the region managers
options, and the objects to consume. The form of this command is:</para>
<programlisting>Create:region, LvmRegMgr={name="Sample Region", size=1000MB},
"lvm/Sample Container/Freespace"</programlisting>
<para>The LVM Region Manager supports many
options for creating regions. To see the
available options for creating regions and
containers, use the following <command>Query</command>:</para>
<programlisting>query:plugins,plugin=LvmRegMgr,list options</programlisting>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,151 @@
<chapter id="evmscreateseg"><title>Creating segments</title>
<para>This chapter discusses when to use segments and how to create them using
different EVMS interfaces.</para>
<sect1 id="whyseg"><title>When to create a segment</title>
<para>A disk can be subdivided into smaller storage objects called disk segments. A segment manager plug-in provides this capability. Another reason for creating disk segments is to maintain compatibility on a dual boot system where the other operating system requires disk partitions. Before creating a disk segment, you must choose a segment manager plug-in to manage the disk and assign
the segment manager to the disk. An explanation of when and how to assign segment managers can be found in <xref linkend="evmsassignseg"></xref>.</para>
</sect1>
<sect1 id="crsegex"><title>Example: create a segment</title>
<para> This section provides a detailed explanation of how to create a
segment with EVMS by providing instructions to help you complete the following task:</para>
<blockquote><example><title>Create a 100MB segment</title>
<para>Create a 100MB segment from the freespace segment sde_freespace1. This
freespace segment lies on a drive controlled by the DOS Segment Manager. </para></example></blockquote>
<sect2 id="guiseg"><title>Using the EVMS GUI</title>
<para>To create a segment using the GUI, follow the steps below:
<orderedlist>
<listitem><para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem>
<guimenuitem>Segment</guimenuitem>
</menuchoice>
to see a list of segment manager plug-ins.
</para></listitem>
<listitem><para>Select
<guimenuitem>DOS Segment Manager</guimenuitem>.
Click <guibutton>Next</guibutton>.</para>
<para>The next dialog window lists
the free space storage objects suitable for creating
a new segment.</para></listitem>
<listitem><para>Select <filename>sde_freespace1</filename>. Click
<guibutton>Next</guibutton>. </para>
<para>The last dialog window
presents the free space object you
selected as well as the available
configuration options for that
object.</para></listitem>
<listitem><para>Enter 100 MB. Required fields are denoted by the
"*" in front of the field description. The DOS Segment
Manager provides default values, but you might want to change
some of these values.</para>
<para>After you have filled in
information for all the required
fields, the <guibutton>Create</guibutton>
button becomes available.</para></listitem>
<listitem><para>Click
<guibutton>Create</guibutton>.
A window opens to display the
outcome.</para>
</listitem>
</orderedlist></para>
<para>Alternatively, you can perform some of the steps to create a segment from the GUI context sensitive menu:</para>
<orderedlist><listitem><para>From the <guimenuitem>Segments</guimenuitem> tab, right click
on <filename>sde_freespace1</filename>.</para></listitem>
<listitem><para>Click <guibutton>Create Segment...</guibutton></para></listitem>
<listitem><para>Continue beginning with step 4 of the GUI instructions.</para></listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="ncurseg"><title>Using Ncurses</title>
<para>To create a segment using Ncurses, follow these steps:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Create</guimenuitem><guimenuitem>Segment</guimenuitem></menuchoice> to see a list of segment manager plug-ins.</para></listitem>
<listitem><para>Select <guimenuitem>DOS Segment Manager</guimenuitem>.
Activate <guibutton>Next</guibutton>.</para>
<para>The next dialog window
lists free space
storage objects suitable for creating
a new segment. </para></listitem>
<listitem><para>Select <filename>sde_freespace1</filename>. Activate <keycap>Next</keycap>.</para>
</listitem>
<listitem><para>Highlight the <guilabel>size field</guilabel> and press <keycap>spacebar</keycap>.</para></listitem>
<listitem><para>At the &quot;::&quot; prompt enter <userinput>100MB</userinput>.
Press <keycap>Enter</keycap>. </para> </listitem>
<listitem><para>After all required values have been completed, the <guibutton>Create</guibutton>
button becomes available.</para> </listitem>
<listitem><para>Activate <guibutton>Create</guibutton>.</para></listitem>
</orderedlist>
<para>Alternatively, you can perform some of the steps to create a segment from the
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Segments view, press <keycap>Enter</keycap> on <filename>sde_freespace1</filename>.</para>
</listitem>
<listitem><para>Activate <guimenuitem>Create Segment</guimenuitem>.</para>
</listitem>
<listitem><para>Continue beginning with step 4 of the Ncurses instructions.</para>
</listitem>
</orderedlist>
</sect2>
<!-- CLI-->
<sect2 id="cliseg"><title>Using the CLI</title>
<para>To create a data segment from a
freespace segment, use the
<command>Create</command> command. The arguments the
<command>Create</command> command accepts vary
depending on what is being created. The first
argument to the <command>Create</command>
command indicates what is to be created, which
in the above example is a segment. The
remaining arguments are the freespace segment
to allocate from and a list of options to pass
to the segment manager. The command to
accomplish this is:</para>
<programlisting>Create: Segment,sde_freespace1, size=100MB</programlisting>
<note><title>NOTE</title>
<para>The <command>Allocate</command> command also works to create a segment. </para></note>
<para>The previous example accepts the default values for all options you don't specify. To see the options for this command type:<programlisting>query:plugins,plugin=DosSegMgr,list options</programlisting></para>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,192 @@
<chapter id="evmscreatevol"><title>Creating volumes</title>
<para>This chapter discusses when and how to create volumes.</para>
<sect1><title>When to create a volume</title>
<para>EVMS treats volumes and storage objects separately.
A storage object does not automatically
become a volume; it must be made into a volume.</para>
<para>Volumes are created from storage objects.
Volumes are either EVMS native volumes or compatibility volumes. Compatibility volumes
are intended to be compatible with a volume manager other than EVMS, such as the Linux
LVM, MD, OS/2 or AIX. Compatibility volumes might have restrictions on what EVMS can do with
them. EVMS native volumes have no such restrictions, but they can be used only by an
EVMS equipped system. Volumes are mountable and can contain file systems.</para>
<para>EVMS native volumes contain EVMS-specific information to identify
the volume name. After this volume information is
applied, the volume is no longer fully backward compatible
with existing volume types.</para>
<para>Instead of
adding EVMS metadata to an existing object, you can tell EVMS to make an object directly available as a volume. This type of
volume is known as a compatibility volume. Using this method, the final product is fully
backward-compatible with the desired system. </para>
</sect1>
<sect1 id="crvolexcomp"><title>Example: create an EVMS native volume</title>
<para>This section provides a detailed explanation of how to create an EVMS native
volume with EVMS by providing instructions to help you complete the following task.</para>
<blockquote><example><title>Create an EVMS native volume </title>
<para>Create an EVMS native volume called &quot;Sample Volume&quot; from the region, <filename>/lvm/Sample Container/Region</filename>, you created in <xref linkend="evmscreatereg"></xref>.</para></example></blockquote>
<sect2 id="evmsguivol"><title>Using the EVMS GUI</title>
<para>Follow these instructions to create an EVMS volume:</para>
<orderedlist><listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem>
<guimenuitem>EVMS Volume</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Choose <filename>lvm/Sample Container/Sample Region</filename>.
</para></listitem>
<listitem><para>Type <userinput>Sample Volume</userinput> in the
<guilabel>name field</guilabel>.</para></listitem>
<listitem><para>Click <guibutton>Create</guibutton>.</para></listitem></orderedlist>
<para>Alternatively, you can perform some of the steps to create an EVMS
volume from the GUI context sensitive menu:</para>
<orderedlist><listitem><para>From the <guimenuitem>Available Options</guimenuitem> tab, right click
<filename>lvm/Sample Container/Sample Region</filename>.</para></listitem>
<listitem><para>Click <guimenuitem>Create EVMS Volume...</guimenuitem></para></listitem>
<listitem><para>Continue beginning with step 3 of the GUI instructions.</para></listitem>
</orderedlist></sect2>
<sect2 id="ncurevmsvol"><title>Using Ncurses</title>
<para>To create a volume, follow these steps:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem><guimenuitem>EVMS Volume</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Enter <userinput>Sample Volume</userinput> at the "name" prompt.
Press <keycap>Enter</keycap>.</para> </listitem>
<listitem><para>Activate <guibutton>Create</guibutton>.</para></listitem></orderedlist>
</para>
<para>Alternatively, you can perform some of the steps to create an EVMS volume
from the context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Available Objects view, press <keycap>Enter</keycap> on
<filename>lvm/Sample Container/Sample Region</filename>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Create EVMS Volume</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue beginning with step 3 of the Ncurses instructions.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>To create a volume, use the <command>Create</command> command. The arguments
the <command>Create</command> command accepts vary depending on what is being created. In
the case of the example, the first argument is the key word <option>volume</option> that
specifies what is being created. The second argument is the object being made into a volume,
in this case <option>lvm/Sample Container/Sample Region</option>.
The third argument is type specific for an EVMS
volume, <option>Name=</option>, followed by what
you want to call the volume, in this case <option>Sample Volume</option>. The following command
creates the volume from the example. </para>
<programlisting>Create: Volume, &quot;lvm/Sample Container/Sample Region&quot;, Name="Sample Volume"</programlisting>
</sect2>
</sect1>
<sect1 id="crvolexevms"><title>Example: create a compatibility volume</title>
<para>This section provides a detailed explanation of how to create a compatibility
volume with EVMS by providing instructions to help you complete the following task.</para>
<blockquote><example><title>Create a compatibility volume</title>
<para>Create a compatibility volume called &quot;Sample Volume&quot; from
the region, <filename>/lvm/Sample Container/Region</filename>, you created in <xref linkend="evmscreatereg"></xref>.</para></example></blockquote>
<sect2 id="guicompvol"><title>Using the GUI</title>
<para>To create a compatibility volume, follow these steps:</para>
<orderedlist>
<listitem><para>Select
<menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem>
<guimenuitem>Compatibility Volume</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Choose the region <filename>lvm/Sample Container/Sample Region</filename>
from the list.</para></listitem>
<listitem><para>Click the <guibutton>Create</guibutton> button.</para></listitem>
<listitem><para>Click the <guilabel>Volume</guilabel> tab in the GUI to
see a volume named <filename>/dev/evms/lvm/Sample Container/Sample Region</filename>.
This volume is your compatibility volume.</para></listitem>
</orderedlist>
<para>Alternatively, you can perform some of the steps to create a compatibility volume from
the GUI context sensitive menu:</para>
<orderedlist><listitem><para>From the <guimenuitem>Available Objects</guimenuitem> tab, right click
<filename>lvm/Sample Container/Sample Region</filename>.</para></listitem>
<listitem><para>Click <guimenuitem>Create Compatibility Volume...</guimenuitem></para></listitem>
<listitem><para>Continue beginning with step 3 of the GUI instructions.</para></listitem></orderedlist>
</sect2>
<sect2 id="ncurcompatvol"><title>Using Ncurses</title>
<para>To create a compatibility volume, follow these steps:</para>
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Create</guimenuitem><guimenuitem>Compatibility Volume</guimenuitem></menuchoice>.</para></listitem>
<listitem><para>Choose the region <filename>lvm/Sample Container/Storage Region</filename> from the list..
</para></listitem>
<listitem><para>Activate <guibutton>Create</guibutton>.</para> </listitem>
</orderedlist>
<para>Alternatively, you can perform some of the steps to create a compatibility volume from
the context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Available Objects view, press <keycap>Enter</keycap> on
<filename>lvm/Sample Container/Sample Region</filename>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Create Compatibility Volume</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue beginning with step 3 of the Ncurses instructions.</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>To create a volume, use the <command>Create</command> command. The arguments
the <command>Create</command> command accepts vary depending on what is being created. In
the case of the example, the first argument is the key word <option>volume</option> that
specifies what is being created. The second argument is the object being made into a volume,
in this case <option>lvm/Sample Container/Sample Region</option>.
The third argument, <option>compatibility</option>, indicates that this is a compatibility
volume and should be named as such. </para>
<programlisting>Create:Volume,"lvm/Sample Container/Sample Region",compatibility</programlisting>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,173 @@
<chapter id="deleterecurs"><title>Deleting objects</title>
<para>This chapter tells how to delete EVMS objects through the delete and
delete recursive operations.</para>
<sect1 id="howtodel"><title>How to delete objects: delete and delete recursive</title>
<para>There are two ways in EVMS that you can destroy objects that you
no longer want: Delete and Delete Recursive.
The Delete option destroys only the specific object you specify.
The Delete Recursive option destroys the object you specify and its
underlying objects, down to the container, if one exists, or else
down to the disk.
In order for a volume to be deleted, it must not be mounted.
EVMS verifies that the volume you are attempting to delete is not
mounted and does not perform the deletion if the volume is mounted.</para>
</sect1>
<sect1 id="examdelrecur"><title>Example: perform a delete recursive operation</title>
<para> The following example shows how to destroy a volume and the objects below it with the EVMS GUI, Ncurses, and CLI interfaces.</para>
<blockquote><example><title>Destroy a volume and the region and container below it</title>
<para>This example uses the delete recursive operation to destroy volume <filename>/dev/evms/Sample Volume</filename> and the region and container below it. Volume <filename>/dev/evms/Sample Volume</filename> is the volume that was created in earlier. Although we could also use the delete option on each of the objects, the delete recursive option takes fewer steps. Note that because we intend to delete the container as well as the volume, the operation needs to be performed in two steps: one to delete the volume and its contents, and one to delete the container and its contents.
</para></example></blockquote>
<sect2 id="mkfsgui"><title>Using the EVMS GUI</title>
<para>Follow these steps to delete the volume and the container with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Delete</guimenuitem>
<guimenuitem>Volume</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select volume <guimenuitem>/dev/evms/Sample Volume</guimenuitem>
from the list.
</para></listitem>
<listitem><para>Click <guibutton>Recursive Delete</guibutton>. This step deletes the volume
and the region <filename>lvm/Sample Container/Sample Region</filename>. If you want to
keep the
underlying pieces or want to delete each piece separately, you would click
<guibutton>Delete</guibutton> instead of <guibutton>Delete Recursive</guibutton>.
</para></listitem>
<listitem><para>Assuming you chose Delete Recursive (if not, delete the region before
continuing with these steps), select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Delete</guimenuitem>
<guimenuitem>Container</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select container <guimenuitem>lvm/Sample Container</guimenuitem> from the list.
</para></listitem>
<listitem><para>Click <guibutton>Recursive Delete</guibutton> to destroy the container and anything
under it. Alternatively, click <guibutton>Delete</guibutton> to destroy only the container (if you built the container on
disks as in the example, either command has the same effect).
</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the volume deletion steps with the GUI context
sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes</guimenuitem> tab, right click
<filename>/dev/evms/Sample Volume</filename>.</para></listitem>
<listitem><para>Click <guimenuitem>Delete...</guimenuitem></para></listitem>
<listitem><para>Continue with the operation beginning with step 3 of the
GUI instructions.</para></listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="mkfsncurses"><title>Using Ncurses</title>
<para>Follow these steps to delete the volume and the container with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Delete</guimenuitem><guimenuitem>Volume</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select volume
<guimenuitem>/dev/evms/Sample Volume</guimenuitem> from the list.
</para></listitem>
<listitem><para>Activate
<guibutton>Delete Volume Recursively</guibutton>.
This step deletes the volume and the region
<filename>lvm/Sample Container/Sample Region</filename>. If you want to keep the
underlying pieces or want to delete each piece separately, activate
<guibutton>Delete</guibutton> instead of <guibutton>Delete Recursive</guibutton>.
</para></listitem>
<listitem><para>Assuming you chose <guimenuitem>Delete Volume Recursively</guimenuitem>
(if not, delete the region before continuing with
these steps), select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Delete</guimenuitem><guimenuitem>Container</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select container
<guimenuitem>lvm/Sample Container</guimenuitem> from the list.
</para></listitem>
<listitem><para>Click
<guimenuitem>Recursive Delete</guimenuitem> to destroy the container and
everything under it. Alternatively, activate <guibutton>Delete</guibutton> to delete
only the container (if you built the container on disks as in the
example, either command has the same effect).</para></listitem>
<listitem><para>Press <keycap>Enter</keycap>.
</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the volume deletion steps with the
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Volumes view, press <keycap>Enter</keycap> on <guimenuitem>/dev/evms/Sample Volume</guimenuitem>.</para>
</listitem>
<listitem><para>Activate <guibutton>Delete</guibutton>.</para>
</listitem>
<listitem><para>Continue with the operation beginning with step 3 of the Ncurses instructions.</para>
</listitem>
</orderedlist>
</sect2>
<!-- CLI-->
<sect2 id="deleterecurcli"><title>Using the CLI</title>
<para>Use the
<command>delete</command> and <command>delete recursive</command>
commands to destroy EVMS objects.
Specify the command name followed by a colon, and then specify the
volume, object, or container name. For example:
<orderedlist>
<listitem><para>Enter this command to perform the delete recursive
operation:</para>
<programlisting>delete recursive: "/dev/evms/Sample Volume"</programlisting>
<para>This step deletes the volume and the region
<filename>/lvm/Sample Container/Sample Region</filename>. If you wanted to keep the
underlying pieces or wanted to delete each piece separately, use the <command>delete</command> command, as follows:</para>
<programlisting>delete: "/dev/evms/Sample Volume"</programlisting>
</listitem>
<listitem><para>Assuming you chose <guimenuitem>Delete Volume Recursively</guimenuitem> (if not, delete the region before
continuing with these steps) enter the following to destroy the container and everything under it:</para>
<programlisting>delete recursive: "lvm/Sample Container"</programlisting>
<para>To destroy only the container, enter the following:</para>
<programlisting>delete: "lvm/Sample Container"</programlisting>
</listitem>
</orderedlist>
</para>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,357 @@
<chapter id="evmsfsimops"><title>FSIMs and file system operations</title>
<para>This chapter discusses the seven File System Interface Modules (FSIMs) shipped with EVMS, and then provides examples of adding file systems and coordinating file system checks with the FSIMs.</para>
<sect1 id="FSIMsuppevms"><title>The FSIMs supported by EVMS</title>
<para>EVMS currently ships with seven FSIMs. These file system modules allow EVMS to interact with file system utilities such as <command>mkfs</command> and <command>fsck</command>. Additionally, the FSIMs ensure that EVMS safely performs operations, such as expanding and shrinking file systems, by coordinating these actions with the file system. </para>
<para>You can invoke operations such as <command>mkfs</command> and <command>fsck</command> through the various EVMS user interfaces. Any actions you initiate through an FSIM are not saved to disk until the changes are saved in the user interface. Later in this chapter we provide examples of creating a new file system and coordinating file system checks through the EVMS GUI, Ncurses, and command-line interfaces.</para>
<para>The FSIMs supported by EVMS are:</para>
<itemizedlist>
<listitem><para>JFS</para></listitem>
<listitem><para>XFS</para></listitem>
<listitem><para>ReiserFS</para></listitem>
<listitem><para>Ext2/3</para></listitem>
<listitem><para>SWAPFS</para></listitem>
<listitem><para>OpenGFS</para></listitem>
<listitem><para>NTFS</para></listitem>
</itemizedlist>
<sect2 id="fsimjfs"><title>JFS</title>
<para>
The JFS module supports the IBM journaling file system (JFS).
Current support includes <command>mkfs</command>, <command>unmkfs</command>,
<command>fsck</command>, and online file system expansion.
You must
have at least version 1.0.9 of the JFS utilities for your system
to work with this EVMS FSIM. You can download the latest utilities
from the <ulink url="http://oss.software.ibm.com/jfs">JFS for Linux</ulink>
site.
</para>
<para>
For more information on the JFS FSIM, refer to <xref linkend="jfsfsim"></xref>.
</para>
</sect2>
<sect2 id="fsimxfs"><title>XFS</title>
<para>
The XFS FSIM supports the XFS file system from SGI.
Command support includes <command>mkfs</command>, <command>unmkfs</command>,
<command>fsck</command>, and online expansion. Use version 1.2 or higher, which you can download from <ulink url="ftp://oss.sgi.com/projects/xfs/download">the SGI open source FTP directory.</ulink>
</para>
<para>
For more information on the XFS FSIM, refer to <xref linkend="xfsfsim"></xref>.
</para>
</sect2>
<sect2 id="fsimreiserfs"><title>ReiserFS</title>
<para>
The ReiserFS module supports the ReiserFS journaling file system.
This module supports <command>mkfs</command>, <command>unmkfs</command>, <command>fsck</command>, online and offline
expansion and offline shrinkage. You need version 3.x.1a or higher
of the ReiserFS utilities for use with the EVMS FSIM modules. You can download
the ReiserFS utilities from <ulink url="http://www.namesys.com">The Naming
System Venture (Namesys) </ulink> Web site.
</para>
<para>
For more information on the ReiserFS FSIM, refer to <xref linkend="reiserfsim"></xref>.
</para>
</sect2>
<sect2 id="fsimext23"><title>Ext2/3</title>
<para>
The EXT2/EXT3 FSIM supports both the ext2 and ext3 file system formats.
The FSIM supports <command>mkfs</command>, <command>unmkfs</command>,
<command>fsck</command>, and offline shrinkage and expansion.
</para>
<para>
For more information on the Ext2/3 FSIM, refer to <xref linkend="ext23fsim"></xref>.
</para>
</sect2>
<sect2 id="fsimswapfs"><title>SWAPFS</title>
<para>
The SWAPFS FSIM supports Linux swap devices. The FSIM lets you create
and delete swap devices, and supports <command>mkfs</command>,
<command>unmkfs</command>, shrinkage and expansion.
Currently, you are responsible for issuing the
<command>swapon</command> and <command>swapoff</command> commands either in
the startup scripts or manually.
You can resize swap device with the SWAPFS FSIM as long as the device is
not in use.
</para>
</sect2>
<sect2 id="fsimopengfs"><title>OpenGFS</title>
<para>
The OpenGFS module supports the OpenGFS clustered journaling file system.
This module supports <command>mkfs</command>, <command>unmkfs</command>,
<command>fsck</command>, and online expansion.
You need the OpenGFS utilities for use with the EVMS FSIM module.
You can download the OpenGFS utilities from the
<ulink url="http://sourceforge.net/projects/opengfs">OpenGFS project on SourceForge</ulink>.
</para>
<para>
For more information on the OpenGFS FSIM, refer to <xref linkend="gfsfsim"></xref>.
</para>
</sect2>
<sect2 id="fsimntfs"><title>NTFS</title>
<para>
The NTFS FSIM supports the NTFS file system format.
The FSIM supports <command>mkfs</command>, <command>unmkfs</command>,
and offline shrinkage and expansion.
It also has support for running the <command>ntfsfix</command> and
<command>netfsclone</command> from the <command>ntfsprogs</command> utilities.
You can download the <command>ntfsprogs</command> utilities from the
<ulink url="http://linux-ntfs.sourceforge.net/">Linux NTFS project web site</ulink>.
</para>
<para>
For more information on the NTFS FSIM, refer
to <xref linkend="ntfsfsim"></xref>.
</para>
</sect2>
</sect1>
<sect1 id="fsimmkfs"><title>Example: add a file system to a volume</title>
<para>After you have made an EVMS or compatibility volume, add a file system to the volume before mounting it. You can add a file system to a volume through the EVMS interface of your choice.</para>
<blockquote><example><title>Add a JFS File System to a Volume</title>
<para>This example creates a new JFS file system, named <filename>jfs_vol</filename>, on volume <filename>/dev/evms/my_vol</filename>.
</para></example></blockquote>
<sect2 id="fsimmkfsgui"><title>Using the EVMS GUI</title>
<para>Follow these steps to create a JFS file system with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>File Systems</guimenuitem>
<guimenuitem>Make</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select <menuchoice><guimenu>JFS File System Interface Module</guimenu></menuchoice>.
</para></listitem>
<listitem><para>Click <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Select <menuchoice><guimenu>/dev/evms/my_vol</guimenu></menuchoice>.
</para></listitem>
<listitem><para>Click <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Type <userinput>jfs_vol</userinput> in the "Volume Label"
field. Customize any other options you are interested in.
</para></listitem>
<listitem><para>Click <guibutton>Make</guibutton>.
</para></listitem>
<listitem><para>The operation is completed when you save.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps to create a file system with the GUI
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes</guimenuitem> tab, right click
<filename>/dev/evms/my_vol</filename>.</para></listitem>
<listitem><para>Click <guimenuitem>Make Filesystem...</guimenuitem></para></listitem>
<listitem><para>Continue creating the file system beginning with step 2 of the
GUI instructions. You can skip steps 4 and 5 of the GUI instructions.</para></listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="fsimmkfsncurses"><title>Using Ncurses</title>
<para>Follow these steps to create a JFS file system with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>File Systems</guimenuitem><guimenuitem>Make</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select JFS File System Interface Module.</para></listitem>
<listitem><para>Activate <guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Select <filename>/dev/evms/my_vol</filename>.</para></listitem>
<listitem><para>Activate <guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Scroll down using the <keycap>down</keycap> arrow until
<guimenuitem>Volume Label</guimenuitem> is highlighted.
</para></listitem>
<listitem><para>Press <keycap>Spacebar</keycap>.
</para></listitem>
<listitem><para>At the &quot;::&quot; prompt enter <userinput>jfs_vol</userinput>.
</para></listitem>
<listitem><para>Press <keycap>Enter</keycap>.
</para></listitem>
<listitem><para>Activate <guibutton>Make</guibutton>.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps to create a file system with the
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Volumes view, press <keycap>Enter</keycap> on
<filename>/dev/evms/my_vol</filename>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Make Filesystem</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue creating the file system beginning with step 2 of the
Ncurses instructions.</para>
</listitem>
</orderedlist>
</sect2>
<!-- CLI-->
<sect2 id="fsimmkfscli"><title>Using the CLI</title>
<para>Use the
<command>mkfs</command> command to create the new file system.
The arguments to <command>mkfs</command> include the FSIM type (in our example, JFS), followed
by any option pairs, and then the volume name. The command to accomplish
this is:</para>
<programlisting>mkfs: JFS={vollabel=jfs_vol}, /dev/evms/my_vol</programlisting>
<para>The command is completed upon saving.</para>
<para>If you are interested in other options that <command>mkfs</command> can
use, look at the results of the following query:</para>
<programlisting>query: plugins, plugin=JFS, list options</programlisting>
</sect2>
</sect1>
<sect1 id="fsimmkfsaex"><title>Example: check a file system</title>
<para>You can also coordinate file system checks from the EVMS user interfaces.</para>
<blockquote><example><title>Check a JFS File System</title>
<para>This example shows how to perform a file system check on a JFS file system, named <filename>jfs_vol</filename>, on volume <filename>/dev/evms/my_vol</filename>, with verbose output.
</para></example></blockquote>
<sect2 id="FSIMmkfsgui"><title>Using the EVMS GUI</title>
<para>Follow these steps to check a JFS file system with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>File Systems</guimenuitem>
<guimenuitem>Check/Repair</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select <menuchoice><guimenu>/dev/evms/my_vol</guimenu></menuchoice>.
</para></listitem>
<listitem><para>Click <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Click the <keycap>Yes</keycap> button by <guimenu>Verbose Output</guimenu>.
Customize any other options you are interested in.
</para></listitem>
<listitem><para>Click <guibutton>Check</guibutton>.
</para></listitem>
<listitem><para>The operation is completed when you save.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps to check a file system with the GUI context sensitive menu:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Volumes</guimenuitem> tab, right click
<filename>/dev/evms/my_vol</filename>.</para></listitem>
<listitem><para>Click <filename>Check/Repair File System...</filename>
</para></listitem>
<listitem><para>Continue checking the file system beginning with step 3 of the
GUI instructions.</para></listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="fsimfsckncurses"><title>Using Ncurses</title>
<para>Follow these steps to check a JFS file system with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>File System</guimenuitem><guimenuitem>Check/Repair</guimenuitem></menuchoice>
</para></listitem>
<listitem><para>Select
<filename> /dev/evms/my_vol</filename>.
</para></listitem>
<listitem><para>Activate <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Scroll down using the <keycap>down</keycap> arrow until
<guimenuitem>Verbose Output</guimenuitem> is highlighted.
</para></listitem>
<listitem><para>Press <keycap>Spacebar</keycap> to change <guimenuitem>Verbose Output</guimenuitem> to <keycap>Yes</keycap>.
</para></listitem>
<listitem><para>Activate <guibutton>Check</guibutton>.
</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can perform some of the steps to check a file system with the
context sensitive menu:</para>
<orderedlist>
<listitem><para>From the Volumes view, press <keycap>Enter</keycap> on <filename>/dev/evms/my_vol</filename>.</para>
</listitem>
<listitem><para>Activate the <guimenuitem>Check/Repair File System</guimenuitem> menu item.</para>
</listitem>
<listitem><para>Continue checking the file system beginning with step 3 of the Ncurses
instructions.</para>
</listitem>
</orderedlist>
</sect2>
<!-- CLI-->
<sect2 id="FSIMmkfscli"><title>Using the CLI</title>
<para>The CLI <command>check</command> command takes a volume name and options as
input. The command to check the file system on <filename>/dev/evms/my_vol</filename> is the following:
</para>
<programlisting>check: /dev/evms/my_vol, verbose=TRUE</programlisting>
<para>Currently, a query command for viewing additional options is not available.</para>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,85 @@
<chapter id="displaydetails"><title>Obtaining interface display details</title>
<para>The EVMS interfaces let you view more detailed information about an EVMS object than
what is readily available from the main views of the EVMS user interfaces. The type and extent
of additional information available is dependent on the interface you use. For example, the
EVMS GUI provides more in-depth information than does the CLI.</para>
<para>The following sections show how to find detailed information on the region
<filename>lvm/Sample Container/Sample Region</filename>, which is part of
volume <filename>/dev/evms/Sample Volume</filename> (created in section 10.2).</para>
<sect1 id="displaygui"><title>Using the EVMS GUI</title>
<para>With the EVMS GUI, it is only possible to display additional details on an object through
the Context Sensitive Menus, as shown in the following steps:
<orderedlist><listitem><para>Looking at the <guibutton>volumes view</guibutton>, click the &quot;+&quot; next
to volume <filename>/dev/evms/Sample Volume</filename>. Alternatively, look at the <guimenu>regions</guimenu> view.</para>
</listitem>
<listitem><para>Right click <filename>lvm/Sample Container/Sample Region</filename>.</para></listitem>
<listitem><para>Point at <guibutton>Display Details...</guibutton> and click. A new window opens
with additional information about the selected region.</para></listitem>
<listitem><para>Click <guimenu>More</guimenu> by the <guibutton>Logical Extents box</guibutton>. Another window opens that displays the mappings of logical extents to physical extents.</para>
</listitem></orderedlist>
</para></sect1>
<sect1 id="displaydatancurses"><title>Using Ncurses</title>
<para>Follow these steps to display additional details on an object with Ncurses:
<orderedlist>
<listitem><para>Press
<keycap>Tab</keycap> to reach the Storage Regions view.
</para></listitem>
<listitem><para>Scroll down using the <keycap>down</keycap> arrow until
<filename>lvm/Sample Container/Sample Region</filename> is highlighted.
</para></listitem>
<listitem><para>Press <keycap>Enter</keycap>.
</para></listitem>
<listitem><para>In the context menu, scroll down using the <keycap>down</keycap> arrow
to highlight &quot;Display Details...&quot;
</para></listitem>
<listitem><para>Press <keycap>Enter</keycap> to activate the menu item.
</para></listitem>
<listitem><para>In the Detailed Information dialog, use the <keycap>down</keycap> arrow to
highlight the &quot;Logical Extents&quot; item and then use <keycap>spacebar</keycap> to open
another window that displays the mappings of logical extents to physical extents.
</para></listitem>
</orderedlist>
</para></sect1>
<sect1><title>Using the CLI</title>
<para>Use the
<command>query</command> command (abbreviated <command>q</command>) with filters to display details about EVMS objects. There are two filters that are especially helpful for navigating
within the command line: <command>list options</command> (abbreviated <command>lo</command>) and <command>extended info</command> (abbreviated <command>ei</command>). </para>
<para>The <command>list options</command> command tells you what can currently be done and what options you
can specify. To use this command, first build a traditional query command starting with the command name <command>query</command>, followed by a colon (<command>:</command>), and then the type of object you
want to query (for example, volumes, objects, plug-ins). Then, you can use filters to narrow
the search to only the area you are interested in. For example, to determine the acceptable
actions at the current time on <filename>lvm/Sample Container/Sample Region</filename>, enter the following command:</para>
<programlisting>query: regions, region=&quot;lvm/Sample Container/Sample Region&quot;, list options</programlisting>
<para>The <command>extended info</command> filter is the equivalent of Display Details in the EVMS GUI and Ncurses interfaces. The command takes the following form: <command>query</command>, followed by a colon (<command>:</command>), the filter (<command>extended info</command>), a comma (<command>,</command>), and the object you want more information about. The command returns a list containing the field names, titles, descriptions and values for each field defined for the object. For example, to obtain details on <filename>lvm/Sample Container/Sample Region</filename>, enter the following command:</para>
<programlisting>query: extended info, &quot;lvm/Sample Container/Sample Region&quot;</programlisting>
<para>Many of the field names that are returned by the <command>extended info</command> filter can be expanded
further by specifying the field name or names at the end of the command, separated
by commas. For example, if you wanted additional information about logical extents, the query would look like the following:</para>
<programlisting>query: extended info, &quot;lvm/Sample Container/Sample Region&quot;, Extents</programlisting>
</sect1>
</chapter>

View File

@ -0,0 +1,436 @@
<chapter id="evmscmuse"><title>Using the EVMS interfaces</title>
<para>This chapter explains how to use the EVMS GUI, Ncurses, and CLI interfaces.
This chapter also
includes information about basic navigation and commands available through
the CLI. </para>
<sect1 id="GUI"><title>EVMS GUI</title>
<para>The EVMS GUI is a flexible and easy-to-use
interface for administering volumes and storage objects.
Many users find the EVMS GUI easy to use because it displays which
storage objects, actions, and plug-ins are acceptable for a
particular task.</para>
<sect2 id="GUITASKS"><title>Using context sensitive and action menus</title>
<para>The EVMS GUI lets you accomplish most
tasks in one of two ways: context sensitive menus or the
<guimenu>Actions</guimenu> menu.</para>
<para>Context sensitive menus are available from any
of the main "views." Each view corresponds to a
page in a notebook widget located on the EVMS
GUI main window. These views are made up of different
trees or lists that visually represent the organization of
different object types, including volumes,
feature objects, regions, containers, segments, or disks. </para>
<para>You can view the context
sensitive menu for an object by right-clicking on that
object. The actions that are available
for that object display on
the screen. The GUI will only present actions that are
acceptable for the selected object at that point in the
process. These actions are not always a complete set. </para>
<para>To use the <guimenuitem>Actions</guimenuitem> menu,
choose <menuchoice>
<guimenuitem>Action</guimenuitem>
<guimenuitem>&lt;the action you want
to accomplish&gt;</guimenuitem>
<guimenuitem>&lt;options&gt;</guimenuitem></menuchoice>.
The <guimenuitem>Actions</guimenuitem> menu
provides a more guided path for
completing a task than do context sensitive menus. The
<guimenu>Actions</guimenu> option is similar to the
wizard or druid approach used by many GUI applications.</para>
<para>All of the operations you need to
perform as an administrator are available through
the <guimenuitem>Actions</guimenuitem> menu.</para>
</sect2>
<sect2 id="COMMIT"><title>Saving changes</title>
<para>All of the changes that you make while in the EVMS
GUI are only in memory until you save the changes.
In order to make your changes
permanent, you must save
all changes before exiting. If you
forget to save the changes and decide to exit or close the
EVMS GUI, you are reminded to save any
pending changes.</para>
<para>To explicitly save all the changes you
made, select <menuchoice><guimenu>Action</guimenu>
<guimenuitem>Save</guimenuitem></menuchoice>, and click
the <guibutton>Save</guibutton> button.</para>
</sect2>
<sect2 id="refresh"><title>Refreshing changes</title>
<para>The <guibutton>Refresh</guibutton> button updates the view and allows
you to see changes, like mount points, that might have changed outside of
the GUI.</para></sect2>
<sect2 id="guiplus"><title>Using the GUI &quot;+&quot;</title>
<para>Along the left hand side of the panel views in the GUI is a &quot;+&quot; that resides
beside each item. When you click the &quot;+,&quot; the objects that are included
in the item are displayed. If any of the objects that display also have a &quot;+&quot; beside them, you can expand them further by clicking on the &quot;+&quot; next to each object name.</para>
</sect2>
<sect2><title>Using the accelerator keys</title>
<para>You can avoid using a mouse for navigating the EVMS GUI by using a series of
key strokes, or &quot;accelerator keys,&quot; instead. The following sections tell how to use
accelerator keys in the EVMS Main Window, the Selection Window, and the Configuration
Options Window.</para>
<sect3><title>Main Window accelerator keys</title>
<para>In the Main Window view, use the following keys to navigate:
<table><title>Accelerator keys in the Main Window</title>
<tgroup cols="2"><colspec colname="C1" colnum="1"></colspec><colspec colname="C2" colnum="2"></colspec>
<tbody>
<row><entry>Left and right arrow keys</entry>
<entry>Navigate between the notebook tabs of the different views.</entry></row>
<row><entry>Down arrow and <keycap>Spacebar</keycap></entry>
<entry>Bring keyboard focus into the view.</entry></row></tbody></tgroup></table>
</para>
<para>
While in a view, use the following keys to navigate:
<table><title>Accelerator keys in the views</title>
<tgroup cols="2"><colspec colname="C1" colnum="1"></colspec><colspec colname="C2" colnum="2"></colspec>
<tbody>
<row><entry>up and down arrows</entry><entry>Allow movement around the window.</entry></row>
<row><entry>&quot;+&quot;</entry><entry>Opens an object tree.</entry></row>
<row><entry>&quot;-&quot;</entry><entry>Collapses an object tree.</entry></row>
<row><entry><keycap>ENTER</keycap></entry><entry>Brings up the context menu (on a row).</entry></row>
<row><entry>Arrows</entry><entry>Navigate a context menu.</entry></row>
<row><entry><keycap>ENTER</keycap></entry><entry><para>Activates an item.</para></entry></row>
<row><entry><keycap>ESC</keycap></entry><entry>Dismisses the context menu.</entry></row>
<row><entry><keycap>Tab</keycap></entry><entry>Gets you out of the view and moves you back up to the notebook tab.</entry></row>
</tbody></tgroup>
</table>
</para>
<para>
To access the action bar menu, press <keycap>Alt</keycap> and
then the underlined
accelerator key for the menu choice (for example, "A" for the
<guimenuitem>Actions</guimenuitem>
dropdown menu).
</para>
<para>In a dropdown menu, you can use the up and down arrows
to navigate. You could also just type the accelerator key for the menu
item, which is the character with the underscore. For example, to initiate
a command to delete a container, type <keycap>Alt</keycap> + "A" + "D" + "C."</para>
<para>
<keycap>Ctrl-S</keycap> is a shortcut to initiate saving changes.
<keycap>Ctrl-Q</keycap> is a shortcut to initiate quitting the EVMS GUI.
</para>
</sect3>
<sect3><title>Accelerator keys in the selection window </title>
<para>
A selection window typically contains a selection list, plus four to five
buttons below it. Use the following keys to navigate in the selection window:
<table><title>Accelerator keys in the selection window</title>
<tgroup cols="2"><colspec colname="C1" colnum="1"></colspec><colspec colname="C2" colnum="2"></colspec>
<tbody>
<row><entry><keycap>Tab</keycap></entry><entry>Navigates (changes keyboard focus) between the list and the buttons.</entry></row>
<row><entry>Up and down arrows</entry><entry>Navigates within the selection list.</entry></row>
<row><entry><keycap>Spacebar</keycap></entry><entry>Selects and deselects items in the selection list.</entry></row>
<row><entry><keycap>Enter</keycap> on the button or type the accelerator character (if one exists)</entry><entry>Activates a button</entry></row>
</tbody></tgroup>
</table>
</para>
</sect3>
<sect3><title>Configuration options window accelerator keys</title>
<para>
Use the following keys to navigate in the configuration options window:
<table><title>Accelerator keys in the configuration options window</title>
<tgroup cols="2"><colspec colname="C1" colnum="1"></colspec><colspec colname="C2" colnum="2"></colspec>
<tbody>
<row><entry><keycap>Tab</keycap></entry><entry>Cycles focus between fields and buttons</entry></row>
<row><entry>Left and right arrows</entry><entry>Navigate the folder tabs if the window has a widget notebook.</entry></row>
<row><entry><keycap>Spacebar</keycap> or the down arrow</entry><entry>Switches focus to a different notebook page.</entry></row>
<row><entry><keycap>Enter</keycap> or type the accelerator character (if one exists)</entry><entry>Activates a button</entry></row>
</tbody></tgroup>
</table>
</para>
<para>For widgets, use the following keys to navigate:
<table><title>Widget navigation keys in the configuration options window </title>
<tgroup cols="2"><colspec colname="C1" colnum="1"></colspec><colspec colname="C2" colnum="2"></colspec>
<tbody>
<row><entry><keycap>Tab</keycap></entry><entry>Cycles forward through a set of widgets</entry></row>
<row><entry><keycap>Shift-Tab</keycap></entry><entry>Cycles backward through a set of widgets.</entry></row>
</tbody></tgroup>
</table>
</para>
<para>
The widget navigation, selection, and activation is the same in all dialog
windows.
</para>
</sect3>
</sect2>
</sect1>
<!-- NCurses -->
<sect1 id="NCURSES"><title>EVMS Ncurses interface</title>
<para>The EVMS Ncurses (<command>evmsn</command>) user interface is a menu-driven
interface with characteristics similar to those of the EVMS GUI.
Like the EVMS GUI,
<command>evmsn</command> can accommodate new plug-ins and features without requiring any code
changes.</para>
<para>The EVMS Ncurses user interface
allows you to manage volumes on systems that do not have the X
and GTK+ libraries that are required by the EVMS GUI.</para>
<sect2 id="NCURSESOVER"><title>Navigating through EVMS Ncurses</title>
<para>The EVMS Ncurses user interface initially
displays a list of logical volumes similar to the
logical volumes view in the EVMS GUI. Ncurses also provides
a menu bar similar to the menu bar in the EVMS GUI.</para>
<para>A general guide to navigating through the layout of the
Ncurses window is listed below:</para>
<itemizedlist>
<listitem><para><keycap>Tab</keycap> cycles you through the available
views.</para></listitem>
<listitem><para>Status messages and tips are displayed on
the last line of the screen.</para></listitem>
<listitem><para>Typing the accelerator character (the
letter highlighted in red) for any menu item activates
that item. For example, typing <keycap>A</keycap> in any view brings
down the <guimenuitem>Actions</guimenuitem> menu.</para></listitem>
<listitem><para>Typing <keycap>A</keycap> + <keycap>Q</keycap> in a view
quits the application.</para></listitem>
<listitem><para>Typing <keycap>A</keycap> + <keycap>S</keycap> in a view
saves changes
made during an <command>evmsn</command> session.</para></listitem>
<listitem><para>Use the <keycap>up</keycap> and <keycap>down</keycap>
arrows to highlight an object in a view. Pressing
<keycap>Enter</keycap> while an object in a view is
highlighted presents a context popup menu.</para></listitem>
<listitem><para>Dismiss a context popup menu by pressing
<keycap>Esc</keycap> or by selecting a menu item with the
<keycap>up</keycap> and <keycap>down</keycap> arrows and pressing
<keycap>Enter</keycap> to
activate the menu item.</para> </listitem>
</itemizedlist>
<para>Dialog windows are similar in design to the EVMS GUI
dialogs, which allow a user to navigate forward and backward through a series
of dialogs using <guibutton>Next</guibutton> and <guibutton>Previous</guibutton>. A general
guide to dialog windows is listed below:</para>
<itemizedlist>
<listitem><para><keycap>Tab</keycap> cycles you through the available buttons. Note
that some buttons might not be available until a valid selection is made.</para>
</listitem>
<listitem><para>The <keycap>left</keycap> and <keycap>right</keycap> arrows can also be used
to move to an available button.</para>
</listitem>
<listitem><para>Navigate a selection list with the <keycap>up</keycap> and
<keycap>down</keycap> arrows.</para>
</listitem>
<listitem><para>Toggle the selection of an item in a list with <keycap>spacebar</keycap>.</para>
</listitem>
<listitem><para>Activate a button that has the current focus with <keycap>Enter</keycap>. If the button has
an accelerator character (highlighted in red), you can also activate the button
by typing the accelerator character regardless of whether the button has the current
focus.</para>
</listitem>
</itemizedlist>
<para>The EVMS Ncurses user interface, like the EVMS GUI, provides context menus
for actions that are available only to the selected object in a view. Ncurses also provides
context menus for items that are
available from the <guimenuitem>Actions</guimenuitem> menu. These context menus present
a list of commands available for a certain object.</para>
</sect2>
<sect2 id="NCURCHANGES"><title>Saving changes</title>
<para>All changes you make while in the EVMS
Ncurses are only in memory until you save the changes.
In order to make the changes permanent, save
all changes before exiting. If you
forget to save the changes and decide to exit the EVMS Ncurses
interface, you will be reminded of the unsaved changes and
be given the chance to save or discard the changes before exiting.</para>
<para>To explicitly save all changes, press <keycap>A</keycap> + <keycap>S</keycap> and confirm
that you want to save changes.</para>
</sect2>
</sect1>
<!-- CLI Commands -->
<sect1 id="COMMANDLINE"><title>EVMS Command Line Interpreter</title>
<para>The EVMS Command Line Interpreter (EVMS CLI) provides a
command-driven user interface for EVMS. The EVMS CLI
helps automate volume management tasks
and provides an interactive mode in situations where the
EVMS GUI is not available.</para>
<para>Because the EVMS CLI is an interpreter, it operates
differently than command line utilities for the
operating system. The options you specify
on the EVMS CLI command line to invoke the EVMS
CLI control how the EVMS CLI operates. For example, the
command line options tell the CLI where to go for commands to
interpret and how
often the EVMS CLI must save changes to disk.
When invoked, the EVMS CLI prompts for commands. </para>
<para>The volume management commands the EVMS CLI understands
are specified in the <filename>/usr/src/evms-2.2.0/engine2/ui/cli/grammar.ps</filename>
file that accompanies the EVMS
package. These commands are described in detail in the EVMS
man page, and help on these commands is available from within the EVMS
CLI. </para>
<sect2 id="CLITASKS"><title>Using the EVMS CLI</title>
<para>Use the <command>evms</command> command to start
the EVMS CLI. If you do not enter an option with
<command>evms</command>, the EVMS CLI starts in
interactive mode. In interactive mode, the EVMS CLI prompts
you for commands. The result of each command is immediately saved
to disk. The EVMS CLI exits when you type <userinput>exit</userinput>.
You can modify this behavior by using
the following options with <command>evms</command>:
<variablelist><varlistentry><term>-b</term>
<listitem><para>This option indicates that you are running in
batch mode and anytime there is a prompt for input from the user,
the default value is accepted automatically. This is the
default behavior with the <command>-f</command> option.</para></listitem></varlistentry>
<varlistentry><term>-c</term>
<listitem><para>This option saves changes to disk
only when EVMS CLI exits, not after
each command.</para></listitem></varlistentry>
<varlistentry><term>-f <replaceable>filename</replaceable></term>
<listitem><para>This option tells the EVMS CLI to use
<replaceable>filename</replaceable> as the source of
commands. The EVMS CLI exits when it reaches the
end of
<replaceable>filename</replaceable>.
</para></listitem></varlistentry>
<varlistentry><term>-p</term>
<listitem><para>This option only parses commands; it does
not execute them.
When combined with the <command>-f</command> option, the
<command>-p</command> option detects syntax errors in
command files. </para></listitem></varlistentry>
<varlistentry><term>-h</term>
<listitem><para>This option displays help information
for options used with the <command>evms</command>
command.</para></listitem> </varlistentry>
<varlistentry><term>-rl</term>
<listitem><para>This option tells the CLI that all remaining items on the
command line are replacement parameters for use with
EVMS commands. </para>
<note><title>NOTE</title>
<para>Replacement parameters are accessed in EVMS commands using the
<option>$(x)</option> notation, where <replaceable>x</replaceable> is the number identifying which
replacement parameter to use. Replacement parameters are assigned
numbers (starting with 1) as they are encountered on the command line.
Substitutions are not made within comments or quoted strings. </para>
<para>An example would be:</para>
<programlisting>evms -c -f testcase -rl sda sdb</programlisting>
<para>
<option>sda</option> is the replacement for <replaceable>parameter1</replaceable> and
<option>sdb</option> is the replacement for <replaceable>parameter2</replaceable></para></note>
</listitem></varlistentry>
</variablelist></para>
<note><title>NOTE</title>
<para>Information on less commonly used options is available
in the EVMS man page. </para></note>
</sect2>
<sect2 id="NOTECOMMAND"><title>Notes on commands and command files</title>
<para>The EVMS CLI allows multiple commands to be displayed
on a command line. When you specify multiple commands on a
single command line, separate the commands with
a colon ( : ). This is
important for command files because the EVMS CLI sees
a command file as a single long command line. The
EVMS CLI has no concept of lines in the file and
ignores spaces. These features allow a command in
a command file to span several lines and use whatever
indentation or margins that are convenient. The only
requirement is that the command separator (the colon) be present
between commands.</para>
<para>The EVMS CLI ignores spaces unless they
occur within quote marks. Place in quotation marks a name that contains
spaces or other non-printable or control characters. If the name
contains a quotation mark as part of the name, the
quotation mark must be "doubled," as shown in the following
example:</para>
<programlisting>"This is a name containing ""embedded"" quote marks."</programlisting>
<para>EVMS CLI keywords are not case sensitive, but EVMS
names are case sensitive. Sizes can be input in any units with a unit label, such as KB, MB, GB, or TB.</para>
<para>Finally, C programming language style comments
are supported by the EVMS CLI. Comments can begin and
end anywhere except within a quoted string, as shown in the
following example:</para>
<programlisting>/* This is a comment */
Create:Vo/*This is a silly place for a comment, but it is
allowed.*/lume,"lvm/Sample Container/My LVM
Volume",compatibility</programlisting>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,75 @@
<chapter id="debuglevels"><title>The EVMS log file and error data collection</title>
<para>This chapter discusses the EVMS information and error log file and the various logging levels. It also explains how to change the logging level.</para>
<sect1 id="FSIMsupp"><title>About the EVMS log file</title>
<para>The EVMS Engine creates a log file called <filename>/var/log/evmsEngine.log</filename> every time the Engine is opened. The Engine also saves copies of up to nine previous Engine sessions in the files <filename>/var/log/evmsEngine.n.log</filename>, where <filename>n</filename> is the number of the session between 1 and 9. </para>
</sect1>
<sect1 id="loglevels"><title>Log file logging levels</title>
<para>There are several possible logging levels that you can choose to be collected in <filename>/var/log/evmsEngine.log</filename>. The &quot;lowest&quot; logging level, <filename>critical</filename>, collects only messages about serious system problems, whereas the &quot;highest&quot; level, <filename>everything</filename>, collects all logging related messages. When you specify a particular logging level, the Engine collects messages for that level and all the levels below it. </para>
<para>The following table lists the allowable log levels and the information they provide:</para>
<para><table><title>EVMS logging levels</title><tgroup cols="2"><colspec colnum="1" colname="C1"/><colspec colnum="2" colname="C2"/>
<thead><row><entry>Level name</entry>
<entry>Description</entry> </row></thead>
<tbody>
<row><entry>Critical</entry><entry>The health of the system or the Engine is in jeopardy; for example, an operation has failed because there is not enough memory.</entry></row>
<row><entry>Serious</entry><entry>An operation did not succeed.</entry></row>
<row><entry>Error</entry><entry>The user has caused an error. The error messages are provided to help the user correct the problem.</entry></row>
<row><entry>Warning</entry><entry>An error has occurred that the system might or might not be able to work around.</entry></row>
<row><entry>Default</entry><entry>An error has occurred that the system has already worked around.</entry></row>
<row><entry>Details</entry><entry>Detailed information about the system.</entry></row>
<row><entry>Entry_Exit</entry><entry>Traces the entries and exits of functions.</entry></row>
<row><entry>Debug</entry><entry>Information that helps the user debug a problem.</entry></row>
<row><entry>Extra</entry><entry>More information that helps the user debug a problem than the &quot;Debug&quot; level provides.</entry></row>
<row><entry>Everything</entry><entry>Verbose output.</entry></row>
</tbody></tgroup></table></para>
</sect1>
<sect1 id="specifylevels"><title>Specifying the logging levels</title>
<para>By default, when any of the EVMS interfaces is opened, the Engine logs the <filename>Default</filename> level of messages into the <filename>/var/log/evmsEngine.log</filename> file. However, if your system is having problems and you want to see more of what is happening, you can change the logging level to be higher; if you want fewer logging messages, you can change the logging level to be lower. To change the logging level, specify the <command>-d</command> parameter and the log level on the interface open call. The following examples show how to open the various interfaces with the highest logging level (<filename>everything</filename>):</para>
<programlisting>GUI: evmsgui -d everything</programlisting>
<programlisting>Ncurses: evmsn -d everything</programlisting>
<programlisting>CLI: evms -d everything</programlisting>
<note><title>NOTE</title>
<para>If you use the EVMS mailing list for help with a problem, providing to us
the log file that is created when you open one of the interfaces (as shown
in the previous commands) makes it easier for us to help you.
</para>
</note>
<para>The EVMS GUI lets you change the logging level during an Engine session. To do so, follow these steps:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Settings</guimenu>
<guimenuitem>Log Level</guimenuitem>
<guimenuitem>Engine</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Click the <guibutton>Level</guibutton> you want.
</para></listitem>
</orderedlist></para>
<para>The CLI command, <command>probe</command>, opens and closes the Engine, which causes a new log to start. The log that existed before the <command>probe</command> command was issued is renamed <filename>/var/log/evmsEngine.1.log</filename> and the new log is named <filename>/var/log/evmsEngine.log</filename>.</para>
<para>
If you will be frequently using a different log level than the default,
you can specify the default logging level in
<filename>/etc/evms.conf</filename> rather than
having to use the <command>-d</command> option when starting the user interface.
The "debug_level" option in the "engine" section sets the default
logging level for when the Engine is opened.
Using the <command>-d</command> option
during the command invocation overrides the setting in
<filename>/etc/evms.conf</filename>.
</para>
</sect1>
</chapter>

View File

@ -0,0 +1,405 @@
<chapter id="mountunmount"><title>Mounting and unmounting volumes from within EVMS</title>
<para>
Some volume operations, such as expanding and shrinking, may require that
the volume be mounted or unmounted before you can perform the operation.
EVMS lets you mount and unmount volumes from within EVMS without having
to go to a separate terminal session.
</para>
<para>
EVMS performs the mount and unmount operations immediately.
It does not wait until the changes are saved.
</para>
<sect1 id="mntvol"><title>Mounting a volume</title>
<para>This section tells how to mount a volume through the various EVMS
user interfaces.
</para>
<sect2 id="mntgui"><title>Using the EVMS GUI</title>
<para>Follow these steps to mount a volume with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>File System</guimenuitem>
<guimenuitem>Mount</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume you want to mount.
</para></listitem>
<listitem><para>In the Mount Point box, enter the directory
on which you want to mount the volume.
</para>
</listitem>
<listitem><para>Click <guibutton>Options</guibutton> if you
want to enter additional options for the mount.
</para></listitem>
<listitem><para>Click <guibutton>Mount</guibutton>.
</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can mount a volume from the EVMS GUI
context sensitive menu:</para>
<orderedlist>
<listitem><para>Right click the volume you want to mount.
</para></listitem>
<listitem><para>Click <guimenuitem>Mount...</guimenuitem></para></listitem>
<listitem><para>In the Mount Point box, enter the directory
on which you want to mount the volume.
</para></listitem>
<listitem><para>
Click <guibutton>Options</guibutton> if you want to enter
additional options for the mount.</para></listitem>
<listitem><para>
Click <guibutton>Mount</guibutton>.</para></listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="mountncurses"><title>Using Ncurses</title>
<para>Follow these steps to mount a volume with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>File System</guimenuitem><guimenuitem>Mount...</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume you want to mount.</para></listitem>
<listitem><para>At the Mount Point prompt, enter the directory
on which you want to mount the volume and press <keycap>Enter</keycap>.</para></listitem>
<listitem><para>Select <guimenuitem>Mount Options</guimenuitem>
if you want to enter
additional options for the mount.</para></listitem>
<listitem><para>Select <guibutton>Mount</guibutton>.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can mount a volume with the Ncurses
context-sensitive menu:</para>
<orderedlist>
<listitem><para>Highlight the volume you want to mount and press <keycap>Enter</keycap>.
</para></listitem>
<listitem><para>Select <guimenuitem>Mount File System</guimenuitem>.</para>
</listitem>
<listitem><para>At the Mount Point prompt, enter the directory on which you
want to mount the volume and press <keycap>Enter</keycap>.
</para>
</listitem>
<listitem>
<para>
Select <guimenuitem>Mount Options</guimenuitem> if you want to enter
additional options for the mount.
</para>
</listitem>
<listitem>
<para>
Select <guimenuitem>Mount</guimenuitem>.
</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>To mount a volume with the CLI, use the following command:</para>
<programlisting>mount:&lt;volume&gt;, &lt;mount point&gt;, [ &lt;mount options&gt; ]</programlisting>
<para>&lt;volume&gt; is the name of the volume to be mounted.</para>
<para>&lt;mount point&gt; is the name of the directory on which to mount the volume.</para>
<para>&lt;mount options&gt; is a string of options to be passed to the &lt;command&gt;mount&lt;/command&gt;
command.</para>
</sect2>
</sect1>
<sect1><title>Unmounting a volume</title>
<para>This section tells how to unmount a volume through the various EVMS user interfaces.</para>
<sect2><title>Using the EVMS GUI</title>
<para>Follow these steps to unmount a volume with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>File System</guimenuitem>
<guimenuitem>Unmount</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume you want to unmount.
</para></listitem>
<listitem><para>Click <guibutton>Unmount</guibutton>.
</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can unmount a volume from the EVMS GUI
context sensitive menu:</para>
<orderedlist>
<listitem><para>Right click the volume you want to unmount.
</para></listitem>
<listitem><para>Click <guimenuitem>Unmount...</guimenuitem></para></listitem>
<listitem><para>
Click <guibutton>Unmount</guibutton>.</para></listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="unmountncurses"><title>Using Ncurses</title>
<para>Follow these steps to unmount a volume with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>File System</guimenuitem><guimenuitem>Unmount...</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume you want to unmount.</para></listitem>
<listitem><para>Select <guibutton>Unmount</guibutton>.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can unmount a volume with the Ncurses
context-sensitive menu:</para>
<orderedlist>
<listitem><para>Highlight the volume you want to unmount and press <keycap>Enter</keycap>.
</para></listitem>
<listitem><para>Select <guimenuitem>Unmount File System....</guimenuitem>.</para>
</listitem>
<listitem>
<para>
Select <guimenuitem>Unmount</guimenuitem>.
</para>
</listitem>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>To unmount a volume with the CLI, use the following command:</para>
<programlisting>unmount:&lt;volume&gt;</programlisting>
<para>&lt;volume&gt; is the name of the volume to be unmounted.</para>
</sect2></sect1>
<sect1><title>The SWAPFS file system</title>
<para>A volume with the SWAPFS file system is not mounted or unmounted.
Rather, swapping is turned on for the volume using the
<command>sbin/swapon</command> command and turned off using the
&lt;command&gt;sbin/swapoff&lt;/command&gt;. EVMS lets you turn swapping on or off
for a volume from within EVMS without having to go to a separate terminal session.</para>
<para>As with mounting and unmounting, EVMS performs the swapon and swapoff
operations immediately. It does not wait until the changes are saved.</para>
<sect2><title>Turning swap on</title>
<para>This section tells how to turn swap on using the various EVMS user interfaces.</para>
<sect3><title>Using the EVMS GUI</title>
<para>Follow these steps to turn swap on with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Other</guimenuitem>
<guimenuitem>Volume tasks...</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume you want to turn on swapping and click <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Select &quot;Swap on&quot; and click <guibutton>Next</guibutton>.</para>
</listitem>
<listitem><para>Select the priority for the swap. If you select &quot;High&quot; you will
get an additional prompt for the priority level.
The priority level must be a number in the range of 0 to 32767.
The default is 0.</para></listitem>
<listitem><para>Click <guibutton>Swap on</guibutton>.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can turn swap on from the EVMS GUI
context-sensitive menu:</para>
<orderedlist>
<listitem><para>Right click the volume with the SWAPFS you want to turn on.</para></listitem>
<listitem><para>Click <guimenuitem>Swap on...</guimenuitem></para></listitem>
<listitem><para>Select the priority for the swap. If you select &quot;High&quot; you will get an
additional prompt for the priority level. The priority level must be a number
in the range of 0 to 32767. The default is 0.</para></listitem>
<listitem><para>
Click <guibutton>Swap on</guibutton>.</para></listitem>
</orderedlist>
</sect3>
<sect3><title>Using Ncurses</title>
<para>Follow these steps to turn swap on with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Other</guimenuitem><guimenuitem>Volume tasks...</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume on which you want to turn on swapping and select
<guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Select &quot;Swap on&quot; and select <guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Select the priority for the swap. If you select &quot;High&quot; you will get an
additional prompt for the priority level. The priority level must be a number in
the range of 0 to 32767. The default is 0.</para></listitem>
<listitem><para>Select &quot;Swap on.&quot;</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can turn swap on with the Ncurses
context-sensitive menu:</para>
<orderedlist>
<listitem><para>Highlight the volume with the SWAPFS you want to turn on.
</para></listitem>
<listitem><para>Select &quot;Swap on....&quot;</para>
</listitem>
<listitem>
<para>
Select the priority for the swap. If you select &quot;High&quot; you will get an
additional prompt for the priority level. The priority level must be a number in
the range of 0 to 32767. The default is 0.
</para>
</listitem>
<listitem><para>Select &quot;Swap on.&quot;</para></listitem>
</orderedlist>
</sect3>
<sect3><title>Using the CLI</title>
<para>To turn swap on with the CLI, use the following command:</para>
<programlisting>
Task: swapon, &lt;volume&gt;[, priority=low | , priority=high [level=0..32767]]
</programlisting>
<para>&lt;volume&gt; is the name of the volume with SWAPFS you want to turn on.</para>
</sect3>
</sect2>
<sect2><title>Turning swap off</title>
<para>This section tells how to turn swap off using the various EVMS user interfaces.</para>
<sect3><title>Using the EVMS GUI</title>
<para>Follow these steps to turn swap off with the EVMS GUI:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu>
<guimenuitem>Other</guimenuitem>
<guimenuitem>Volume tasks...</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume you want to turn off swapping and click <guibutton>Next</guibutton>.
</para></listitem>
<listitem><para>Select &quot;Swap off&quot; and click <guibutton>Next</guibutton>.</para>
</listitem>
<listitem><para>Click <guibutton>Swap off</guibutton>.</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can turn swap off from the EVMS GUI
context-sensitive menu:</para>
<orderedlist>
<listitem><para>Right click the volume with the SWAPFS you want to turn off.</para></listitem>
<listitem><para>Click <guimenuitem>Swap off...</guimenuitem></para></listitem>
<listitem><para>
Click <guibutton>Swap off</guibutton>.</para></listitem>
</orderedlist>
</sect3>
<sect3><title>Using Ncurses</title>
<para>Follow these steps to turn swap off with Ncurses:
<orderedlist>
<listitem><para>Select <menuchoice><guimenu>Actions</guimenu><guimenuitem>Other</guimenuitem><guimenuitem>Volume tasks...</guimenuitem></menuchoice>.
</para></listitem>
<listitem><para>Select the volume on which you want to turn off swapping and select
<guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Select &quot;Swap off&quot; and select <guibutton>Next</guibutton>.</para></listitem>
<listitem><para>Select &quot;Swap off.&quot;</para></listitem>
</orderedlist>
</para>
<para>Alternatively, you can turn swap on with the Ncurses
context-sensitive menu:</para>
<orderedlist>
<listitem><para>Highlight the volume with the SWAPFS you want to turn off.
</para></listitem>
<listitem><para>Select &quot;Swap off....&quot;</para>
</listitem>
<listitem><para>Select &quot;Swap off.&quot;</para>
</listitem>
</orderedlist>
</sect3>
<sect3><title>Using the CLI</title>
<para>To turn swap on with the CLI, use the following command:</para>
<programlisting>
Task: swapoff, &lt;volume&gt;
</programlisting>
<para>&lt;volume&gt; is the name of the volume with SWAPFS you want to turn off.</para>
</sect3>
</sect2>
</sect1>
</chapter>

View File

@ -0,0 +1,162 @@
<chapter id="segstorobjs"><title>Moving segment storage objects</title>
<para>This chapter discusses how and why to move segments.
</para>
<sect1 id="segmovewhatis"><title>What is segment moving?</title>
<para>A segment move is when a data segment is relocated to another
location on the underlying storage object. The new location of
the segment cannot overlap with the current segment location.
</para>
</sect1>
<sect1 id="whymove"><title>Why move a segment?</title>
<para>
Segments are moved for a variety of reasons. The most compelling among
them is to make better use of disk freespace. Disk freespace is an unused
contiguous extent of sectors on a disk that has been identified by EVMS
as a freespace segment. A data segment can only be expanded by adding
sectors to the end of the segment, moving the end of the data segment
up into the freespace that immediately follows the data segment. However,
what if there is no freespace following the data segment? A segment or
segments could
be be moved around to put freespace after the segment that is to be
expanded. For example:
</para>
<itemizedlist>
<listitem>
<para>The segment following the segment to be expanded can be moved
elsewhere on the disk, thus freeing up space after the segment that
is to be expanded.</para>
</listitem>
<listitem>
<para>The segment to be expanded can be moved into freespace where
there is more room for the segment to be expanded.
</para>
</listitem>
<listitem>
<para>The segment can be moved into freespace that precedes the
segment so that after the move the data segment can be expanded into the freespace
created by the move.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1><title>Which segment manager plug-ins implement the move function?</title>
<para>The following segment manager plug-ins support the move function:
</para>
<itemizedlist>
<listitem>
<para>
DOS
</para>
</listitem>
<listitem>
<para>
s390
</para>
</listitem>
<listitem>
<para>
GPT
</para>
</listitem>
</itemizedlist>
</sect1>
<sect1 id="movesegex"><title>Example: move a DOS segment</title>
<para> This section shows how to move a DOS segment:</para>
<note><title>Note</title>
<para>
In the following example, the DOS segment manager has a single
primary partition on disk sda that is located at the very end of the disk.
We want to move it to the front of the drive because we want to expand
the segment but there is currently no freespace following the segment.
</para>
</note>
<sect2 id="guimoveseg"><title>Using the EVMS GUI context sensitive menu</title>
<para>To move the DOS segment through the GUI context sensitive menu,
follow these steps:</para>
<orderedlist>
<listitem><para>From the <guimenuitem>Segments</guimenuitem>
tab, right click
<filename>sda1</filename>.
</para></listitem>
<listitem>
<para>Click <guibutton>Move</guibutton>.</para>
</listitem>
<listitem><para>Select <filename>sda_freespace1</filename>.
</para>
</listitem>
<listitem><para>Click <guibutton>Move</guibutton>.</para>
</listitem>
</orderedlist>
</sect2>
<!-- Ncurses-->
<sect2 id="ncursmoveseg"><title>Using Ncurses</title>
<para>To move the DOS segment, follow these steps:</para>
<orderedlist>
<listitem><para>Use <keycap>Tab</keycap>
to select the Disk Segments view.
</para>
</listitem>
<listitem><para>Scroll down with the down arrow and
select <filename>sda1</filename>.</para>
</listitem>
<listitem><para>Press
<keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Scroll down with the down arrow and
select <guibutton>Move</guibutton> by pressing
<keycap>Enter</keycap>.</para>
</listitem>
<listitem><para>Use the spacebar to select
<filename>sda_freespace1</filename>.</para>
</listitem>
<listitem><para>Use <keycap>Tab</keycap>
to select <guibutton>Move</guibutton> and press
<keycap>Enter</keycap>.
</para>
</listitem>
</orderedlist>
</sect2>
<!-- CLI-->
<sect2 id="clisegmove"><title>Using the CLI</title>
<para>Use the
<command>task</command> command to move a DOS segment with the CLI.
</para>
<programlisting>task:Move,sda1,sda_freespace1</programlisting>
</sect2>
</sect1>
</chapter>

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,333 @@
<chapter id="intro"><title>What is EVMS?</title>
<para>EVMS brings a new model of volume management to Linux&reg;.
EVMS integrates all aspects of volume management,
such as disk partitioning, Linux logical volume manager (LVM) and
multi-disk (MD) management, and file system operations into a single
cohesive package.
With EVMS, various volume management technologies are accessible through
one interface, and new technologies can be added as plug-ins as they are developed.</para>
<sect1 id="cando"><title>Why choose EVMS?</title>
<para>EVMS lets you manage storage space in a way that is more
intuitive and flexible than many other Linux volume management systems.
Practical tasks, such as migrating disks or adding new disks to your
Linux system, become more manageable with EVMS because EVMS can
recognize and read from different volume types and file systems.
EVMS provides additional safety controls by not allowing commands that are
unsafe.
These controls help maintain the integrity of the data stored on the system.</para>
<para>You can use EVMS to create and manage data storage.
With EVMS, you can use multiple volume management technologies under one
framework while ensuring your system still interacts correctly with
stored data.
With EVMS, you are can use drive linking, shrink and expand volumes,
create snapshots of your volumes, and set up RAID
(redundant array of independent devices) features for your system.
You can also use many types of file systems and manipulate these storage pieces
in ways that best meet the needs of your particular work environment.</para>
<para>EVMS also provides the capability to manage data on storage that is
physically shared by nodes in a cluster. This shared storage allows data to
be highly available from different nodes in the cluster.</para>
</sect1>
<sect1 id="uis"><title>The EVMS user interfaces</title>
<para>There are currently three user interfaces available for EVMS: graphical (GUI), text mode (Ncurses), and the Command Line Interpreter (CLI).
Additionally, you can use the EVMS Application Programming Interface to implement your own customized user interface. </para>
<para><xref linkend="userinterf"></xref> tells more about each of the EVMS user interfaces.
</para>
<table id="userinterf" frame="all"><title>EVMS user interfaces</title>
<tgroup cols="4"><colspec colnum="1" colwidth="1in"></colspec><colspec colnum="2" colwidth="1.5in"></colspec><colspec colnum="3" colwidth="1in"></colspec><colspec colnum="4" colwidth="2.5in"></colspec>
<thead><row><entry>User interface</entry>
<entry>Typical user</entry>
<entry>Types of use</entry>
<entry>Function</entry></row></thead>
<tbody><row><entry>GUI</entry>
<entry>All</entry>
<entry>All uses except automation</entry>
<entry>Allows you to choose from available options only, instead of having to sort through all the options, including ones that are not available at that point in the process. </entry></row>
<row><entry>Ncurses</entry>
<entry>Users who don't have GTK libraries or X Window Systems on their machines</entry>
<entry>All uses except automation</entry>
<entry>Allows you to choose from available options only, instead of having to sort through all the options, including ones that are not available at that point in the process. </entry></row>
<row><entry>Command Line</entry>
<entry>Expert</entry>
<entry>All uses</entry>
<entry>Allows easy automation of tasks</entry></row>
</tbody></tgroup>
</table>
</sect1>
<sect1 id="terminology">
<title>EVMS terminology</title>
<para>To avoid confusion with other terms that describe volume
management in general, EVMS uses a specific set of terms.
These terms are listed, from most fundamental to most comprehensive,
as follows:
</para>
<variablelist>
<varlistentry><term>Logical disk</term>
<listitem><para>Representation of anything EVMS can access as a physical disk.
In EVMS, physical disks are logical disks.</para></listitem>
</varlistentry>
<varlistentry><term>Sector</term>
<listitem><para>The lowest level of addressability on a block
device. This definition is in keeping with the standard
meaning found in other management systems.</para></listitem>
</varlistentry>
<varlistentry><term>Disk segment</term>
<listitem><para>An ordered set of physically contiguous
sectors residing on the same storage object.
The general analogy for a segment is to a traditional disk
partition, such as DOS or OS/2 &reg;</para></listitem>
</varlistentry>
<varlistentry><term>Storage region</term>
<listitem><para>An ordered set of logically contiguous sectors
that are not necessarily physically contiguous. </para></listitem>
</varlistentry>
<varlistentry><term>Storage object</term>
<listitem><para>Any persistent memory structure in EVMS that can be used to
build objects or create a volume. Storage object is a generic term for disks, segments, regions, and feature objects.</para></listitem>
</varlistentry>
<varlistentry><term>Storage container</term>
<listitem><para>A collection of storage objects. A storage
container consumes one set of storage objects and produces new
storage objects. One common subset of storage containers is volume groups,
such as AIX&reg; or LVM.</para>
<para>Storage containers can be either of type private or cluster.</para>
</listitem>
</varlistentry>
<varlistentry><term>Cluster storage container</term>
<listitem><para>Specialized storage containers that consume only disk objects
that are physically accessible from all nodes of a cluster.</para>
<variablelist>
<varlistentry><term>Private storage container</term>
<listitem><para>A collection of disks that are physically accessible from all
nodes of a cluster, managed as a single pool of storage, and owned and accessed
by a single node of the cluster at any given time.</para>
</listitem>
</varlistentry>
<varlistentry><term>Shared storage container</term>
<listitem><para>A collection of disks that are physically accessible from all
nodes of a cluster, managed as a single pool of storage, and owned and accessed
by all nodes of the cluster simultaneously.</para>
</listitem>
</varlistentry>
<varlistentry><term>Deported storage container</term>
<listitem><para>A shared cluster container that is not owned by any node of the cluster.</para>
</listitem>
</varlistentry>
</variablelist>
</listitem></varlistentry>
<varlistentry><term>Feature object</term>
<listitem><para>A storage object that contains an EVMS native feature.
</para>
<para>An <glossterm>EVMS Native Feature</glossterm> is a function of volume management designed
and implemented by
EVMS. These features are not intended to be backward compatible with other
volume management technologies. </para></listitem>
</varlistentry>
<varlistentry><term>Logical volume</term>
<listitem><para>A volume that consumes a storage object and exports
something mountable. There are two varieties of logical volumes: <glossterm>EVMS Volumes</glossterm>
and <glossterm>Compatibility volumes</glossterm>.</para>
<para> <glossterm>EVMS Volumes</glossterm> contain EVMS native metadata and can support all
EVMS features. <filename>/dev/evms/my_volume</filename> would be an example
of an EVMS Volume.</para>
<para><glossterm>Compatibility volumes</glossterm> do not contain any EVMS native metadata.
Compatibility volumes are backward compatible to their particular scheme, but
they cannot support EVMS features. <filename>/dev/evms/md/md0</filename> would
be an example of a compatibility volume. </para></listitem>
</varlistentry>
</variablelist>
</sect1>
<sect1><title>What makes EVMS so flexible?</title>
<para>There are numerous drivers in the Linux kernel, such as Device
Mapper and MD (software RAID), that implement volume management schemes. EVMS is built
on top of these drivers to provide one framework for combining and
accessing the capabilities.</para>
<para>The EVMS Engine handles the creation,
configuration, and management of volumes, segments, and disks.
The EVMS Engine is a programmatic interface to the EVMS system.
User interfaces and programs that use EVMS must go through the Engine.</para>
<para>EVMS provides the capacity for plug-in modules to the Engine that
allow EVMS to perform specialized tasks without altering the core code.
These plug-in modules allow EVMS to be more extensible and customizable than
other volume management systems.</para>
</sect1>
<sect1 id="LAYERDEF">
<title>Plug-in layer definitions</title>
<para>EVMS defines a layered architecture where plug-ins in each layer
create abstractions of the layer or layers below. EVMS also allows most plug-ins
to create abstractions of objects within the same layer. The following
list defines these layers from the bottom up.</para>
<variablelist termlength="15">
<varlistentry><term>Device managers</term>
<listitem><para>The first (bottom) layer consists
of device managers.
These plug-ins communicate with hardware device drivers to
create the first EVMS objects. Currently, all devices are handled by a single plug-in.
Future releases of EVMS might need additional device managers
for network device management (for example, to manage
disks on a storage area network (SAN)).</para></listitem>
</varlistentry>
<varlistentry><term>Segment managers</term>
<listitem><para>The second layer consists of segment
managers. These plug-ins
handle the segmenting, or partitioning,
of disk drives. The Engine components can replace partitioning
programs, such as <command>fdisk</command> and
<application>Disk Druid</application>, and EVMS
uses Device Mapper to replace the in-kernel disk
partitioning code.
Segment managers can also be "stacked," meaning that
one segment manager
can take as input the output from another segment
manager.</para>
<para> EVMS provides the following segment managers:
DOS, GPT, System/390&reg; (S/390), Cluster, BSD,
Mac, and BBR. Other segment manager
plug-ins can be added to support other
partitioning schemes.</para></listitem>
</varlistentry>
<varlistentry><term>Region managers</term>
<listitem><para>The third layer consists of region
managers.
This layer provides a place for plug-ins that ensure
compatibility with existing volume management schemes
in Linux and other operating systems.
Region managers are intended to model systems that
provide a logical abstraction above disks
or partitions.</para>
<para>Like segment managers, region managers can
also be stacked.
Therefore, the input object(s) to a region manager can
be disks, segments, or other regions.</para>
<para>There are currently three region manager plug-ins in EVMS:
Linux LVM, LVM2, and Multi-Disk (MD).
<variablelist><varlistentry><term>Linux LVM</term>
<listitem><para>The Linux LVM plug-in provides compatibility with
the Linux LVM and allows the creation of volume groups
(known in EVMS as containers) and logical volumes
(known in EVMS as regions). </para></listitem></varlistentry>
<varlistentry><term>LVM2</term>
<listitem><para>
The LVM2 plug-in provides compatibility with the
new volume format introduced by the LVM2 tools from Red Hat. This plug-in
is very similar in functionality to the LVM plug-in. The primary difference
is the new, improved metadata format.
</para></listitem></varlistentry>
<varlistentry><term>MD</term>
<listitem><para>The Multi-Disk (MD) plug-in for RAID provides
RAID levels linear, 0, 1, 4, and 5 in
software. MD is one plug-in that displays as four region
managers that you can choose from.</para></listitem></varlistentry>
</variablelist></para></listitem>
</varlistentry>
<varlistentry><term>EVMS features</term>
<listitem><para>The next layer consists of EVMS
features. This layer is
where new EVMS-native functionality is implemented. EVMS
features can be built on any object in the system, including
disks, segments, regions, or other feature objects.
All EVMS features share a common type of metadata,
which makes discovery of feature objects much more
efficient, and recovery
of broken features objects much more reliable. There are three
features currently available in EVMS: drive linking, Bad
Block Relocation, and snapshotting. </para>
<variablelist>
<varlistentry><term>Drive Linking</term>
<listitem><para>Drive linking allows any
number of objects to be linearly concatenated together into a
single object. A drive linked volume can be expanded by
adding another storage object to the end or shrunk by removing the last object.</para></listitem></varlistentry>
<varlistentry><term>Bad Block Relocation</term>
<listitem><para>Bad Block Relocation (BBR)
monitors its I/O path and detects write failures (which can be
caused by a damaged disk). In the event of such a failure, the
data from that request is stored in a new location. BBR keeps
track of this remapping. Additional I/Os to that
location are redirected to the new location.</para></listitem></varlistentry>
<varlistentry><term>Snapshotting</term>
<listitem><para>The Snapshotting feature provides
a mechanism for creating a "frozen" copy of a volume at a single
instant in time, without having to take that volume off-line.
This is useful for performing backups on a live system.
Snapshots work with any volume (EVMS or compatibility), and can
use any other available object as a backing store. After a
snapshot is created and made into an EVMS volume, writes to the "original" volume cause the
original contents of that location to be copied to the snapshot's
storage object. Reads to the snapshot volume look like they
come from the original at the time the snapshot was created.
</para></listitem></varlistentry></variablelist>
</listitem>
</varlistentry>
<varlistentry><term>File System Interface Modules</term>
<listitem><para>File System Interface Modules (FSIMs)
provide coordination with the
file systems during certain volume management
operations. For
instance, when expanding or shrinking a volume,
the file system
must also be expanded or shrunk to the appropriate size.
Ordering in this example is also important;
a file system cannot
be expanded before the volume, and a volume cannot
be shrunk before the file system.
The FSIMs allow EVMS to ensure this
coordination and ordering.</para>
<para>FSIMs also perform file system
operations from one of the EVMS user interfaces. For instance,
a user can make new file systems and check existing file systems
by interacting with the FSIM.</para></listitem>
</varlistentry>
<varlistentry><term>Cluster Manager Interface Modules</term>
<listitem><para>Cluster Manager Interface Modules, also
known as the EVMS Clustered Engine (ECE), interface
with the local cluster manager installed on the system.
The ECE provides a standardized ECE API to the Engine
while hiding cluster manager details from the Engine.</para></listitem></varlistentry>
</variablelist>
</sect1>
</chapter>

View File

@ -0,0 +1,92 @@
<preface id="userguidepref"><title>Preface</title>
<para>This guide tells how to configure and manage Enterprise
Volume Management System (EVMS). EVMS is a storage management program
that provides a single framework for managing and administering your system's storage.</para>
<para>This guide is intended for Linux system administrators and users who are
responsible for setting up and maintaining EVMS.</para>
<para>For additional information about EVMS or to ask questions specific to
your distribution, refer to the EVMS mailing lists. You can view the list
archives or subscribe to the lists from
the <ulink url="http://evms.sourceforge.net/mailinglists.html">EVMS Project
web site</ulink>.</para>
<para>The following table shows how this guide is organized:</para>
<table id="bookorg" frame="all"><title>Organization of the EVMS User Guide</title>
<tgroup cols="2"><colspec colnum="1" colwidth="1.5in"></colspec><colspec colnum="2" colwidth="3.5in"></colspec>
<thead><row><entry>Chapter or appendix title</entry>
<entry>Contents</entry></row></thead>
<tbody><row><entry>1. What is EVMS?</entry>
<entry>Discusses general EVMS concepts and terms.</entry></row>
<row><entry>2. Using the EVMS interfaces</entry>
<entry>Describes the three EVMS user interfaces and how to use them.</entry></row>
<row><entry>3. The EVMS log file and error data collection</entry>
<entry>Discusses the EVMS information and error log file and explains how to change the logging level.</entry></row>
<row><entry>4. Viewing compatibility volumes after migrating</entry>
<entry>Tells how to view existing files that have been migrated to EVMS.</entry></row>
<row><entry>5. Obtaining interface display details</entry>
<entry>Tells how to view detailed information about EVMS objects.</entry></row>
<row><entry>6. Adding and removing a segment manager</entry>
<entry>Discusses segments and explains how to add and remove a segment manager.</entry></row>
<row><entry>7. Creating segments</entry>
<entry>Explains when and how to create segments.</entry></row>
<row><entry>8. Creating containers</entry>
<entry>Discusses containers and explains when and how to create them.</entry></row>
<row><entry>9. Creating regions</entry>
<entry>Discusses regions and explains when and how to create them.</entry></row>
<row><entry>10. Creating drive links</entry>
<entry>Discusses the drive linking feature and tells how to create a drive link.</entry></row>
<row><entry>11. Creating snapshots</entry>
<entry>Discusses snapshotting and tells how to create a snapshot.</entry></row>
<row><entry>12. Creating volumes</entry><entry>Explains when and how to create volumes.</entry></row>
<row><entry>13. FSIMs and file system operations</entry>
<entry>Discusses the standard FSIMs shipped with EVMS and provides examples of adding file systems and coordinating file checks with the FSIMs.</entry></row>
<row><entry>14. Clustering operations</entry><entry>Describes EVMS clustering and how to create private and shared containers.</entry></row>
<row><entry>15. Converting volumes</entry>
<entry>Explains how to convert EVMS native volumes to compatibility volumes and compatibility volumes to EVMS native volumes.</entry></row>
<row><entry>16. Expanding and shrinking volumes</entry><entry>Tells how to expand and shrink EVMS volumes with the various EVMS user interfaces.</entry></row>
<row><entry>17. Adding features to an existing volume</entry>
<entry>Tells how to add additional features, such as drive linking, to an
existing volume.</entry></row>
<row><entry>18. Selectively activating volumes and objects</entry>
<entry>Explains how to selectively activate and deactive volumes
and options.</entry></row>
<row><entry>19. Mounting and unmounting volumes from within EVMS.</entry><entry>Tells how to have EVMS mount and unmount volumes so you do not have to open a separate terminal session.</entry></row>
<row><entry>20. Plug-in operations tasks</entry>
<entry>Discusses the plug-in tasks that are available within the context of a particular plug-in.</entry></row>
<row><entry>21. Deleting objects</entry><entry>Tells how to safely delete EVMS objects.</entry></row>
<row><entry>22. Replacing objects</entry><entry>Tells how to change the
configuration of a volume or storage object.</entry></row>
<row><entry>23. Moving segment storage objects</entry><entry>Discusses how to use
the move function for moving segments.</entry></row>
<row><entry>A. The DOS plug-in</entry>
<entry>Provides details about the DOS plug-in, which is a segment manager plug-in.</entry></row>
<row><entry>B. The MD region manager</entry>
<entry>Explains the Multiple Disks (MD) support in Linux that is a software implementation of RAID.</entry></row>
<row><entry>C. The LVM plug-in</entry>
<entry>Tells how the LVM plug-in is implemented and how to perform container operations.</entry></row>
<row><entry>D. The LVM2 plug-in</entry>
<entry>Tells how the LVM2 plug-in is implemented and how to perform container operations on
LVM2 containers.</entry>
</row>
<row><entry>E. The CSM plug-in</entry>
<entry>Explains how the Cluster Segment Manager (CSM) plug-in is implemented and how to perform CSM operations.</entry></row>
<row><entry>F. JFS file system interface module</entry>
<entry>Provides information about the JFS FSIM.</entry></row>
<row><entry>G. XFS file system interface module</entry>
<entry>Provides information about the XFS FSIM.</entry></row>
<row><entry>H. ReiserFS file system interface module</entry>
<entry>Provides information about the ReiserFS FSIM.</entry></row>
<row><entry>I. Ext-2/3 file system interface module</entry>
<entry>Provides information about the Ext-2/3 FSIM.</entry></row>
<row><entry>J. OpenGFS file system interface module</entry>
<entry>Provides information about the OpenGFS FSIM.</entry></row>
<row><entry>K. NTFS file system interface module</entry>
<entry>Provides information about the NTFS FSIM.</entry></row>
</tbody></tgroup>
</table>
</preface>

View File

@ -0,0 +1,466 @@
<chapter id="selectact"><title>Selectively activating volumes and objects</title>
<para>This chapter discusses selective activation and
deactivation of EVMS volumes and objects.
</para>
<sect1 id="initialactivation"><title>Initial activation using /etc/evms.conf</title>
<para>
There is a section in the EVMS configuration file,
<filename>/etc/etc/evms.conf</filename>, named "activate."
This section has two entries: "include" and "exclude." The
"include" entry lists the volumes and objects that should be activated.
The "exclude" entry lists the volumes and objects that should not be
activated.
</para>
<para>
Names in either of the entries can be specified using "*", "?", and
"[...]" notation. For example, the following entry will activate
all the volumes:
</para>
<programlisting>
include = [/dev/evms/*]
</programlisting>
<para>
The next entry specifies that objects sda5 and sda7 not be activated:
</para>
<programlisting>
exclude = [ sda[57] ]
</programlisting>
<para>When EVMS is started, it first reads the include entry and builds a list
of the volumes and objects that it should activate. It then reads the
exclude entry and removes from the list any names found in the exclude list.
For example, an activation section that activates all of the volumes
except <filename>/dev/evms/temp</filename> looks like this:
</para>
<programlisting>
activate {
include = [/dev/evms/*]
exclude = [/dev/evms/temp]
}
</programlisting>
<para>
If <filename>/etc/evms.conf</filename> does not contain an activate
section, the default behavior is to activate everything. This
behavior is consistent with versions of EVMS prior to 2.4.
</para>
<para>
Initial activation via <filename>/etc/evms.conf</filename> does not
deactivate any volumes or objects. It only determines which ones
should be active.
</para>
</sect1>
<sect1><title>Activating and deactivating volumes and objects</title>
<para>
The EVMS user interfaces offer the ability to activate or deactivate
a particular volume or object. The volume or object will be
activated or deactivated when the changes are saved.
</para>
<sect2><title>Activation</title>
<para>
You can activate inactive volumes and objects using the various EVMS
user interfaces.
</para>
<note><title>Note</title>
<para>
EVMS does not currently update the EVMS configuration file
(<filename>/etc/evms.conf</filename>) when volumes and objects are
activated. If you activate a volume or object that is not initially
activated and do not make the corresponding change in
<filename>/etc/evms.conf</filename>, the volume or object will not be
activated the next time the system is booted and you run
<command>evms_activate</command> or one of the user interfaces.
</para>
</note>
<sect3><title>Using the EVMS GUI</title>
<para>To activate volumes or objects with the GUI, follow these steps:
<orderedlist>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Activation</guimenuitem>
<guimenuitem>Activate...</guimenuitem>
</menuchoice>
</para>
</listitem>
<listitem>
<para>Select the volume(s) and object(s) you want to activate.
</para>
</listitem>
<listitem><para>
Click <guibutton>Activate</guibutton>.
</para></listitem>
<listitem>
<para>Click <guibutton>Save</guibutton> to save the changes and
activate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3><title>Using the EVMS GUI context-sensitive menu</title>
<para>To activate with the GUI context-sensitive menu, follow these steps:
<orderedlist>
<listitem>
<para>
Right click the volume or object you want to activate.
</para>
</listitem>
<listitem><para>
Click "Activate."
</para>
</listitem>
<listitem><para>
Click <guibutton>Activate</guibutton>.
</para></listitem>
<listitem>
<para>Click <guibutton>Save</guibutton> to save the changes and
activate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3>
<title>Using Ncurses</title>
<para>To activate a volume or object with Ncurses, follow these steps:
<orderedlist>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Activation</guimenuitem>
<guimenuitem>Activate...</guimenuitem>
</menuchoice>
</para>
</listitem>
<listitem>
<para>Select the volume(s) and object(s) you want to activate.
</para>
</listitem>
<listitem><para>
Select <guibutton>Activate</guibutton>.
</para></listitem>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Save</guimenuitem>
</menuchoice>
to save the changes and
activate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3><title>Using the Ncurses context-sensitive menu</title>
<para>To enable activation on a volume or object with the
Ncurses context-sensitive menu, follow these steps:
<orderedlist>
<listitem>
<para>
Highlight the volume or object you want to activate and press
<keycap>Enter</keycap>.
</para>
</listitem>
<listitem><para>
Select "Activate."
</para>
</listitem>
<listitem><para>
Select <guibutton>Activate</guibutton>.
</para></listitem>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Save</guimenuitem>
</menuchoice>
to save the changes and
activate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3><title>Using the CLI</title>
<para>To activate a volume or object with the CLI,
issue the following command to the CLI (where "name" is the name of
the volume or object you want to activate):</para>
<programlisting>
Activate:name
</programlisting>
</sect3>
</sect2>
<sect2><title>Deactivation</title>
<para>
You can deactivate active volumes and objects using the various EVMS
user interfaces.
</para>
<note><title>Note</title>
<para>
EVMS does not currently update the EVMS configuration file
(<filename>/etc/evms.conf</filename>) when a volume or object is
deactivated.
If you deactivate a volume or object that is initially activated and
do not make the corresponding change in <filename>/etc/evms.conf</filename>,
then the volume or object will be activated the next time you run
<command>evms_activate</command> or one of the user interfaces.
</para>
</note>
<sect3><title>Using the EVMS GUI</title>
<para>To deactivate a volume or object with the GUI, follow these steps:
<orderedlist>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Activation</guimenuitem>
<guimenuitem>Deactivate...</guimenuitem>
</menuchoice>
</para>
</listitem>
<listitem>
<para>Select the volume(s) and object(s) you want to deactivate.
</para>
</listitem>
<listitem><para>
Click <guibutton>Deactivate</guibutton>.
</para></listitem>
<listitem>
<para>Click <guibutton>Save</guibutton> to save the changes and
activate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3><title>Using the EVMS GUI context-sensitive menu</title>
<para>To deactivate a volume or object with the GUI
context-sensitive menu, follow these steps:
<orderedlist>
<listitem>
<para>
Right click the volume or object you want to deactivate.
</para>
</listitem>
<listitem><para>
Click "Deactivate."
</para>
</listitem>
<listitem><para>
Click <guibutton>Deactivate</guibutton>.
</para></listitem>
<listitem>
<para>Click <guibutton>Save</guibutton> to save the changes and
activate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3><title>Using Ncurses</title>
<para>To deactive a volume or object with Ncurses, follow these steps:
<orderedlist>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Activation</guimenuitem>
<guimenuitem>Deactivate...</guimenuitem>
</menuchoice>
</para>
</listitem>
<listitem>
<para>Select the volume(s) and object(s) you want to deactivate.
</para>
</listitem>
<listitem><para>
Select <guibutton>Deactivate</guibutton>.
</para></listitem>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Save</guimenuitem>
</menuchoice>
to save the changes and
deactivate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3><title>Using the Ncurses context-sensitive menu</title>
<para>To deactivate a volume or object with the
Ncurses context-sensitive menu, follow these steps:
<orderedlist>
<listitem>
<para>
Highlight the volume or object you want to deactivate and press
<keycap>Enter</keycap>.
</para>
</listitem>
<listitem><para>
Select "Deactivate."
</para>
</listitem>
<listitem><para>
Select <guibutton>Deactivate</guibutton>.
</para></listitem>
<listitem>
<para>Select
<menuchoice>
<guimenu>Actions</guimenu>
<guimenuitem>Save</guimenuitem>
</menuchoice>
to save the changes and
deactivate the volume(s) and object(s).
</para>
</listitem>
</orderedlist>
</para>
</sect3>
<sect3><title>Using the CLI</title>
<para>To deactivate a volume or object with the CLI,
issue the following command to the CLI (where "name" is the name of
the volume or object you want to deactivate):</para>
<programlisting>
Deactivate:name
</programlisting>
</sect3></sect2>
<sect2><title>Activation and deactivation dependencies</title>
<para>
In order for a volume or object to be active, all of its children
must be active. When you activate a volume or object, EVMS will
activate all the objects that the volume or object comprises.
</para>
<para>
Similarly, in order for an object to be inactive, all of its
parents cannot be activate. When you deactivate an object, EVMS
will deactivate all of the objects and volumes that are built from
that object.
</para>
<sect3><title>Dependencies during initial activation</title>
<para>
As discussed in <xref linkend="initialactivation"></xref>,
when EVMS starts, it builds an initial list of
volumes and objects whose names match the "include" entry in the
activation section of <filename>/etc/evms.conf</filename>. Because those
volumes and objects cannot be active unless the objects they comprise are
active, EVMS then adds to the list all the objects that are comprised by
the volumes and objects that were found in the initial match.
</para>
<para>
EVMS then removes from the list the volumes and objects whose names
match the "exclude" entry in the activation section of
<filename>/etc/evms.conf</filename>. Because any volumes or objects
that are built from the excluded ones cannot be active, EVMS removes
them from the list as well.
</para>
<para>
The enforcement of the dependencies can result in behavior that is not
immediately apparent.
Let's say, for example, that segment hda7 is made into volume
<filename>/dev/evms/home</filename>. and the activation section in
<filename>/etc/evms.conf</filename> looks like this:
</para>
<programlisting>
activate {
include = [*]
exclude = [hda*]
}
</programlisting>
<para>
When EVMS builds the list of volumes and objects to activate,
everything is included. EVMS next removes all objects whose names
start with "hda." hda7 will be removed from the list.
Next, because volume <filename>/dev/evms/home</filename> is built
from hda7, it will also be removed from the list and will not be
activated.
So, although volume <filename>/dev/evms/home</filename> is not
explicitly in the exclude list, it is not activated because it
depends on an object that will not be activated.
</para>
</sect3>
<sect3><title>Dependencies for compatibility volumes</title>
<para>
Compatibility volumes are made directly from the volume's object.
That is, the device node for the volume points directly to the device
for the volume's object.
Because a compatibility volume is inseparable from its object, a
compatibility volume itself cannot be deactivated.
To deactivate a compatibility volume you must deactivate the volume's object.
</para>
<para>
Similarly, if a compatibility volume and its object are not active
and you activate the volume's object, the compatibility volume will be
active as well.
</para>
</sect3>
</sect2>
</sect1>
</chapter>