2 Knoten im Cluster getrennt einschalten/nutzen können?

Treptower

Member
Apr 18, 2021
83
15
13
Ich hab ein ganz einfaches Cluster mit 2 Nodes. Absolut keine Hochverfügbarkeit (HA) gewünscht und konfiguriert.
Beide Knoten haben den gleichen Adminuser und werden jeweils über die GUI benutzt (gleiches Netz und beide System aktuell):

Knoten A: IPadresseA:8006
Knoten B: IPadresseB:8006

Gern würde ich mal nur den einen, nur den anderen oder eben auch beide Knoten (=Cluster) nutzen wollen, was mir leider noch nicht gelingt.
Mein einfacher Wissensstand ist, dass wohl beide Knoten zu gleich berechtigt sind und jeder wohl die gleiche Stimme hat.

In der shell kann man die erforderliche "Stimmanzahl(?)" wohl mittels pvecm expected 1 beeinflussen, aber das scheint nicht von Dauer zu sein, denn beim nächsten Mal einer getrennten Nutzung kommt es wieder beim Login zum Fehler. Ein Login an einem Knoten ist erst wieder möglich, wenn der andere dazu eingeschaltet wurde.

Welche - möglichst einfachen und dauerhaften - Änderungen müsste man vornehmen, um den wechselseitigen Betrieb möglich zu machen?
Genügt möglicherweise ein Eingriff in die corosync.conf?
 
Ich hab für diesen Fall einfach einen Cronjob laufen der "pvecm expected 1" setzt, wenn der eine Node weg ist. Allerdings habe ich das nur in einer Richtung laufen.

Solange der secondary Member da ist , nimmt das System den Befehl "pvecm expected 1" eh nicht an, aber das Script prüft ob er weg ist.
Ist der secondary Node weg, kommt man nach 5 Minuten durch den Cronjob wieder rein.

Wenn WebAuth eingesetzt wird, muss der Anmeldeserver in /etc/pve/datacenter.cfg auf den primary Node zeigen, sonst kommt man auch nicht rein.

Code:
#!/bin/bash

TARGETP=192.168.1.2

ping -c 1 $TARGETP &> /dev/null
if [[ $? -ne 0 ]]; then
    PVESTATUS=`pvecm status | grep Total | cut -d":" -f2 | tr -d " "`
    if [ "$PVESTATUS" == "1" ]; then
        sleep 60
        ping -c 1 $TARGETP &> /dev/null
        if [[ $? -ne 0 ]]; then
            PVESTATUS=`pvecm status | grep Total | cut -d":" -f2 | tr -d " "`
            if [ "$PVESTATUS" == "1" ]; then
                systemctl restart corosync
                pvecm expected 1
            fi
        fi
    fi
fi
 
Last edited:

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!