IO Performance auf VMs auf Ceph ist extrem schlecht

Welchen CPU Typ nutzt du und welchen Controller Typ in der VM?
So sieht die VM gerade aus:
Code:
boot: order=scsi0;ide2;net0
cores: 2
cpu: host
ide2: none,media=cdrom
memory: 1024
name: test
net0: virtio=0E:F2:92:FB:E4:5C,bridge=vmbr0,firewall=1,tag=xy
numa: 0
ostype: l26
scsi0: <cephpoolname>:vm-154-disk-0,discard=on,iothread=1,ssd=1,size=20G
scsi1: <cephpoolname>:vm-154-disk-2,discard=on,iothread=1,ssd=1,size=50G
scsihw: virtio-scsi-single
smbios1: uuid=randomstuff
sockets: 1
vga: qxl
vmgenid: randomstuff
 
So sieht die VM gerade aus:
Code:
boot: order=scsi0;ide2;net0
cores: 2
cpu: host
ide2: none,media=cdrom
memory: 1024
name: test
net0: virtio=0E:F2:92:FB:E4:5C,bridge=vmbr0,firewall=1,tag=xy
numa: 0
ostype: l26
scsi0: <cephpoolname>:vm-154-disk-0,discard=on,iothread=1,ssd=1,size=20G
scsi1: <cephpoolname>:vm-154-disk-2,discard=on,iothread=1,ssd=1,size=50G
scsihw: virtio-scsi-single
smbios1: uuid=randomstuff
sockets: 1
vga: qxl
vmgenid: randomstuff
Sieht soweit OK aus. Dann passt irgend etwas anderes nicht, wenn du immer identische Performance hast.
 
wenn du immer identische Performance hast.
Bis zu 10% hin und her geht es schon manchmal. Aber das tut's auch, wenn ich unter gleichen Bedingungen mehrmals oder zu unterscheidlichn Zeiten teste. Haben andere denn auch die Erfahrung gemacht, dass die IOPS-Performance von Ceph davon abhängt, wie viele vCPUs und RAM eine VM hat? Ich sehe während der Tests, dass fio lediglich 20% einer vCPU verwendet. Das sieht mir erstmal nicht danach aus, als gäbe es hier ein Nadelöhr.
 
Bis zu 10% hin und her geht es schon manchmal. Aber das tut's auch, wenn ich unter gleichen Bedingungen mehrmals oder zu unterscheidlichn Zeiten teste. Haben andere denn auch die Erfahrung gemacht, dass die IOPS-Performance von Ceph davon abhängt, wie viele vCPUs und RAM eine VM hat? Ich sehe während der Tests, dass fio lediglich 20% einer vCPU verwendet. Das sieht mir erstmal nicht danach aus, als gäbe es hier ein Nadelöhr.
Ich vermute dann eher Probleme im Netzwerksetup
 
Wie sieht denn die Auslastung auf der NIC und dem Node generell aus?

Theoretisch könnten 10 SSDs einen 40 G Link voll machen (einfach nur mal 10x 500 MB angenommen). Eventuell läufst du hier also in ein Bottleneck. Bei einem Switch mit LACP und L3+4 hast du den Vorteil, dass sich die Verbindungen der OSDs und Clients optimal auf alle verteilen. Beim Mesh Setup beschränkst du dich aber selbst.
Hast du den Jumbroframes aktiviert?
 
Beim Mesh Setup beschränkst du dich aber selbst.
Ja, wir sind durch das Mesh auf 25G beschränkt. Jammern auf hohem Niveau, würde ich sagen. :)
Wie sieht denn die Auslastung auf der NIC und dem Node generell aus?
Entspannt, würde ich sagen. Im normalen Produktivbetrieb gehen über die Mesh-NICs die meiste Zeit weniger als 100 MB/s. CPU der Nodes bei ca. 20%, RAM bei ca. 60%.
Jumbroframes
Jep, die MTU size der Mesh-NICs steht auf 9000.

Mit wieviel IOPS wärt ihr bei unserem Setup und dem genannten fio-Benchmark zufrieden?
 
Last edited:
Server sind ASUS mit AMD Epyc, die lasse ich mir passend von primeLine Solutions bauen.
Dort sind Broadcom NICs drin und Kioxia NVMe's.

Die Switches für Ceph sind Mikrotik CRS504 und für das LAN habe ich Switches von FS.com, bei dem Kunden die s5860-20sq.
Alles soweit möglich mit DAC Kabeln, das spart auch einige €.

Bei gößeren Clustern nutze ich für Ceph dann gern die fs.com S5850er Switches, oft die 24x oder 48x 25G und manchmal 32x 100G.

@Falk, darf ich fragen, ob du bei deinem Setup MLAG mit LACP L3+4 aktiv hast?
Laut meinem Kollegen ist LACP L3+4 bei Mlag über 2 Switche nicht möglich.

Danke & sg
Roland
 
@Falk, darf ich fragen, ob du bei deinem Setup MLAG mit LACP L3+4 aktiv hast?
Laut meinem Kollegen ist LACP L3+4 bei Mlag über 2 Switche nicht möglich.

Danke & sg
Roland
Hi Roland, das kommt auf den Switchhersteller an. Obwohl MLAG ein offenes Protokoll ist, hat jeder Hersteller eine andere Implementierung.
Tatsächlich geht bei vielen MLAG mit LACP, aber immer in der Doku des Herstellers nachschauen.
 
Hy Falk!

Sorry, hab vergessen zu erwähnen, dass ich mich auf die von dir verwendeten Mikrotik CRS504 beziehe.
Laut unsrem Netzwerkexperten ist's bei Miktorik nicht leider nicht möglich.
Hätte es gerne aktiv gehabt bei unsrem Cluster

sg
Roland
 
Last edited:
Muss ich ihn fragen, er ist heute leider schon weg.

Die Mikrotik Hilfe hatte ich schon gefunden konnte hier jedoch nichts bez Layer3+4 bei einem Mlag Bond rauslesen

Meld mich wenn ich mehr weiss

Danke
 
Ob du Layer2, Layer 2+3 oder Layer 3+4 machst ist erst einmal egal, es muss das LACP Protokoll unterstützt werden.
Bisher kenne ich nur Probleme mit dem Carp Protokoll, was einige Firewalls für HA benutzen, da darf man kein Layer4 LACP machen. Sonst gibt es eigentlich keine Einschränkungen.
 
Guten Morgen!

Soweit ich verstanden hab ist Layer 3+4 effizienter. Sofern von Mkrotik im Mlag unterstützt, würd ich darauf setzen.
Ich schau mal, dass wir dies testen können und geben Bescheid.
 
Ja, da Ceph nur eine IP pro Host nutzt, aber jede OSD eigene Ports, ist L3+4 effizienter.
 
Hy

Wir haben nun ein Mikrotik Mlag mit bond "Layer 3+4". laufen.
Funktioniert problemlos. Am Switch ist die bessere Verteilung der Netzlast gut zu erkennen,

Setting war recht simple
* Mlag erstellen
* Lacp Bond für Endgeräte erstellen
* Hash Policy des Bonds auf "Layer 3+4" stellen.

Vielen Dank nochmals