Ich hatte letztes Jahr bereits das Problem, dass PVE seit dem Update auf 6 sehr instabil war (kein einziger Absturz unter PVE5!). Mit verschiedensten Anpassungen an der Netzwerkkonfiguration habe ich es hinbekommen, dass der Cluster seit Oktober wieder stabil lief. Bis heute. Und dazu hätte ich ein paar Fragen, vielleicht hat jemand eine Idee oder kann mir zumindest ein paar Antworten geben.
Wir haben aktuell 23 Nodes im Cluster, aufgeteilt auf 5 HA Gruppen (alle bestehen aus 3 bis 7 Nodes). Diese 17 Server (HP Blades bzw. HP Synergy Nodes) sind auf 7 Enclosures verteilt. Es gibt ein Gigabit Netz (Redundant), einziges Handicap: Die Clusterkommunikation läuft nicht über ein dediziertes physikalisches Netzwerk sondern nur über ein dediziertes VLAN.
Heute kam es, dass alle Server zur selben Zeit gefenced wurden. Das würde ja theoretisch bedeuten, dass kein Server mehr einen anderen erreichen hätte können, was zum einen fast unmöglich ist (insbesondere auch weil teilweise Server im selben Bladeenclosure sind), zum Anderen hätte das Monitoringsystem auch irgend eine abnormalie protokolliert. Und die Netzauslastung war unterdurchschnittlich. Wie kann das sein? Kann man das Fencing irgendwie anders konfigurieren? Evtl. das noch ein Zeuge (z. B. ping auf den zentralen Switch oder Firewall) zusätzlich mit herangezogen wird?
Ich habe die syslogs aller Server im Zeitraum gesammelt und "übereinander" gelegt. Dabei ist mir folgendes aufgefallen:
20:44:24: Server "0179" meldet " [TOTEM ] Token has not been received in 4011 ms".
--> Das ist der erste kritische Eintrag im syslog. Der Server ist in einer HA Gruppe mit 2 weiteren.
20:44:24: Server "0246" und "0247" (in einer HA Gruppe mit insgesamt 7 Nodes), sowie Server "0357" und "0381" (HA Gruppe mit 4 Nodes) melden " [TOTEM ] Token has not been received in 523 ms "
20:44:37: Server "0412" und "0309" (unterschiedliche HA Gruppen) melden " [TOTEM ] Retransmit List"
20:44:41: Server "0246" und "0244" melden " [TOTEM ] Retransmit List" und " pve-ha-crm[13235]: loop take too long (32 seconds)"
20:44:44: Server "0246" und "0309" melden " [TOTEM ] Retransmit List"
20:44:51: Server "0246", "0244" (zusammen in einer HA), sowie "0357" (separate HA) melden " pve-ha-lrm[22883]: " loop take too long (38 seconds)"
Gegen 20:45 melden sich dann weitere Server mit " error during cfs-locked 'file-replication_cfg' operation" und " Failed to start Proxmox VE replication runner.".
Die ersten "KNET link: host xx Link: [0|1] is down"" Meldungen tauchen dann um 20:46:03 auf (ebenfalls Server "0246") (Anmerkung: Jeder Server verfügt über 2 Links). Alle 23 Nodes booten. Auch die ohne Fehlermeldung in den Logs.
Ich lasse ja das Argument gelten, dass die interne Clusterkommunikation stabil sein muss und das im Falle des 0179er (Token benötigt 4 Sekunden) da was nicht in Ordnung war. Aber dafür hab ich ja einen Cluster, der eine Störung eines "kranken" Nodes ausgleichen soll. Wieso reißt ein oder wenige Probleme alle Server mit den Abgrund?
Von meinen 5 HA Gruppen wurden alle neu gestartet.
Gruppe1: Besteht aus 3 Nodes, in den Logs fällt 1 Node negativ auf
Gruppe2: Besteht aus 7 Nodes, in den Logs fallen 2 Nodes negativ auf
Gruppe3: Besteht aus 4 Nodes, in den Logs fällt 1 Node negativ auf
Gruppe4: Besteht aus 4 Nodes, in den Logs fällt 1 Node negativ auf
Gruppe5: Besteht aus 5 Nodes, in den Logs fällt 1 Node negativ auf
- Kann der Fehler wirklich am Netzwerk liegen (nur zwei VLANs für die Cluster-Kommunikation, kein dediziertes physikalisches Netz)?
- Oder ist es wahrscheinlicher, dass der Fehler durch eine Überlastung oder durch einen Softwarefehler verursacht wurde?
- Kann man das Fencing etwas "toleranter" oder "stabiler" gestalten? Es kann ja nicht sein, dass bei 6 auffälligen Nodes von 23 alles neu gestartet wird.
Wir haben aktuell 23 Nodes im Cluster, aufgeteilt auf 5 HA Gruppen (alle bestehen aus 3 bis 7 Nodes). Diese 17 Server (HP Blades bzw. HP Synergy Nodes) sind auf 7 Enclosures verteilt. Es gibt ein Gigabit Netz (Redundant), einziges Handicap: Die Clusterkommunikation läuft nicht über ein dediziertes physikalisches Netzwerk sondern nur über ein dediziertes VLAN.
Heute kam es, dass alle Server zur selben Zeit gefenced wurden. Das würde ja theoretisch bedeuten, dass kein Server mehr einen anderen erreichen hätte können, was zum einen fast unmöglich ist (insbesondere auch weil teilweise Server im selben Bladeenclosure sind), zum Anderen hätte das Monitoringsystem auch irgend eine abnormalie protokolliert. Und die Netzauslastung war unterdurchschnittlich. Wie kann das sein? Kann man das Fencing irgendwie anders konfigurieren? Evtl. das noch ein Zeuge (z. B. ping auf den zentralen Switch oder Firewall) zusätzlich mit herangezogen wird?
Ich habe die syslogs aller Server im Zeitraum gesammelt und "übereinander" gelegt. Dabei ist mir folgendes aufgefallen:
20:44:24: Server "0179" meldet " [TOTEM ] Token has not been received in 4011 ms".
--> Das ist der erste kritische Eintrag im syslog. Der Server ist in einer HA Gruppe mit 2 weiteren.
20:44:24: Server "0246" und "0247" (in einer HA Gruppe mit insgesamt 7 Nodes), sowie Server "0357" und "0381" (HA Gruppe mit 4 Nodes) melden " [TOTEM ] Token has not been received in 523 ms "
20:44:37: Server "0412" und "0309" (unterschiedliche HA Gruppen) melden " [TOTEM ] Retransmit List"
20:44:41: Server "0246" und "0244" melden " [TOTEM ] Retransmit List" und " pve-ha-crm[13235]: loop take too long (32 seconds)"
20:44:44: Server "0246" und "0309" melden " [TOTEM ] Retransmit List"
20:44:51: Server "0246", "0244" (zusammen in einer HA), sowie "0357" (separate HA) melden " pve-ha-lrm[22883]: " loop take too long (38 seconds)"
Gegen 20:45 melden sich dann weitere Server mit " error during cfs-locked 'file-replication_cfg' operation" und " Failed to start Proxmox VE replication runner.".
Die ersten "KNET link: host xx Link: [0|1] is down"" Meldungen tauchen dann um 20:46:03 auf (ebenfalls Server "0246") (Anmerkung: Jeder Server verfügt über 2 Links). Alle 23 Nodes booten. Auch die ohne Fehlermeldung in den Logs.
Ich lasse ja das Argument gelten, dass die interne Clusterkommunikation stabil sein muss und das im Falle des 0179er (Token benötigt 4 Sekunden) da was nicht in Ordnung war. Aber dafür hab ich ja einen Cluster, der eine Störung eines "kranken" Nodes ausgleichen soll. Wieso reißt ein oder wenige Probleme alle Server mit den Abgrund?
Von meinen 5 HA Gruppen wurden alle neu gestartet.
Gruppe1: Besteht aus 3 Nodes, in den Logs fällt 1 Node negativ auf
Gruppe2: Besteht aus 7 Nodes, in den Logs fallen 2 Nodes negativ auf
Gruppe3: Besteht aus 4 Nodes, in den Logs fällt 1 Node negativ auf
Gruppe4: Besteht aus 4 Nodes, in den Logs fällt 1 Node negativ auf
Gruppe5: Besteht aus 5 Nodes, in den Logs fällt 1 Node negativ auf
- Kann der Fehler wirklich am Netzwerk liegen (nur zwei VLANs für die Cluster-Kommunikation, kein dediziertes physikalisches Netz)?
- Oder ist es wahrscheinlicher, dass der Fehler durch eine Überlastung oder durch einen Softwarefehler verursacht wurde?
- Kann man das Fencing etwas "toleranter" oder "stabiler" gestalten? Es kann ja nicht sein, dass bei 6 auffälligen Nodes von 23 alles neu gestartet wird.