ceph introduction @gpn15
TRANSCRIPT
2
Julian “mino”
Ceph
!
Karlsruhe
twitter.com/julianklinck "
#
$
Interessen:
• Netzwerke
• Hardware
• Cocktails
• Hacking
• Musik- und Lichttechnik
3
Julian “mino” Klinck
Ceph
!
Karlsruhe
#
$
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
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
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
20
)
• REST proxy
• Backend • Rados
• API für • Buckets • Accounts
• Accounting • S3 und Swift Kompatibel
RadosGWObject Storage
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
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
29
)
• Pseudo-Randomiserter Verteilungs Algo • Schnell • Deterministisch und Wiederholbar • Statistisch gleichverteilt • Stabile Zuweisungen • Topologie-Aware • Definierbare Replikation • Gewichtung
CRUSHObjekte sinnvoll verteilen
Ceph
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