ceph - schlechte performance

AST

Well-Known Member
Nov 28, 2018
113
8
58
Moin,

zu dem Thema habe ich einige Themen bereits gesehen, allerdings passte noch keines auf mein selbst gebautes Problem bzw. kamen zu einer Lösung.

Meine Bastelei:
5 Hosts a 1SSD 1TB für Cache und 24HDD 1TB als OSD, durch viele Spindeln will ich die Performance zu den HDD steigern. Die SSD ist eine SATA, die HDDs sind SAS auf einem HBA.
Alle 5 hosts hängen redundant an einem 10gbit Switch.
CPU(s) 24 x Intel(R) Xeon(R) Gold 6128 CPU @ 3.40GHz (2 Sockets)
Kernel Version: Linux 4.15.18-10-pve #1 SMP PVE 4.15.18-32 (Sat, 19 Jan 2019 10:09:37 +0100)
PVE Manager Version: pve-manager/5.3-8/2929af8e

Nun ist das System alles andere als schnell. In einer VM mit Windows kopierte ich eine Datei (4,7GB) in einen Ordner. Die ersten 4GB gehen gerade so mit 100MB/s durch, dann bricht es auf 10MB/s herunter und bleibt dort, bis es fertig kopiert hat.

CrystalDiskMark kommt ebenfalls auf eher ernüchtende Werte.
diskmark.png

Mir ist klar, dass ich irgendwo was ordentlich verbockt habe, nur ich weiß nicht wo.
Darum habe ich die Config beigepackt.

Danke für eure Unterstützung!

Gruß, Patrick

config:
Code:
[global]
    auth client required = cephx
    auth cluster required = cephx
    auth service required = cephx
    cluster network = 10.10.10.0/24
    fsid = 56f2e6db-860d-4377-ab3b-01ba3d5169a5
    keyring = /etc/pve/priv/$cluster.$name.keyring
    mon allow pool delete = true
    osd journal size = 5120
    osd pool default min size = 2
    osd pool default size = 3
    public network = 10.10.10.0/24

[osd]
    keyring = /var/lib/ceph/osd/ceph-$id/keyring

[mon.pve2]
    host = pve2
    mon addr = 10.10.10.11:6789

[mon.pve5]
    host = pve5
    mon addr = 10.10.10.14:6789

[mon.pve1]
    host = pve1
    mon addr = 10.10.10.10:6789

[mon.pve4]
    host = pve4
    mon addr = 10.10.10.13:6789

[mon.pve3]
    host = pve3
    mon addr = 10.10.10.12:6789

Crush Map
Code:
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54

# devices
device 0 osd.0 class hdd
device 1 osd.1 class hdd
device 2 osd.2 class hdd
device 3 osd.3 class hdd
device 4 osd.4 class hdd
device 5 osd.5 class hdd
device 6 osd.6 class hdd
device 7 osd.7 class hdd
device 8 osd.8 class hdd
device 9 osd.9 class hdd
device 10 osd.10 class hdd
device 11 osd.11 class hdd
device 12 osd.12 class hdd
device 13 osd.13 class hdd
device 14 osd.14 class hdd
device 15 osd.15 class hdd
device 16 osd.16 class hdd
device 17 osd.17 class hdd
device 18 osd.18 class hdd
device 19 osd.19 class hdd
device 20 osd.20 class hdd
device 21 osd.21 class hdd
device 22 osd.22 class hdd
device 23 osd.23 class hdd
device 24 osd.24 class hdd
device 25 osd.25 class hdd
device 26 osd.26 class hdd
device 27 osd.27 class hdd
device 28 osd.28 class hdd
device 29 osd.29 class hdd
device 30 osd.30 class hdd
device 31 osd.31 class hdd
device 32 osd.32 class hdd
device 33 osd.33 class hdd
device 34 osd.34 class hdd
device 35 osd.35 class hdd
device 36 osd.36 class hdd
device 37 osd.37 class hdd
device 38 osd.38 class hdd
device 39 osd.39 class hdd
device 40 osd.40 class hdd
device 41 osd.41 class hdd
device 42 osd.42 class hdd
device 43 osd.43 class hdd
device 44 osd.44 class hdd
device 45 osd.45 class hdd
device 46 osd.46 class hdd
device 47 osd.47 class hdd
device 48 osd.48 class hdd
device 49 osd.49 class hdd
device 50 osd.50 class hdd
device 51 osd.51 class hdd
device 52 osd.52 class hdd
device 53 osd.53 class hdd
device 54 osd.54 class hdd
device 55 osd.55 class hdd
device 56 osd.56 class hdd
device 57 osd.57 class hdd
device 58 osd.58 class hdd
device 59 osd.59 class hdd
device 60 osd.60 class hdd
device 61 osd.61 class hdd
device 62 osd.62 class hdd
device 63 osd.63 class hdd
device 64 osd.64 class hdd
device 65 osd.65 class hdd
device 66 osd.66 class hdd
device 67 osd.67 class hdd
device 68 osd.68 class hdd
device 69 osd.69 class hdd
device 70 osd.70 class hdd
device 71 osd.71 class hdd
device 72 osd.72 class hdd
device 73 osd.73 class hdd
device 74 osd.74 class hdd
device 75 osd.75 class hdd
device 76 osd.76 class hdd
device 77 osd.77 class hdd
device 78 osd.78 class hdd
device 79 osd.79 class hdd
device 80 osd.80 class hdd
device 81 osd.81 class hdd
device 82 osd.82 class hdd
device 83 osd.83 class hdd
device 84 osd.84 class hdd
device 85 osd.85 class hdd
device 86 osd.86 class hdd
device 87 osd.87 class hdd
device 88 osd.88 class hdd
device 89 osd.89 class hdd
device 90 osd.90 class hdd
device 91 osd.91 class hdd
device 92 osd.92 class hdd
device 93 osd.93 class hdd
device 94 osd.94 class hdd
device 95 osd.95 class hdd
device 96 osd.96 class hdd
device 97 osd.97 class hdd
device 98 osd.98 class hdd
device 99 osd.99 class hdd
device 100 osd.100 class hdd
device 101 osd.101 class hdd
device 102 osd.102 class hdd
device 103 osd.103 class hdd
device 104 osd.104 class hdd
device 105 osd.105 class hdd
device 106 osd.106 class hdd
device 107 osd.107 class hdd
device 108 osd.108 class hdd
device 109 osd.109 class hdd
device 110 osd.110 class hdd
device 111 osd.111 class hdd
device 112 osd.112 class hdd
device 113 osd.113 class hdd
device 114 osd.114 class hdd

# types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 region
type 10 root

# buckets
host pve1 {
   id -3       # do not change unnecessarily
   id -4 class hdd       # do not change unnecessarily
   # weight 20.921
   alg straw2
   hash 0   # rjenkins1
   item osd.0 weight 0.910
   item osd.1 weight 0.910
   item osd.2 weight 0.910
   item osd.3 weight 0.910
   item osd.4 weight 0.910
   item osd.5 weight 0.910
   item osd.6 weight 0.910
   item osd.7 weight 0.910
   item osd.8 weight 0.910
   item osd.9 weight 0.910
   item osd.10 weight 0.910
   item osd.11 weight 0.910
   item osd.12 weight 0.910
   item osd.13 weight 0.910
   item osd.14 weight 0.910
   item osd.15 weight 0.910
   item osd.16 weight 0.910
   item osd.17 weight 0.910
   item osd.18 weight 0.910
   item osd.19 weight 0.910
   item osd.20 weight 0.910
   item osd.21 weight 0.910
   item osd.22 weight 0.910
}
host pve2 {
   id -5       # do not change unnecessarily
   id -6 class hdd       # do not change unnecessarily
   # weight 20.921
   alg straw2
   hash 0   # rjenkins1
   item osd.23 weight 0.910
   item osd.24 weight 0.910
   item osd.25 weight 0.910
   item osd.26 weight 0.910
   item osd.27 weight 0.910
   item osd.28 weight 0.910
   item osd.29 weight 0.910
   item osd.30 weight 0.910
   item osd.31 weight 0.910
   item osd.32 weight 0.910
   item osd.33 weight 0.910
   item osd.34 weight 0.910
   item osd.35 weight 0.910
   item osd.36 weight 0.910
   item osd.37 weight 0.910
   item osd.38 weight 0.910
   item osd.39 weight 0.910
   item osd.40 weight 0.910
   item osd.41 weight 0.910
   item osd.42 weight 0.910
   item osd.43 weight 0.910
   item osd.44 weight 0.910
   item osd.45 weight 0.910
}
host pve3 {
   id -7       # do not change unnecessarily
   id -8 class hdd       # do not change unnecessarily
   # weight 20.921
   alg straw2
   hash 0   # rjenkins1
   item osd.46 weight 0.910
   item osd.47 weight 0.910
   item osd.48 weight 0.910
   item osd.49 weight 0.910
   item osd.50 weight 0.910
   item osd.51 weight 0.910
   item osd.52 weight 0.910
   item osd.53 weight 0.910
   item osd.54 weight 0.910
   item osd.55 weight 0.910
   item osd.56 weight 0.910
   item osd.57 weight 0.910
   item osd.58 weight 0.910
   item osd.59 weight 0.910
   item osd.60 weight 0.910
   item osd.61 weight 0.910
   item osd.62 weight 0.910
   item osd.63 weight 0.910
   item osd.64 weight 0.910
   item osd.65 weight 0.910
   item osd.66 weight 0.910
   item osd.67 weight 0.910
   item osd.68 weight 0.910
}
host pve4 {
   id -9       # do not change unnecessarily
   id -10 class hdd       # do not change unnecessarily
   # weight 20.921
   alg straw2
   hash 0   # rjenkins1
   item osd.69 weight 0.910
   item osd.70 weight 0.910
   item osd.71 weight 0.910
   item osd.72 weight 0.910
   item osd.73 weight 0.910
   item osd.74 weight 0.910
   item osd.75 weight 0.910
   item osd.76 weight 0.910
   item osd.77 weight 0.910
   item osd.78 weight 0.910
   item osd.79 weight 0.910
   item osd.80 weight 0.910
   item osd.81 weight 0.910
   item osd.82 weight 0.910
   item osd.83 weight 0.910
   item osd.84 weight 0.910
   item osd.85 weight 0.910
   item osd.86 weight 0.910
   item osd.87 weight 0.910
   item osd.88 weight 0.910
   item osd.89 weight 0.910
   item osd.90 weight 0.910
   item osd.91 weight 0.910
}
host pve5 {
   id -11       # do not change unnecessarily
   id -12 class hdd       # do not change unnecessarily
   # weight 20.921
   alg straw2
   hash 0   # rjenkins1
   item osd.92 weight 0.910
   item osd.93 weight 0.910
   item osd.94 weight 0.910
   item osd.95 weight 0.910
   item osd.96 weight 0.910
   item osd.97 weight 0.910
   item osd.98 weight 0.910
   item osd.99 weight 0.910
   item osd.100 weight 0.910
   item osd.101 weight 0.910
   item osd.102 weight 0.910
   item osd.103 weight 0.910
   item osd.104 weight 0.910
   item osd.105 weight 0.910
   item osd.106 weight 0.910
   item osd.107 weight 0.910
   item osd.108 weight 0.910
   item osd.109 weight 0.910
   item osd.110 weight 0.910
   item osd.111 weight 0.910
   item osd.112 weight 0.910
   item osd.113 weight 0.910
   item osd.114 weight 0.910
}
root default {
   id -1       # do not change unnecessarily
   id -2 class hdd       # do not change unnecessarily
   # weight 104.603
   alg straw2
   hash 0   # rjenkins1
   item pve1 weight 20.921
   item pve2 weight 20.921
   item pve3 weight 20.921
   item pve4 weight 20.921
   item pve5 weight 20.921
}

# rules
rule replicated_rule {
   id 0
   type replicated
   min_size 1
   max_size 10
   step take default
   step chooseleaf firstn 0 type host
   step emit
}

# end crush map
 
5 Hosts a 1SSD 1TB für Cache und 24HDD 1TB als OSD
Meinst du nicht, dass das etwas viel für eine SSD ist? Wenn du eh nur 1TB HDDs hast, würde ich einfach einen Wechsel auf SSD only vorschlagen, die Preise sind aktuell so im Keller.

Wenn das keine Option ist, würde ich trotzdem die Anzahl der Platten pro SSD verringern. Alternativ dazu könnte man auch die erste Kopie auf SSD legen oder du teilst es auf zwei pools auf und machst nur SSD und HDD only.

Wie steht es um die Hardware? Hast du zwei oder vier HBAs drin? Grundsätzlich sollte jede Platte mehr oder minder seine volle Geschwindigkeit erreichen können.

Was sagen deine Metriken / Monitoring, wie ist die Latenz etc. Pp.?
Was sagt dein CEPH selbst, health OK? Wie sind deine Pools konfiguriert? Wie viele PGs hast du insgesamt (Stichwort PG Calculator von CEPH)?
 
Sieht so aus, als ob ich Ceph doch noch nicht geschnallt habe. Ich dachte, dass die SSD der Cache für alle Platten ist, wo anders hatte ich jetzt eine maxcapacity von 5GB gelesen.
Ich habe jede Platte zu der SSD zugewiesen.

Das Minimum an PG einer Platte liegt bei 30, bei 115 Drehscheiben komme ich dann auf 3450PG.

Ich habe mal einige Screenshots beigefügt.
 

Attachments

  • ceph_drive.png
    ceph_drive.png
    7 KB · Views: 16
  • ceph_overview.png
    ceph_overview.png
    16.6 KB · Views: 16
  • ceph_pool.png
    ceph_pool.png
    7 KB · Views: 16
  • drivelist.png
    drivelist.png
    70.7 KB · Views: 16
Bei den Angaben fehlt der RAM, vermute, der liegt bei min. 128, wenn nicht 256 GB pro node. Da nehme ich an, das genug RAM da ist. Generell, 1GB RAM pro 1TB Daten auf einer OSD.

5 Hosts a 1SSD 1TB für Cache und 24HDD 1TB als OSD, durch viele Spindeln will ich die Performance zu den HDD steigern. Die SSD ist eine SATA, die HDDs sind SAS auf einem HBA.
Angenommen eine Platte kann mit 25 MB/s schreiben, dann würden 24x 25 = 600 MB/s schreiben. Anders herum, würden alle Platten gleichzeitig von der SSD lesen, dann würde dies bereits den SATA Link ausreizen (es lesen normalerweise nicht alle gleichzeitig). Und was noch dazu kommt ist, wenn diese SSD den Geist aufgibt, dann sind alle OSDs kaputt. Bei 5x Nodes kann das schon zu einigem an Recovery Traffic führen.

Alle 5 hosts hängen redundant an einem 10gbit Switch.
Was mich vom oberen gleich zum Netzwerk bringt. Wenn 24x Platten übers Netzwerk lesen und schreiben, dann kann der 10GbE Link auch vollständig ausgereizt werden. Im jetzigen Setup sind diese durch die SSD ein wenig gebremst.

CPU(s) 24 x Intel(R) Xeon(R) Gold 6128 CPU @ 3.40GHz (2 Sockets)
Läuft auf den Nodes noch etwas außer Ceph? Eine einfache Rechnung ist ein Kern (Thread) pro Ceph Dienst. Damit wären alle Kerne bei dieser Machine bereits genutzt. Das Betriebssystem, Netzwerk und andere Komponenten teilen sich nun mit den Ceph Diensten die Kerne und damit passiert einiges an Scheduling. Das beeinflusst die Ceph Dienste (gilt generell) natürlich. Damit liegt es auch nahe, dass je höhere die Taktung desto besser.

Nun ist das System alles andere als schnell. In einer VM mit Windows kopierte ich eine Datei (4,7GB) in einen Ordner. Die ersten 4GB gehen gerade so mit 100MB/s durch, dann bricht es auf 10MB/s herunter und bleibt dort, bis es fertig kopiert hat.
Naja, beim Kopieren von Dateien passiert vielles zuerst im RAM bevor es auf die Platte geht und da kann auch bei guter Performance ein Verhalten wie dieses auftreten. Bei IO Test immer zu Benchmarking Tools greifen, zB. iperf, fio, sysbench, ... .

Am Rande noch, es benötigt nicht mehr als 3x Monitore in kleinen Setups. Mehr als drei kommen dann zum tragen, wenn diese so mit Anfragen ausgelastet sind, das nicht mehr Resourcen zur Verfügung stehen (Cluster mit 1000+ Ceph Services/Clients).
 
Die Nodes haben zu Beginn erstmal jeweils 128GB RAM.
Lt. Datenblatt soll eine SAS (12gbit) HDD auf 215MB/s kommen.
Wenn eine SATA(6gbit) SSD ausbremst, bekomm ich dann ohne sie dann bessere Performance? Dann würde auch der Ausfall nicht mehr stören.

Zum Netzwerk: Ich kann mich schlecht vorstellen, dass bei einer VM die 10gbit direkt schon ausgereizt sind. Gibt es hierzu eine Formel?

Auf den Nodes sollen zusätzlich eine Reihe von VMs laufen. Ceph ist zwar sehr langsam, aber die CPU-Last geht gegen Null.

Das mit den Monitoren habe ich nicht ganz kapiert. Es reichen also 3 Monitore, das bedeutet 2 Nodes haben keinen aber deren Platten werden eingebucht?

Tut mir Leid für die wohl Grundschulfragen...
Ich habe die Doku eigentlich gelesen.
 
Die Nodes haben zu Beginn erstmal jeweils 128GB RAM.
Wenns reicht, einfach im Auge behalten.

Lt. Datenblatt soll eine SAS (12gbit) HDD auf 215MB/s kommen.
Wenn eine SATA(6gbit) SSD ausbremst, bekomm ich dann ohne sie dann bessere Performance? Dann würde auch der Ausfall nicht mehr stören.
Die Platten werden vermutlich in der Praxis nicht ganz so viel machen, aber angenommen die Platten machen ~50MB/s, dann geht sich die Geschwindigkeit der SSD nicht mehr aus. Also ja, es kann durchaus zu Performance gewinnen kommen.

Dann verursacht ein Ausfall einer Platte nicht ganz so viele Schmerzen. ;)

Die SSD könnte dann als OSD für einen separaten Pool herhalten. Damit würden sich ein bisschen mehr als 1 TB nutzbaren Platz ausgehen.

Zum Netzwerk: Ich kann mich schlecht vorstellen, dass bei einer VM die 10gbit direkt schon ausgereizt sind. Gibt es hierzu eine Formel?
Das kommt mehr auf die IO Last an, denn auf die Anzahl der VMs. Auch hier gilt, im Auge behalten. Meine oben gestellte Rechnung dient lediglich zur Überlegung und deckt nicht alles ab.

Auf den Nodes sollen zusätzlich eine Reihe von VMs laufen. Ceph ist zwar sehr langsam, aber die CPU-Last geht gegen Null.
Zu beginn mag sich alles einwandfrei ausgehen, aber bei zunehmender Last werden diese Dinge sichtbar. Latenz is bei Ceph ein großes Thema und scholastic sich auch hier nieder. Je mehr sich ein Kern geteilt werden muss, desto höher steigt die Latenz und das macht sich am Ende in der VM bemerkbar.

Das mit den Monitoren habe ich nicht ganz kapiert. Es reichen also 3 Monitore, das bedeutet 2 Nodes haben keinen aber deren Platten werden eingebucht?
Genau, deshalb haben alle Nodes die dem Ceph Cluster teilnehmen in der Config die Monitore eingetragen. Für das Quorum werden mindestens 3x MONs benötigt, mehr dienen dann zur Lastverteilung. Bei kleinen Setups ensteht ein unnötiger Mehraufwand für die MONs, um aktuell zu bleiben.

Tut mir Leid für die wohl Grundschulfragen...
Ich habe die Doku eigentlich gelesen.
Die Architektur Dokumentation von Ceph ist ein guter Start um ein generelles Verständnis zu bekommen. Der Rest kommt dann aus der Praxis. ;)
http://docs.ceph.com/docs/luminous/architecture/
 
So, die SSD aus der Gleichung zu nehmen und die Platten ohne Ceph DB laufen zu lassen verschlechterte noch die Performance, spürbar und messbar.
Lesen blieb fast gleich, das Schreiben verlor ~50%.
 
Lesen blieb fast gleich, das Schreiben verlor ~50%.

Hast du noch Platz für mehr SSDs? Wenn du die 24 Platten auf mehrere SSDs verteilst sollte es generell schneller werden und die Time-to-Recovery sollte enorm verkürzt werden, wenn eine SSD mal ausfällt.
 
Wenn kann ich nur mechanische rauswerfen.
Wie viele HDDs auf eine SSD wären "gesund"?
Dann noch die Bemerkung, dass das Journal nur 5GB groß ist, ist das noch aktuell?
 
So, die SSD aus der Gleichung zu nehmen und die Platten ohne Ceph DB laufen zu lassen verschlechterte noch die Performance, spürbar und messbar.
Lesen blieb fast gleich, das Schreiben verlor ~50%.
Dann noch die Bemerkung, dass das Journal nur 5GB groß ist, ist das noch aktuell?
Bitte unbedingt Bluestore verwenden, bei Filestore wird doppelt geschrieben (architekturbedingt).

Wie viele HDDs auf eine SSD wären "gesund"?
Also einfache Rechnung, die Schreibgeschwindigkeit der SSD durch die der HDD. Am besten die Performance vorher mit FIO testen. Den Befehl und andere Benchmark Infos gibt's in unserem Ceph Benchmark Paper.
https://forum.proxmox.com/threads/proxmox-ve-ceph-benchmark-2018-02.41761/
 
update again:
Es ist nun eine SSD mit jeweils 5 Platten am Laufen, fast die selbe Performance wie zu beginn. Der Pool hat jetzt 1024PG.
Ich werde mich ab morgen daran machen weitere SSDs reinzuschrauben. Eine Note hat 6row 4row Schübe, also kommen dann pro Node 4SSDs zu 16HDDs rein. Ich bin dann mal gespannt.
 
Welches SSD Modell wird hier denn genau verwendet?
 
Ich muss echt komplett bescheuert sein ...
Zu den bestehenden Stapel (Intel SSD und 5 SAS Platten) habe ich nun in jedem Host eine Samsung 860 EVO SSD + 5SAS Platten dazugepackt, den Pool neu angelegt und nochmal die VM laufen lassen. Hier wurden die Schreibraten wieder schlechter.
Auch wenn zum Test eine Desktop SSD drin ist, so sind 430MB Lesen 52MB/s Schreibrate mehr als unterirdisch.

Was übersehe ich?

Code:
# begin crush map
tunable choose_local_tries 0
tunable choose_local_fallback_tries 0
tunable choose_total_tries 50
tunable chooseleaf_descend_once 1
tunable chooseleaf_vary_r 1
tunable chooseleaf_stable 1
tunable straw_calc_version 1
tunable allowed_bucket_algs 54

# devices
device 0 osd.0 class hdd
device 1 osd.1 class hdd
device 2 osd.2 class hdd
device 3 osd.3 class hdd
device 4 osd.4 class hdd
device 5 osd.5 class hdd
device 6 osd.6 class hdd
device 7 osd.7 class hdd
device 8 osd.8 class hdd
device 9 osd.9 class hdd
device 10 osd.10 class hdd
device 11 osd.11 class hdd
device 12 osd.12 class hdd
device 13 osd.13 class hdd
device 14 osd.14 class hdd
device 15 osd.15 class hdd
device 16 osd.16 class hdd
device 17 osd.17 class hdd
device 18 osd.18 class hdd
device 19 osd.19 class hdd
device 20 osd.20 class hdd
device 21 osd.21 class hdd
device 22 osd.22 class hdd
device 23 osd.23 class hdd
device 24 osd.24 class hdd
device 25 osd.25 class hdd
device 26 osd.26 class hdd
device 27 osd.27 class hdd
device 28 osd.28 class hdd
device 29 osd.29 class hdd
device 30 osd.30 class hdd
device 31 osd.31 class hdd
device 32 osd.32 class hdd
device 33 osd.33 class hdd
device 34 osd.34 class hdd
device 35 osd.35 class hdd
device 36 osd.36 class hdd
device 37 osd.37 class hdd
device 38 osd.38 class hdd
device 39 osd.39 class hdd
device 40 osd.40 class hdd
device 41 osd.41 class hdd
device 42 osd.42 class hdd
device 43 osd.43 class hdd
device 44 osd.44 class hdd
device 45 osd.45 class hdd
device 46 osd.46 class hdd
device 47 osd.47 class hdd
device 48 osd.48 class hdd
device 49 osd.49 class hdd

# types
type 0 osd
type 1 host
type 2 chassis
type 3 rack
type 4 row
type 5 pdu
type 6 pod
type 7 room
type 8 datacenter
type 9 region
type 10 root

# buckets
host pve1 {
   id -3       # do not change unnecessarily
   id -2 class hdd       # do not change unnecessarily
   # weight 9.096
   alg straw2
   hash 0   # rjenkins1
   item osd.0 weight 0.910
   item osd.1 weight 0.910
   item osd.2 weight 0.910
   item osd.3 weight 0.910
   item osd.4 weight 0.910
   item osd.25 weight 0.910
   item osd.26 weight 0.910
   item osd.27 weight 0.910
   item osd.28 weight 0.910
   item osd.29 weight 0.910
}
host pve2 {
   id -5       # do not change unnecessarily
   id -4 class hdd       # do not change unnecessarily
   # weight 9.096
   alg straw2
   hash 0   # rjenkins1
   item osd.5 weight 0.910
   item osd.6 weight 0.910
   item osd.7 weight 0.910
   item osd.8 weight 0.910
   item osd.9 weight 0.910
   item osd.30 weight 0.910
   item osd.31 weight 0.910
   item osd.32 weight 0.910
   item osd.33 weight 0.910
   item osd.34 weight 0.910
}
host pve3 {
   id -7       # do not change unnecessarily
   id -6 class hdd       # do not change unnecessarily
   # weight 9.096
   alg straw2
   hash 0   # rjenkins1
   item osd.10 weight 0.910
   item osd.11 weight 0.910
   item osd.12 weight 0.910
   item osd.13 weight 0.910
   item osd.14 weight 0.910
   item osd.35 weight 0.910
   item osd.36 weight 0.910
   item osd.37 weight 0.910
   item osd.38 weight 0.910
   item osd.39 weight 0.910
}
host pve4 {
   id -9       # do not change unnecessarily
   id -8 class hdd       # do not change unnecessarily
   # weight 9.096
   alg straw2
   hash 0   # rjenkins1
   item osd.15 weight 0.910
   item osd.16 weight 0.910
   item osd.17 weight 0.910
   item osd.18 weight 0.910
   item osd.19 weight 0.910
   item osd.40 weight 0.910
   item osd.41 weight 0.910
   item osd.42 weight 0.910
   item osd.43 weight 0.910
   item osd.44 weight 0.910
}
host pve5 {
   id -11       # do not change unnecessarily
   id -10 class hdd       # do not change unnecessarily
   # weight 9.096
   alg straw2
   hash 0   # rjenkins1
   item osd.20 weight 0.910
   item osd.21 weight 0.910
   item osd.22 weight 0.910
   item osd.23 weight 0.910
   item osd.24 weight 0.910
   item osd.45 weight 0.910
   item osd.46 weight 0.910
   item osd.47 weight 0.910
   item osd.48 weight 0.910
   item osd.49 weight 0.910
}
root default {
   id -1       # do not change unnecessarily
   id -12 class hdd       # do not change unnecessarily
   # weight 45.480
   alg straw2
   hash 0   # rjenkins1
   item pve1 weight 9.096
   item pve2 weight 9.096
   item pve3 weight 9.096
   item pve4 weight 9.096
   item pve5 weight 9.096
}

# rules
rule replicated_rule {
   id 0
   type replicated
   min_size 1
   max_size 10
   step take default
   step chooseleaf firstn 0 type host
   step emit
}

# end crush map
 
Samsung 860 EVO SSD
Tja, die ist unterirdisch. Besser gesagt, für Ceph nicht zu gebrauchen. Ist auch schön im Ceph Benchmark Paper zu sehen. ;)
https://forum.proxmox.com/threads/proxmox-ve-ceph-benchmark-2018-02.41761/

Ceph's Performance funktioniert nicht einfach additive, da alle OSDs im Cluster miteinander kommunizieren, drückt auch nur eine langsame OSD die Performance nach unten.

EDIT: Ich lege dir nahe, noch einmal ohne SSD, aber mit Bluestore die OSDs anzulegen und die Performance erneut anzuschauen.
 
Tja, die ist unterirdisch. Besser gesagt, für Ceph nicht zu gebrauchen. Ist auch schön im Ceph Benchmark Paper zu sehen. ;)
https://forum.proxmox.com/threads/proxmox-ve-ceph-benchmark-2018-02.41761/

Ceph's Performance funktioniert nicht einfach additive, da alle OSDs im Cluster miteinander kommunizieren, drückt auch nur eine langsame OSD die Performance nach unten.

EDIT: Ich lege dir nahe, noch einmal ohne SSD, aber mit Bluestore die OSDs anzulegen und die Performance erneut anzuschauen.

Das Setup ohne SSDs habe ich bereits getestet, das verschlechterte die Performance sehr deutlich.
Also die SSDs verhalten sich dann wie der RAM, der langsamste gibt den Takt an.
Dann werde ich mir mal einen ganzen Satz Enterprise SSDs anlachen.
 
So, ich habe mir mal die Liste von @LnxBil angesehen:

Die SSD welche original verbaut ist (intel ssd sc2k960g) ist wohl genauso ungeeignet wie meine blind nachgematschten SamsungSSD, da ist das "unterirdisch" von @Alwin noch nett gemeint. Vorher lesen hätte geholfen.

Nun lese ich mir eben die Tabelle durch, in der ist von "Jobs" die Rede. Damit sind wohl die OSDs gemeint?

https://www.mindfactory.de/product_...4cm--SFF-8639-32Gb-s-MLC-HET--SSD_980713.html
Diese hier zum Bleistift hat 32gbit/s, das bringt mir beim 12er HBA wohl eher weniger.

Die Intel P3600 800GB sieht wieder nett aus: https://www.servershop24.de/kompone...5-festplatte-hard-disk-ssdsc2bb800g4/a-119388

Bei meinen 24Slot Servern schiebe ich mir also 2 pro Node rein und klemme 20 Platten drauf. Ist die kleine Nebenfrage: 2 als Spareplatten drinlassen oder beide SSDs mit einer Platte "überladen"?

So müsste ich über den ganzen Cluster dann 800MB/s zusammenbekommen.

Richtig oder falsch verstanden?
 

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!