Ceph
Distributed Storage
Julian “mino” Klinck
GPN15 - 05.06.2015
2
Julian “mino”
Ceph
!
Karlsruhe
gpn15@lab10.de
twitter.com/julianklinck"
#
$
Interessen:
• Netzwerke
• Hardware
• Cocktails
• Hacking
• Musik- und Lichttechnik
3
Julian “mino” Klinck
Ceph
!
Karlsruhe
jklinck@ocedo.com
#
$
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ührung
Storage Allgemein
&
6
Storage '
Ceph
Die Datenhalde
Benutzer Speicher
7
Storage '
Ceph
Mehrere Benutzer
Benutzer Speicher
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Storage
Controller
8
Storage '
Ceph
Mehrere Disks
Benutzer Speicher
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
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
Benutzer
Benutzer
Speicher
Speicher
Speicher
Speicher
Speicher
Speicher
Storage
Controller
10
Storage '
Ceph
Alles eine Skalierungsfrage
Benutzer Speicher
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
Benutzer
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
Benutzer
Benutzer
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
RadosGW
Object 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 Device
Rohe 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)
MDS
Meta 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
CRUSH
Objekte 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

Ceph Introduction @GPN15