Réseaux public / cluster, MTU, bonding, topologie full-mesh¶
Le réseau fait la performance et la stabilité d'un cluster Ceph : il doit être dédié, redondé, d'au moins 10 Gb/s (25 Gb/s recommandé pour du SSD/NVMe) et totalement séparé de Corosync. Cette page vous aide à choisir entre un ou deux réseaux Ceph, bonding et full-mesh, et à valider le MTU avant la mise en production.
Réseau public et réseau cluster¶
| Réseau | Paramètre /etc/pve/ceph.conf |
Trafic | Qui l'utilise |
|---|---|---|---|
| Public | public_network |
Clients vers OSD (lectures/écritures des VMs), MON, MGR, MDS | Tous les démons et tous les clients Ceph (QEMU sur chaque nœud PVE) |
| Cluster (optionnel) | cluster_network |
Réplication entre OSD, heartbeats OSD, reconstruction et rééquilibrage | Les OSD uniquement |
Sans cluster_network, tout passe sur le réseau public. Le séparer isole la reconstruction du trafic des VMs. Proxmox propose la répartition suivante pour un cluster performant :
flowchart LR
subgraph N["Chaque nœud pve01..pve03"]
C1["Corosync 1 Gb/s<br/>dédié"]
P["Ceph public 10 Gb/s et plus<br/>10.10.10.0/24"]
K["Ceph cluster 25 Gb/s et plus<br/>10.10.20.0/24"]
V["VMs et management<br/>vmbr0"]
end
C1 --- SW1["Switch Corosync"]
P --- SW2["Switches stockage<br/>MLAG"]
K --- SW2
V --- SW3["Switches LAN"]
En pratique, beaucoup de clusters de 3 à 5 nœuds utilisent un seul réseau Ceph de 2 × 25 Gb/s : c'est le standard MSP. Deux réseaux distincts se justifient quand le trafic client est très élevé ou que les cartes le permettent. Dans un cluster hyperconvergé, le trafic public n'est pas négligeable : chaque VM lit et écrit via ce réseau.
Bonding¶
| Mode | Avantage | Contrainte | Usage |
|---|---|---|---|
802.3ad (LACP), hash layer3+4 |
Agrégation de débit sur plusieurs flux OSD, redondance | Switches empilés ou en MLAG pour survivre à la perte d'un switch | Standard MSP |
active-backup |
Simple, aucun réglage switch | Débit d'un seul lien | Switches non MLAG |
broadcast |
Utilisé dans un full-mesh simple | Double la bande passante consommée | Full-mesh uniquement |
# /etc/network/interfaces (extrait, pve01)
auto bond1
iface bond1 inet static
address 10.10.10.11/24
bond-slaves ens1f0 ens1f1
bond-miimon 100
bond-mode 802.3ad
bond-xmit-hash-policy layer3+4
mtu 9000
Configuration par la GUI : nœud → System → Network → Create → Linux Bond, puis Apply Configuration. Détails : Linux bridge, VLAN aware, bonding LACP.
MTU 9000 (jumbo frames)¶
Un MTU de 9000 réduit la charge CPU et améliore le débit, à condition qu'il soit configuré de bout en bout : interfaces physiques, bond, VLAN éventuel et ports de tous les switches. Un MTU incohérent produit les pires symptômes : petits paquets qui passent (ping OK), gros paquets perdus, OSD qui se déclarent mutuellement down (flapping).
ip link show bond1 | grep mtu # mtu 9000
ping -M do -s 8972 -c 3 10.10.10.12 # 8972 + 28 octets d'en-têtes = 9000 ; doit répondre
ping -M do -s 8973 -c 1 10.10.10.12 # doit échouer : "message too long"
Testez depuis chaque nœud vers chaque autre nœud, sur chaque réseau Ceph.
Topologie full-mesh (3 nœuds sans switch)¶
Chaque nœud est relié directement aux deux autres par des câbles DAC 25 Gb/s ou plus. Économique pour 3 nœuds, mais non extensible : le wiki Proxmox recommande des switches au-delà de 3 nœuds ou si une extension est prévue.
| Méthode (wiki « Full Mesh Network for Ceph Server ») | Principe | Remarque |
|---|---|---|
| SDN Fabrics (PVE 9) | Routage dynamique OpenFabric ou OSPF, configuré dans Datacenter → SDN → Fabrics | Recommandé sur PVE 9 ; OpenFabric conseillé car plus simple que OSPF. Bascule automatique via le 3e nœud si un câble tombe |
| Routé avec repli (FRR manuel) | Même principe, configuration FRR à la main | Incompatible avec l'EVPN du SDN Proxmox |
| Routé simple | Routes statiques vers chaque voisin | Le plus performant, mais aucune bascule si un câble tombe |
| RSTP (Open vSwitch) | Anneau avec spanning tree rapide | Bascule de quelques secondes |
| Broadcast bond | Chaque paquet envoyé aux deux voisins | Simple, consomme le double de bande passante |
Recommandations MSP¶
- Réseau Ceph physique dédié, 2 × 25 Gb/s en LACP sur deux switches MLAG ; Corosync sur ses propres liens, jamais seulement sur le réseau Ceph.
- MTU 9000 validé par
ping -M doavantpveceph init. - Full-mesh accepté pour 3 nœuds sans projet d'extension, de préférence via SDN Fabrics (OpenFabric).
- Ouvrir les ports Ceph si le firewall PVE est actif sur ces interfaces : macro Ceph (MON 3300 et 6789, OSD/MGR/MDS 6800 à 7300).
- Changer
public_networkou les adresses des MON après installation est une opération lourde : à confier au MSP. Voir aussi Plan réseau type.
Pièges vus en support
- MTU 9000 sur les serveurs mais 1500 sur un port de switch : OSD flapping, PG en peering permanent.
- Bond LACP sans MLAG entre deux switches indépendants : le bond ne monte qu'à moitié ou boucle.
- Corosync uniquement sur le bond Ceph : une reconstruction sature le lien, les nœuds perdent le quorum et HA les redémarre (fencing).
- Full-mesh « temporaire » sur 3 nœuds, puis achat d'un 4e nœud : il faut re-câbler et migrer le réseau Ceph, en maintenance.
- Routé simple en full-mesh : un câble débranché isole deux nœuds l'un de l'autre, Ceph voit des OSD down alors que tout est allumé.
Testez-vous¶
-
Quel trafic passe sur le
cluster_network?Réponse
La réplication entre OSD, leurs heartbeats, la reconstruction et le rééquilibrage. Les lectures et écritures des clients (VMs) passent sur le réseau public.
-
Quelle commande valide un MTU 9000 de bout en bout ?
Réponse
ping -M do -s 8972 <ip-voisin>: le paquet de 9000 octets ne doit pas être fragmenté et doit recevoir une réponse. -
Vous avez 3 nœuds et prévoyez d'en ajouter 2 l'an prochain. Full-mesh ou switches ?
Réponse
Switches. Le full-mesh ne s'étend pas au-delà de 3 nœuds sans refonte du câblage ; le wiki Proxmox recommande des switches dès qu'une extension est prévue.
-
Quelle nouveauté de PVE 9 simplifie le full-mesh ?
Réponse
Les SDN Fabrics (Datacenter → SDN → Fabrics), qui configurent un routage OpenFabric ou OSPF entre les nœuds, avec bascule automatique si un lien direct tombe.