[SOLVED] Adding a new node to an existing cluster with redundant links

trent--

Member
Mar 19, 2021
19
1
6
Hello,

I am trying to join a new node to an existing cluster.

The cluster has redundant links. The /etc/corosync/corosync.conf file on an existing node looks like this :

Code:
logging {
  debug: off
  to_syslog: yes
}

nodelist {
  node {
    name: pve1
    nodeid: 3
    quorum_votes: 1
    ring0_addr: [REDACTED]
    ring1_addr: [REDACTED]
  }
  node {
    name: pve2
    nodeid: 2
    quorum_votes: 1
    ring0_addr: [REDACTED]
    ring1_addr: [REDACTED]
  }
  node {
    name: pve3
    nodeid: 1
    quorum_votes: 1
    ring0_addr: [REDACTED]
    ring1_addr: [REDACTED]
  }
}

quorum {
  provider: corosync_votequorum
}

totem {
  cluster_name: cluster1
  config_version: 4
  interface {
    linknumber: 1
  }
  ip_version: ipv4-6
  link_mode: passive
  secauth: on
  version: 2
}

When adding the new node, I get the following error :

Code:
$ > pvecm add pve1.domain.com
Please enter superuser (root) password for 'pve1.domain.com': ********************
Establishing API connection with host 'pve1.domain.com'
Login succeeded.
check cluster join API version
No cluster network links passed explicitly, fallback to local node IP '[REDACTED IP ADDRESS]'
Request addition of this node
An error occured on the cluster node: invalid corosync.conf
! node 'pve1' has 'ring0_addr', but there is no interface number 0 configured
! node 'pve2' has 'ring0_addr', but there is no interface number 0 configured
! node 'pve3' has 'ring0_addr', but there is no interface number 0 configured
Cluster join aborted!

I guess this is due to the cluster not finding information about the new node's private network address (aka ring1_addr), although I'm confused by the error messages referencing ring0_addr on the existing nodes.

What do you think about this ?
 
Do you have NICs with those subnets configured on the new node? Then you can use the --link[n] parameter to define the IP addresses that should be used for link0 and link1.

For example:
Code:
pvecm add pve1.domain.com --link0 <ip on link0> --link1 <ip on link1>

Or do it via the GUI where it will let you select the networks you want to use as well.

Edit: See the manual page for pvecm for all the possible parameters: https://pve.proxmox.com/pve-docs/pvecm.1.html
 
Thank you @aaron , I had to use the --link0 and --link1 options to specify the IP addresses for the new node, and I was also missing this part in /etc/corosync/corosync.conf on the existing nodes :

Code:
  interface {
    linknumber: 0
  }

It had only the lines for linknumber: 1, I duplicated them for linknumber: 0