Cluster Proxmox 2 noeuds en unicast

Pour les besoins d’un client nous étions partis sur la mise en place d’un cluster Proxmox chez Online en utilisant le RPN. L’actuel RPN est assez ‘limité’ en fonctionnalités compliquant ainsi la tache de création du cluster Proxmox.

Première étape, faire un groupe RPN afin que les 2 serveurs puissent communiquer. Ca se fait via la Console Online et puis le menu RPN. On créé un nouveau groupe et on y ajoute les machines concernées:
RPN

 

 

 

Ensuite, il faut faire modifier les fichiers hosts des 2 serveurs afin qu’ils soient identiques et activer l’interface réseau liée au RPN (etc/network/interfaces):

127.0.0.1 localhost
62.210.a.b sd-xxxx.dedibox.fr
62.210.c.d sd-yyyy.dedibox.fr
10.x.y.z proxtest1
10.u.v.w proxtest2
auto eth1
iface eth1 inet dhcp

ensuite, pour valider que l’unicast fonctionne bien on installe omping

apt-get install omping

Enfin on lance une séquence sur chaque noeud.
noeud1

omping noeud1 noeud2

noeud2

omping noeud2 noeud1

Et on récupère un résultat de ce style quan c’est fonctionnel

proxtest1 : waiting for response msg
proxtest1 : joined (S,G) = (*, 232.43.211.234), pinging
proxtest1 :   unicast, seq=1, size=69 bytes, dist=3, time=0.215ms
proxtest1 :   unicast, seq=2, size=69 bytes, dist=3, time=0.261ms
proxtest1 :   unicast, seq=3, size=69 bytes, dist=3, time=0.279ms
proxtest1 :   unicast, seq=4, size=69 bytes, dist=3, time=0.245ms
proxtest1 :   unicast, seq=5, size=69 bytes, dist=3, time=0.283ms
^C
proxtest1 :   unicast, xmt/rcv/%loss = 43/43/0%, min/avg/max/std-dev = 0.162/0.282/0.309/0.026
proxtest1 : multicast, xmt/rcv/%loss = 43/0/100%, min/avg/max/std-dev = 0.000/0.000/0.000/0.000

On est arrivé au point où les machines arrivent à dialoguer via le rpn. Reste plus qu’à créer notre cluster. On va commencer par le noeud 1.
Création du cluster :

pvecm create clustest

Ensuite on va modifier le fichier corosync.conf qui se trouve dans /etc/pve/ afin de lui dire d’utiliser l’unicast.
On va également supprimer la directive bindnetaddr du bloc totem qui n’a pas lieu d’exister lorsque les subnet privés des 2 noeuds sont différents.

logging {
  debug: off
  to_syslog: yes
}

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

}

quorum {
  provider: corosync_votequorum
}

totem {
  cluster_name: cluster
  config_version: 5
  ip_version: ipv4
  secauth: on
  transport: udpu
  version: 2
  interface {
    ringnumber: 0
  }

}

Arrivé là, je reboot mon noeud. Ensuite je valide le bon fonctionnement avec la commande pvecm status puis bascule corosync en local pour pouvoir de nouveau éditer le fichier de conf

service corosync stop
service pve-cluster stop
pmxcfs -l

On rajoute la directive two_node au bloc quorum pour préciser que c’est un cluster à 2 noeuds :

quorum {
  provider: corosync_votequorum
  two_node: 1
}

On passe sur le noeud 2 pour l’ajouter au cluster :

pvecm add noeud1 -f

On a le résultat suivant :

can't create shared ssh key database '/etc/pve/priv/authorized_keys'  (normal dans mon cas car j'avais déjà fait des tests et le fichier existait)
copy corosync auth key
stopping pve-cluster service
backup old database
waiting for quorum...

Là j’ai rebooté mon noeud 1 et à son retour j’ai appuyé sur entrée sur le noeud 2 .. la suite a continué :

OK
generating node certificates


merge known_hosts file
restart services
successfully added node 'proxtest2' to cluster.

On valide le cluster :

root@proxtest1:~# pvecm status
Quorum information
------------------
Date:             Sun May 22 17:32:15 2016
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000001
Ring ID:          40
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           1  
Flags:            2Node Quorate WaitForAll 

Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 10.x.y.z (local)
0x00000002          1 10.u.v.w

On se connecte sur une des interfaces web d’un proxmox et on y retrouve les 2 noeuds :

cluster

1 réponse
  1. Adrien
    Adrien dit :

    Un grand bravo et merci pour cette procédure qui m’a sauvé mon après midi.
    j’avais exactement le même souhait que vous et commencais à enrager après de multiples echecs à l’étape waiting for quorum…

    Encore merci

Les commentaires sont fermés.