LDP/LDP/guide/docbook/EVMSUG/containerops-ug.xml

571 lines
25 KiB
XML

<chapter id="containerops"><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>Non-shared disks should not be assigned to a cluster container.</para>
</listitem>
<listitem><para>Storage objects created on a cluster container must not span across
multiple cluster containers. Currently, the EVMS Engine cannot enforce this rule, so
you need to ensure that objects and volumes created from cluster storage manager
segments do not span multiple containers.</para>
</listitem>
<listitem><para>A disk should not span across cluster containers.</para>
</listitem>
<listitem><para>RAID, snapshot, and BBR features should not be assigned to storage
objects on a cluster container.</para>
</listitem>
</itemizedlist>
</sect1>
<sect1><title>Example: Create a private cluster container</title>
<para>This section tells how to create a sample private
container with EVMS 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 as <guimenuitem>node1</guimenuitem>. Select Storage Type as
<menuchoice>private</menuchoice> 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>. 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 the private container with the Ncurses interface, follow these steps:
</para>
<orderedlist><listitem><para>Scroll down the list using the <keycap>down</keycap> arrow to Create.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>. A submenu is displayed.</para>
</listitem>
<listitem><para>Scroll down until Container is highlighted. </para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
<para>A list opens 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 to select from.</para>
</listitem>
<listitem><para>Press <keycap>spacebar</keycap> on the node <filename>node1</filename> and
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 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.
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 sections tells how to create a Sample Shared Container with EVMS 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
<menuchoice>shared</menuchoice> 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>
<listitem><para>Run <command>evms_activate</command> on each of the cluster nodes so that the nodes discover
the volume. This process will be automated in future releases of EVMS.</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>Scroll down the list using the <keycap>down</keycap> arrow to Create.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>. A submenu is displayed.</para>
</listitem>
<listitem><para>Scroll down until Container is highlighted. </para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
<para>A list opens 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>
</orderedlist>
</sect2>
<sect2><title>Using the CLI</title>
<para>Execute the following command at the CLI prompt to create a 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>
<note><title>NOTE</title>
<para>Exercise caution while performing this operation. Ensure that no application
is using the volumes on the container on any node of the cluster.</para></note>
<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>
<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>csm/Priv1</guimenuitem> and press <keycap>Next</keycap>.</para>
<para>A Modify Properties dialog box opens.</para>
</listitem>
<listitem><para>Change &quot;Type Field&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>
<listitem><para>Run <command>evms_activate</command> on all the cluster nodes so that the nodes discover
all the volumes on the <filename>csm/Priv1</filename> container. This process will be
automated in a future release of EVMS.</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>Scroll down the list using the <keycap>down</keycap> arrow to
<guimenuitem>Modify</guimenuitem>.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>. A submenu is displayed.</para>
</listitem>
<listitem><para>Scroll down until <guimenuitem>Container</guimenuitem> is highlighted. </para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
<para>The Modify Container Properties dialog opens. Select the container
<filename>csm/Priv1</filename> by
pressing <keycap>spacebar</keycap>. The container you selected is marked with an &quot;x.&quot;</para>
</listitem>
<listitem><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 the &quot;Type field&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 is 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 <menuchoice>Actions</menuchoice> pulldown menu.</para>
</listitem>
<listitem><para>Run <command>evms_activate</command> on all the cluster nodes so that the nodes discover
all the volumes on the <filename>csm/Priv1</filename> container. This process will be
automated in a future release of EVMS.</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: csm/Priv1,type=shared</programlisting>
<para>Run <command>evms_activate</command> on all the cluster nodes so that the nodes discover
all the volumes on the <filename>csm/Priv1</filename> container. This process will be
automated in a future release of EVMS.</para>
</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>
<note><title>NOTE</title>
<para>Exercise caution while performing this operation. Ensure that no application
is using the volumes on the container on any node of the cluster.</para></note>
<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>
<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>csm/Shar1</guimenuitem> and press <keycap>Next</keycap>.</para>
<para>A Modify Properties dialog opens.</para>
</listitem>
<listitem><para>Change &quot;Type Field&quot; to &quot;private&quot; and the &quot;NodeID&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>
<listitem><para>Run <command>evms_activate</command> on the other nodes to deactivate
the volumes of the shared container on the other nodes. This process will be
automated in a future release of EVMS.</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>Scroll down the list using the <keycap>down</keycap> arrow to
<guimenuitem>Modify</guimenuitem>.</para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>. A submenu is displayed.</para>
</listitem>
<listitem><para>Scroll down until <guimenuitem>Container</guimenuitem> is highlighted. </para>
</listitem>
<listitem><para>Press <keycap>Enter</keycap>.</para>
<para>The Modify Container Properties dialog opens. Select the container
<filename>csm/Shar1</filename> by
pressing <keycap>spacebar</keycap>. The container you selected is 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 the &quot;Type&quot; field.</para>
</listitem>
<listitem><para>Press <keycap>spacebar</keycap>.</para>
</listitem>
<listitem><para>The Change Option Value dialog opens. Type <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. Enter <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 <menuchoice>Actions</menuchoice> pulldown.</para></listitem>
<listitem><para>Run <command>evms_activate</command> on all the cluster nodes to deactivate the volumes of the shared container on all the other nodes. This process will be
automated in a future release of EVMS.</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: csm/Shar1,type=private,nodeid=node1</programlisting>
<para>Run <command>evms_activate</command> on all the cluster nodes to deactivate the volumes
of the shared container on all the other nodes. This process will be
automated in a future release of EVMS.</para>
</sect2>
</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 heartbeat daemon starts (for example, <filename>/etc/kinit.d/heartbeat</filename>). 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>container3</filename> and
<filename>container4</filename> are to
be filled 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::container1</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 the following source for more details on the semantics of resource groups:
<ulink url="http://www.linux-ha.org/download/GettingStarted.html">http://www.linux-ha.org/download/GettingStarted.html</ulink>.</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>
<para><note>NOTE</note>
Do not add shared containers to the list of failover resources; doing so causes
EVMS to respond unpredictably.</para>
</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 node2 as a node administrator, enter this command:</para>
<programlisting>evmsgui -n node2</programlisting>
</sect2>
<sect2><title>Using Ncurses</title>
<para>To designate <filename>node2</filename> as a node administrator from Ncurses, follow these steps:</para>
<orderedlist>
<listitem><para>Go to the <guimenuitem>Setting</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>The &quot;EVMS is examining your system. Please wait&quot; dialog opens. 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>
</chapter>