a new centralized volume storage solution for docker and container cloud by wentao zhang, huawei

Post on 06-Jan-2017

653 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

top related