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
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?