RDMA / RoCE - CEPH Cluster - Performanceoptimierung

SNX_X

New Member
Apr 26, 2024
1
0
1
Hi,

aktuell bin ich dabei, einen Storage-Cluster (Ceph) aus drei Servern zusammenzubauen und aufgrund der Hardware-Skalierung auf 100G NICs umzusteigen. In der aktuellen Testkonfiguration ist jeweils eine Mellanox Connect-X6 100G Netzwerkkarte verbaut. Allerdings geht es mir hier primär um das Thema RDMA / RoCE. Zwingend erforderlich sind die GIDs der NICs, um dies einzurichten. Im Allgemeinen kann man auch sagen, dass die Beschreibungen/Anleitungen zur Einrichtung leider recht rar sind, wenn es um Proxmox geht. Ein passender Switch ist bereits vorhanden und vor konfiguriert (Ja, auch RDMA-fähig).

Ich habe bereits versucht, die MLNX_OFED-Treiber zu installieren, jedoch ist die Version inkompatibel mit der von Proxmox oder er möchte solche Pakete wie librdmacm1 entfernen, was natürlich nicht funktioniert. Im Prinzip benötige ich nur das Tool, welches den Befehl "show_gids" ausführt, um an die GIDs zu kommen.

Mit diesem Befehl: cat /sys/class/infiniband/mlx5_0/ports/1/gids/0 bekomme ich 10 GIDs heraus, und welche davon die ist, die ich benötige, ist in meinen Augen reine Spekulation.

Wichtig zu erwähnen ist, dass die Switche zu zweit im LAG laufen und im LACP mit zwei 100G DACs in den Servern verbunden sind, um maximale Burstleistungen mit "bis zu" 200G zu realisieren.

Falls jemand also eine komplette Anleitung zur Konfiguration von RDMA/RoCE oder auch nur einen Ansatz hat, die GIDs auszulesen, und diese teilen würde, würde mir das sehr helfen :)

Auch wenn jemand noch Ideen zur Performanceoptimierung von CEPH mit drei Nodes und jeweils 20 bis 24 U.3 NVMe hat, nehme ich diese ebenfalls dankend entgegen.

Für die Konfiguration würde ich folgendes verwenden:
Code:
#Enable ceph with RDMA:
  ms_async_op_threads = 8    #default 3
  # ms_type = async
  ms_public_type = async+posix    #keep frontend with posix
  ms_cluster_type = async+rdma    #for setting backend only to RDMA
  ms_async_rdma_type = rdma    #default ib
  ms_async_rdma_device_name = mlx5_6
  ms_async_rdma_cluster_device_name = ens5f0np0 #ethadapter
  ms_async_rdma_roce_ver = 2
  ms_async_rdma_gid_idx = 3
  ms_async_rdma_local_gid = 0000:0000:0000:0000:0000:0000:0000:0000    #gid

Kann ich in der Zeile einfach den Namen des Bonds angeben? : ms_async_rdma_cluster_device_name = ens5f0np0 #ethadapter

Vielen dank für eure Hilfe!

Lg
 
Can you tell me about your hardware configuration and PVE version? Is your cluster in good condition?
 
Welche pve Version hast du und welche ofed Treiber hast du versucht zu installieren?
 
pve version 7.4-1, IB switches QM8790, Mellanox 200G HDR(MT28908 Family [ConnectX-6]) for interconnection in the cluster,What else needs to be done to make this pve + ceph cluster run?
 
Hi,

aktuell bin ich dabei, einen Storage-Cluster (Ceph) aus drei Servern zusammenzubauen und aufgrund der Hardware-Skalierung auf 100G NICs umzusteigen. In der aktuellen Testkonfiguration ist jeweils eine Mellanox Connect-X6 100G Netzwerkkarte verbaut. Allerdings geht es mir hier primär um das Thema RDMA / RoCE. Zwingend erforderlich sind die GIDs der NICs, um dies einzurichten. Im Allgemeinen kann man auch sagen, dass die Beschreibungen/Anleitungen zur Einrichtung leider recht rar sind, wenn es um Proxmox geht. Ein passender Switch ist bereits vorhanden und vor konfiguriert (Ja, auch RDMA-fähig).
Theoretisch kann das jeder Switch, die Hersteller wollen gern DCB / PFC Features sehen. ;)
Ich habe bereits versucht, die MLNX_OFED-Treiber zu installieren, jedoch ist die Version inkompatibel mit der von Proxmox oder er möchte solche Pakete wie librdmacm1 entfernen, was natürlich nicht funktioniert. Im Prinzip benötige ich nur das Tool, welches den Befehl "show_gids" ausführt, um an die GIDs zu kommen.

Mit diesem Befehl: cat /sys/class/infiniband/mlx5_0/ports/1/gids/0 bekomme ich 10 GIDs heraus, und welche davon die ist, die ich benötige, ist in meinen Augen reine Spekulation.

Wichtig zu erwähnen ist, dass die Switche zu zweit im LAG laufen und im LACP mit zwei 100G DACs in den Servern verbunden sind, um maximale Burstleistungen mit "bis zu" 200G zu realisieren.
Zwecks Treiber, wäre gut zu wissen welche PVE Version du nutzt.

Sind die Switches im Stack oder mit MLAG verknüpft?
Bei Ceph bitte immer LACP Layer 3+4 nutzen.
Falls jemand also eine komplette Anleitung zur Konfiguration von RDMA/RoCE oder auch nur einen Ansatz hat, die GIDs auszulesen, und diese teilen würde, würde mir das sehr helfen :)

Auch wenn jemand noch Ideen zur Performanceoptimierung von CEPH mit drei Nodes und jeweils 20 bis 24 U.3 NVMe hat, nehme ich diese ebenfalls dankend entgegen.

Für die Konfiguration würde ich folgendes verwenden:
Code:
#Enable ceph with RDMA:
  ms_async_op_threads = 8    #default 3
  # ms_type = async
  ms_public_type = async+posix    #keep frontend with posix
  ms_cluster_type = async+rdma    #for setting backend only to RDMA
  ms_async_rdma_type = rdma    #default ib
  ms_async_rdma_device_name = mlx5_6
  ms_async_rdma_cluster_device_name = ens5f0np0 #ethadapter
  ms_async_rdma_roce_ver = 2
  ms_async_rdma_gid_idx = 3
  ms_async_rdma_local_gid = 0000:0000:0000:0000:0000:0000:0000:0000    #gid

Kann ich in der Zeile einfach den Namen des Bonds angeben? : ms_async_rdma_cluster_device_name = ens5f0np0 #ethadapter
Ganz ehrlich, ich habe einige Cluster mit Ceph bei meinen Kunden und die Performance mit 100G Karten ist immer super, aber du lönntest natürlich mit RoCE die CPU gut entlasten, aber ich würde das RoCE Setup nicht produktiv nutzen ohne einen Entsprechenden Testcluster.
Diese Setup wird von Proxmox bei der Entwicklung niemals getestet und keiner weiß ob eine Update eventuell deine Konfiguration negativ beeinflusst. Wennd u einen Testcluster hast wo du die Patches vorher testen kannst, dann ist das eine valide Option, sonst am besten einfach bei Standard TCP/IP Verbindungen bleiben.
 
Wenn du noch nie RDMA mit proxmox benutzt hast, dann hol dir Hilfe z.B. von thomas-krenn. Die setzen solche Konstellationen um meines Wissens.
 

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!