[ClusterLabs] No node name in corosync-cmapctl output

Ken Gaillot kgaillot at redhat.com
Tue May 31 10:11:39 EDT 2022


On Tue, 2022-05-31 at 13:16 +0000, Andreas Hasenack wrote:
> Hi,
> 
> corosync 3.1.6
> pacemaker 2.1.2
> crmsh 4.3.1
> 
> TL;DR
> I only seem to get a "name" attribute in the "corosync-cmapctl | grep
> nodelist" output if I set an explicit name in corosync.conf's
> nodelist. If I rely on the default of "name will be uname -n if it's
> not set", I get nothing.

The default is Pacemaker's; corosync doesn't actually know or care
about the node name other than that the user added a configuration
value for "name" (or not).

The equivalent query in Pacemaker would be "crm_node --name" (to get
the local host's node name in the cluster) or "crm_node --list" (to
show all known node names).

> 
> 
> I formed a test cluster of 3 nodes, and I'm not setting the name
> attribute in the nodelist, so that it defaults to `uname -n`:
> nodelist {
>     node {
>          nodeid: 1
>         ring0_addr: k1
>     }
>     node {
>         nodeid: 2
>         ring0_addr: k2
>     }
>     node {
>         nodeid: 3
>         ring0_addr: k3
>     }
> }
> 
> The addresses "k1", "k2" and "k3" are fully resolvable (I know IPs
> are
> better, but for this quick test it was simpler to use the hostnames).
> 
> crm status is happy:
> root at k1:~# crm status
> Cluster Summary:
>   * Stack: corosync
>   * Current DC: k3 (version 2.1.2-ada5c3b36e2) - partition with
> quorum
>   * Last updated: Tue May 31 12:53:02 2022
>   * Last change:  Tue May 31 12:51:55 2022 by hacluster via crmd on
> k3
>   * 3 nodes configured
>   * 0 resource instances configured
> 
> Node List:
>   * Online: [ k1 k2 k3 ]
> 
> Full List of Resources:
>   * No resources
> 
> 
> But there is no node name in the corosync-cmapctl output:
> 
> root at k1:~# corosync-cmapctl |grep nodelist
> nodelist.local_node_pos (u32) = 0
> nodelist.node.0.nodeid (u32) = 1
> nodelist.node.0.ring0_addr (str) = k1
> nodelist.node.1.nodeid (u32) = 2
> nodelist.node.1.ring0_addr (str) = k2
> nodelist.node.2.nodeid (u32) = 3
> nodelist.node.2.ring0_addr (str) = k3
> 
> I was expecting to have entries like "nodelist.node.0.name = k1" in
> that output. Apparently I only get that if I explicitly set a node
> name in nodelist.
> 
> For example, if I set the name of nodeid 1 to "explicit1":
>     node {
>         name: explicit1
>         nodeid: 1
>         ring0_addr: k1
>     }
> 
> Then I get the name attribute for that nodeid only:
> # corosync-cmapctl |grep nodelist
> nodelist.local_node_pos (u32) = 0
> nodelist.node.0.name (str) = explicit1
> nodelist.node.0.nodeid (u32) = 1
> nodelist.node.0.ring0_addr (str) = k1
> nodelist.node.1.nodeid (u32) = 2
> nodelist.node.1.ring0_addr (str) = k2
> nodelist.node.2.nodeid (u32) = 3
> nodelist.node.2.ring0_addr (str) = k3
> 
> Why not also use "uname -n" when "name" is not explicitly set in the
> corosync nodelist config?
> _______________________________________________
> Manage your subscription:
> https://lists.clusterlabs.org/mailman/listinfo/users
> 
> ClusterLabs home: https://www.clusterlabs.org/
> 
-- 
Ken Gaillot <kgaillot at redhat.com>



More information about the Users mailing list