Containerized Storage for Containers
@OpenEBS
8 April 2017
Containerized Storage for Containers!
It is happening!!!
Manifests
express
intent
K8S used with special care for apps requiring
persistence because they require brittle tight
coupling.
Container 1 Container 2 Container 2
Hard wired connections via plug-in
stateless stateful
NAS SAN S3 NAS SAN S3
Without OpenEBS DevOps workflow broken
Manifests
express
intent
stateless stateful
No changes to DevOps workflow even for containers requiring
persistence. Users manifest their intent and the storage and
storage controllers adjust automatically as needed.
OpenEBS
Policy engine
Remote Storage
Local Storage
OpenEBS Storage
Hosts
OpenEBS VSMs
OpenEBS Storage Cluster
APIs
Containers and underlying storage,
local on host or dedicated storage
pods OR remote S3 or EBS storage
all grouped into a storage cloud that
just works. Billing by AWS.
Manifests
express
intent
With OpenEBS the workflow works
OpenEBS 0.2 ( Ready For Trials! )
https://github.com/openebs/openebs/releases/tag/v0.2
(Beta) Integrated with Kubernetes
(Beta)High Availability via Sync Replication
(Beta) Block Storage (available via iSCSI)
(Alpha) Data Protection ( Local Snapshots )
(Alpha) Data Backup with Amazon S3
OpenEBS 0.2 ( Ready For Trials! )
https://github.com/openebs/openebs/releases/tag/v0.2
(Beta) Integrated with Kubernetes
(Beta)High Availability via Sync Replication
(Beta) Block Storage (available via iSCSI)
(Alpha) Data Protection ( Local Snapshots )
(Alpha) Data Backup with Amazon S3
OpenEBS - Word of mouth
Containerized storage for containers
Calico / Flannel owns networking for K8S. OpenEBS owns
storage.
The only open source solution built for this. CEPH is not built
to be containerized.
I run (use) OpenEBS just like I run (use) K8S (EBS).
OpenEBS got the storage ops off my back! Because of OpenEBS
we are rolling into production.
Demo
K8s master
K8s minions
FlexVolume
(OpenEBS Driver)
OpenEBS 0.2
K8s master
K8s minions
FlexVolume
(OpenEBS Driver)
OpenEBS 0.2
K8s master
K8s minions Pod - Stateful App
FlexVolume
(OpenEBS Driver)
HTTPS
OpenEBS 0.2
K8s master
K8s minions
OpenEBS Maya
Master
(Maya API Server)
(Nomad Server)
(maya cli)
Pod - Stateful App
FlexVolume
(OpenEBS Driver)
HTTPS
OpenEBS 0.2
K8s master
K8s minions
OpenEBS Maya
Master
(Maya API Server)
(Nomad Server)
(maya cli)
Pod - Stateful App
Remote Storage
Local Storage
OpenEBS Storage Hosts
(Nomad Agent)
(VSM NW Wrapper)
(maya cli)
FlexVolume
(OpenEBS Driver)
HTTPS
OpenEBS 0.2
K8s master
K8s minions
OpenEBS Maya
Master
(Maya API Server)
(Nomad Server)
(maya cli)
Pod - Stateful App
Remote Storage
Local Storage
OpenEBS Storage Hosts
(Nomad Agent)
(VSM NW Wrapper)
(maya cli)
OpenEBS VSMs / Storage Pod
FlexVolume
(OpenEBS Driver)
HTTPS
OpenEBS 0.2
K8s master
K8s minions
OpenEBS Maya
Master
(Maya API Server)
(Nomad Server)
(maya cli)
Pod - Stateful App
Remote Storage
Local Storage
OpenEBS Storage Hosts
(Nomad Agent)
(VSM NW Wrapper)
(maya cli)
OpenEBS VSMs / Storage Pod
iSCSI/Data
Remote Storage
Local Storage
OpenEBS Storage Hosts
(Nomad Agent)
(VSM NW Wrapper)
(maya cli)
iSCSI/Data
FlexVolume
(OpenEBS Driver)
HTTPS
(manage)
OpenEBS 0.2
K8s master
K8s minions
OpenEBS Maya
Master
(Maya API Server)
(Nomad Server)
(maya cli)
OpenEBS VSMs / Storage Pod
Pod - Stateful App
OpenEBS 0.2 ( Ready For Trials! )
Try it with Vagrant Boxes
Ubuntu 16.04
VirtualBox 5.1
Vagrant 1.9.1
https://github.com/openebs/openebs/blob/master/k8s/dedicated/tutorial-ubuntu1604-vagrant.md
K8s 1.6 - Storage Features
PVC
StorageClass
DynamicProvisioners (TPR)
PV
K8s-sig
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
But where is my Data Stored?
PVC
StorageClass
DynamicProvisioners(TPR)
PV
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
Enterprise Storage Servers! ( SAN/NAS )
Enterprise Storage Servers!
PVC
StorageClass
DynamicProvisioners(TPR)
PV
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
Disk Management Layer
Core Storage Features
HA/Multipath Layer
Provisioning/SDS
S
C
A
L
E
P
E
R
F
O
R
M
A
N
C
E
MultiTenancy/RBAC
Monitoring/Alerting
Enterprise Storage Servers! ( SAN/NAS )
Enterprise Storage Servers!
PVC
StorageClass
DynamicProvisioners(TPR)
PV
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
Disk Management Layer
Core Storage Features
HA/Multipath Layer
Provisioning/SDS
S
C
A
L
E
P
E
R
F
O
R
M
A
N
C
E
MultiTenancy/RBAC
Monitoring/Alerting
Another Monolithic Software!
Enterprise Storage Servers! ( SAN/NAS )
Enterprise Storage Servers!
PVC
StorageClass
DynamicProvisioners(TPR)
PV
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
Disk Management Layer
Core Storage Features
HA/Multipath Layer
Provisioning/SDS
S
C
A
L
E
P
E
R
F
O
R
M
A
N
C
E
MultiTenancy/RBAC
Monitoring/Alerting
http://www.cloudbyte.com/
Enterprise Storage Servers! ( SAN/NAS )
Enterprise Storage Servers!
PVC
StorageClass
DynamicProvisioners(TPR)
PV
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
Disk Management Layer
Core Storage Features
HA/Multipath Layer
Provisioning/SDS
S
C
A
L
E
P
E
R
F
O
R
M
A
N
C
E
MultiTenancy/RBAC
Monitoring/Alerting
Can this benefit from moving
to Docker Containers ??
Enterprise Storage Servers! ( SAN/NAS )
Enterprise Storage Servers!
PVC
StorageClass
DynamicProvisioners(TPR)
PV
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
Disk Management Layer
Core Storage Features
HA/Multipath Layer
Provisioning/SDS
S
C
A
L
E
P
E
R
F
O
R
M
A
N
C
E
MultiTenancy/RBAC
Monitoring/Alerting
Can this benefit from moving
to Docker Containers ??
Enterprise Storage Servers! ( SAN/NAS )
Powered By Kubernetes
Scheduling/Managing/Monitoring Volumes at Scale
Rolling Upgrades of Volumes ( No more Storage controller maintenance Windows)
Federated Clusters ( Hybrid Clouds Deployments - Mobility)
Focus on the Core Storage Features - Delivered Via Containers!
- Smart Capacity Management
- Volume Latency Monitoring and Auto-healing
- Adapt to varying workloads - Application Aware Storage (Zones)
- In tune with the latest in the Storage Hardware Advancements
- Storage Analytics!
Collaborating with Rancher (Jiva)
fapi-server
qorum-net
fe-iscsi fe-tcmu
IO Processor
meta-cacheReplication/Multiplex
snap
control
monitor
key-vault
Front-end Container
Backend Container
Container Image: https://hub.docker.com/r/openebs/jiva/
stats-db IO Store
Backend Store
snap r/w
snap-s3 snap-local
Storage Features (Caching, Compression)syncer
bapi-server
key-vault
Deeper Integration with Orchestration (Maya)
mStorageManage
r
OpenEBS Maya Master
OpenEBS Storage Host
mAPI
mOperator
mConnect
mAnalytics
VSM - Containerized Storage Stack
(5) NVMe Flash or
Storage Backends
attached to Docker Hosts
(3) Backend Containers
to Persist Data
[Cached, Protected]
(1) Frontend Containers
[N/w Storage Service
iSCSI/NFS]
(2) Sync Replication
[Replicated to
different locations]
Local
Disks
NAS
or
SAN
Cloud
Storage
(4) Persistence Disk
Partitions from local
hosts.
Frontend Containers and Backend Containers
encapsulate the storage functionality in docker
images. These containers are scheduled using
orchestration engines like Kubernetes.
OpenEBS Maya Orchestration layer will manage
different types of storage and helps in carving
out the required persistent disks / cache for
Backend Containers.
Maya Orchestration Services can be deployed as
containers in K8s.
Network
Data
(Maya API Server)
(Maya Operator)
(maya cli)
OpenEBS 0.3
K8s master
K8s minions
VSM or Storage PodApplication Pod
TCMU/iSCSI
(Maya Storage Manager(D))
(maya cli)
Application ( yaml )
Containerized Storage for Containers!
Containerized Storage for Containers!
What do you think?
https://github.com/openebs
Join the
community
#slack
Slack.openebs.io
blog.openebs.io
@openebs
http://www.networkworld.com/article/3159735/cloud-computing/containers-what-are-containers.html
What is Containerization
Code and it is
dependencies are
packaged into
“container” executable
Runs in any supported
runtime
Light-weight and spins
up faster.
Where does OpenEBS fit?
DevOps and containers are the future
Which is already here, but unevenly distributed
Real computing needs persistence
But - persistence for DevOps & containers is broken
m-apiserver
VSM - Storage Provisioning ( K8s 1.5)
K8s /
kubelet
K8s OpenEBS
FlexVolume
Driver
k8s-master
m-storage-manager
1
2
3
4
5
6
8
9
10
11 12
7
m-apiserver
VSM - Storage Provisioning (K8s 1.6+)
K8s /
kubelet
K8s OpenEBS
FlexVolume
Driver
k8s-master
m-storage-manager
1
2
3
4
5
6
8
9
10
11 12
7
PVC
StorageClass
DynamicProvisioners(TPR)
PV
Volume Stats Monitoring
Volume Snapshots Scheduling(?)
Remote Storage
Local Storage
HTTPS
OpenEBS 0.2
K8s master
K8s minions
OpenEBS Storage Hosts (osh)
OpenEBS
Maya
Master
(omm)
Remote Storage
Local Storage
OpenEBS Storage Hosts
(Nomad & Consul Agent)
(VSM NW Wrapper)
(maya cli)
Kubernetes FlexVolume
(OpenEBS Driver)
HTTPS
OpenEBS 0.2
K8s master
K8s minions
OpenEBS Maya Master
(Maya API Server)
(Nomad & Consul Server)
(maya cli)
OpenEBS Storage Hosts (osh)
OpenEBS
Maya
Master
(omm)
Persistence Storage Types for Containers
https://portworx.com/stateful-enterprise-applications-docker/
Flocker
Convoy
Rex-ray
Torus
Infinit
PortWorx
OpenEBS*
Docker
Plugin
K8s Plugin

Containerized Storage for Containers - Meetup #3

  • 1.
    Containerized Storage forContainers @OpenEBS 8 April 2017
  • 2.
    Containerized Storage forContainers! It is happening!!!
  • 3.
    Manifests express intent K8S used withspecial care for apps requiring persistence because they require brittle tight coupling. Container 1 Container 2 Container 2 Hard wired connections via plug-in stateless stateful NAS SAN S3 NAS SAN S3 Without OpenEBS DevOps workflow broken
  • 4.
    Manifests express intent stateless stateful No changesto DevOps workflow even for containers requiring persistence. Users manifest their intent and the storage and storage controllers adjust automatically as needed. OpenEBS Policy engine Remote Storage Local Storage OpenEBS Storage Hosts OpenEBS VSMs OpenEBS Storage Cluster APIs Containers and underlying storage, local on host or dedicated storage pods OR remote S3 or EBS storage all grouped into a storage cloud that just works. Billing by AWS. Manifests express intent With OpenEBS the workflow works
  • 5.
    OpenEBS 0.2 (Ready For Trials! ) https://github.com/openebs/openebs/releases/tag/v0.2 (Beta) Integrated with Kubernetes (Beta)High Availability via Sync Replication (Beta) Block Storage (available via iSCSI) (Alpha) Data Protection ( Local Snapshots ) (Alpha) Data Backup with Amazon S3
  • 6.
    OpenEBS 0.2 (Ready For Trials! ) https://github.com/openebs/openebs/releases/tag/v0.2 (Beta) Integrated with Kubernetes (Beta)High Availability via Sync Replication (Beta) Block Storage (available via iSCSI) (Alpha) Data Protection ( Local Snapshots ) (Alpha) Data Backup with Amazon S3
  • 7.
    OpenEBS - Wordof mouth Containerized storage for containers Calico / Flannel owns networking for K8S. OpenEBS owns storage. The only open source solution built for this. CEPH is not built to be containerized. I run (use) OpenEBS just like I run (use) K8S (EBS). OpenEBS got the storage ops off my back! Because of OpenEBS we are rolling into production.
  • 8.
  • 9.
  • 10.
    FlexVolume (OpenEBS Driver) OpenEBS 0.2 K8smaster K8s minions Pod - Stateful App
  • 11.
    FlexVolume (OpenEBS Driver) HTTPS OpenEBS 0.2 K8smaster K8s minions OpenEBS Maya Master (Maya API Server) (Nomad Server) (maya cli) Pod - Stateful App
  • 12.
    FlexVolume (OpenEBS Driver) HTTPS OpenEBS 0.2 K8smaster K8s minions OpenEBS Maya Master (Maya API Server) (Nomad Server) (maya cli) Pod - Stateful App Remote Storage Local Storage OpenEBS Storage Hosts (Nomad Agent) (VSM NW Wrapper) (maya cli)
  • 13.
    FlexVolume (OpenEBS Driver) HTTPS OpenEBS 0.2 K8smaster K8s minions OpenEBS Maya Master (Maya API Server) (Nomad Server) (maya cli) Pod - Stateful App Remote Storage Local Storage OpenEBS Storage Hosts (Nomad Agent) (VSM NW Wrapper) (maya cli) OpenEBS VSMs / Storage Pod
  • 14.
    FlexVolume (OpenEBS Driver) HTTPS OpenEBS 0.2 K8smaster K8s minions OpenEBS Maya Master (Maya API Server) (Nomad Server) (maya cli) Pod - Stateful App Remote Storage Local Storage OpenEBS Storage Hosts (Nomad Agent) (VSM NW Wrapper) (maya cli) OpenEBS VSMs / Storage Pod iSCSI/Data
  • 15.
    Remote Storage Local Storage OpenEBSStorage Hosts (Nomad Agent) (VSM NW Wrapper) (maya cli) iSCSI/Data FlexVolume (OpenEBS Driver) HTTPS (manage) OpenEBS 0.2 K8s master K8s minions OpenEBS Maya Master (Maya API Server) (Nomad Server) (maya cli) OpenEBS VSMs / Storage Pod Pod - Stateful App
  • 16.
    OpenEBS 0.2 (Ready For Trials! ) Try it with Vagrant Boxes Ubuntu 16.04 VirtualBox 5.1 Vagrant 1.9.1 https://github.com/openebs/openebs/blob/master/k8s/dedicated/tutorial-ubuntu1604-vagrant.md
  • 17.
    K8s 1.6 -Storage Features PVC StorageClass DynamicProvisioners (TPR) PV K8s-sig Volume Stats Monitoring Volume Snapshots Scheduling(?)
  • 18.
    But where ismy Data Stored? PVC StorageClass DynamicProvisioners(TPR) PV Volume Stats Monitoring Volume Snapshots Scheduling(?) Enterprise Storage Servers! ( SAN/NAS )
  • 19.
    Enterprise Storage Servers! PVC StorageClass DynamicProvisioners(TPR) PV VolumeStats Monitoring Volume Snapshots Scheduling(?) Disk Management Layer Core Storage Features HA/Multipath Layer Provisioning/SDS S C A L E P E R F O R M A N C E MultiTenancy/RBAC Monitoring/Alerting Enterprise Storage Servers! ( SAN/NAS )
  • 20.
    Enterprise Storage Servers! PVC StorageClass DynamicProvisioners(TPR) PV VolumeStats Monitoring Volume Snapshots Scheduling(?) Disk Management Layer Core Storage Features HA/Multipath Layer Provisioning/SDS S C A L E P E R F O R M A N C E MultiTenancy/RBAC Monitoring/Alerting Another Monolithic Software! Enterprise Storage Servers! ( SAN/NAS )
  • 21.
    Enterprise Storage Servers! PVC StorageClass DynamicProvisioners(TPR) PV VolumeStats Monitoring Volume Snapshots Scheduling(?) Disk Management Layer Core Storage Features HA/Multipath Layer Provisioning/SDS S C A L E P E R F O R M A N C E MultiTenancy/RBAC Monitoring/Alerting http://www.cloudbyte.com/ Enterprise Storage Servers! ( SAN/NAS )
  • 22.
    Enterprise Storage Servers! PVC StorageClass DynamicProvisioners(TPR) PV VolumeStats Monitoring Volume Snapshots Scheduling(?) Disk Management Layer Core Storage Features HA/Multipath Layer Provisioning/SDS S C A L E P E R F O R M A N C E MultiTenancy/RBAC Monitoring/Alerting Can this benefit from moving to Docker Containers ?? Enterprise Storage Servers! ( SAN/NAS )
  • 23.
    Enterprise Storage Servers! PVC StorageClass DynamicProvisioners(TPR) PV VolumeStats Monitoring Volume Snapshots Scheduling(?) Disk Management Layer Core Storage Features HA/Multipath Layer Provisioning/SDS S C A L E P E R F O R M A N C E MultiTenancy/RBAC Monitoring/Alerting Can this benefit from moving to Docker Containers ?? Enterprise Storage Servers! ( SAN/NAS )
  • 24.
    Powered By Kubernetes Scheduling/Managing/MonitoringVolumes at Scale Rolling Upgrades of Volumes ( No more Storage controller maintenance Windows) Federated Clusters ( Hybrid Clouds Deployments - Mobility) Focus on the Core Storage Features - Delivered Via Containers! - Smart Capacity Management - Volume Latency Monitoring and Auto-healing - Adapt to varying workloads - Application Aware Storage (Zones) - In tune with the latest in the Storage Hardware Advancements - Storage Analytics!
  • 25.
    Collaborating with Rancher(Jiva) fapi-server qorum-net fe-iscsi fe-tcmu IO Processor meta-cacheReplication/Multiplex snap control monitor key-vault Front-end Container Backend Container Container Image: https://hub.docker.com/r/openebs/jiva/ stats-db IO Store Backend Store snap r/w snap-s3 snap-local Storage Features (Caching, Compression)syncer bapi-server key-vault
  • 26.
    Deeper Integration withOrchestration (Maya) mStorageManage r OpenEBS Maya Master OpenEBS Storage Host mAPI mOperator mConnect mAnalytics
  • 27.
    VSM - ContainerizedStorage Stack (5) NVMe Flash or Storage Backends attached to Docker Hosts (3) Backend Containers to Persist Data [Cached, Protected] (1) Frontend Containers [N/w Storage Service iSCSI/NFS] (2) Sync Replication [Replicated to different locations] Local Disks NAS or SAN Cloud Storage (4) Persistence Disk Partitions from local hosts. Frontend Containers and Backend Containers encapsulate the storage functionality in docker images. These containers are scheduled using orchestration engines like Kubernetes. OpenEBS Maya Orchestration layer will manage different types of storage and helps in carving out the required persistent disks / cache for Backend Containers. Maya Orchestration Services can be deployed as containers in K8s.
  • 28.
    Network Data (Maya API Server) (MayaOperator) (maya cli) OpenEBS 0.3 K8s master K8s minions VSM or Storage PodApplication Pod TCMU/iSCSI (Maya Storage Manager(D)) (maya cli) Application ( yaml ) Containerized Storage for Containers!
  • 29.
  • 30.
    What do youthink? https://github.com/openebs Join the community #slack Slack.openebs.io blog.openebs.io @openebs
  • 31.
    http://www.networkworld.com/article/3159735/cloud-computing/containers-what-are-containers.html What is Containerization Codeand it is dependencies are packaged into “container” executable Runs in any supported runtime Light-weight and spins up faster.
  • 32.
    Where does OpenEBSfit? DevOps and containers are the future Which is already here, but unevenly distributed Real computing needs persistence But - persistence for DevOps & containers is broken
  • 33.
    m-apiserver VSM - StorageProvisioning ( K8s 1.5) K8s / kubelet K8s OpenEBS FlexVolume Driver k8s-master m-storage-manager 1 2 3 4 5 6 8 9 10 11 12 7
  • 34.
    m-apiserver VSM - StorageProvisioning (K8s 1.6+) K8s / kubelet K8s OpenEBS FlexVolume Driver k8s-master m-storage-manager 1 2 3 4 5 6 8 9 10 11 12 7 PVC StorageClass DynamicProvisioners(TPR) PV Volume Stats Monitoring Volume Snapshots Scheduling(?)
  • 35.
    Remote Storage Local Storage HTTPS OpenEBS0.2 K8s master K8s minions OpenEBS Storage Hosts (osh) OpenEBS Maya Master (omm)
  • 36.
    Remote Storage Local Storage OpenEBSStorage Hosts (Nomad & Consul Agent) (VSM NW Wrapper) (maya cli) Kubernetes FlexVolume (OpenEBS Driver) HTTPS OpenEBS 0.2 K8s master K8s minions OpenEBS Maya Master (Maya API Server) (Nomad & Consul Server) (maya cli) OpenEBS Storage Hosts (osh) OpenEBS Maya Master (omm)
  • 37.
    Persistence Storage Typesfor Containers https://portworx.com/stateful-enterprise-applications-docker/ Flocker Convoy Rex-ray Torus Infinit PortWorx OpenEBS* Docker Plugin K8s Plugin

Editor's Notes

  • #26 https://s-media-cache-ak0.pinimg.com/736x/fc/f0/69/fcf0693653f50a9db3d0ee7ec305c1d8.jpg
  • #31 Join the growing community. Do follow us on twitter and our blog.
  • #33 We are HERE. Lets do this together.