Dockerコンテナがフェイルオーバーしたとき、ストレージも自動的に切り替えてくれる。オープンソースの「REX-Ray」をDell EMCが無償公開中[PR]

2017年3月13日

ソフトウェアの開発環境や実行環境を実現する基盤として注目度が高まっているDockerコンテナ。

fig Docker - Build, Ship, and Run Any App, Anywhere

Dockerコンテナを利用することで、手もとのノートPCで開発したアプリケーションを簡単にオンプレミスのテスト環境やクラウド上の本番環境などへ持ち運んで展開、実行できるようになります。

Dockerコンテナは軽量で簡単にアプリケーションの実行環境を生成、移動、削除できる点が大きな特長になっています。しかし一方でそのアプリケーションで処理されるデータは、簡単に消えてもらっては困ります。

そこでDockerにはデータを永続化するための仕組みがいくつか用意されています。

Dockerのデータを永続化する4つの方法

Dockerコンテナでデータを永続化するには、すなわちアプリケーションが生成するデータを失わないためには、何らかの方法でデータをストレージに書き出す必要があります。

その仕組みとして例えば、DockerコンテナをホストしているOSのディレクトリを、Dockerコンテナからマウントする機能が用意されています。

あるいは「Docker Volumes」という機能を用いてホストOSのファイルシステムをDockerコンテナのファイルシステムに割り当てることも可能です。似たようなことは、「Data Volume Container」という機能を用いて実現することもできます。

しかし同じ物理ホスト内のストレージにデータを保存するのでは、万が一その物理ホストに障害が発生したときにデータを失いかねません。Dockerコンテナを業務アプリケーションのような重要なアプリケーションの基盤にするには、より信頼性の高いデータ永続化の仕組みが必要です。

そこで、より信頼性の高いデータ永続化を実現する仕組みとして用意されているのが「Docker Volume Plugin」です。

Dockerのストレージ機能はプラグインで拡張できる

Dockerはネットワークやストレージの機能をプラグインで拡張できるようになっています。「Docker Volume Plugin」とは、このプラグイン機能によってDockerコンテナのストレージ機能を拡張する仕組みです。これによって例えばNFSやiSCSIなどによってストレージと接続すれば、Dockerコンテナから高性能かつ高信頼なストレージの利用が可能になります。

DockerのオフィシャルWebサイトにある「Volume plugins」では、ストレージ機能を拡張する20種類以上のプラグインが紹介されています。例えば、オープンソースの分散ファイルシステムであるGlusterFSに接続するための「GlusterFS plugin」、高可用ストレージであるDRBDに接続するための「DRBD plugin」など、さまざまな商用あるいはオープンソースのプラグインが存在します。

その代表的なプラグインの1つが、ストレージ大手Dell EMCがオープンソースで開発し無償で提供している「REX-Ray Plugin」(以下REX-Ray)です。

fig

さまざまなストレージ操作を統一化する「REX-Ray」

REX-Rayを用いることでDockerコンテナからAmazon EBSやCeph、Azure Unmanaged Disk、VirtualBoxのVirtual Mediaなどさまざまなストレージにアクセス可能となります。もちろんDell EMCのIsilonやScaleIOにも対応します。

REX-Rayがサポートするストレージ

Amazon EC2EBS, EFS, S3FS
MicrosoftAzure Unmanaged Disk
GoogleGCE Persistent Disk
DigitalOceanBlock Storage
FittedCloudEBS Optimizer
CephRBD
VirtualBoxVirtual Media
Dell EMCScaleIO, Isilon

REX-Rayの1つ目の特長は、これらのストレージすべてを抽象化し、同じAPI、同じコマンドでボリュームの作成やボリュームのアタッチといったストレージの操作を可能にする点です。

figREX-Rayの内部では、これもDell EMCがオープンソースで開発しているストレージを抽象化するライブラリ「libStorage」が使われている

REX-Rayを用いることで、Dockerコンテナを基盤としたアプリケーションをAWSへデプロイしても、Azureへデプロイしても、Google Cloudへデプロイしても、Virtual Boxでも、そしてオンプレミスでDell EMCのIsilonやScaleIOを利用したとしても、同じストレージコマンドでストレージ操作が可能なのです。

このように複数のプラットフォームを利用していたとしても同一のバイナリイメージを利用できでアプリケーションがシンプルになり、またオペレーションも統一できて容易になります。

当然、REX-Rayを用いてDockerコンテナから外部ストレージを利用できるようになれば、バックアップやディザスタリカバリ、スナップショットといったストレージの高度な機能が利用可能です。

オーケストレーションツールと連係してフェイルオーバー可能

そしてもう1つのREX-Rayの特長は、Dockerコンテナのオーケストレーションツールと連係できる点にあります。

MesosやKubernetesなどのコンテナオーケストレーションツールの基本的な機能は、クラスタ構成を自動的に維持してくれるというものです。例えば3つのDockerコンテナで1つのクラスタを構成する、と設定した場合、クラスタ内のDockerコンテナが何らかの障害で終了するなどしても、オーケストレーションツールが自動的に別のDockerコンテナを起動し、つねに3つのDockerコンテナでクラスタを構成する状態を維持してくれます。

fig

このとき、REX-Rayはオーケストレーションツールと連係し、自動的にストレージへの接続を新しく起動したDockerコンテナへ引き継ぐフェイルオーバー機能を実現してくれます。

fig

Dockerコンテナでのアプリケーションの展開にはオーケストレーションの利用が標準的な構成になろうとしています。そのとき、ストレージの運用も自動的に連係してくれるREX-Rayのようなストレージプラグインも、同じようにDockerコンテナにおける標準的な機能になると考えられます。

(本記事はEMCジャパン提供のタイアップ記事です)

あわせて読みたい

Docker コンテナ型仮想化 ストレージ EMC PR




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本