Upgrade to Pro — share decks privately, control downloads, hide ads and more …

#Rejekts19 - OpenEBS DeepDive

#Rejekts19 - OpenEBS DeepDive

Avatar for Murat Karslioglu

Murat Karslioglu

November 17, 2019

Other Decks in Technology

Transcript

  1. OpenEBS Deep Dive Visit us at KubeCon Booth SE23 Free

    Technical Workshop on 18th @muratkarslioglu @harshvkarn
  2. Why it matters? • HW>Virt>Cloud>Containers • CSI is an interface.

    It is not the answer to everything • Autonomy / Storage HW trends / Agility
  3. The Problem with Stateful Apps & Storage microservice microservice microservice

    microservice microservice microservice INSIDE K8s Very Agile OUTSIDE K8s Locked in place
  4. No HA Lock-in No Snapshots Simple, familiar App granularity K8S

    native 100% user space DAS/Local PV OpenEBS CAS K8s Node K8s Node App App App PV PV App PV App App Not agile Lock-in Incompatible Snapshots Storage Server Vol Vol Vol PV CAS Pod(s) NAS/EBS PV K8s Node PV CAS Pod(s) App PV PV App PV App CAS Pod(s) CAS Pod(s) Architecture Comparison CAS Pod(s)
  5. OpenEBS architecture Master Components Storage Manager(s) (CSI Controller) NDM Storage

    (CSI) Agent Others ( Velero, Director..) Node Components Node n) Node 1) NDM Storage (CSI) Agent Others ( Velero, Director..) Others(Velero, Director, … ) Data Engines Data Engines OpenEBS API Server OpenEBS Provisioner
  6. Pluggable Storage Engines The developer experience remains the same. Provisioned

    via StorageClass! Features Comparison cStor Jiva Local PV Max Capacity Expandable - upto total capacity of devices attached to a Node. Max 50G. Matches capacity of attached Device Protect against Node Failures Supported (Replication) Supported (Replication) Not Supported Volume Snapshots Supported (Reference based, COW) Supported (Reference Based) Not Supported Volume Clones Supported (Optimized) Not Supported Not Supported Volume Backup Supported (Optimized) Supported (Full Backup) Supported (Full Backup) External HDD, SSD on Nodes Preferred. Optional Optional
  7. Pluggable Storage Engines Disks management differs based on the Storage

    Engine. Capability/Demands cStor Jiva Local PV Device Management Yes Not Supported Yes Replication Native n-way Native n-way No Volume Resize Yes Yes Yes* Recover data from failed disk to new disk Yes (Optimized) Yes Not Supported Read Write Many (RWM) Support Yes (via NFS) Yes (via NFS) Yes* Performance Container/Network Overhead Container/Network Overhead No Overhead Scale n(1) Pod per volume excluding shared pool pods. n(1 + r) Target Pod and Replica pods per Volume. No Overhead
  8. cStor Monitoring, Alerting, Logging, Tracking, . . . (Example: Prometheus

    Fluentd, Jaegar . . . ) cStor Volume Target kubectl CSI Agent ( iSCSI Initiator) Stateless Target and its Service Infra Management Components Application Node Metrics Exporter Metrics Exporter PV and PVC Storage Nodes (1 . . . m) cStor Pool Stateful Application Pod Service Kubelet cStor Volume Mgmt cStor Pool Mgmt Node Disk
  9. cStor cStor Volume Target Pod Application Node Storage Nodes (1

    . . . m) cStor Pool Pod Stateful Application Pod Node Disk cStor Pool Pod Node Disk cStor Pool Pod Node Disk cStor Volume Target does Synchronous Replication, i.e writes copies of the data to each of the available Replica Pools. cStor Volume Target attaches an unique sequence number to each of the block - before sending the copies to Replica Pools.
  10. Jiva Monitoring, Alerting, Logging, Tracking, . . . (Example: Prometheus

    Fluentd, Jaegar . . . ) Jiva Volume Target kubectl CSI Agent ( iSCSI Initiator) Stateless Target and its Service Infra Management Components Application Node Metrics Exporter PV and PVC Storage Nodes (1 . . . m) Jiva Replica Stateful Application Pod Service Kubelet Host Path
  11. LocalPV kube-apiserver kube-scheduler . . . etcd kubectl Monitoring, Alerting,

    Logging, Tracking, . . . (Example: Prometheus Fluentd, Jaegar . . . ) Node Components (1 . . . n) Kubernetes Master Components Infra Management Components Cluster Level OpenEBS Components Provisioner(s) CSI Controller PVC Node Device Manager (NDM), Velero NDM, Restic Node Device Stateful Application Pod PV Application Operators SC Application Layer Dynamic Provision Layer Disk/Device Management Layer
  12. MayaStor • Low latency, high throughput data engine based on

    NVMe-oF technology ◦ micro-VM ready (secure containers) • Lockless, shared nothing design with scale per CPU core approach, written in RUST for additional safety guarantees • In flight data integrity leveraging (DIF/DIX) crucial for multi-cloud and data mobility • 100% in user space, and integration with VPP-VCL and DPDK for even higher performance demanding workloads • 100% CSI based, creating a declarative dataplane where the user interacts with the concepts of (now well understood) PV and PVCS
  13. MayaStor • Composable: consume existing storage subsystems and unify them

    as a single PV ◦ RBD (ceph), iSCSI, local disks (PV), existing NVMe arrays • Strict data placement capabilities leveraging existing k8s concepts in terms of labels, taints and tollerations (data routing) with pluggable data scheduling algorithms • Cross-cloud data at rest encryption, no more data pumps when moving between different cloud vendors • Hybrid PVs, make use of SCM, NVMe and rotational or object ◦ Use SCM for write journals, NVMe for caching and object for data storage or whatever the developer wants • Inspire to be what for storage what k8s is for compute: make your data as agile as the applications that they serve https://blog.mayadata.io/openebs/composable-you-keep-saying-that-word
  14. Node Device Manager (NDM) • NDM runs as a daemonset

    and maintains the block devices as CRs • NDM operator links north bound and sound bound interfaces Application Developer PVC OpenEBS LocalPV Provisioner OpenEBS cStor/Jiva volume Provisioner cStor Pool Provisioner NDM Operator NDM Sound bound provisioner CSI Drivers OpenStack VSAN OpenSDS Legacy (NetApp/Pure) Block devices in etcd Director/ Director Onprem (DataOps) Auto provisioning of disks VSAN EBS/GPD/ Azure Disks Any CSI driver • Complete disk management including auto provisioning to smoothen the data ops • Data mobility becomes easier with auto provisioning on remote clouds
  15. OpenEBS Director overview SREs Highly Scalable multi-tenant Prometheus server (Cortex)

    Kubernetes cluster SREs / Admins OnPrem Helm GKE DevOps Multi-tenant EFK stack for logs Multi-tenant alert/ Chat/Grafana servers ML engine processing the metrics, events Core director engine (Authentication, rule engines, fault mgmt etc) Kubernetes clusters DMaaS operator Chaos Operator Prometheus agent Topology agent Data management operator WebSocket Proxy Prometheus metrics EFK Logs Billing Topology view DMaaS Continuous Assurance (Chaos Eng as a Service) Istio visibility DBaaS Application lifecycle management Director Online/OnPrem
  16. DevOps Architect Developer Kube Schld Kube API Server Install OpenEBS

    iSCSI/ NVMe Scheduler NDM Provisioner /CSI Plugin Operator Policy Controller cStor Jiva etcd OpenEBS and Persona workflow
  17. DevOps Architect Developer Kube Schld Kube API Server iSCSI Scheduler

    NDM Provisioner /CSI Plugin Operator Policy Controller - OpenEBS Installed etcd NDM discovers disks on all nodes and disk CRs are pushed to etcd - Disks are discovered and ready Create pools and storage classes Storage pools are provisioned on appropriate nodes. Storage classes are created at cluster scope Storage Classes YAML manifest Pools OpenEBS and Persona workflow
  18. DevOps Architect Developer Kube Schld Kube API Server iSCSI Scheduler

    NDM Provisioner /CSI Plugin Operator Policy Controller - OpenEBS Installed etcd - Disks are discovered and ready Storage Classes - Storage pools and classes are created Deploy stateful app with PVC YAML manifest Pools APP PV cStor OpenEBS and Persona workflow
  19. DevOps Architect Developer Kube Schld Kube API Server iSCSI Scheduler

    NDM Provisioner /CSI Plugin Operator Policy Controller - OpenEBS Installed etcd - Disks are discovered and ready Storage Classes - Storage pools and classes are created Pools APP PV cStor - PV with replicas across zones provisioned OpenEBS and Persona workflow
  20. Get Started - Go to mayadata.io + Quick chat with

    our engineer about your use cases + We are on Slack and you can have a private channel + We will setup your Premium support and OpenEBS Director Account + We will show you the full potential and tune the performance + We will assist with your pilot or POC. + We will make you successful, we know storage and K8s very well!