Openvswitch-Konfiguration für Ceph-Cluster mit SPB

ray.

Member
Jan 27, 2021
7
0
6
Cologne, Germany
Hallo zusammen,

ich plane grade einen Proxmox VE Cluster aus drei Nodes.
Code:
+--------------------+                   +--------------+
|               eth0 |-------------------|              |
|   proxmox1    eth1 |------\   /--------|    switch    |
|               eth2 |--\   |   |    /---|              |
+--------------------+  |   |   |    |   +--------------+
                        |   |   |    |
                        |   |   |    |
+--------------------+  |   |   |    |
|               eth0 |--|---|---/    |
|   proxmox2    eth1 |--/   |        |
|               eth2 |--\   |        |
+--------------------+  |   |        |
                        |   |        |
                        |   |        |
+--------------------+  |   |        |
|               eth0 |--|---|--------/
|   proxmox3    eth1 |--/   |
|               eth2 |------/
+--------------------+
eth0 jeweils 1 Gigabit/s
eth1 und eth2 jeweils 10 Gigabit/s

Darauf soll ein ceph-Cluster mit pro Host jeweils 4 ssds installiert werden.

Um das vorab zu testen habe ich das mit virtuellen Maschinen nachgebaut.
Die beiden Konfigurationsvarianten aus https://pve.proxmox.com/wiki/Full_Mesh_Network_for_Ceph_Server
funktionieren auch. Schön wäre natürlich wenn auch die virtuellen Maschinen die auf den Hosts laufen untereinander
über das schnelle Mesh-Netz kommunizieren könnten.

Die Idee ist jetzt statt dessen auf jedem Host eine bridge mit openvswitch zu installieren
und diese vie SPB (802.1aq) zu verbinden. Darüber kann man dann ein Vlan (und entsprechendes I_SID) legen für die
Clusterkommunikation sowie ein oder mehrere Vlans (ebenfalls mit entsprechenden I_SIDs) für die VMs.

Außerdem hätte das den Vorteil, dass man den Cluster später einfach um weitere Nodes als Ringtopologie erweitern
kann, ohne einen teuren 10GB-Switch zu brauchen.

Die Frage ist jetzt natürlich wie konfiguriert man das, bzw wo ist der Fehler in meine Konfiguration, was fehlt?
Die /etc/networks/interfaces sieht im Moment so aus (bei proxmox1,
die anderen genauso nur mit anderen Namen und IPs):
------------------------------------------------------------------------
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet manual
ovs_type OVSPort
ovs_bridge vmbr0

auto vmbr0
iface vmbr0 inet static
address 192.168.1.10/24
gateway 192.168.1.1
ovs_type OVSBridge
ovs_ports eth0

auto eth1
iface eth1 inet manual
ovs_type OVSPort
ovs_bridge vmbr1
ovs_mtu 9000
up ovs-vsctl set interface eth1 lldp:enable=true
#13

auto eth2
iface eth2 inet manual
ovs_type OVSPort
ovs_bridge vmbr1
ovs_mtu 9000
up ovs-vsctl set interface eth2 lldp:enable=true
#12

auto int1
iface int1 inet static
address 10.10.10.1/24
ovs_type OVSIntPort
ovs_bridge vmbr1
ovs_mtu 9000
ovs_options tag=1
up ovs-vsctl set interface int1 lldp:enable=true

auto vmbr1
iface vmbr1 inet manual
ovs_type OVSBridge
ovs_ports eth1 eth2 int1
ovs_mtu 9000
up ovs-vsctl set interface vmbr1 lldp:enable=true
up ovs-vsctl add-aa-mapping vmbr1 1 1
up ovs-vsctl set AutoAttach . system_name="ovs-proxmox1"
up ovs-vsctl set AutoAttach . system_description="The\ Open\ vSwitch\ on\ host\ proxmox1."

------------------------------------------------------------------------

Die Vlans für die VMs habe ich erstmal weggelassen, die kann man später hinzufügen. Wichtig ist zunächst, dass
die Cephclusterkommunikation funktioniert.

Viele Dank schonmal,

Ray
 
Hm, ich möchte dir das Setup jetzt nicht ausreden, aber hast du schon an folgendes gedacht?

Gibt's bei dem Setup no weitere Ports? Speziell denke ich da an Corosync. Damit das Cluster stabil läuft braucht Corosync eine stabile und niedrige Latenz. Anderweitiger Netzwerkverkehr kann diese Voraussetzung massiv stören. Und wenn HA an ist, dann Reseten sich die Nodes im schlimmsten Falle im Dauerfeuer.

Da Proxmox VE, Ceph client und server spielt, können die 10 GbE leicht ausgelastet werden. Vor allem bei Ausfällen von ganzen Nodes.

Außerdem hätte das den Vorteil, dass man den Cluster später einfach um weitere Nodes als Ringtopologie erweitern
kann, ohne einen teuren 10GB-Switch zu brauchen.
Das erhöht die Latenz schon um einiges. Ceph kennt keine Lokalität und kann es sein, dass ein Schreibvorgang die Anfragen quer durchs Netzwerk schiebt. Und so teuer sind die 10 GbE Switches gar nicht mehr, die besseren fangen bei ~1500 EUR an.

up ovs-vsctl add-aa-mapping vmbr1 1 1
Hab das Setup selbst noch nie versucht, aber VLAN Tag 1 ist immer etwas speziell. Vielleicht hilft es, wenn eine höhere VLAN ID verwendet wird?
 
Hm, ich möchte dir das Setup jetzt nicht ausreden, aber hast du schon an folgendes gedacht?

Gibt's bei dem Setup no weitere Ports? Speziell denke ich da an Corosync. Damit das Cluster stabil läuft braucht Corosync eine stabile und niedrige Latenz. Anderweitiger Netzwerkverkehr kann diese Voraussetzung massiv stören. Und wenn HA an ist, dann Reseten sich die Nodes im schlimmsten Falle im Dauerfeuer.

Da Proxmox VE, Ceph client und server spielt, können die 10 GbE leicht ausgelastet werden. Vor allem bei Ausfällen von ganzen Nodes.
Ok, evtl ist es sinnvoll das in ein eigenes 1 GbE Netz auszulagern (da ist doch nur die Latenz wichtig), und evtl ist 10 GbE auch zu langsam und 25, 40 oder sogar 100 GbE besser. Aber mir ging es hier eigentlich nur um die openvswitch Konfiguration und an der ändert sich ja dadurch nichts.
Hab das Setup selbst noch nie versucht, aber VLAN Tag 1 ist immer etwas speziell. Vielleicht hilft es, wenn eine höhere VLAN ID verwendet wird?
Leider nicht, ich hab das grade mal mit VLAN Tag 2 und I_SID 2 ausprobiert. Das ändert leider nichts am Ergebnis.
Ping zu den beiden anderen Nodes (also 10.10.10.2 und 10.10.10.3) klappen nicht. Wie kann ich das debuggen?
 

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!