DockerCon '17 Feedback and Introduction of Longhorn at Rancher JP

Preview:

Citation preview

DockerCon ’17 フィードバック+

Project Longhorn

Rancher JP 6th Meetup

Go Chiba @go_chiba

About me Go Chiba

– WorkAWS/Azure...OpenStack/CloudStack...Docker, Orchestrator, Monitoring...

– RoleRancher JP 運営メンバーGUI i18n サポート国内クラウド サポート

– ContactTwitter: @go_chiba

DockerCon ’17 Feedback

Ref: https://www.slideshare.net/gchiba/dockercon-17-feedback-at-paas-jp

Longhorn コンテナ向け分散ブロックストレージ

管理コンポーネントはコンテナとして動作

まだプロトタイプ段階であり商用環境での利用は不可→ 今年後半には商用グレードになる予定

Features

コントローラー per ボリューム

レプリカスケジューリング

コンポーネントはコンテナとして動作

スナップショット/バックアップ(w/ スケジューリング)

Components UI

Longhorn の Web UI を提供

ManagerLonghorn におけるオーケストレーション部担当、KVSを経由してボリュームの状態等を管理

DriverDocker 用ボリュームプラグインの管理(?)

Controllerボリューム毎に存在しiSCSIのターゲットとして動作バックエンドにレプリカを持つ

Replicaボリューム毎に指定したレプリカ数だけ存在、実ボリュームに関するスナップショットやメタデータ等を管理

Architecture - Control Plane -

Architecture - Data Plane -

Workflow

Physical Network

1. Create Overlay Networklonghorn-net(overlay)

docker0 gwbridge docker0 gwbridge

etcd

docker0 gwbridge docker0 gwbridge

longhorn-net(overlay)

Physical Network

2. Deploy etcd

UI etcdmanager

manager

driver UI

docker0 gwbridge docker0 gwbridge

longhorn-net(overlay)

Physical Network

3. Deploy Longhorn Component

driver

LHC etcdLHR LHRUbuntu UI

docker0 gwbridge docker0 gwbridge

longhorn-net(overlay)

Physical Network

LHC: Longhorn Controller

LHR:Longhorn Replica

4. Deploy with longhorn driver

LHC etcdLHR LHRUbuntu UI

docker0 gwbridge docker0 gwbridge

longhorn-net(overlay)

Physical Network

LHC: Longhorn Controller

LHR:Longhorn Replica

More Details...

/dev/longhorn/vol1

iSCSI

LHC etcdLHR LHRUbuntu UI

docker0 gwbridge docker0 gwbridge

longhorn-net(overlay)

Physical Network

LHC: Longhorn Controller

LHR:Longhorn Replica

More Details...

/dev/longhorn/vol1→ /var/lib/rancher/volumes/longhorn/vol1

iSCSI

LHC etcdLHR LHR UI

docker0 gwbridge docker0 gwbridge

longhorn-net(overlay)

Physical Network

LHC: Longhorn Controller

LHR:Longhorn Replica

More Details...

Ubuntu

iSCSI-v vol1:/vol1

/dev/longhorn/vol1→ /var/lib/rancher/volumes/longhorn/vol1

Working today... Swarm クラスタ上で分散ボリュームの作成、作成したボリュームの利用

レプリカの障害検知およびリビルド

スナップショット/バックアップの作成、およびそれらのスケジューリング

GUI と API の提供

Upcoming Kubernetes flexvolume 向けドライバ

Rancher 連携(Longhorn クラスタをカタログからデプロイ)

コントローラー、レプリカのオンラインアップグレード

イベントログ(e.g. レプリカがリビルドされた)

S3 へのバックアップ(コード自体は既に存在しているが API キー等の管理方法を検討中)

Upcoming ディスク容量や IOPS に基づいたレプリカのスケジューリング

現在の実装はシンプルなアンチアフェニティベースでホストを選出

単一ホストにおける複数ディスクサポート

ボリュームに関する統計情報(スループット, IOPS等)

Longhorn UI や API における認証とユーザー管理

ボリューム暗号化

パフォーマンスチューニング

Summary とりあえず動く(Swarmで!)多分 Cattle でも動くけど試せてない

Document もそんな無いコード読むっきゃない

まだまだ実験段階要望があるなら今のうち!!

Thank you!!