TechTalkThursday 14.04.2016: Service Oriented Architecture @nine.ch
TechTalkThursday 27.10.2016: Ceph im NVME Cluster
-
Upload
nine-internet-solutions-ag -
Category
Internet
-
view
94 -
download
2
Transcript of TechTalkThursday 27.10.2016: Ceph im NVME Cluster
2
Ceph - Was ist das?
I verteilter Object Store (RADOS)I Daten werden in Objekten verteilt auf mehreren Servern
gespeichert
I Block Storage (RADOS Block Device)
I POSIX Filesystem (CephFS)
I Block Storage und Filesystem legen Daten auch als Objekte ab
I Zugriff auf Block Storage via Kernel Treiber (rbd) oderLibrary (librbd)
Ceph/oeffentlich Sebastian Nickel 1.0
Ceph - Architecture
4
Ceph - Features
I kein ’single point of failure’
I ausgelegt auf commodity Hardware
I Daten werden in Pools abgelegtI Cache Tiering (SSDs als Cache Pool)
I replicated Pools und erasure coded Pools
I SnapshotsI schnelles Klonen
I copy-on-write images von SnapshotsI wichtig fur ’cloud’ Images
I Scrubbing
Ceph/oeffentlich Sebastian Nickel 1.0
5
Ceph - Komponenten
Ceph/oeffentlich Sebastian Nickel 1.0
6
Ceph - Komponenten
I Monitore (MONs)I stellen
”Master“ Maps des Clusterzustandes zur Verfugung
I werden als erstes von einem neuen Client kontaktiertI ubernehmen AuthentifizierungI ungerade Anzahl im ClusterI uberprufen in regelmassigen Abstanden die OSDs
Ceph/oeffentlich Sebastian Nickel 1.0
7
Ceph - Komponenten
I OSDsI zustandig fur ObjektspeicherungI ist mit Journal- und Datenspeicher verknupft
I haben noch double write penaltyI verschwindet mit ’BlueStore’
I normalerweise 1 Daemon pro FestplatteI ’pingen’ andere OSDs und melden an MonsI fuhren scrubbing aus
Ceph/oeffentlich Sebastian Nickel 1.0
8
Ceph - Komponenten
I MDSI Meta-Daten Daemon fur CephFSI Eigenschaften:
def explainMDS:
raise NoKnowledgeException("not in use")
Ceph/oeffentlich Sebastian Nickel 1.0
9
Ceph - Komponenten
I RGW (Ceph Object Gateway)I bietet S3/SWIFT kompatible REST API fur CephI umgesetzt mittels apache und mod proxy (ab apache 2.4)I besitzt eigene UserverwaltungI Daten werden in ’buckets’ organisiertI Update von Hammer oder Infernalis auf Jewel → uber Umwege
Ceph/oeffentlich Sebastian Nickel 1.0
10
Ceph - Crush Design
I Crush MapI wird von Mons verteiltI beschreibt hierarchischen Aufbau des ClustersI beinhaltet Regeln wo Daten fur Pools abgelegt werden sollenI besitzt ’tuneables’, welche Verteilung beeinflussen
Ceph/oeffentlich Sebastian Nickel 1.0
11
Ceph - Placement Groups
I Placement GroupsI Abstraktionsschicht zwischen OSD und Objekten
Ceph/oeffentlich Sebastian Nickel 1.0
12
Ceph bei der Nine
I damals 2 Ceph Cluster im EinsatzI 1 x Rados Block Device Cluster
I fur virtuelle MaschinenI Standard Aufbau (HDD + SSD Journals)
I 1 x RGW ClusterI genutzt als Backup Cluster
Ceph/oeffentlich Sebastian Nickel 1.0
13
Neuer Ceph Cluster bei der Nine
I Ausgangspunkt?I Wir wollten einen neuen Ceph Cluster (in anderem DC)I unser primarer Ceph Cluster zeigte Performance Probleme
(HDD/SSD)I deep scrubs beeinflussen performanceI Festplattenausfall bedeutet kurzes Performance ProblemI ’recovery op priority’, ’max backfills’, etc bereits gesetztI hatten Bedenken uber Performance Probleme wahrend
Erweiterung
Ceph/oeffentlich Sebastian Nickel 1.0
14
Neuer Ceph Cluster bei der Nine
I erster Losungsansatz: Cache TieringI Vorteil: transparente Aktivierung/DeaktivierungI Tests im Staging Bereich durchgefuhrt
I 2 Hosts mit SSDs als Cache Pool konfiguriertI Crush Rules fur SSD Pool erstelltI 10 virtuellen Maschinen als Clients vorbereitet
Ceph/oeffentlich Sebastian Nickel 1.0
15
Neuer Ceph Cluster bei der Nine
I Ablauf:I Maschinen generieren 4K IO mit fioI Aktivieren des SSD Cache Pools inmitten des TestsI Messen der Ergebnisse
Ceph/oeffentlich Sebastian Nickel 1.0
16
Neuer Ceph Cluster bei der Nine
I Ergebnis nach erstem Test:
I Client Berechtigungen des neuen Pools vergessen
I bedeutet aber auch das alle Maschinen migriert werdenmussten
Ceph/oeffentlich Sebastian Nickel 1.0
17
Neuer Ceph Cluster bei der Nine
I Ergebnis nach zweitem Test:
Ceph/oeffentlich Sebastian Nickel 1.0
18
Neuer Ceph Cluster bei der Nine
I Generelles Ergebnis:I Cache Tiering nur fur bestimmte EinsatzzweckeI Probleme beim ’hot-pull’ einer SSDI Red Hat Ceph Storage 2.0: ’Cache tiering is now deprecated’I Wir wollen einen SSD Ceph Cluster!
Ceph/oeffentlich Sebastian Nickel 1.0
19
Neuer Ceph Cluster bei der Nine - SSD
I mehrere Varianten standen zur Auswahl (SATA SSD +NVME; nur NVME; nur SATA SSD)
I gewonnen hat: only NVME ClusterI Hardware:
2 x 10 Core Intel CPU64GB RAM2 x Intel SSD DC 3510 fur OS4x Intel SSD DC P3600 NVME Disks4 x 10G NIC
Ceph/oeffentlich Sebastian Nickel 1.0
20
Neuer Ceph Cluster bei der Nine - Benchmark
I jede Komponente des Clusters mit fio benchmarken
I immer gleiche Testbedingungen
I mehrere Testlaufe durchfuhren und Ergebnis mitteln
Ceph/oeffentlich Sebastian Nickel 1.0
21
Neuer Ceph Cluster bei der Nine - Benchmark
I fio auf purem NVME device (psync, iodepth=1):
Test/Blocksize 4K 8K 16K 2048K 4096K
Serial Write 81692 / 319.11 66387 / 518.65 47982 / 749.72 820 / 1641.7 418 / 1672.2Serial Read 84176 / 328 77399 / 604.68 59642 / 931.91 968 / 1936.1 540 / 2163.3Rand. Write 82331 / 321 66796 / 521.84 49617 / 775.26 820 / 1640.7 416 / 1667.7Rand. Read 10746 / 41 8753 / 68.38 6758 / 105.6 966 / 1933.6 544 / 2179.7
Einheit: IOPS / MB per s
I fio auf purem NVME device (libaio, iodepth=64):
Test/Blocksize 4K 8K 16K 2048K 4096K
Serial Write 406189 / 1586.7 218887 / 1710.7 111092 / 1735.9 892 / 1789.2 446 / 1791.2
Serial Read 317558 / 1240.5 249434 / 1948.8 157287 / 2457.7 1283 / 2571.6 657 / 2638.3
Rand. Write 314276 / 1227.7 192417 / 1503.3 104569 / 1633.1 892 / 1787.3 445 / 1788.1
Rand. Read 351525 / 1373.2 246589 / 1926.6 138682 / 2166.1 1248 / 2501.5 648 / 2605.5
Einheit: IOPS / MB per s
Ceph/oeffentlich Sebastian Nickel 1.0
22
Neuer Ceph Cluster bei der Nine - Benchmark
I weitere Tests welche man ausfuhren kannI ceph tell osd.<number> benchI rados bench -p <pool> <dauer> writeI iperfI fio mit rbd engine
Ceph/oeffentlich Sebastian Nickel 1.0
23
Neuer Ceph Cluster bei der Nine - iperf
I iperf Tests auf gebondetem Interface mit VLAN tags
I maximal 2.8 Gbps zwischen Compute Node und Ceph Node
I MTU variiert → 4.8 Gbps
I nur bonding ohne VLAN oder kein bonding mit VLAN → 9.xGbps
I bonding + VLAN ohne Switch → 9.x Gbps
I Ergebnis: kein VLAN
Ceph/oeffentlich Sebastian Nickel 1.0
24
Neuer Ceph Cluster bei der Nine - tunings
I CPUs immer auf 100% der max. Taktfrequenz laufen lassen
I OSDs auf CPUs pinnen
I rq affinity der NVME devices setzen
I 2 OSDs pro NVME device
Ceph/oeffentlich Sebastian Nickel 1.0
25
Neuer Ceph Cluster bei der Nine - fio mit rbd
I fio mit rbd engine auf Image
Test/Blocksize 4K 8K 16K 2048K 4096K
Serial Write 26791 IOPS 24232 IOPS 28086 IOPS 283 IOPS / 566.39 MB/s 142 IOPS / 571.36 MB/sSerial Read 2147 IOPS 2108 IOPS 1960 IOPS 281 IOPS / 563.46 MB/s 176 IOPS / 705.55 MBsRand. Write 12408 IOPS 12369 IOPS 13370 IOPS 523 IOPS / 1047.2 MB/s 255 IOPS / 1020.1 MB/sRand. Read 1512 IOPS 1442 IOPS 1451 IOPS 272 IOPS / 544.88 MB/s 175 IOPS / 703.5 MB/s
I fio innerhalb einer VM (psync, iodepth=1)
Test/Blocksize 4K 8K 16K 2048K 4096K
Serial Write 14686 IOPS 14038 IOPS 12407 IOPS 318 IOPS / 636.95 MB/s 128 IOPS / 515.33 MB/sSerial Read 1719 IOPS 1645 IOPS 1546 IOPS 220 IOPS / 440.58 MB/s 104 IOPS / 416.01 MB/sRand. Write 9377 IOPS 9111 IOPS 8900 IOPS 323 IOPS / 646.10 MB/s 122 IOPS / 488.29 MB/sRand. Read 1401 IOPS 1375 IOPS 1323 IOPS 222 IOPS / 444.64 MB/s 106 IOPS / 427.72 MB/s
Ceph/oeffentlich Sebastian Nickel 1.0
26
Neuer Ceph Cluster bei der Nine - RedHat Cluster Check
I RedHat Cluster Check durchfuhren lassen
I interessante Ergebnisse:
I es gibt noch keine Recommendations fur NVME Cluster
I alle NVMEs sind via PCIe Bus auf CPU1 verbunden, alle NICsauf CPU0
I Crush tunables nicht optimal
I RBD client cache size hatte unit extensions (MB)
Ceph/oeffentlich Sebastian Nickel 1.0
27
Neuer Ceph Cluster bei der Nine - Fazit
I eine VM kann den Speed der NVME devices nicht voll nutzen
I Parallelisierung bei NVME ist wichtig
I es gibt noch keine grossen Erfahrungen damit
I Cluster Check durch externe Firma sinnvoll
Ceph/oeffentlich Sebastian Nickel 1.0
28
Fragen?
Ceph/oeffentlich Sebastian Nickel 1.0
29
Danke?
Ceph/oeffentlich Sebastian Nickel 1.0