Cluster.ng
Node Assassin :: Cluster.ng |
This is the updated cluster.conf validation XML file needed to add support for Node Assassin to Red Hat/CentOS clusters.
- cluster.ng (local copy)
<grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<element name="cluster">
<attribute name="name"/>
<attribute name="config_version"/>
<optional>
<attribute name="alias"/>
</optional>
<!-- The choice section below brackets two very large group blocks. -->
<!-- The first group specifies schema for a cman/dlm cluster, and -->
<!-- the second for a gulm cluster -->
<interleave>
<choice>
<choice>
<group>
<ref name="cman_definition"/>
<ref name="cman_clusternodes"/>
</group>
<group>
<ref name="cman_clusternodes"/>
<ref name="cman_definition"/>
</group>
</choice>
<choice>
<group>
<ref name="gulm_definition"/>
<ref name="gulm_clusternodes"/>
</group>
<group>
<ref name="gulm_clusternodes"/>
<ref name="gulm_definition"/>
</group>
</choice>
</choice>
<optional>
<element name="fencedevices">
<zeroOrMore>
<element name="fencedevice">
<attribute name="name">
<data type="ID"/>
</attribute>
<attribute name="agent"/>
<optional>
<choice>
<!-- Node Assassin -->
<group>
<attribute name="ipaddr"/>
<optional>
<attribute name="login"/>
</optional>
<optional>
<attribute name="passwd"/>
</optional>
<optional>
<attribute name="passwd_script"/>
</optional>
<optional>
<attribute name="quiet"/>
</optional>
</group>
<!-- RPS10 -->
<group>
<attribute name="device" />
<attribute name="port" />
</group>
<!-- APC, Brocade, McData, SANBox2, Bladecenter,bullpap, ipmilan -->
<group>
<attribute name="ipaddr"/>
<optional>
<attribute name="login"/>
</optional>
<optional>
<attribute name="passwd"/>
</optional>
<optional>
<attribute name="passwd_script"/>
</optional>
<optional>
<attribute name="auth"/>
</optional>
<optional>
<attribute name="lanplus"/>
</optional>
</group>
<!-- WTI, Vixel -->
<group>
<optional>
<attribute name="ipaddr"/>
</optional>
<optional>
<attribute name="passwd"/>
</optional>
<optional>
<attribute name="passwd_script"/>
</optional>
</group>
<!-- scsi reservations -->
<group>
<attribute name="nodename"/>
<attribute name="self"/>
</group>
<!-- ILO -->
<group>
<attribute name="hostname"/>
<attribute name="login"/>
<optional>
<attribute name="passwd"/>
</optional>
<optional>
<attribute name="passwd_script"/>
</optional>
<optional>
<attribute name="force"/>
</optional>
</group>
<!-- GNBD -->
<group>
<attribute name="servers"/>
</group>
<!-- Egenera -->
<group>
<attribute name="cserver"/>
</group>
<!-- xCAT -->
<group>
<attribute name="rpowerpath"/>
</group>
<!-- manual -->
<group>
<optional>
<empty/>
</optional>
</group>
</choice>
</optional>
</element>
</zeroOrMore>
</element>
</optional>
<optional>
<element name="fence_xvmd">
<empty/>
</element>
</optional>
<optional>
<element name="totem">
<optional>
<attribute name="consensus"/>
</optional>
<optional>
<attribute name="join"/>
</optional>
<optional>
<attribute name="token"/>
</optional>
<optional>
<attribute name="token_retransmits_before_loss_const"/>
</optional>
</element>
</optional>
<optional>
<element name="rm">
<optional>
<attribute name="log_level"/>
</optional>
<optional>
<attribute name="statusmax"/>
</optional>
<optional>
<attribute name="log_facility"/>
</optional>
<interleave>
<optional>
<element name="failoverdomains">
<zeroOrMore>
<element name="failoverdomain">
<attribute name="name"/>
<optional>
<attribute name="ordered"/>
</optional>
<optional>
<attribute name="restricted"/>
</optional>
<optional>
<attribute name="nofailback"/>
</optional>
<zeroOrMore>
<element name="failoverdomainnode">
<optional>
<attribute name="priority"/>
</optional>
<attribute name="name"/>
</element>
</zeroOrMore>
</element>
</zeroOrMore>
</element>
</optional> <!-- End of failoverdomains block -->
<optional>
<element name="resources">
<zeroOrMore>
<ref name="ALLCHILDREN"/>
</zeroOrMore>
</element>
</optional>
<zeroOrMore>
<element name="service">
<attribute name="name"/>
<optional>
<attribute name="domain"/>
</optional>
<optional>
<attribute name="autostart"/>
</optional>
<optional>
<attribute name="hardrecovery"/>
</optional>
<optional>
<attribute name="exclusive"/>
</optional>
<optional>
<attribute name="recovery"/>
</optional>
<optional>
<attribute name="nfslock"/>
</optional>
<zeroOrMore>
<ref name="ALLCHILDREN"/>
</zeroOrMore>
</element>
</zeroOrMore>
<zeroOrMore>
<element name="vm">
<attribute name="name"/>
<attribute name="path"/>
<attribute name="domain"/>
<optional>
<attribute name="autostart"/>
</optional>
<optional>
<attribute name="exclusive"/>
</optional>
<optional>
<attribute name="recovery"/>
</optional>
<optional>
<attribute name="migration"/>
</optional>
</element>
</zeroOrMore>
</interleave>
</element>
</optional>
<optional>
<element name="fence_daemon">
<optional>
<attribute name="post_join_delay"/>
</optional>
<optional>
<attribute name="post_fail_delay"/>
</optional>
<optional>
<attribute name="clean_start"/>
</optional>
</element>
</optional>
<optional>
<element name="quorumd">
<optional>
<attribute name="interval"/>
</optional>
<optional>
<attribute name="tko"/>
</optional>
<optional>
<attribute name="tko_up"/>
</optional>
<optional>
<attribute name="upgrade_wait"/>
</optional>
<optional>
<attribute name="master_wait"/>
</optional>
<optional>
<attribute name="votes"/>
</optional>
<optional>
<attribute name="min_score"/>
</optional>
<optional>
<attribute name="device"/>
</optional>
<optional>
<attribute name="label"/>
</optional>
<optional>
<attribute name="reboot"/>
</optional>
<optional>
<attribute name="allow_kill"/>
</optional>
<optional>
<attribute name="paranoid"/>
</optional>
<optional>
<attribute name="priority"/>
</optional>
<optional>
<attribute name="stop_cman"/>
</optional>
<optional>
<attribute name="use_uptime"/>
</optional>
<optional>
<attribute name="scheduler"/>
</optional>
<optional>
<attribute name="status_file"/>
</optional>
<optional>
<attribute name="log_level"/>
</optional>
<optional>
<attribute name="log_facility"/>
</optional>
<optional>
<element name="heuristic">
<attribute name="program"/>
<optional>
<attribute name="score"/>
</optional>
<optional>
<attribute name="interval"/>
</optional>
<optional>
<attribute name="tko"/>
</optional>
</element>
</optional>
</element>
</optional>
</interleave>
</element> <!-- cluster end -->
</start>
<define name="cman_definition">
<element name="cman">
<choice>
<group>
<attribute name="two_node"/>
<attribute name="expected_votes">
<data type="positiveInteger"/>
</attribute>
</group>
<group>
<optional>
<attribute name="expected_votes">
<data type="positiveInteger"/>
</attribute>
</optional>
</group>
</choice>
<optional>
<element name="multicast">
<attribute name="addr"/>
</element>
</optional>
<optional>
<attribute name="deadnode_timeout">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="log_level"/>
</optional>
<optional>
<attribute name="log_facility"/>
</optional>
</element>
</define>
<define name="cman_clusternodes">
<element name="clusternodes">
<zeroOrMore>
<element name="clusternode">
<attribute name="name">
<data type="ID"/>
</attribute>
<optional>
<attribute name="votes">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="nodeid">
<data type="positiveInteger"/>
</attribute>
</optional>
<interleave>
<optional>
<element name="multicast">
<attribute name="addr"/>
<optional>
<attribute name="interface"/>
</optional>
</element>
</optional>
<optional>
<ref name="FENCE"/>
</optional>
</interleave>
</element>
</zeroOrMore>
</element>
</define>
<define name="gulm_definition">
<element name="gulm">
<optional>
<attribute name="heartbeat_rate">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="allowed_misses">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="coreport">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="ltpxport">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="ltport">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="lt_partitions">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="master_scan_delay">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<attribute name="new_connection_timeout">
<data type="positiveInteger"/>
</attribute>
</optional>
<oneOrMore>
<element name="lockserver">
<attribute name="name">
<data type="IDREF"/>
</attribute>
</element>
</oneOrMore>
</element>
</define>
<define name="gulm_clusternodes">
<element name="clusternodes">
<zeroOrMore>
<element name="clusternode">
<attribute name="name">
<data type="ID"/>
</attribute>
<optional>
<attribute name="votes">
<data type="positiveInteger"/>
</attribute>
</optional>
<optional>
<ref name="FENCE"/>
</optional>
</element>
</zeroOrMore>
</element>
</define>
<define name="SAMBA">
<element name="smb">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="workgroup"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="SYBASE">
<element name="ASEHAagent">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="login_file"/>
</optional>
<optional>
<attribute name="interfaces_file"/>
</optional>
<optional>
<attribute name="server_name"/>
</optional>
<optional>
<attribute name="sybase_home"/>
</optional>
<optional>
<attribute name="sybase_ase"/>
</optional>
<optional>
<attribute name="sybase_ocs"/>
</optional>
<optional>
<attribute name="sybase_user"/>
</optional>
<optional>
<attribute name="deep_probe_timeout"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="APACHE">
<element name="apache">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="config_file"/>
</optional>
<optional>
<attribute name="server_root"/>
</optional>
<optional>
<attribute name="httpd_options"/>
</optional>
<optional>
<attribute name="shutdown_wait"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="POSTGRES">
<element name="postgres-8">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="config_file"/>
</optional>
<optional>
<attribute name="postmaster_user"/>
</optional>
<optional>
<attribute name="postmaster_options"/>
</optional>
<optional>
<attribute name="shutdown_wait"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="TOMCAT">
<element name="tomcat-5">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="config_file"/>
</optional>
<optional>
<attribute name="tomcat_user"/>
</optional>
<optional>
<attribute name="catalina_options"/>
</optional>
<optional>
<attribute name="catalina_base"/>
</optional>
<optional>
<attribute name="shutdown_wait"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="MYSQL">
<element name="mysql">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="config_file"/>
</optional>
<optional>
<attribute name="listen_address"/>
</optional>
<optional>
<attribute name="mysql_options"/>
</optional>
<optional>
<attribute name="shutdown_wait"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="LVM">
<element name="lvm">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="lv_name"/>
</optional>
<optional>
<attribute name="vg_name"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="SAPDB">
<element name="SAPDatabase">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="SID"/>
<optional>
<attribute name="DIR_EXECUTABLE"/>
</optional>
<optional>
<attribute name="NETSERVICENAME"/>
</optional>
<optional>
<attribute name="DIR_BOOTSTRAP"/>
</optional>
<optional>
<attribute name="DIR_SECSTORE"/>
</optional>
<optional>
<attribute name="DBJ2EE_ONLY"/>
</optional>
<optional>
<attribute name="DBTYPE"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="SAP">
<element name="SAPInstance">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="InstanceName"/>
<optional>
<attribute name="DIR_EXECUTABLE"/>
</optional>
<optional>
<attribute name="DIR_PROFILE"/>
</optional>
<optional>
<attribute name="START_PROFILE"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="OPENLDAP">
<element name="openldap">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<optional>
<attribute name="config_file"/>
</optional>
<optional>
<attribute name="url_list"/>
</optional>
<optional>
<attribute name="slapd_options"/>
</optional>
<optional>
<attribute name="shutdown_wait"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="IP">
<element name="ip">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="address"/>
<optional>
<attribute name="monitor_link"/>
</optional>
<optional>
<attribute name="family"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="FS">
<element name="fs">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<attribute name="mountpoint"/>
<attribute name="device"/>
<optional>
<attribute name="fsid"/>
</optional>
<optional>
<attribute name="fstype"/>
</optional>
<optional>
<attribute name="force_unmount"/>
</optional>
<optional>
<attribute name="self_fence"/>
</optional>
<optional>
<attribute name="force_fsck"/>
</optional>
<optional>
<attribute name="options"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<zeroOrMore>
<choice>
<ref name="NFSEXPORT"/>
<ref name="CHILDREN"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="CLUSTERFS">
<element name="clusterfs">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<attribute name="mountpoint"/>
<attribute name="device"/>
<optional>
<attribute name="fsid"/>
<attribute name="fstype"/>
</optional>
<optional>
<attribute name="force_unmount"/>
</optional>
<optional>
<attribute name="options"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<zeroOrMore>
<choice>
<ref name="NFSEXPORT"/>
<ref name="CHILDREN"/>
</choice>
</zeroOrMore>
</element>
</define>
<define name="NETFS">
<element name="netfs">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<attribute name="mountpoint"/>
<attribute name="host"/>
<attribute name="export"/>
<optional>
<attribute name="fstype"/>
</optional>
<optional>
<attribute name="force_unmount"/>
</optional>
<optional>
<attribute name="options"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="NFSEXPORT">
<element name="nfsexport">
<choice>
<attribute name="ref"/>
<attribute name="name"/>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</choice>
<zeroOrMore>
<ref name="ALLCHILDREN"/>
</zeroOrMore>
</element>
</define>
<define name="NFSCLIENT">
<element name="nfsclient">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<attribute name="target"/>
<optional>
<attribute name="options"/>
</optional>
<optional>
<attribute name="path"/>
</optional>
<optional>
<attribute name="fsid"/>
</optional>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
</element>
</define>
<define name="SCRIPT">
<element name="script">
<choice>
<group>
<attribute name="ref"/>
</group>
<group>
<attribute name="name"/>
<attribute name="file"/>
<optional>
<attribute name="__independent_subtree"/>
</optional>
</group>
</choice>
<optional>
<ref name="CHILDREN"/>
</optional>
</element>
</define>
<define name="CHILD">
<!-- for recursion to work properly, CHILD may be referenced at CHILDREN only -->
<zeroOrMore>
<choice>
<ref name="SCRIPT"/>
<ref name="IP"/>
<ref name="NETFS"/>
<ref name="CLUSTERFS"/>
<ref name="FS"/>
<ref name="SAMBA"/>
<ref name="OPENLDAP"/>
<ref name="APACHE"/>
<ref name="SYBASE"/>
<ref name="LVM"/>
<ref name="POSTGRES"/>
<ref name="TOMCAT"/>
<ref name="MYSQL"/>
<ref name="SAP"/>
<ref name="SAPDB"/>
</choice>
</zeroOrMore>
</define>
<define name="CHILDREN">
<zeroOrMore>
<!-- <ref name="CHILD"/> for now everything can be a child -->
<ref name="ALLCHILDREN"/>
</zeroOrMore>
</define>
<define name="ALLCHILDREN">
<zeroOrMore>
<choice>
<ref name="CHILD"/>
<ref name="NFSEXPORT"/>
<ref name="NFSCLIENT"/>
</choice>
</zeroOrMore>
</define>
<define name="FENCE">
<element name="fence">
<zeroOrMore>
<element name="method">
<attribute name="name"/>
<zeroOrMore>
<element name="device">
<attribute name="name">
<data type="IDREF"/>
</attribute>
<choice>
<!-- DRAC -->
<group>
<optional>
<attribute name="action"/>
</optional>
<optional>
<attribute name="modulename"/>
</optional>
</group>
<!-- Node Assassin -->
<group>
<attribute name="port"/>
<attribute name="action"/>
</group>
<!-- WTI, Brocade, Vixel, McData, SANBox2 -->
<group>
<attribute name="port"/>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- APC -->
<group>
<attribute name="port"/>
<optional>
<attribute name="switch"/>
</optional>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- BladeCenter -->
<group>
<attribute name="blade"/>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- xCAT, manual -->
<group>
<attribute name="nodename"/>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- GNBD -->
<group>
<attribute name="nodename"/>
<optional>
<attribute name="ipaddr"/>
</optional>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- bullpap -->
<group>
<attribute name="domain"/>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- Egenera -->
<group>
<attribute name="lpan"/>
<attribute name="pserver"/>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- ILO, ipmilan -->
<group>
<optional>
<empty/>
</optional>
<optional>
<attribute name="lanplus"/>
</optional>
<optional>
<attribute name="option"/>
</optional>
</group>
<!-- scsi reservations -->
<group>
<optional>
<attribute name="node"/>
</optional>
</group>
<!-- xvm -->
<group>
<optional>
<attribute name="domain"/>
</optional>
</group>
</choice>
</element>
</zeroOrMore>
</element>
</zeroOrMore>
</element>
</define>
</grammar>
Any questions, feedback, advice, complaints or meanderings are welcome. | |||
Alteeve's Niche! | Alteeve Enterprise Support | Community Support | |
© 2025 Alteeve. Intelligent Availability® is a registered trademark of Alteeve's Niche! Inc. 1997-2025 | |||
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions. |