Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
technique:infrastructure:baremetal:proxmox_cluster [2020/02/06 16:28] – ↷ Page déplacée de infrastructure:baremetal:proxmox_cluster à technique:infrastructure:baremetal:proxmox_cluster qduchemi | technique:infrastructure:hyperviseurs:proxmox_cluster [2020/09/29 16:53] (Version actuelle) – supprimée qduchemi | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | **Cette documentation ne reflète plus l' | ||
- | ====Mise en place d'un cluster Proxmox à 2 noeuds==== | ||
- | La mise en place d'un cluster Proxmox peut poser quelques problèmes si l'on a jamais eu à travailler avec des outils tels que corosync ou heartbeat. Ces outils permettent de détecter les différentes machines et d' | ||
- | |||
- | Je suppose qu' | ||
- | |||
- | Une chose à savoir est que lorsque l'on met en place un cluster Proxmox, celui-ci n'est possible que par le biais d'IP de service dans un range privé. Corosync lors de la détection des différents noeuds va lancer des commandes de ping unicast à travers le réseau et il est préférable que cela se fasse sur un réseau privé. | ||
- | |||
- | La première chose à faire est de s' | ||
- | root@alice: | ||
- | 127.0.0.1 localhost | ||
- | 192.168.10.1 alice | ||
- | 192.168.10.2 bob | ||
- | |||
- | On peut ensuite vérifier que le unicast fonctionne correctement entre les 2 noeuds sur le hostname | ||
- | Démarrer omping sur les 2 noeuds en inversant les noeuds | ||
- | Sur le alice : # omping alice bob | ||
- | Affiche : alice : waiting for response msg | ||
- | |||
- | Sur le bob : # omping bob alice | ||
- | Affiche sur les 2 noeuds, si tout fonctionne : unicast, seq=4, size=69 bytes, dist=1, time=0.710ms | ||
- | | ||
- | On peut ensuite créer notre cluster. Sur un noeud, on lance la commande: | ||
- | pvecm create moncluster | ||
- | |||
- | Ensuite, on va modifier le fichier / | ||
- | |||
- | < | ||
- | logging { | ||
- | debug: off | ||
- | to_syslog: yes | ||
- | } | ||
- | |||
- | nodelist { | ||
- | node { | ||
- | name: alice | ||
- | nodeid: 1 | ||
- | quorum_votes: | ||
- | ring0_addr: alice | ||
- | } | ||
- | node { | ||
- | name: bob | ||
- | nodeid: 2 | ||
- | quorum_votes: | ||
- | ring0_addr: bob | ||
- | } | ||
- | } | ||
- | |||
- | quorum { | ||
- | provider: corosync_votequorum | ||
- | two_node: 1 | ||
- | } | ||
- | |||
- | totem { | ||
- | cluster_name: | ||
- | config_version: | ||
- | ip_version: ipv4 | ||
- | secauth: on | ||
- | transport: udpu | ||
- | version: 2 | ||
- | interface { | ||
- | ringnumber: 0 | ||
- | } | ||
- | } | ||
- | </ | ||
- | |||
- | Cette modification est à effectuer sur les deux noeuds. Attention à bien mettre à jour le champ config_version à chaque modification de ce fichier (sur les deux noeuds). | ||
- | |||
- | Une fois cette configuration appliquée, on peut relancer le processus corosync et voir l' | ||
- | < | ||
- | systemctl restart corosync.service | ||
- | root@alice: | ||
- | Quorum information | ||
- | ------------------ | ||
- | Date: Wed Dec 7 23:12:08 2016 | ||
- | Quorum provider: | ||
- | Nodes: | ||
- | Node ID: 0x00000001 | ||
- | Ring ID: 1/44 | ||
- | Quorate: | ||
- | |||
- | Votequorum information | ||
- | ---------------------- | ||
- | Expected votes: | ||
- | Highest expected: 2 | ||
- | Total votes: | ||
- | Quorum: | ||
- | Flags: | ||
- | |||
- | Membership information | ||
- | ---------------------- | ||
- | Nodeid | ||
- | 0x00000001 | ||
- | 0x00000002 | ||
- | </ | ||
- | |||
- | **Problème rencontré: | ||
- | |||
- | Lors de la mise en place de notre cluster, nous avons été confrontés à un problème. Du fait que nous montons les Ip de la machine via le fichier / | ||
- | |||
- | Dans le fichier / | ||
- | < | ||
- | root@alice: | ||
- | [Unit] | ||
- | Description=Corosync Cluster Engine | ||
- | ConditionKernelCommandLine=!nocluster | ||
- | ConditionPathExists=/ | ||
- | Requires=network-online.target | ||
- | After=network-online.target | ||
- | DefaultDependencies=no | ||
- | Before=shutdown.target | ||
- | Conflicts=shutdown.target | ||
- | |||
- | [Service] | ||
- | ExecStart=/ | ||
- | ExecStop=/ | ||
- | Restart=on-failure #À ajouter | ||
- | RestartSec=5s #À ajouter | ||
- | Type=forking | ||
- | |||
- | [Install] | ||
- | WantedBy=multi-user.target | ||
- | </ | ||
- | \\ | ||
- | Contacts en cas de questions : \\ | ||
- | [[antoine@barbare.me|Antoine Picasoft]]\\ | ||
- | [[gregoire@martinache.net|Grégoire Picasoft]]\\ |