3.7. Configuration Validation
The cluster configuration is automatically validated according to the cluster schema at
/usr/share/cluster/cluster.rng
during startup time and when a configuration is reloaded. Also, you can validate a cluster configuration any time by using the ccs_config_validate
command. For information on configuration validation when using the ccs
command, see Section 6.1.6, “Configuration Validation”.
An annotated schema is available for viewing at
/usr/share/doc/cman-X.Y.ZZ/cluster_conf.html
(for example /usr/share/doc/cman-3.0.12/cluster_conf.html
).
Configuration validation checks for the following basic errors:
- XML validity — Checks that the configuration file is a valid XML file.
- Configuration options — Checks to make sure that options (XML elements and attributes) are valid.
- Option values — Checks that the options contain valid data (limited).
The following examples show a valid configuration and invalid configurations that illustrate the validation checks:
- Valid configuration — Example 3.3, “
cluster.conf
Sample Configuration: Valid File” - Invalid option — Example 3.5, “
cluster.conf
Sample Configuration: Invalid Option” - Invalid option value — Example 3.6, “
cluster.conf
Sample Configuration: Invalid Option Value”
Example 3.3. cluster.conf
Sample Configuration: Valid File
<cluster name="mycluster" config_version="1"> <logging debug="off"/> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> </fence> </clusternode> </clusternodes> <fencedevices> </fencedevices> <rm> </rm> </cluster>
Example 3.4. cluster.conf
Sample Configuration: Invalid XML
<cluster name="mycluster" config_version="1"> <logging debug="off"/> <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> </fence> </clusternode> </clusternodes> <fencedevices> </fencedevices> <rm> </rm> <cluster> <----------------INVALID
In this example, the last line of the configuration (annotated as "INVALID" here) is missing a slash — it is
<cluster>
instead of </cluster>
.
Example 3.5. cluster.conf
Sample Configuration: Invalid Option
<cluster name="mycluster" config_version="1"> <loging debug="off"/> <----------------INVALID <clusternodes> <clusternode name="node-01.example.com" nodeid="1"> <fence> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> </fence> </clusternode> </clusternodes> <fencedevices> </fencedevices> <rm> </rm> <cluster>
In this example, the second line of the configuration (annotated as "INVALID" here) contains an invalid XML element — it is
loging
instead of logging
.
Example 3.6. cluster.conf
Sample Configuration: Invalid Option Value
<cluster name="mycluster" config_version="1"> <loging debug="off"/> <clusternodes> <clusternode name="node-01.example.com" nodeid="-1"> <--------INVALID <fence> </fence> </clusternode> <clusternode name="node-02.example.com" nodeid="2"> <fence> </fence> </clusternode> <clusternode name="node-03.example.com" nodeid="3"> <fence> </fence> </clusternode> </clusternodes> <fencedevices> </fencedevices> <rm> </rm> <cluster>
In this example, the fourth line of the configuration (annotated as "INVALID" here) contains an invalid value for the XML attribute,
nodeid
in the clusternode
line for node-01.example.com
. The value is a negative value ("-1") instead of a positive value ("1"). For the nodeid
attribute, the value must be a positive value.