a new centralized volume storage solution for docker and container cloud by wentao zhang, huawei
TRANSCRIPT
Elara Introduction
WentaoZhang?
About Me
• Seven Years Work Experience: 2009-2014, Ericsson. 14-Now, 2012 Lab department, Huawei
Company. • Skills:
Familiar with Docker platform Familiar with Openstack storage . Good at Linux Platform Software Development. Familiar with Linux Kernel development.
Agenda
Why Elara
• Local Storage vs Shared Storage
• Why Elara
What is Elara
• New Features of Elara• Architecture• Status Management• Elara Scenario• Backend driver• Support Storage Interface
Elara IntroductionA docker Volume plugin
A Glimpse of Elara
• A Docker Volume Plugin
• A Distributed Volume Management Tool
• A Connection between Container and Shared Storage Provider
• Rich of volume operations.
A Glimpse of Elara
Storage Pool
…
Elara
dockerElara
docker
Why Elara?
Local Storage vs Shared Storage• Local Storage
– Data stores in Local machine.– Migration is difficult and cost high– Server crash hard to recover data.– Docker graphic driver
• Shared Storage– Persistent Storage for Docker– Easy to support Container Migration– Like openstack (cinder, manila, Swift), ceph…
migration
Host A Host B
copy
Glad to useShared Storage by Plugins in containers!
Elara come up• Focus on large container cloud
distribution. Node Management (domain) Auto-deploy
• Focus on shared storage only.• Meet all the requirement from Docker data
volume storage.• Run on Huawei Storage Device and the
Devices from other manufactory.
Why ElaraDocker Volume Status• Docker and lots of Plugins Supports
Local Volume. Local Storage. Local Database.
• Lack of volume operation interface. Snapshot operation Qos(IOPS and disk quota, resize..)
• No resource Scheduler(!)
What is Elara?
New Features of Elara
• Node management• Status stored remotely in credible storage.• Focus on shared storage• Advanced operations on volumes• Multiple backend driver• Resource scheduler(!)
Architecture• KV storage as
database.• Container migration• Support snapshot,
backup, migration, • Support Qos like IPOS,
disk quota, extend volume.
• Suport bckend driver extention
• Focus on shared storage only
Status ManagementElara node status management
K-v storage
Each node registered
All Status stored remotely
All nodes Equal
K-V Storage
Node info
Volume Status
Elara Elara Elara…
Elara Scenario The connection between Container and shared storage.
Cover all the North Interfaces for Docker
Backend driver
Filesystem & Block Device
NFS, Cinder, DJ as backend
easy to extend
Difference opaque to user
Driver + Instance concept
Block Device Driver
VolumeManagerDriver
Interface
FileSystemDriver
CinderHuawei DJ
SAN
NFS Driver
NAS
Manila
Support Storage Interface• Management Interface:
– Volume Operation Create Volume Delete Volume
– Snapshot & Backup Create snapshot Delete snapshot Restore volume from snapshot
– Oos: IPOS. Extend Volume. Disk Quota.
• Data Plane:– Volume Resource Pool
Provide muti-backends to virtual Pool, maybe several physical volume make up one virtual pool.
– Volume Scheduler Load Backend, scheduler
– Volume Transfer Migration and backup the data
volume.
Demo
• A glance for Elara.• Elara Openstack show.
Node Status. Volume operation. Snapshot operation.
Elara Show
Openstack show
Thank you!
• Docker origin Volume Interface• Docker Volume Plugin
Docker Volume Interface
Docker Volume Interface• Docker Supported Volume operation
docker run –v /xx/volume:/data niginx:web_server
• Kubernets distributed volumes Kubernetes has many backends Do not support volume plugin
K8S Master
Host A
Docker
Storage
kubelet
VolumeContainer
Volume
Docker Volume Plugin • Basic knowledge
– Defined by community– Plugin Discovery(config)
• APIs– VolumeDriver.Active– VolumeDriver.Create– VolumeDriver.Remove– VolumeDriver.Mount– VolumeDriver.Path– VolumeDriver.Umount– VolumeDriver.Get– VolumeDriver.List
Elara Volume Work Flow1. Create Volume request from docker, elara,
kubelete..2. Docker Daemon send Volume Plugin API to Elara
daemon3. Elara daemon access database (etcd),4. Elara send request to backend storage5. Backend storage will create a volume.6. Elara send attach command to attach volume to
host.7. Storage backend will use protocol (like iscsi) to
attach it to the host. Host will scan this volume.8. Elara will format this volume and mkfs for it, and
mount to a path and send to docker to use it.
Host A
Docker Daemon
Elara Daemon ETCD
Docker Client
ElaraClient
8
1 1
23
4
Backend Storage
6
75
/dev/vdx
volume
volume
https://github.com/docker/docker/blob/master/docs/extend/plugin_api.md
https://github.com/docker/docker/blob/master/docs/extend/plugins_volume.m
d
Quote