Page MenuHomeClusterLabs Projects

No OneTemporary

diff --git a/doc/Pacemaker_Explained/en-US/Ch-Basics.txt b/doc/Pacemaker_Explained/en-US/Ch-Basics.txt
index 1f170e6c7d..b23597679e 100644
--- a/doc/Pacemaker_Explained/en-US/Ch-Basics.txt
+++ b/doc/Pacemaker_Explained/en-US/Ch-Basics.txt
@@ -1,349 +1,349 @@
= Configuration Basics =
== Configuration Layout ==
The cluster is written using XML notation and divided into two main
sections: configuration and status.
The status section contains the history of each resource on each node
and based on this data, the cluster can construct the complete current
state of the cluster. The authoritative source for the status section
is the local resource manager (lrmd) process on each cluster node and
the cluster will occasionally repopulate the entire section. For this
reason it is never written to disk and administrators are advised
against modifying it in any way.
The configuration section contains the more traditional information
like cluster options, lists of resources and indications of where they
should be placed. The configuration section is the primary focus of
this document.
The configuration section itself is divided into four parts:
* Configuration options (called +crm_config+)
* Nodes
* Resources
* Resource relationships (called +constraints+)
.An empty configuration
[source,XML]
-------
<cib admin_epoch="0" epoch="0" num_updates="0" have-quorum="false">
<configuration>
<crm_config/>
<nodes/>
<resources/>
<constraints/>
</configuration>
<status/>
</cib>
-------
== The Current State of the Cluster ==
Before one starts to configure a cluster, it is worth explaining how
to view the finished product. For this purpose we have created the
pass:[<command>crm_mon</command>] utility that will display the
current state of an active cluster. It can show the cluster status by
node or by resource and can be used in either single-shot or
dynamically-updating mode. There are also modes for displaying a list
of the operations performed (grouped by node and resource) as well as
information about failures.
Using this tool, you can examine the state of the cluster for
irregularities and see how it responds when you cause or simulate
failures.
Details on all the available options can be obtained using the
pass:[<command>crm_mon --help</command>] command.
.Sample output from crm_mon
-------
============
Last updated: Fri Nov 23 15:26:13 2007
Current DC: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec)
3 Nodes configured.
5 Resources configured.
============
Node: sles-1 (1186dc9a-324d-425a-966e-d757e693dc86): online
192.168.100.181 (heartbeat::ocf:IPaddr): Started sles-1
192.168.100.182 (heartbeat:IPaddr): Started sles-1
192.168.100.183 (heartbeat::ocf:IPaddr): Started sles-1
rsc_sles-1 (heartbeat::ocf:IPaddr): Started sles-1
child_DoFencing:2 (stonith:external/vmware): Started sles-1
Node: sles-2 (02fb99a8-e30e-482f-b3ad-0fb3ce27d088): standby
Node: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec): online
rsc_sles-2 (heartbeat::ocf:IPaddr): Started sles-3
rsc_sles-3 (heartbeat::ocf:IPaddr): Started sles-3
child_DoFencing:0 (stonith:external/vmware): Started sles-3
-------
.Sample output from crm_mon -n
-------
============
Last updated: Fri Nov 23 15:26:13 2007
Current DC: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec)
3 Nodes configured.
5 Resources configured.
============
Node: sles-1 (1186dc9a-324d-425a-966e-d757e693dc86): online
Node: sles-2 (02fb99a8-e30e-482f-b3ad-0fb3ce27d088): standby
Node: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec): online
Resource Group: group-1
192.168.100.181 (heartbeat::ocf:IPaddr): Started sles-1
192.168.100.182 (heartbeat:IPaddr): Started sles-1
192.168.100.183 (heartbeat::ocf:IPaddr): Started sles-1
rsc_sles-1 (heartbeat::ocf:IPaddr): Started sles-1
rsc_sles-2 (heartbeat::ocf:IPaddr): Started sles-3
rsc_sles-3 (heartbeat::ocf:IPaddr): Started sles-3
Clone Set: DoFencing
child_DoFencing:0 (stonith:external/vmware): Started sles-3
child_DoFencing:1 (stonith:external/vmware): Stopped
child_DoFencing:2 (stonith:external/vmware): Started sles-1
-------
The DC (Designated Controller) node is where all the decisions are
made and if the current DC fails a new one is elected from the
remaining cluster nodes. The choice of DC is of no significance to an
administrator beyond the fact that its logs will generally be more
interesting.
== How Should the Configuration be Updated? ==
There are three basic rules for updating the cluster configuration:
* Rule 1 - Never edit the cib.xml file manually. Ever. I'm not making this up.
* Rule 2 - Read Rule 1 again.
* Rule 3 - The cluster will notice if you ignored rules 1 &amp; 2 and refuse to use the configuration.
Now that it is clear how NOT to update the configuration, we can begin
to explain how you should.
The most powerful tool for modifying the configuration is the
+cibadmin+ command which talks to a running cluster. With +cibadmin+,
the user can query, add, remove, update or replace any part of the
configuration; all changes take effect immediately, so there is no
need to perform a reload-like operation.
The simplest way of using cibadmin is to use it to save the current
configuration to a temporary file, edit that file with your favorite
text or XML editor and then upload the revised configuration.
.Safely using an editor to modify the cluster configuration
[source,Bash]
--------
# cibadmin --query > tmp.xml
# vi tmp.xml
# cibadmin --replace --xml-file tmp.xml
--------
Some of the better XML editors can make use of a Relax NG schema to
help make sure any changes you make are valid. The schema describing
the configuration can normally be found in
pass:[<filename>/usr/lib/heartbeat/pacemaker.rng</filename>] on most
systems.
If you only wanted to modify the resources section, you could instead
do
.Safely using an editor to modify a subsection of the cluster configuration
[source,Bash]
--------
# cibadmin --query --obj_type resources > tmp.xml
# vi tmp.xml
# cibadmin --replace --obj_type resources --xml-file tmp.xml
--------
to avoid modifying any other part of the configuration.
== Quickly Deleting Part of the Configuration ==
Identify the object you wish to delete. Eg. run
.Searching for STONITH related configuration items
[source,Bash]
--------
# cibadmin -Q | grep stonith
<nvpair id="cib-bootstrap-options-stonith-action" name="stonith-action" value="reboot"/>
<nvpair id="cib-bootstrap-options-stonith-enabled" name="stonith-enabled" value="1"/>
<primitive id="child_DoFencing" class="stonith" type="external/vmware">
<lrm_resource id="child_DoFencing:0" type="external/vmware" class="stonith">
<lrm_resource id="child_DoFencing:0" type="external/vmware" class="stonith">
<lrm_resource id="child_DoFencing:1" type="external/vmware" class="stonith">
<lrm_resource id="child_DoFencing:0" type="external/vmware" class="stonith">
<lrm_resource id="child_DoFencing:2" type="external/vmware" class="stonith">
<lrm_resource id="child_DoFencing:0" type="external/vmware" class="stonith">
<lrm_resource id="child_DoFencing:3" type="external/vmware" class="stonith">
--------
Next identify the resource's tag name and id (in this case we'll
choose +primitive+ and +child_DoFencing+). Then simply execute:
pass:[<command>cibadmin --delete --crm_xml '&lt;primitive id="child_DoFencing"/>'</command>]
== Updating the Configuration Without Using XML ==
Some common tasks can also be performed with one of the higher level
tools that avoid the need to read or edit XML.
To enable stonith for example, one could run:
pass:[<command>crm_attribute --attr-name stonith-enabled --attr-value true</command>]
Or, to see if +somenode+ is allowed to run resources, there is:
pass:[<command>crm_standby --get-value --node-uname somenode</command>]
Or, to find the current location of +my-test-rsc+, one can use:
pass:[<command>crm_resource --locate --resource my-test-rsc</command>]
[[s-config-sandboxes]]
== Making Configuration Changes in a Sandbox ==
Often it is desirable to preview the effects of a series of changes
before updating the configuration atomically. For this purpose we
have created pass:[<command>crm_shadow</command>] which creates a
"shadow" copy of the configuration and arranges for all the command
line tools to use it.
To begin, simply invoke pass:[<command>crm_shadow</command>] and give
it the name of a configuration to create footnote:[Shadow copies are
identified with a name, making it possible to have more than one.] ;
be sure to follow the simple on-screen instructions.
-Read the above carefully, failure to do so could result in you
-destroying the cluster's active configuration!</warning>
+WARNING: Read the above carefully, failure to do so could result in you
+destroying the cluster's active configuration!
.Creating and displaying the active sandbox
[source,Bash]
--------
# crm_shadow --create test
Setting up shadow instance
Type Ctrl-D to exit the crm_shadow shell
shadow[test]:
shadow[test] # crm_shadow --which
test
--------
From this point on, all cluster commands will automatically use the
shadow copy instead of talking to the cluster's active configuration.
Once you have finished experimenting, you can either commit the
changes, or discard them as shown below. Again, be sure to follow the
on-screen instructions carefully.
For a full list of pass:[<command>crm_shadow</command>] options and
commands, invoke it with the <parameter>--help</parameter> option.
.Using a sandbox to make multiple changes atomically
[source,Bash]
--------
shadow[test] # crm_failcount -G -r rsc_c001n01
name=fail-count-rsc_c001n01 value=0
shadow[test] # crm_standby -v on -n c001n02
shadow[test] # crm_standby -G -n c001n02
name=c001n02 scope=nodes value=on
shadow[test] # cibadmin --erase --force
shadow[test] # cibadmin --query
<cib cib_feature_revision="1" validate-with="pacemaker-1.0" admin_epoch="0" crm_feature_set="3.0" have-quorum="1" epoch="112"
dc-uuid="c001n01" num_updates="1" cib-last-written="Fri Jun 27 12:17:10 2008">
<configuration>
<crm_config/>
<nodes/>
<resources/>
<constraints/>
</configuration>
<status/>
</cib>
shadow[test] # crm_shadow --delete test --force
Now type Ctrl-D to exit the crm_shadow shell
shadow[test] # exit
# crm_shadow --which
No shadow instance provided
# cibadmin -Q
<cib cib_feature_revision="1" validate-with="pacemaker-1.0" admin_epoch="0" crm_feature_set="3.0" have-quorum="1" epoch="110"
dc-uuid="c001n01" num_updates="551">
<configuration>
<crm_config>
<cluster_property_set id="cib-bootstrap-options">
<nvpair id="cib-bootstrap-1" name="stonith-enabled" value="1"/>
<nvpair id="cib-bootstrap-2" name="pe-input-series-max" value="30000"/>
--------
Making changes in a sandbox and verifying the real configuration is untouched
[[s-config-testing-changes]]
== Testing Your Configuration Changes ==
We saw previously how to make a series of changes to a "shadow" copy
of the configuration. Before loading the changes back into the
cluster (eg. pass:[<command>crm_shadow --commit mytest
--force</command>]), it is often advisable to simulate the effect of
the changes with +ptest+, eg.
pass:[<command>ptest --live-check -VVVVV --save-graph tmp.graph --save-dotfile tmp.dot</command>]
The tool uses the same library as the live cluster to show what it
would have done given the supplied input. It's output, in addition to
a significant amount of logging, is stored in two files +tmp.graph+
and +tmp.dot+, both are representations of the same thing -- the
cluster's response to your changes.
In the graph file is stored the complete transition, containing a list
of all the actions, their parameters and their pre-requisites.
Because the transition graph is not terribly easy to read, the tool
also generates a Graphviz dot-file representing the same information.
== Interpreting the Graphviz output ==
* Arrows indicate ordering dependencies
* Dashed-arrows indicate dependencies that are not present in the transition graph
* Actions with a dashed border of any color do not form part of the transition graph
* Actions with a green border form part of the transition graph
* Actions with a red border are ones the cluster would like to execute but cannot run
* Actions with a blue border are ones the cluster does not feel need to be executed
* Actions with orange text are pseudo/pretend actions that the cluster uses to simplify the graph
* Actions with black text are sent to the LRM
* Resource actions have text of the form pass:[<replaceable>rsc</replaceable>]_pass:[<replaceable>action</replaceable>]_pass:[<replaceable>interval</replaceable>] pass:[<replaceable>node</replaceable>]
* Any action depending on an action with a red border will not be able to execute.
* Loops are _really_ bad. Please report them to the development team.
=== Small Cluster Transition ===
image::images/Policy-Engine-small.png["An example transition graph as represented by Graphviz",width="16cm",height="6cm",align="center"]
In the above example, it appears that a new node, +node2+, has come
online and that the cluster is checking to make sure +rsc1+, +rsc2+
and +rsc3+ are not already running there (Indicated by the
+*_monitor_0+ entries). Once it did that, and assuming the resources
were not active there, it would have liked to stop +rsc1+ and +rsc2+
on +node1+ and move them to +node2+. However, there appears to be
some problem and the cluster cannot or is not permitted to perform the
stop actions which implies it also cannot perform the start actions.
For some reason the cluster does not want to start +rsc3+ anywhere.
For information on the options supported by ptest, use
pass:[<command>ptest --help</command>].
=== Complex Cluster Transition ===
image::images/Policy-Engine-big.png["Another, slightly more complex, transition graph that you're not expected to be able to read",width="16cm",height="20cm",align="center"]
== Do I Need to Update the Configuration on all Cluster Nodes? ==
No. Any changes are immediately synchronized to the other active
members of the cluster.
To reduce bandwidth, the cluster only broadcasts the incremental
updates that result from your changes and uses MD5 checksums to ensure
that each copy is completely consistent.
diff --git a/doc/Pacemaker_Explained/pot/Ch-Basics.pot b/doc/Pacemaker_Explained/pot/Ch-Basics.pot
index 7747b573f7..4954f2d95b 100644
--- a/doc/Pacemaker_Explained/pot/Ch-Basics.pot
+++ b/doc/Pacemaker_Explained/pot/Ch-Basics.pot
@@ -1,513 +1,513 @@
#
# AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2012-02-27T09:17:56\n"
"PO-Revision-Date: 2012-02-27T09:17:56\n"
"Last-Translator: Automatically generated\n"
"Language-Team: None\n"
"MIME-Version: 1.0\n"
"Content-Type: application/x-publican; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#. Tag: title
#, no-c-format
msgid "Configuration Basics"
msgstr ""
#. Tag: title
#, no-c-format
msgid "Configuration Layout"
msgstr ""
#. Tag: para
#, no-c-format
msgid "The cluster is written using XML notation and divided into two main sections: configuration and status."
msgstr ""
#. Tag: para
#, no-c-format
msgid "The status section contains the history of each resource on each node and based on this data, the cluster can construct the complete current state of the cluster. The authoritative source for the status section is the local resource manager (lrmd) process on each cluster node and the cluster will occasionally repopulate the entire section. For this reason it is never written to disk and administrators are advised against modifying it in any way."
msgstr ""
#. Tag: para
#, no-c-format
msgid "The configuration section contains the more traditional information like cluster options, lists of resources and indications of where they should be placed. The configuration section is the primary focus of this document."
msgstr ""
#. Tag: para
#, no-c-format
msgid "The configuration section itself is divided into four parts:"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Configuration options (called <literal>crm_config</literal>)"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Nodes"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Resources"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Resource relationships (called <literal>constraints</literal>)"
msgstr ""
#. Tag: programlisting
#, no-c-format
msgid " &lt;cib admin_epoch=\"0\" epoch=\"0\" num_updates=\"0\" have-quorum=\"false\"&gt;\n"
" &lt;configuration&gt;\n"
" &lt;crm_config/&gt;\n"
" &lt;nodes/&gt;\n"
" &lt;resources/&gt;\n"
" &lt;constraints/&gt;\n"
" &lt;/configuration&gt;\n"
" &lt;status/&gt;\n"
" &lt;/cib&gt;"
msgstr ""
#. Tag: title
#, no-c-format
msgid "The Current State of the Cluster"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Before one starts to configure a cluster, it is worth explaining how to view the finished product. For this purpose we have created the <command>crm_mon</command> utility that will display the current state of an active cluster. It can show the cluster status by node or by resource and can be used in either single-shot or dynamically-updating mode. There are also modes for displaying a list of the operations performed (grouped by node and resource) as well as information about failures."
msgstr ""
#. Tag: para
#, no-c-format
msgid "Using this tool, you can examine the state of the cluster for irregularities and see how it responds when you cause or simulate failures."
msgstr ""
#. Tag: para
#, no-c-format
msgid "Details on all the available options can be obtained using the <command>crm_mon --help</command> command."
msgstr ""
#. Tag: title
#, no-c-format
msgid "Sample output from crm_mon"
msgstr ""
#. Tag: screen
#, no-c-format
msgid " ============\n"
" Last updated: Fri Nov 23 15:26:13 2007\n"
" Current DC: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec)\n"
" 3 Nodes configured.\n"
" 5 Resources configured.\n"
" ============\n"
"\n"
" Node: sles-1 (1186dc9a-324d-425a-966e-d757e693dc86): online\n"
" 192.168.100.181 (heartbeat::ocf:IPaddr): Started sles-1\n"
" 192.168.100.182 (heartbeat:IPaddr): Started sles-1\n"
" 192.168.100.183 (heartbeat::ocf:IPaddr): Started sles-1\n"
" rsc_sles-1 (heartbeat::ocf:IPaddr): Started sles-1\n"
" child_DoFencing:2 (stonith:external/vmware): Started sles-1\n"
" Node: sles-2 (02fb99a8-e30e-482f-b3ad-0fb3ce27d088): standby\n"
" Node: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec): online\n"
" rsc_sles-2 (heartbeat::ocf:IPaddr): Started sles-3\n"
" rsc_sles-3 (heartbeat::ocf:IPaddr): Started sles-3\n"
" child_DoFencing:0 (stonith:external/vmware): Started sles-3"
msgstr ""
#. Tag: title
#, no-c-format
msgid "Sample output from crm_mon -n"
msgstr ""
#. Tag: screen
#, no-c-format
msgid " ============\n"
" Last updated: Fri Nov 23 15:26:13 2007\n"
" Current DC: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec)\n"
" 3 Nodes configured.\n"
" 5 Resources configured.\n"
" ============\n"
"\n"
" Node: sles-1 (1186dc9a-324d-425a-966e-d757e693dc86): online\n"
" Node: sles-2 (02fb99a8-e30e-482f-b3ad-0fb3ce27d088): standby\n"
" Node: sles-3 (2298606a-6a8c-499a-9d25-76242f7006ec): online\n"
"\n"
" Resource Group: group-1\n"
" 192.168.100.181 (heartbeat::ocf:IPaddr): Started sles-1\n"
" 192.168.100.182 (heartbeat:IPaddr): Started sles-1\n"
" 192.168.100.183 (heartbeat::ocf:IPaddr): Started sles-1\n"
" rsc_sles-1 (heartbeat::ocf:IPaddr): Started sles-1\n"
" rsc_sles-2 (heartbeat::ocf:IPaddr): Started sles-3\n"
" rsc_sles-3 (heartbeat::ocf:IPaddr): Started sles-3\n"
" Clone Set: DoFencing\n"
" child_DoFencing:0 (stonith:external/vmware): Started sles-3\n"
" child_DoFencing:1 (stonith:external/vmware): Stopped\n"
" child_DoFencing:2 (stonith:external/vmware): Started sles-1"
msgstr ""
#. Tag: para
#, no-c-format
msgid "The DC (Designated Controller) node is where all the decisions are made and if the current DC fails a new one is elected from the remaining cluster nodes. The choice of DC is of no significance to an administrator beyond the fact that its logs will generally be more interesting."
msgstr ""
#. Tag: title
#, no-c-format
msgid "How Should the Configuration be Updated?"
msgstr ""
#. Tag: para
#, no-c-format
msgid "There are three basic rules for updating the cluster configuration:"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Rule 1 - Never edit the cib.xml file manually. Ever. I’m not making this up."
msgstr ""
#. Tag: para
#, no-c-format
msgid "Rule 2 - Read Rule 1 again."
msgstr ""
#. Tag: para
#, no-c-format
msgid "Rule 3 - The cluster will notice if you ignored rules 1 &amp; 2 and refuse to use the configuration."
msgstr ""
#. Tag: para
#, no-c-format
msgid "Now that it is clear how NOT to update the configuration, we can begin to explain how you should."
msgstr ""
#. Tag: para
#, no-c-format
msgid "The most powerful tool for modifying the configuration is the <literal>cibadmin</literal> command which talks to a running cluster. With <literal>cibadmin</literal>, the user can query, add, remove, update or replace any part of the configuration; all changes take effect immediately, so there is no need to perform a reload-like operation."
msgstr ""
#. Tag: para
#, no-c-format
msgid "The simplest way of using cibadmin is to use it to save the current configuration to a temporary file, edit that file with your favorite text or XML editor and then upload the revised configuration."
msgstr ""
#. Tag: programlisting
#, no-c-format
msgid "# cibadmin --query &gt; tmp.xml\n"
"# vi tmp.xml\n"
"# cibadmin --replace --xml-file tmp.xml"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Some of the better XML editors can make use of a Relax NG schema to help make sure any changes you make are valid. The schema describing the configuration can normally be found in <filename>/usr/lib/heartbeat/pacemaker.rng</filename> on most systems."
msgstr ""
#. Tag: para
#, no-c-format
msgid "If you only wanted to modify the resources section, you could instead do"
msgstr ""
#. Tag: programlisting
#, no-c-format
msgid "# cibadmin --query --obj_type resources &gt; tmp.xml\n"
"# vi tmp.xml\n"
"# cibadmin --replace --obj_type resources --xml-file tmp.xml"
msgstr ""
#. Tag: para
#, no-c-format
msgid "to avoid modifying any other part of the configuration."
msgstr ""
#. Tag: title
#, no-c-format
msgid "Quickly Deleting Part of the Configuration"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Identify the object you wish to delete. Eg. run"
msgstr ""
#. Tag: programlisting
#, no-c-format
msgid "# cibadmin -Q | grep stonith\n"
" &lt;nvpair id=\"cib-bootstrap-options-stonith-action\" name=\"stonith-action\" value=\"reboot\"/&gt;\n"
" &lt;nvpair id=\"cib-bootstrap-options-stonith-enabled\" name=\"stonith-enabled\" value=\"1\"/&gt;\n"
" &lt;primitive id=\"child_DoFencing\" class=\"stonith\" type=\"external/vmware\"&gt;\n"
" &lt;lrm_resource id=\"child_DoFencing:0\" type=\"external/vmware\" class=\"stonith\"&gt;\n"
" &lt;lrm_resource id=\"child_DoFencing:0\" type=\"external/vmware\" class=\"stonith\"&gt;\n"
" &lt;lrm_resource id=\"child_DoFencing:1\" type=\"external/vmware\" class=\"stonith\"&gt;\n"
" &lt;lrm_resource id=\"child_DoFencing:0\" type=\"external/vmware\" class=\"stonith\"&gt;\n"
" &lt;lrm_resource id=\"child_DoFencing:2\" type=\"external/vmware\" class=\"stonith\"&gt;\n"
" &lt;lrm_resource id=\"child_DoFencing:0\" type=\"external/vmware\" class=\"stonith\"&gt;\n"
" &lt;lrm_resource id=\"child_DoFencing:3\" type=\"external/vmware\" class=\"stonith\"&gt;"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Next identify the resource’s tag name and id (in this case we’ll choose <literal>primitive</literal> and <literal>child_DoFencing</literal>). Then simply execute:"
msgstr ""
#. Tag: para
#, no-c-format
msgid "<command>cibadmin --delete --crm_xml '&lt;primitive id=\"child_DoFencing\"/&gt;'</command>"
msgstr ""
#. Tag: title
#, no-c-format
msgid "Updating the Configuration Without Using XML"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Some common tasks can also be performed with one of the higher level tools that avoid the need to read or edit XML."
msgstr ""
#. Tag: para
#, no-c-format
msgid "To enable stonith for example, one could run:"
msgstr ""
#. Tag: para
#, no-c-format
msgid "<command>crm_attribute --attr-name stonith-enabled --attr-value true</command>"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Or, to see if <literal>somenode</literal> is allowed to run resources, there is:"
msgstr ""
#. Tag: para
#, no-c-format
msgid "<command>crm_standby --get-value --node-uname somenode</command>"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Or, to find the current location of <literal>my-test-rsc</literal>, one can use:"
msgstr ""
#. Tag: para
#, no-c-format
msgid "<command>crm_resource --locate --resource my-test-rsc</command>"
msgstr ""
#. Tag: title
#, no-c-format
msgid "Making Configuration Changes in a Sandbox"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Often it is desirable to preview the effects of a series of changes before updating the configuration atomically. For this purpose we have created <command>crm_shadow</command> which creates a \"shadow\" copy of the configuration and arranges for all the command line tools to use it."
msgstr ""
#. Tag: para
#, no-c-format
msgid "To begin, simply invoke <command>crm_shadow</command> and give it the name of a configuration to create <footnote><para>Shadow copies are identified with a name, making it possible to have more than one.</para></footnote> ; be sure to follow the simple on-screen instructions."
msgstr ""
#. Tag: para
#, no-c-format
-msgid "Read the above carefully, failure to do so could result in you destroying the cluster’s active configuration!&lt;/warning&gt;"
+msgid "Read the above carefully, failure to do so could result in you destroying the cluster’s active configuration!"
msgstr ""
#. Tag: programlisting
#, no-c-format
msgid " # crm_shadow --create test\n"
" Setting up shadow instance\n"
" Type Ctrl-D to exit the crm_shadow shell\n"
" shadow[test]:\n"
" shadow[test] # crm_shadow --which\n"
" test"
msgstr ""
#. Tag: para
#, no-c-format
msgid "From this point on, all cluster commands will automatically use the shadow copy instead of talking to the cluster’s active configuration. Once you have finished experimenting, you can either commit the changes, or discard them as shown below. Again, be sure to follow the on-screen instructions carefully."
msgstr ""
#. Tag: para
#, no-c-format
msgid "For a full list of <command>crm_shadow</command> options and commands, invoke it with the &lt;parameter&gt;--help&lt;/parameter&gt; option."
msgstr ""
#. Tag: programlisting
#, no-c-format
msgid " shadow[test] # crm_failcount -G -r rsc_c001n01\n"
" name=fail-count-rsc_c001n01 value=0\n"
" shadow[test] # crm_standby -v on -n c001n02\n"
" shadow[test] # crm_standby -G -n c001n02\n"
" name=c001n02 scope=nodes value=on\n"
" shadow[test] # cibadmin --erase --force\n"
" shadow[test] # cibadmin --query\n"
" &lt;cib cib_feature_revision=\"1\" validate-with=\"pacemaker-1.0\" admin_epoch=\"0\" crm_feature_set=\"3.0\" have-quorum=\"1\" epoch=\"112\"\n"
" dc-uuid=\"c001n01\" num_updates=\"1\" cib-last-written=\"Fri Jun 27 12:17:10 2008\"&gt;\n"
" &lt;configuration&gt;\n"
" &lt;crm_config/&gt;\n"
" &lt;nodes/&gt;\n"
" &lt;resources/&gt;\n"
" &lt;constraints/&gt;\n"
" &lt;/configuration&gt;\n"
" &lt;status/&gt;\n"
" &lt;/cib&gt;\n"
" shadow[test] # crm_shadow --delete test --force\n"
" Now type Ctrl-D to exit the crm_shadow shell\n"
" shadow[test] # exit\n"
" # crm_shadow --which\n"
" No shadow instance provided\n"
" # cibadmin -Q\n"
" &lt;cib cib_feature_revision=\"1\" validate-with=\"pacemaker-1.0\" admin_epoch=\"0\" crm_feature_set=\"3.0\" have-quorum=\"1\" epoch=\"110\"\n"
" dc-uuid=\"c001n01\" num_updates=\"551\"&gt;\n"
" &lt;configuration&gt;\n"
" &lt;crm_config&gt;\n"
" &lt;cluster_property_set id=\"cib-bootstrap-options\"&gt;\n"
" &lt;nvpair id=\"cib-bootstrap-1\" name=\"stonith-enabled\" value=\"1\"/&gt;\n"
" &lt;nvpair id=\"cib-bootstrap-2\" name=\"pe-input-series-max\" value=\"30000\"/&gt;"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Making changes in a sandbox and verifying the real configuration is untouched"
msgstr ""
#. Tag: title
#, no-c-format
msgid "Testing Your Configuration Changes"
msgstr ""
#. Tag: para
#, no-c-format
msgid "We saw previously how to make a series of changes to a \"shadow\" copy of the configuration. Before loading the changes back into the cluster (eg. <command>crm_shadow --commit mytest --force</command>), it is often advisable to simulate the effect of the changes with <literal>ptest</literal>, eg."
msgstr ""
#. Tag: para
#, no-c-format
msgid "<command>ptest --live-check -VVVVV --save-graph tmp.graph --save-dotfile tmp.dot</command>"
msgstr ""
#. Tag: para
#, no-c-format
msgid "The tool uses the same library as the live cluster to show what it would have done given the supplied input. It’s output, in addition to a significant amount of logging, is stored in two files <literal>tmp.graph</literal> and <literal>tmp.dot</literal>, both are representations of the same thing — the cluster’s response to your changes."
msgstr ""
#. Tag: para
#, no-c-format
msgid "In the graph file is stored the complete transition, containing a list of all the actions, their parameters and their pre-requisites. Because the transition graph is not terribly easy to read, the tool also generates a Graphviz dot-file representing the same information."
msgstr ""
#. Tag: title
#, no-c-format
msgid "Interpreting the Graphviz output"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Arrows indicate ordering dependencies"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Dashed-arrows indicate dependencies that are not present in the transition graph"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Actions with a dashed border of any color do not form part of the transition graph"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Actions with a green border form part of the transition graph"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Actions with a red border are ones the cluster would like to execute but cannot run"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Actions with a blue border are ones the cluster does not feel need to be executed"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Actions with orange text are pseudo/pretend actions that the cluster uses to simplify the graph"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Actions with black text are sent to the LRM"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Resource actions have text of the form <replaceable>rsc</replaceable>_<replaceable>action</replaceable>_<replaceable>interval</replaceable> <replaceable>node</replaceable>"
msgstr ""
#. Tag: para
#, no-c-format
msgid "Any action depending on an action with a red border will not be able to execute."
msgstr ""
#. Tag: para
#, no-c-format
msgid "Loops are <emphasis>really</emphasis> bad. Please report them to the development team."
msgstr ""
#. Tag: title
#, no-c-format
msgid "Small Cluster Transition"
msgstr ""
#. Tag: phrase
#, no-c-format
msgid "An example transition graph as represented by Graphviz"
msgstr ""
#. Tag: para
#, no-c-format
msgid "In the above example, it appears that a new node, <literal>node2</literal>, has come online and that the cluster is checking to make sure <literal>rsc1</literal>, <literal>rsc2</literal> and <literal>rsc3</literal> are not already running there (Indicated by the <literal>*_monitor_0</literal> entries). Once it did that, and assuming the resources were not active there, it would have liked to stop <literal>rsc1</literal> and <literal>rsc2</literal> on <literal>node1</literal> and move them to <literal>node2</literal>. However, there appears to be some problem and the cluster cannot or is not permitted to perform the stop actions which implies it also cannot perform the start actions. For some reason the cluster does not want to start <literal>rsc3</literal> anywhere."
msgstr ""
#. Tag: para
#, no-c-format
msgid "For information on the options supported by ptest, use <command>ptest --help</command>."
msgstr ""
#. Tag: title
#, no-c-format
msgid "Complex Cluster Transition"
msgstr ""
#. Tag: phrase
#, no-c-format
msgid "Another, slightly more complex, transition graph that you're not expected to be able to read"
msgstr ""
#. Tag: title
#, no-c-format
msgid "Do I Need to Update the Configuration on all Cluster Nodes?"
msgstr ""
#. Tag: para
#, no-c-format
msgid "No. Any changes are immediately synchronized to the other active members of the cluster."
msgstr ""
#. Tag: para
#, no-c-format
msgid "To reduce bandwidth, the cluster only broadcasts the incremental updates that result from your changes and uses MD5 checksums to ensure that each copy is completely consistent."
msgstr ""

File Metadata

Mime Type
text/x-diff
Expires
Sat, Nov 23, 7:25 AM (16 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1012708
Default Alt Text
(33 KB)

Event Timeline