Hallo,
wir sind gerade dabei uns von klassischen Storage-Lösungen wie lokalen RAID10 bzw. wenn HA gewünscht ist einem mit iSCSI angebundenen Dell SAN zu verabschieden. Im Moment laufen zwei Testcluster: Ein "großer", bei dem jede Node 2 x 18 Cores und 256GB RAM hat, und ein "kleiner", in dem in jeder Node eine CPU mit 8 Cores und 128GB RAM stecken. Die großen Nodes haben 3 x 7.68TB SATA-Enterprise-SSDs und die kleinen Nodes haben 3 x 960GB Corsair MP510 NVMe-SSDs. Für Ceph ist bei beiden Systemen ein dedizierter 10 Gbits Link mit LACP vorhanden. Alle Nodes sind frisch installiert PVE 8.0-Systeme.
Ich habe vorher verschiedene vorhandene Systeme mit fio gebenchmarkt um Vergleichswerte für die Tests zu bekommen. Dann habe ich mit fio auf einer VM auf dem großen Cluster - der war auch als erster aufgebaut, der NVMe-Cluster wurde erst nach den Ergebnisse des Benchmarks des SATA-SSD-Clusters zusammengebaut - verschiedene Benchmarks gemacht. Selbst mit kleinen Blocksizes haben ich nur Werte zwischen 3-400 IOPs bekommen. Der Schuldige war dann dann (vor)schnell gefunden, es mussten die SATA-SSDs gewesen sein. Schließlich liest man überall, daß man für Ceph NVMe verwenden soll. Dann haben wir den kleinen Cluster aufgebaut und auch dort Benchmarks mit fio auf den VMs gemacht. Ergebnis: Ebenfalls nur 300-400 IOPs, also keinerlei Verbesserung gegenüber SATA.
Als Konsequenz sind einen Schritt zurückgegangen und haben mit ceph rados bench Tests direkt auf RADOS gemacht und danach mit rbd bench auf einen für die Test angelegten Block Device. (Vorlage dafür war diese Anleitung auf ceph.com) Ergebnis: Sobald ich die Blockgrößen nach unten und die Number der Threads nach oben schraubte erhielt ich auf beiden Clustern und zwar sowohl mit "rbd bench" als auch mit "rados bench" Werte zwischen 40-60000 IOPs. Ein Unterschied zwischen SATA- und NVMe-SSDs war nicht festzustellen.
Wieso bekommen wir auf beiden Clustern auf den VMs so schlechte Werte? Wie kann man sich den großen Unterschied zwischen rbd bench und fio in der VM erklären? Schließlich schreiben beide auf ein Block Device im Ceph. Auch Fio scheint ja das richtige Tool zu sein, schließlich wird es auch im quasi offiziellen Benchmark verwendet, der hier oben im Forum angepinnt ist. Mich würden auch ein paar Vergleichswerte interessieren. Wieviel IOPs bekommt ihr auf den VMs auf euren Ceph-Clustern, unabhängig davon ob ihr SATA- oder NVMe-SSDs verwendet? Und wie kann ich diese Werte verbessern? Ceph hat viele für uns interessante Features bzgl. Datenverfügbarkeit- und Integrität. Aber mit einer so schlechten Performance können wir diese Systeme weder selbst verwenden noch unseren Kunden anbieten, was ich sehr bedauern würde.
Viele Grüße
Stefan
wir sind gerade dabei uns von klassischen Storage-Lösungen wie lokalen RAID10 bzw. wenn HA gewünscht ist einem mit iSCSI angebundenen Dell SAN zu verabschieden. Im Moment laufen zwei Testcluster: Ein "großer", bei dem jede Node 2 x 18 Cores und 256GB RAM hat, und ein "kleiner", in dem in jeder Node eine CPU mit 8 Cores und 128GB RAM stecken. Die großen Nodes haben 3 x 7.68TB SATA-Enterprise-SSDs und die kleinen Nodes haben 3 x 960GB Corsair MP510 NVMe-SSDs. Für Ceph ist bei beiden Systemen ein dedizierter 10 Gbits Link mit LACP vorhanden. Alle Nodes sind frisch installiert PVE 8.0-Systeme.
Ich habe vorher verschiedene vorhandene Systeme mit fio gebenchmarkt um Vergleichswerte für die Tests zu bekommen. Dann habe ich mit fio auf einer VM auf dem großen Cluster - der war auch als erster aufgebaut, der NVMe-Cluster wurde erst nach den Ergebnisse des Benchmarks des SATA-SSD-Clusters zusammengebaut - verschiedene Benchmarks gemacht. Selbst mit kleinen Blocksizes haben ich nur Werte zwischen 3-400 IOPs bekommen. Der Schuldige war dann dann (vor)schnell gefunden, es mussten die SATA-SSDs gewesen sein. Schließlich liest man überall, daß man für Ceph NVMe verwenden soll. Dann haben wir den kleinen Cluster aufgebaut und auch dort Benchmarks mit fio auf den VMs gemacht. Ergebnis: Ebenfalls nur 300-400 IOPs, also keinerlei Verbesserung gegenüber SATA.
Als Konsequenz sind einen Schritt zurückgegangen und haben mit ceph rados bench Tests direkt auf RADOS gemacht und danach mit rbd bench auf einen für die Test angelegten Block Device. (Vorlage dafür war diese Anleitung auf ceph.com) Ergebnis: Sobald ich die Blockgrößen nach unten und die Number der Threads nach oben schraubte erhielt ich auf beiden Clustern und zwar sowohl mit "rbd bench" als auch mit "rados bench" Werte zwischen 40-60000 IOPs. Ein Unterschied zwischen SATA- und NVMe-SSDs war nicht festzustellen.
Wieso bekommen wir auf beiden Clustern auf den VMs so schlechte Werte? Wie kann man sich den großen Unterschied zwischen rbd bench und fio in der VM erklären? Schließlich schreiben beide auf ein Block Device im Ceph. Auch Fio scheint ja das richtige Tool zu sein, schließlich wird es auch im quasi offiziellen Benchmark verwendet, der hier oben im Forum angepinnt ist. Mich würden auch ein paar Vergleichswerte interessieren. Wieviel IOPs bekommt ihr auf den VMs auf euren Ceph-Clustern, unabhängig davon ob ihr SATA- oder NVMe-SSDs verwendet? Und wie kann ich diese Werte verbessern? Ceph hat viele für uns interessante Features bzgl. Datenverfügbarkeit- und Integrität. Aber mit einer so schlechten Performance können wir diese Systeme weder selbst verwenden noch unseren Kunden anbieten, was ich sehr bedauern würde.
Viele Grüße
Stefan