39
Ceph Distributed Storage Julian “mino” Klinck GPN15 - 05.06.2015

Ceph Introduction @GPN15

  • Upload
    m1no

  • View
    59

  • Download
    0

Embed Size (px)

Citation preview

CephDistributed Storage

Julian “mino” Klinck

GPN15 - 05.06.2015

2

Julian “mino”

Ceph

!

Karlsruhe

[email protected]

twitter.com/julianklinck "

#

$

Interessen:

• Netzwerke

• Hardware

• Cocktails

• Hacking

• Musik- und Lichttechnik

3

Julian “mino” Klinck

Ceph

!

Karlsruhe

[email protected]

#

$

Ceph

• Seit 2014

• Storage Lösung für die Company Cloud

4

Inhalt %

1 2 3 4

Einfuehrung Ceph Basics Verteilung

5 6

Sicherheit Q & A

Storage Allgemein Im Speziellen OSD, Monitor, MDS PGs, Crush,

Angriffsvektoren

Ceph

EinführungStorage Allgemein

&

6

Storage '

Ceph

Die Datenhalde

Benutzer Speicher

7

Storage '

Ceph

Mehrere Benutzer

Benutzer Speicher

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

BenutzerBenutzer

Storage Controller

8

Storage '

Ceph

Mehrere Disks

Benutzer Speicher

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

BenutzerBenutzer

Storage Controller

Speicher

Speicher

Speicher

Speicher

Speicher

Speicher

9

Storage '

Ceph

Darf es etwas mehr sein?

Benutzer Speicher

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

BenutzerBenutzer

Speicher

Speicher

Speicher

Speicher

Speicher

Speicher

Storage Controller

10

Storage '

Ceph

Alles eine Skalierungsfrage

Benutzer Speicher

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

BenutzerBenutzer

Speicher

Speicher

Speicher

Speicher

Speicher

SpeicherController

Controller

Controller

Controller

Controller

Controller

Controller

11

Storage '

Ceph

Alles eine Skalierungsfrage

Benutzer Speicher

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

Benutzer

BenutzerBenutzer

Speicher

Speicher

Speicher

Speicher

Speicher

SpeicherController

Controller

Controller

Controller

Controller

Controller

Controller

Propiertäre Software Propiertäre Hardware

NFS HTTP RAW

12

Ceph 'Überblick

• LGPL 2.1

• Community getrieben

• Skalierbar

• Algorithmus aus Forschungsarbeit

• Kein Single-Point-Of-Failure

• Software basiert

• Selbstkontrollierend

Ceph

Basics(Systeme, OSD, MONITOR, MDS

14

Systeme 'Bits und Bytes

RADOS

A reliable, autonomous, distributed object store comprised of self-healing, self-managing, intelligent storage nodes

LIBRADOS

A library allowing apps to directly access RADOS, with support for C, C++, Java, Python, Ruby,

RBD

A reliable and fully-distributed block device, with a Linux kernel client and a QEMU/KVM driver

CEPH FS

A POSIX-compliant distributed file system, with a Linux kernel client and support for FUSE

RADOSGW

A bucket-based REST gateway, compatible with S3 and Swift

APP APP HOST/VM CLIENT

Quelle:

Ceph

15

OSDs 'Bits und Bytes

• Eine Festplatte = Eine OSD

• Datenspeicher

• Replikation

• Recovery

• Backfilling

• Rebelancing

• Monitoring

• Minimum 2 Speichermedien

DISKOSD

DISKOSD

Ceph

16

OSDs 'Bits und Bytes

DISK

FS

DISK DISK

OSD

DISK DISK

OSD OSD OSD OSD

FS FS FSFS btrfs xfs ext4

MMM

Quelle:

Ceph

17

MONs 'Cluster Status

• Cluster Mitglieder und Status • Consensus Verteile Entscheidungen • Wenige notwendig • Kein User Zugriff

Ceph

Datenzugriff

18

LIBRADOS )

• Zugriff fuer alle RADOS Applikationen • C, C++, Python, PHP, Java, Erlang • Direkter Zugriff auf OSDs • Kein HTTP Overhead

Ceph

19

RadosGW 'Object Storage

Quelle:

Ceph

20

)

• REST proxy

• Backend • Rados

• API für • Buckets • Accounts

• Accounting • S3 und Swift Kompatibel

RadosGWObject Storage

Ceph

21

RBD 'Block Storage

Quelle:

Ceph

22

RBD 'Block Storage

Quelle:

Ceph

23

)

• Festplatten Abbilder • VMs losgelöst von Hosts • Abbilder werden verteilt gespeichert (striping) • Snapshots • Copy-on-write • Unterstützung:

• Kernel 2.6.39+ • Qemu/KVM • OpenStack, CloudStack, Nebula, Proxmox

Rados Block DeviceRohe Bytes

Ceph

24

MDS 'Meta Data Server

Quelle:

Ceph

25

)

• Metadaten für POSIX-Kompatibles Filesystem • Verzeichnissstruktur • Dateien Metadaten (Besitzer, Speicherzeit, Rechte..)

• Metadaten in RADOS • Liefert keine Dateiinhalte • Nur für geteiltes Dateisystem (CephFS)

MDSMeta Data Server

Ceph

Verteilung(PGs, Crush, Mons

27

CRUSH 'Wenn ihr wirklich richtig steht…

Quelle:

Ceph

28

CRUSH 'Wenn ihr wirklich richtig steht…

Quelle:

Ceph

29

)

• Pseudo-Randomiserter Verteilungs Algo • Schnell • Deterministisch und Wiederholbar • Statistisch gleichverteilt • Stabile Zuweisungen • Topologie-Aware • Definierbare Replikation • Gewichtung

CRUSHObjekte sinnvoll verteilen

Ceph

30

Copy-on-Write 'Schaufeln wenn es benötigt wird

Quelle:

Ceph

31

Copy-on-Write 'Schaufeln wenn es benötigt wird

Quelle:

Ceph

32

Copy-on-Write 'Schaufeln wenn es benötigt wird

Quelle:

Ceph

33

Copy-on-Write 'Schaufeln wenn es benötigt wird

Quelle:

Ceph

34

Metadata 'Skalierbarkeit

Quelle:

Ceph

35

Metadata 'Skalierbarkeit

Quelle:

Ceph

Sicherheit*Angriffsvektoren

37

Angriffsvektoren *

• Client Cluster Sessions nicht verschlüsselt

• Session Tokens

• Keyrings auf dem MDS

• Pool Separierung

• S3 / Swift API

• DOS

• API requests

• I/O Last

Ceph

DANKE FÜR DIE AUFMERKSAMKEIT

FRAGEN?

+

ARCAMA

VIEL SPASS AUF DER GPN15