Ceph als primaire storage voor je datacenter

Stefan Kooman, @basseroet, stefan@bit.nl BIT

Cephalopoda

Cephalopod (inktvis) eigenschappen

  • Redundant
  • "Self healing"
  • Gedistribueerd
  • Intelligentie verspreid over lichaam
  • Relatief hoge verhouding hersenen / lichaams
  • (Doen aan "updates" middels "RNA editing")

Redundant

World domination!

Ceph Storage eigenschappen

  • Redundant
  • "Self healing"
  • Gedistribueerd
  • Intelligentie verspreid in het cluster
  • Releatief hoge verhouding CPU/RAM / opslagverhouding
  • (Software updates kunnen eigenschappen aanpassen)

Verschillen (lijst niet compleet)

  • Levensverwachting
  • Ontwikkeltijd
  • SPOF

Wat is Ceph?

  • Ceph is een alles-in-1 gedistribueerd opslagsysteeem, ontworpen voor uitstekende performance, betrouwbaarheid en schaalbaarheid.

Hoe werkt dat?

RADOS: reliable autonomic distributed object store

Wat precies?

Voor Wie?

  • Ontwikkelaars
  • Cloud Admins
  • Mail Admins
  • Cluster Admins
  • Storage Admins

Ontwikkelaars

  • Native ceph middels librados (C,C++,Java,Python,Ruby,PHP)
  • S3 / Swift compatible API

Cloud Admins

    VM disk images
  • thin-provisioning
  • Copy-on-write clones
  • Linux kernel support
  • Incrementele backups
  • Asynchrone replicatie

Mail Admins

    Librados mailbox (librmb) experimenteel)

Cluster Admins

    CTDB (Samba) + Ceph = Voorkomt Split Brain in HA opstellingen

  • Ceph RADOS cluster mutex helper

Storage Admins

  • Redundante Block Storage (RBD / iSCSI)
  • Redundante File Storage (Cephfs / NFS)
  • Redundante Object Storage (S3)

Functionele vereisten

  • Redundante Block Storage (RBD / iSCSI)
  • Redundante File Storage (Cephfs / NFS / CIFS)
  • Redundante Object Storage (S3)
  • Moet Datacenter uitval kunnen opvangen
  • weinig onderhoud
  • Stabiel platform
  • horizontaal schaalbaar (ook vanuit economisch perspectief)

Overwegingen

  • Eat your own dog food
  • Geen verschil in ontsluiting tussen BIT / Klanten

Ondersteuning voor traditionele storage protocollen

  • CIFS: Samba bovenop Cephfs
  • NFS: NFS Ganesha bovenop Cephfs
  • iSCSI: Ceph iSCSI Gateway bovenop RBD

Ceph @ BIT Timeline

Ceph Test Cluster

  • Ervaring opdoen met Ceph
  • Testen van Ceph upgrades
  • Test van probleemscenarios (Failure Domain)
  • Uitgangspunt voor productie

Ontwerp van het productie cluster

  • IPv6 Only (Ceph not dual stack)
  • Ontsluiting van Ceph storage via access netwerk van BIT
  • Drie replicas: Datacenter BIT-1, BIT-2A, BIT-2C
  • BGP Routed
  • BGP ECMP across links (schalen bandbreedte met verbindingen)
  • BGP EVPN (VXlan)
  • Redundante paden tussen Datacenters (twee onafhankelijk fiber ringen)
  • Beter teveel (bandbreedte / redundantie) dan te weinig

BGP ECMP in actie

Ceph Production Cluster

Infrastructuur als code

  • GIT (in plaats van SVN)
  • Ansible (in plaats van cfengine2)
  • GITLAB (workflow)

Switch infrastructuur

  • Storage network vergelijkbaar met access netwerk
  • IPv6 only (ook voor OOB)

Monitoring / Metrics

  • Near real-time info
  • Alerting

Monitoring / Metrics

  • Icinga (alerting)
  • InfluxDB (opslag metrics)
  • Telegraf plugin in Ceph MGR (collecting metrics)
  • Grafana (interpretatie)

Oops!

ceph -w

ceph -s

Migratie naar Ceph (2018)

  • (bijna) alle VMs gemigreerd
  • NFS -> Cephfs (10%)
  • iSCSI -> LIO / RBD (SCSI-2 (locking) en SCSI-3 (PGR))

Vragen?