TechTalkThursday 27.10.2016: Ceph im NVME Cluster

29

Transcript of TechTalkThursday 27.10.2016: Ceph im NVME Cluster

Page 1: TechTalkThursday 27.10.2016: Ceph im NVME Cluster
Page 2: 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

Page 3: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

Ceph - Architecture

Page 4: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 5: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

5

Ceph - Komponenten

Ceph/oeffentlich Sebastian Nickel 1.0

Page 6: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 7: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 8: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

8

Ceph - Komponenten

I MDSI Meta-Daten Daemon fur CephFSI Eigenschaften:

def explainMDS:

raise NoKnowledgeException("not in use")

Ceph/oeffentlich Sebastian Nickel 1.0

Page 9: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 10: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 11: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

11

Ceph - Placement Groups

I Placement GroupsI Abstraktionsschicht zwischen OSD und Objekten

Ceph/oeffentlich Sebastian Nickel 1.0

Page 12: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 13: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 14: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 15: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 16: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 17: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

17

Neuer Ceph Cluster bei der Nine

I Ergebnis nach zweitem Test:

Ceph/oeffentlich Sebastian Nickel 1.0

Page 18: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 19: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 20: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 21: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 22: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 23: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 24: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 25: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 26: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 27: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

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

Page 28: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

28

Fragen?

Ceph/oeffentlich Sebastian Nickel 1.0

Page 29: TechTalkThursday 27.10.2016: Ceph im NVME Cluster

29

Danke?

Ceph/oeffentlich Sebastian Nickel 1.0