Cluster-Aufbau mit Mesh Network

pascal585

Member
Dec 6, 2021
15
0
6
30
Hallo miteinander,

ich bin derzeit dabei meinem Homelab ein Upgrade zu verpassen. Hierbei möchte ich gern die Infrastruktur von derzeit einem Node auf insgesamt zwei Nodes erweitern, da mittlerweile Dienste unter Proxmox laufen, bei denen ein Ausfall weh tut (Smart Home).

Angedacht ist also ein Clusterverbund bestehend aus zwei vollwertigen Nodes und einem QDevice. Das QDevice wird eine Experimentier-/Spielwiese mit Unraid oder Proxmox sein. Jedenfalls soll das QDevice kein vollwertiges Mitglied des Clusters sein, da es auch weniger performante Hardware verbaut haben wird.

Die beiden vollwertigen Nodes sollen QSFP+ Netzwerkkarten erhalten und direkt miteinander verbunden werden, um die Anschaffung eines teuren Switches zu vermeiden. Hierfür habe ich bereits eine Anleitung gefunden: https://pve.proxmox.com/wiki/Full_Mesh_Network_for_Ceph_Server
Das QDevice wird eine Verbindung zu dem vorhandenen, günstigen Switch haben.

An dieser Stelle habe ich zwei Fragen:
- Funktioniert das Mesh Network auch in meiner oben beschriebenen Konstellation mit zwei Nodes und einem QDevice?
- Muss man zwingend Ceph zur Nutzung des Mesh Networks verwenden oder geht auch eine Replikation (minütlich) mit ZFS?

Viele Grüße
Pascal :)
 
Ceph fällt bei dir eh weg, weil du dafür 3 (besser mehr) nodes brauchst.
Du brauchst da kein Mesh wenn du nur 2 Server per QSFP+ verbinden willst. Leg dann halt deine ZFS Replikation, Backups, NAS oder was auch immer auf ein eigenes Subnetz für interne Kommunikation zwischen den beiden Nodes. Dann je eine Gbit NIC für Corosync und eine dritte NIC für alles andere.
 
  • Like
Reactions: pascal585
Hi, du kannst die Replikation bis 1 Minute runter drehen, bei vernünftigen SSDs hast du damit keine Probleme.
Für die Replikation brauchst du auch keine Stromhungrige 40 GBit Karte. Ich habe dieses Setup auch Produktiv bei Unternehmen mit einem 10 GBit Link am laufen.
Bei Ceph brauchst du zwingend einen dritten PVE, der muss keine Disks haben aber im Ceph Storagenetz eingebunden sein. Außerdem hat das wieder negative Auswirkungen auf die Datensicherheit.
Also bleib lieber bei ZFS.
 
  • Like
Reactions: pascal585
In den Nodes werden zwei NVMe's werkeln, daher war die Idee auf 40 Gbit zu gehen (Mellanox ConnectX-3), um die Geschwindigkeit der NVMe's halbwegs nutzen zu können.

Ceph nicht zu nutzen leuchtet mir jedenfalls ein. Aber wie sieht es mit dem DRBD aus? Hat das wesentliche Vorteile ggü. ZFS?
 
Die Replikation ist immer nur Delta und Komprimiert (Wenn im Pool aktiv). Der Replikationstraffic wird auch 10GBit nie ernsthaft auslasten.
Ich nutze aus Stromspargründen daher lieber 25GBit, aber wenn du die Karten schon hast, dann kannst du die natürlich nutzen.
Auf dem Migrationsinterface, welches auch für die Replikation genutzt wird, auf insecure umstellen. Wenn es direkt gesteckt ist, brauchst du die Verschlüsselung nicht und die Limitiert dich in der Migrationsgeschwindigkeit. Bei kamen z.B. nur 18 GBit raus (Single Core Performace), mit der Option insecure gibts Linespeed.
 
Aber wie sieht es mit dem DRBD aus?
DRBD gibt es in der Form nicht mehr. Es ist in Proxmox nicht mehr nativ integriert und ich kann persönlich auch nur davon abraten. Hatte damals nur Ärger damit und mir sind laufend die VMs gestorben und mussten aufwendig recovered werden.
Auch von der Alternative GlusterFS würde ich hier abraten. Das ist nützlich wenn du beispielsweise einen HAProxy redundant machen willst, aber nicht für VMs.

Meine Empfehlung wenn du drei Nodes nutzen willst wäre CEPH, ansonsten setze lieber auf die ZFS Replikation. Beides ist nativ eingebunden in PVE und du bekommst dafür entsprechende Unterstützung direkt hier im Forum.
Wenn es dir aber nur bei wenigen VMs auf die Verfügbarkeit ankommt, kannst du auch innerhalb der VM mit Replikationen arbeiten.
 
Wenn dich DRBD interessiert schau doch bei Linbit mal vorbei.
Aber produktiv rate ich dir wie mein Vorredner lieber zu den PVE integrierten Sachen.
 
Hi zusammen,

ich habe mir jetzt einen Cluster aufgebaut. Der besteht aus zwei Nodes. Beide haben ein 2.5 Gbit Interface über das ich die GUI aufrufe. Zusätzlich sind Mellanox-Karten verbaut. Über diese beiden Karten habe ich die Nodes direkt miteinander verbunden. Ich kann auch jeweils die auf den Mellanox-Interfaces hinterlegte IP anpingen, iperf geht auch.

Nun habe ich den Cluster konfiguriert. Leider wird die Migration aber immer über das 2.5 Gbit Interface durchgeführt und nicht über die schnelle Mellanox-Karte.

Die 2.5 Gbit Interfaces haben folgende IPs:
node1: 192.168.0.3
node2: 192.168.0.4
Bei den Mellanox-Karten sind es diese IPs:
node1: 10.0.0.1
node2: 10.0.0.2

Hier ist die Ausgabe von pvecm status:
Bash:
root@thor:~# pvecm status
Cluster information
-------------------
Name:             heros
Config Version:   2
Transport:        knet
Secure auth:      on


Quorum information
------------------
Date:             Mon Feb 26 21:07:09 2024
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000002
Ring ID:          1.20
Quorate:          Yes


Votequorum information
----------------------
Expected votes:   2
Highest expected: 2
Total votes:      2
Quorum:           2 
Flags:            Quorate


Membership information
----------------------
    Nodeid      Votes Name
0x00000001          1 10.0.0.2
0x00000002          1 10.0.0.1 (local)


Anbei noch die Ausgabe einer Migration:

Bash:
2024-02-26 21:03:15 shutdown CT 106
2024-02-26 21:03:18 starting migration of CT 106 to node 'thor' (192.168.0.3)
2024-02-26 21:03:18 found local volume 'NVMe-2TB:subvol-106-disk-0' (in current VM config)
2024-02-26 21:03:19 full send of rpool/subvol-106-disk-0@__migration__ estimated size is 2.25G
2024-02-26 21:03:19 total estimated size is 2.25G
2024-02-26 21:03:19 TIME        SENT   SNAPSHOT rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:20 21:03:20   89.6M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:21 21:03:21    202M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:22 21:03:22    314M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:23 21:03:23    426M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:24 21:03:24    538M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:25 21:03:25    649M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:26 21:03:26    761M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:27 21:03:27    873M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:28 21:03:28    985M   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:29 21:03:29   1.07G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:30 21:03:30   1.18G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:31 21:03:31   1.29G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:32 21:03:32   1.40G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:33 21:03:33   1.51G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:34 21:03:34   1.62G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:35 21:03:35   1.73G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:36 21:03:36   1.84G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:37 21:03:37   1.95G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:38 21:03:38   2.06G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:39 21:03:39   2.17G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:40 21:03:40   2.28G   rpool/subvol-106-disk-0@__migration__
2024-02-26 21:03:40 successfully imported 'NVMe-2TB:subvol-106-disk-0'
2024-02-26 21:03:41 volume 'NVMe-2TB:subvol-106-disk-0' is 'NVMe-2TB:subvol-106-disk-0' on the target
2024-02-26 21:03:41 # /usr/bin/ssh -e none -o 'BatchMode=yes' -o 'HostKeyAlias=thor' root@192.168.0.3 pvesr set-state 106 \''{}'\'
2024-02-26 21:03:41 start final cleanup
2024-02-26 21:03:42 start container on target node
2024-02-26 21:03:42 # /usr/bin/ssh -e none -o 'BatchMode=yes' -o 'HostKeyAlias=thor' root@192.168.0.3 pct start 106
2024-02-26 21:03:43 migration finished successfully (duration 00:00:28)
TASK OK
 
Geh auf Datacenter und unter Options gibt es Migration Settings. Da wählst du die Mellanox Karten IP aus.
Außerdem solltest du ein qDevice konfigurieren.
 
Sollte dann etwa so aussehen:
Code:
Cluster information
-------------------
Name:             Testlab
Config Version:   15
Transport:        knet
Secure auth:      on

Quorum information
------------------
Date:             Mon Feb 26 21:50:56 2024
Quorum provider:  corosync_votequorum
Nodes:            2
Node ID:          0x00000002
Ring ID:          1.12ec
Quorate:          Yes

Votequorum information
----------------------
Expected votes:   3
Highest expected: 3
Total votes:      3
Quorum:           2
Flags:            Quorate Qdevice

Membership information
----------------------
    Nodeid      Votes    Qdevice Name
0x00000001          1  NA,NV,NMW 192.168.178.202
0x00000002          1  NA,NV,NMW 192.168.178.201 (local)
0x00000000          1            Qdevice (votes 1)
 
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!