##| はじめに
FlockerはClusterHQからリリースされた、Dockerのボリュームやコンテナの管理ができるオープンソースツールです。Dockerのデータボリュームをクラスタ間でマイグレーションができるということで、とても興味深かったので調べてみました。
今回は、ClusterHQのサイトにあるABOUT FLOCKERを自分なりの言葉で訳しています。
##| FLOCKERとは?
Flockerはdocker環境で利用するために作られた、データボリュームを管理するオープンソースのツールです。
データ移行ツールによって、Flockerはデータベースなどのステートフルサービスを利用するために必要となるツールを提供します。
単体サーバに縛られたDockerデータボリュームではなく、データセットと呼ばれるFlockerのデータボリュームはクラスタ内にあるコンテナであれば自由に移動ができます。
FlockerはDockerコンテナとデータボリューム両方一緒に管理します。Flockerでマイクロサービスを管理すれば、クラスタ内の別のホストへコンテナとボリュームをセットで移動できます。
##| Flocker操作
FlockerはシンプルなREST APIを使います。Flockerコントロールサービスはクラスタ内の各ノード上で動いているFlockerエージェントと通信してコマンドを実行します。
ほとんどの場合、DockerのFlockerプラグインでFlockerを利用でき、DockerコマンドラインでFlockerを操作できます。多くの複雑な操作も、CLIツールを使うことで直接Flockerを操作できます。もし、FlockerをGo言語のようにプログラムで操作したいなら、PythonまたはRubyでAPIを利用することができます。
Flockerクラスタ上で起こっていることを知りたい時は、データセットとログを調べるためにVolumeHubを利用してください。
##| オーケストレーションとストレージインテグレーション
Flockerはアプリケーションがディストリビューションでもビルドでも動くように設計されています。DockerのFlockerプラグインのおかげで、FlockerはDocker EngineやDocker Swarm、Docker Composeといった有名なコンテナ管理ツールやオーケストレーションツールでも利用できます。
ストレージといえば、FlockerはAmazon EBSやRackspace Cloud Block Storage、EMC ScaleIOのようなブロック単位の共有ストレージもローカルストレージと同じようにサポートします。
なので、アプリケーションにとってベストなストレージを選ぶことができます。
ベストなストレージを選ぶことについてはこちらを参照ください。
多くのプロバイダが提供するような前もって決まっているストレージをFlockerで利用することも可能です。Flockerストレージのサポート情報はこちら。
FIND OUT MORE - 60秒でFlocker
##| ストレージオプションは?
Flockerは共有ストレージ(Amazon EBSやEMC ScaleIO)でもローカルストレージでも利用できます。ベストオプションはやろうとしていることやアプリケーション次第です。どのストレージオプションが良いかは下のチャートを利用してください。もしFlockerを評価したいのならこちらに連絡してください。
推奨要件 | 共有ストレージ | ローカルストレージ(Experimental) |
---|---|---|
サポートストレージ | AWS Elastic Block Storage (EBS), OpenStack Cinder with any supported backend, EMC ScaleIO, EMC XtremIO, VMware vSphere and vSan, NetApp OnTap, Dell Storage SC Series, HPE 3PAR StoreServ and StoreVirtual (with OpenStack only), Huawei OceanStor, Hedvig, NexentaEdge, ConvergeIO, Saratoga Speed |
ローカルディスクを含む全般 |
サポートクラウドプロバイダとオンプレ環境 | AWS, Rackspace, OpenStack private clouds, private data centers with a supported storage environment |
Linux環境全般 |
物理または仮想ホストあたりの最大データボリューム数 | 約25程度 *ただしクラウド環境によります |
100-1000程度 *ただし構成によります |
データボリュームマイグレーション(同データセンター内のサーバ間) | ○ | ○ |
データボリュームマイグレーション(異なるデータセンター内のサーバ間) | ○ | |
データセンター内のフェイルオーバーサポート[^1] | ○ | |
Flocker API | ○ | ○ |
Flocker CLI | ○ | ○ |
サポートファイルシステム | Ext4 | ZFS |
サポートOS | Ubuntu, CentOS 7, CoreOS (coming soon) | Ubuntu, CentOS 7, CoreOS (coming soon) |
このテーブルは以下の条件を満たす場合に限ります。
・VMが同じEBSボリュームにアクセスできること。(AWS)
・VMが同じOpenStack Cinder backendに接続できること。(OpenStack)
・サポートされた同じ物理ストレージアレイに接続できること。
FIND OUT MORE - Flockerのストレージオプションを理解する
Amazon EBSのような共有ストレージオプションやZFSのローカルストレージを利用したFlockerについて学ぶことができます。