TechTalkThursday 26.11.2015: Manage the minions - Docker Container mit Kubern...
TechTalkThursday 27.10.2016: Ceph im NVME Cluster
1.
2. 2
Ceph - Was ist das?
verteilter Object Store (RADOS)
Daten werden in Objekten verteilt auf mehreren Servern
gespeichert
Block Storage (RADOS Block Device)
POSIX Filesystem (CephFS)
Block Storage und Filesystem legen Daten auch als Objekte ab
Zugriff auf Block Storage via Kernel Treiber (rbd) oder
Library (librbd)
Ceph/oeffentlich Sebastian Nickel 1.0
4. 4
Ceph - Features
kein ’single point of failure’
ausgelegt auf commodity Hardware
Daten werden in Pools abgelegt
Cache Tiering (SSDs als Cache Pool)
replicated Pools und erasure coded Pools
Snapshots
schnelles Klonen
copy-on-write images von Snapshots
wichtig f¨ur ’cloud’ Images
Scrubbing
Ceph/oeffentlich Sebastian Nickel 1.0
6. 6
Ceph - Komponenten
Monitore (MONs)
stellen
”
Master“ Maps des Clusterzustandes zur Verf¨ugung
werden als erstes von einem neuen Client kontaktiert
¨ubernehmen Authentifizierung
ungerade Anzahl im Cluster
¨uberpr¨ufen in regelm¨assigen Abst¨anden die OSDs
Ceph/oeffentlich Sebastian Nickel 1.0
7. 7
Ceph - Komponenten
OSDs
zust¨andig f¨ur Objektspeicherung
ist mit Journal- und Datenspeicher verkn¨upft
haben noch double write penalty
verschwindet mit ’BlueStore’
normalerweise 1 Daemon pro Festplatte
’pingen’ andere OSDs und melden an Mons
f¨uhren scrubbing aus
Ceph/oeffentlich Sebastian Nickel 1.0
9. 9
Ceph - Komponenten
RGW (Ceph Object Gateway)
bietet S3/SWIFT kompatible REST API f¨ur Ceph
umgesetzt mittels apache und mod proxy (ab apache 2.4)
besitzt eigene Userverwaltung
Daten werden in ’buckets’ organisiert
Update von Hammer oder Infernalis auf Jewel → ¨uber Umwege
Ceph/oeffentlich Sebastian Nickel 1.0
10. 10
Ceph - Crush Design
Crush Map
wird von Mons verteilt
beschreibt hierarchischen Aufbau des Clusters
beinhaltet Regeln wo Daten f¨ur Pools abgelegt werden sollen
besitzt ’tuneables’, welche Verteilung beeinflussen
Ceph/oeffentlich Sebastian Nickel 1.0
11. 11
Ceph - Placement Groups
Placement Groups
Abstraktionsschicht zwischen OSD und Objekten
Ceph/oeffentlich Sebastian Nickel 1.0
12. 12
Ceph bei der Nine
damals 2 Ceph Cluster im Einsatz
1 x Rados Block Device Cluster
f¨ur virtuelle Maschinen
Standard Aufbau (HDD + SSD Journals)
1 x RGW Cluster
genutzt als Backup Cluster
Ceph/oeffentlich Sebastian Nickel 1.0
13. 13
Neuer Ceph Cluster bei der Nine
Ausgangspunkt?
Wir wollten einen neuen Ceph Cluster (in anderem DC)
unser prim¨arer Ceph Cluster zeigte Performance Probleme
(HDD/SSD)
deep scrubs beeinflussen performance
Festplattenausfall bedeutet kurzes Performance Problem
’recovery op priority’, ’max backfills’, etc bereits gesetzt
hatten Bedenken ¨uber Performance Probleme w¨ahrend
Erweiterung
Ceph/oeffentlich Sebastian Nickel 1.0
14. 14
Neuer Ceph Cluster bei der Nine
erster L¨osungsansatz: Cache Tiering
Vorteil: transparente Aktivierung/Deaktivierung
Tests im Staging Bereich durchgef¨uhrt
2 Hosts mit SSDs als Cache Pool konfiguriert
Crush Rules f¨ur SSD Pool erstellt
10 virtuellen Maschinen als Clients vorbereitet
Ceph/oeffentlich Sebastian Nickel 1.0
15. 15
Neuer Ceph Cluster bei der Nine
Ablauf:
Maschinen generieren 4K IO mit fio
Aktivieren des SSD Cache Pools inmitten des Tests
Messen der Ergebnisse
Ceph/oeffentlich Sebastian Nickel 1.0
16. 16
Neuer Ceph Cluster bei der Nine
Ergebnis nach erstem Test:
Client Berechtigungen des neuen Pools vergessen
bedeutet aber auch das alle Maschinen migriert werden
m¨ussten
Ceph/oeffentlich Sebastian Nickel 1.0
17. 17
Neuer Ceph Cluster bei der Nine
Ergebnis nach zweitem Test:
Ceph/oeffentlich Sebastian Nickel 1.0
18. 18
Neuer Ceph Cluster bei der Nine
Generelles Ergebnis:
Cache Tiering nur f¨ur bestimmte Einsatzzwecke
Probleme beim ’hot-pull’ einer SSD
Red Hat Ceph Storage 2.0: ’Cache tiering is now deprecated’
Wir wollen einen SSD Ceph Cluster!
Ceph/oeffentlich Sebastian Nickel 1.0
19. 19
Neuer Ceph Cluster bei der Nine - SSD
mehrere Varianten standen zur Auswahl (SATA SSD +
NVME; nur NVME; nur SATA SSD)
gewonnen hat: only NVME Cluster
Hardware:
2 x 10 Core Intel CPU
64GB RAM
2 x Intel SSD DC 3510 f¨ur OS
4x Intel SSD DC P3600 NVME Disks
4 x 10G NIC
Ceph/oeffentlich Sebastian Nickel 1.0
20. 20
Neuer Ceph Cluster bei der Nine - Benchmark
jede Komponente des Clusters mit fio benchmarken
immer gleiche Testbedingungen
mehrere Testl¨aufe durchf¨uhren und Ergebnis mitteln
Ceph/oeffentlich Sebastian Nickel 1.0
22. 22
Neuer Ceph Cluster bei der Nine - Benchmark
weitere Tests welche man ausf¨uhren kann
ceph tell osd.<number> bench
rados bench -p <pool> <dauer> write
iperf
fio mit rbd engine
Ceph/oeffentlich Sebastian Nickel 1.0
23. 23
Neuer Ceph Cluster bei der Nine - iperf
iperf Tests auf gebondetem Interface mit VLAN tags
maximal 2.8 Gbps zwischen Compute Node und Ceph Node
MTU variiert → 4.8 Gbps
nur bonding ohne VLAN oder kein bonding mit VLAN → 9.x
Gbps
bonding + VLAN ohne Switch → 9.x Gbps
Ergebnis: kein VLAN
Ceph/oeffentlich Sebastian Nickel 1.0
24. 24
Neuer Ceph Cluster bei der Nine - tunings
CPUs immer auf 100% der max. Taktfrequenz laufen lassen
OSDs auf CPUs pinnen
rq affinity der NVME devices setzen
2 OSDs pro NVME device
Ceph/oeffentlich Sebastian Nickel 1.0
26. 26
Neuer Ceph Cluster bei der Nine - RedHat Cluster Check
RedHat Cluster Check durchf¨uhren lassen
interessante Ergebnisse:
es gibt noch keine Recommendations f¨ur NVME Cluster
alle NVMEs sind via PCIe Bus auf CPU1 verbunden, alle NICs
auf CPU0
Crush tunables nicht optimal
RBD client cache size hatte unit extensions (MB)
Ceph/oeffentlich Sebastian Nickel 1.0
27. 27
Neuer Ceph Cluster bei der Nine - Fazit
eine VM kann den Speed der NVME devices nicht voll nutzen
Parallelisierung bei NVME ist wichtig
es gibt noch keine grossen Erfahrungen damit
Cluster Check durch externe Firma sinnvoll
Ceph/oeffentlich Sebastian Nickel 1.0