proxmox4 cluster 2 nodes: problem with quorum

arnaud056

Renowned Member
Jan 3, 2016
37
7
73
Hello,
for the first time, I'm trying to assemble my 2 nodes (proxmox1 and proxmox2, both fresh installed) into a cluster.
For my application, I don't need the high availability.

I applied the wiki https://pve.proxmox.com/wiki/Proxmox_VE_4.x_Cluster
Proxmox1 should be the master where the cluster is created into and Proxmox2 should then be added to the cluster.
I get a problem when I started "pvecm add IP_Proxmox1" on proxmox2: waiting for quorum.....

After some search into this forum and into the www I understand the problem: I don't have any quorum and each machine has 1 vote, so there is no possible majority.

I found that 3 things can be done in this case:
1) # pvecm expected 1 (https://forum.proxmox.com/threads/cluster-and-quorum.7786/)
2) give 2 votes to Proxmox1 (http://sirlagz.net/2015/12/16/creating-a-two-host-cluster-in-proxmox-4/)
3) set the configuration of the cluster with "expected votes: 1" (https://blog.elao.com/fr/infra/creer-un-cluster-2-nodes-proxmox/)

For 1) if I understand right, this has to be done each time something has to be reorganized in the cluster --> I don't see this as a durable "solution"

For 2) for me a "middle" solution: works only as long as Proxmox1 works, because no majority can be reached with Proxmox2

For 3) this is the solution I would prefer. The only problem is that I don't find any similar method for ProxmoxV4 (= without /etc/pve/cluster.conf), only staff for ProxmoxV3.

Question 1: what do you think about the 3 methods?
Question 2: what should be done by proxmoxV4 to reduce "expected votes" from 2 to 1?
Question 3: btw, even if I would like to have 3 or more machines (in order to be able to build a real quorum), it must be possible to add first the second machine to the cluster before adding the third, and by 2 machines this missing quorum stays. Then how to proceed?

Thanks.
Bye
Arnaud
 
you can have quorum with 2 nodes.

quorum = (total of nodes / 2 + 1).
So with 2 nodes : 2 /2 +1 = 2.

When you join the second node to the cluster, proxmox is waiting that quorum is established.If it don't work, maybe this is multicast is not working on your network
https://pve.proxmox.com/wiki/Multicast_notes
 
Spirit, thanks you for your explanations.;)

I have completely ignored the multicast.......--> it is an interesting lead.....

The 2 proxmox are inside of my home LAN, connected together by a cheap switch, without any possibility to configure it --> it certainly works broadcast mode.

Having a look at the link that you gave, I can't configure a proper multicast because I don't have any such configurable switch.
But the last paragraph would fit for my small network: setting up a configuration in unicast. For only 2 nodes it is enough.

But unfortunately, once again, the corresponding instructions can't be used on with ProxmoxV4 because the file "/etc/pve/cluster.conf" is missing there.
I will search in the direction "ProxmoxV4 unicast".

Thanks.
Arnaud
 
Hello once again,
in the forum I have found this: https://forum.proxmox.com/threads/d...er-conf-in-4-0-howto-change-to-unicast.24026/
The file /etc/pve/corosync.conf that replaces the /etc/pve/cluster.conf from PromoxV3 looks like this after having creating the cluster, without trying to add any node:
Code:
totem {
  version: 2
  secauth: on
  cluster_name: cluster-GuedeL
  config_version: 1
  ip_version: ipv4
  interface {
    ringnumber: 0
    bindnetaddr: 192.168.2.160
  }
}

nodelist {
  node {
    ring0_addr: proxmox-miniitx
    name: proxmox-miniitx
    nodeid: 1
    quorum_votes: 1
  }
}

quorum {
  provider: corosync_votequorum
}

logging {
  to_syslog: yes
  debug: off
}
Now I'm asking where and with which syntax I can add "<cman keyfile="/var/lib/pve-cluster/corosync.authkey" transport="udpu"/>"

I would try:
Code:
cman {
keyfile: /var/lib/pve-cluster/corosync.authkey
transport: udpu
}
at the end of the file, after having (of course) increased the value of "config_version"
But I noted that "/var/lib/pve-cluster/corosync.authkey" doesn't exist (is maybe generated by the add of the next node??).

Bye
Arnaud
 
Hi Arnaud,

On my setup, I just put the transport option in totem section ( and 2 params in quorom section to avoid Quorom problematic) and it works for me.

Code:
logging {
  debug: off
  to_syslog: yes
}

nodelist {
  node {
    name: pve2
    nodeid: 2
    quorum_votes: 1
    ring0_addr: pve2
  }

  node {
    name: pve1
    nodeid: 1
    quorum_votes: 1
    ring0_addr: pve1
  }

}

quorum {
  expected_votes: 1
  provider: corosync_votequorum
  two_node: 1
}

totem {
  cluster_name: mycluster
  config_version: 3
  ip_version: ipv4
  secauth: on
  transport: udpu
  version: 2
  interface {
    bindnetaddr: 192.168.1.100
    ringnumber: 0
  }

}

Jeremy
 
Good evening,
and thanks a lot Jeremy;)
With your config it works:)

I had a look at the doc of corosnyc too and had note that my guessed parameters are not right.
In case of no information about the unicast, I would have tried to configure the corosync to work in broadcast ("broadcast: yes" in the "interface" section if I have understood the manual right). Would it run?

Thanks again!
Bye
Arnaud