Elara is a Docker volume plugin that provides a distributed volume management tool and connection between containers and shared storage providers. It supports advanced volume operations like snapshots, backups, migration, IOPS, disk quotas and extending volumes. Elara uses a key-value storage as a database to store node status remotely. It focuses on shared storage and supports multiple backend drivers like NFS, Cinder and filesystem/block devices.
2. 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.
3. 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
6. • 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
docker
Elara
docker
8. 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!
9. 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 Elara
Docker 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(!)
11. 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(!)
12. 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
13. Status Management
Elara 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…
14. Elara Scenario
The connection between
Container and shared storage.
Cover all the North Interfaces
for Docker
15. Backend driver
Filesystem & Block Device
NFS, Cinder, DJ as backend
easy to extend
Difference opaque to user
Driver + Instance concept
Block Device
Driver
Volume
Manager
Driver
Interface
FileSystem
Driver
Cinder
Huawei
DJ
SAN
NFS Driver
NAS
Manila
16. 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.
23. Elara Volume Work Flow
1. Create Volume request from docker, elara,
kubelete..
2. Docker Daemon send Volume Plugin API to Elara
daemon
3. Elara daemon access database (etcd),
4. Elara send request to backend storage
5. 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
Elara
Client
8
1 1
2
3
4
Backend Storage
6
7
5
/dev/vdx
volume
volume