HA Cluster mit Ceph hängt wenn eine bestimmte Node neustartet

CaZeus

New Member
Oct 24, 2023
8
1
3
Hallo,

ich habe aktuell noch ein Testcluster mit 3 Nodes, Ceph und lokalem Storage.
Alles läuft fehlerfrei. Migration der Container und VMs, Replikation von größeren virtuellen Festplatten für Fileserver zwischen den Nodes - alles super.

Wenn ich aber die Nodes warte, also Updates installiere und neustarte habe ich einen seltsamen Fehler.

Ich setze die Node in den Wartungsmodus, setze bei Ceph den Flag noout und beginne mit dem Update.
Bei Node2 und Node3 läuft auch alles weiterhin problemlos, so wie es in einem Cluster laufen soll.
Wenn ich aber Node1 neustarte, ist es so, als wenn alles freezed. Die VMs sind zwar noch an, aber ich kann in Windows z.B. kein neues Fenster öffnen, egal welche Anwendung. Nicht mal den Task-Manager kann ich öffnen.
Wenn Node1 wieder da ist, werden alle meine Befehle in den VMs abgearbeitet, als wenn die in einer Queue gelandet wären.
Die Anzeige bei Ceph läuft auch in ein Time out während Node1 neustartet.

Aber das eben nur bei Node1.

Der einzige Unterschied ist der, das Node1 das Cluster erstellt hat. Ansonsten sind alle 3 Nodes baugleich.

Hatte einer auch schon einmal so ein Phänomen?

Gruß
 
Hi,
wie sieht deine Ceph Konfiguration aus?
Auf jedem Node muss ein Monitor Dienst laufen und am besten machst du auf zwei Nodes ein Manager. Die Monitor steuern das Ceph und bilden das quorum, die Manager sind dafür da, dass du etwas sehen kannst und managen kannst.
 
Dann sollte nix passieren, wenn du den Node1 aus machst.
Was für ein Ceph-Netzwerk hast du denn?
Switched oder direkt verkabelt?
 
direkte Verkabelung: 10G mit 1G Backup.

Das wundert mich ja auch. Vor allem ist auf allen 3 Nodes alles wirklich identisch. Server, NICs, Disks, Verkabelung ...
 
Wie hast du die direkt Verkabelung konfiguriert? Routing?
Wenn Node1 aus ist, können die beiden anderen sich noch pingen?
 
Wenn ich aber Node1 neustarte, ist es so, als wenn alles freezed. Die VMs sind zwar noch an, aber ich kann in Windows z.B. kein neues Fenster öffnen, egal welche Anwendung. Nicht mal den Task-Manager kann ich öffnen.
Wenn Node1 wieder da ist, werden alle meine Befehle in den VMs abgearbeitet, als wenn die in einer Queue gelandet wären.
Die Anzeige bei Ceph läuft auch in ein Time out während Node1 neustartet.

Aber das eben nur bei Node1.
Sicherheitshalber: Wenn du node1 neu startest, bist du eh auch über eine andere Node zum Proxmox VE web Interface verbunden?
Nicht dass du das web Interface immer von node1 öffnest, weill wenn diese Node neu gestartet wird, kann sie währenddessen ja nicht die API-requests entgegennehmen und zu den anderen Nodes proxy'n.
 
ja ich mache den Zugriff von den anderen beiden Nodes ;)

Die Netzwerkports (10G und 1G) sind in einem Linux Bond im LACP Mode.
2 autarke Kreise die nur direkt gepatcht sind.

Die beiden Bonds (je zur anderen Node) sind in einer Linux Bridge mit IP Adresse.

In der Hosts sind auch für alle Netze wo die Nodes drin sind die Einträge eingetragen.

Während Node1 neustartet, kann ich z.B. von Node2 auf Node3 alles ansehen. Übersichtsseite, Konfig, Shell .....
 
Ganz sauber ist das nicht. Bei LACP spricht immer 1 Gerät mit 1 anderen Gerät über mehrere Ports und die einigen sich über das LACP Protokoll. Mich wundert, das die Konfiguration so überhaupt sauber läuft.
Wenn man das simpel halten möchte, würde ich broadcast nutzen. Ich persönlich baue Cluster nur mit Switches.
 
Du kannst deine Netzwerkkonfiguration mal beschreiben oder du hast ein Bild.
Ich investiere lieber 150€ und habe einen Switch, wo ich weiß, dass es keine Probleme im Netzwerk gibt. Für so kleine Sachen nehme ich gern den MikroTik CRS305, der hat 4x 10G.
 
ich hab jetzt das Ceph Netzwerk mal nur auf die 10G Verbindungen reduziert. Gleiches Problem

jetzt sieht es so aus:

1700234368960.png

Verbindung in das normale Netz und Corosync hab ich weg gelassen.

Und den Switch wollte ich erst einmal weg lassen, um einen SPOF weniger zu haben
 

Attachments

  • 1700234354028.png
    1700234354028.png
    26.4 KB · Views: 1
Wenn du das so baust, hast du ja einen Loop. Hast du Spanning Tree im Einsatz?
Ich vermute du hast einen Bond zwischen 10G und 1G? Active Backup geht das, bei LACP würde ich auch nie Geschwindigkeit mixen.
Ich habe zuhause für Ceph je ein Bond Acitve Backup mit 1x 40G und failover auf 1x 10G. Sind auch getrennte Switches. Da geht auch ein Switchupdate ohne das man etwas merkt.
Produktiv nutze ich immer zwei identische Switches, entweder Active Backup oder im RoundRobin wenn die Switches MLAG unterstützen.
 
Meine Persönliche Erfahrung dazu:
Auch wenn routed schon Gute Performance bringt, ist die mit Switches dennoch besser und im Fehlerfall ist die Suche mit Switches etwas einfacher.
Wenn du die Anleitung aus dem Wiki, korrekt umsetzt, gibt es keine Aussetzer.
 
Wenn du das so baust, hast du ja einen Loop. Hast du Spanning Tree im Einsatz?
Ich vermute du hast einen Bond zwischen 10G und 1G? Active Backup geht das, bei LACP würde ich auch nie Geschwindigkeit mixen.
Ich habe zuhause für Ceph je ein Bond Acitve Backup mit 1x 40G und failover auf 1x 10G. Sind auch getrennte Switches. Da geht auch ein Switchupdate ohne das man etwas merkt.
Produktiv nutze ich immer zwei identische Switches, entweder Active Backup oder im RoundRobin wenn die Switches MLAG unterstützen.
kannst du mir deine konfig mal aufzeichnen? wenn ich dich richtig verstehe hast du 3 Verbindungen aus jedem Server raus. 2x 40G (Active und Backup) und falls das versagt einen 10G Failover.

Wieviel Last hast du denn im Ceph das du 40G benötigst?
 
kannst du mir deine konfig mal aufzeichnen? wenn ich dich richtig verstehe hast du 3 Verbindungen aus jedem Server raus. 2x 40G (Active und Backup) und falls das versagt einen 10G Failover.

Wieviel Last hast du denn im Ceph das du 40G benötigst?
2 oder 3 NVMEs pro Node und 40G wird schon eng wenn man den "RICHTIG" von der Kette lässt....
 
kannst du mir deine konfig mal aufzeichnen? wenn ich dich richtig verstehe hast du 3 Verbindungen aus jedem Server raus. 2x 40G (Active und Backup) und falls das versagt einen 10G Failover.

Wieviel Last hast du denn im Ceph das du 40G benötigst?
Nein, ich habe 1x 40G active und als Failover 1x 10G auf den kleinen Switch als Failover im Bond. Der andere 40G Link ist direkt gesteckt für Migration.
Brauchen tue ich das nicht wirklich, aber wenn ich mal wieder etwas teste, soll es vernünftig laufen. Ich habe zuhause auch nur 4 SATA SSDs pro Node im Pool.
Produktiv habe ich bei meinen Kunden auch kleine Cluster mit 3x NVMe pro Node und da bis zu 60 GBIt Auslastung gesehen auf dem Switch. (100G Link)
Mal zur Veranschaulichung im standard 3 Replika Setup: Du schickst vom Client 1 Datenpaket zur primary OSD, die schickt dieses Paket an die beiden sekundär OSDs, diese geben ein ACK an die primary OSD und dann bekommt der Client das ACK.
Was lernen wir daraus? Du brachst 3x so viel Bandbreite wie du Daten schreiben möchtest (overhead mal nicht betrachtet) und ein niedrig Latenz Netzwerk bringt dich richtig vorwärts. Daher mache ich Produktiv nur noch 25G oder 100G.
 
So, ich habe meine Netzwerkkonfig noch einmal neu gemacht nach der Anleitung von Proxmox und jetzt geht es wie gewünscht. Da scheint sich beim testen echt ein Fehler eingeschlichen zu haben.

Aber ich werde die Tage auch mal umstellen auf Switchkonfig für den Test falls ich um weitere Nodes erweitern werde / muss.
 
  • Like
Reactions: Falk R.
Switches kosten ja nicht die Welt, und wenn du ein vernünftig redundantes Netzwerk möchtest, beschäftige dich mal mit MLAG und den properitären Ablegern der jeweiligen Hersteller.
 

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!