image_pdfimage_print

以前のブログ「Portworx でパブリック・クラウドのコンテナ・コストを大幅に削減」では、Kubernetes のデータ・サービス・プラットフォームである Portworx をご利用いただくことで、パブリック・クラウドのコンテナ・コストを大幅に削減できるという内容をご紹介しました。今回は、Portworx がパブリック・クラウドにおいてコンテナ・データの可用性を向上させる仕組みについてご紹介します。なお、本ブログの一部は、Kai Davenport による記事をもとに、わたくし溝口が日本語化および加筆、再構成したものです。

EBS フェイルオーバー時の問題を解決

EBS のフェイルオーバー

コンテナで永続データ、特にデータベースや重要なデータを持つ場合には、レプリケーションやフェイルオーバーは欠かせない機能となります。通常、コンテナ・ノードがダウンした際には、次のような手順で EBS(Amazon Elastic Block Store)をフェイルオーバーします。

  1. ノードダウンを検知し、ダウンしたノードから EBS ボリュームをアンマウントしてデタッチする。
  2. ノード上のコンテナを別のノードにリスケジュールし、上記の EBS ボリュームを新しいノードにアタッチする。
  3. EBS ボリュームを使いながらコンテナを起動する。

Portworx - EBS フェイルオーバー時の問題を解決

上記の手順には、エラーの原因となりやすい操作がいくつか含まれています。

  • ダウンして反応しないノードからブロック・デバイスをデタッチ
  • 新しいノードにブロック・デバイスをアタッチ
  • 新しいコンテナにブロック・デバイスをアタッチ

これらの操作では、API コール、ルートユーザー権限によってコマンドを実行しますが、ここでさまざまな問題が発生します。下記に例を示します。

  • AWS への API コールが失敗する。
  • 障害ノードから EBS ドライブのアンマウント、デタッチに失敗する。
  • 移行先ノードが既に EBS ボリュームの制限数に達している。
  • 移行先ノードがマウント・ポイント数の上限に達している。

インターネット上で「stuck ebs volumes」で検索すると、多くの現象が報告されていることがわかります。

検索エンジンで「stuck ebs volumes」と検索すると、多くの現象が報告されている

コンテナと物理ストレージの分離

Portworx では、上述のような問題への対策として、コンテナから見えているボリュームから物理ストレージを分離します。

Portworx - コンテナから見えているボリュームから物理ストレージを分離

さらに、Kubernetes スケジューラと Portworx の連携により、ポッドはレプリケーションが配置されているノードに優先的に再配置されます。これにより、フェイルオーバーはよりシンプルになり、切り替え時間も格段に短くなります。

Portworx でフェイルオーバーがよりシンプルに

 

アベイラビリティ・ゾーンをまたいだレプリケーション

EBS ボリュームを作成すると、そのボリュームは同じアベイラビリティ・ゾーン(AZ)内で自動的にレプリケートされます。一方、Portworx 永続ボリュームは、前述のとおり、コンテナから見えているボリュームと物理ストレージを分離します。ソフトウェア定義のストレージ(SDS:Software-Defined Storage)として仮想ボリュームを作成し、自らのレプリケーション機能で AZ 間での同期レプリケートができるようになります。そのため、ステートフル・ポッドまたはホストが失われた場合に、Kubernetes は、別の AZ であっても、ダウンタイム中にクラスタ内の他のホストに再スケジュールすることで、可用性を高めます。

Portworx - アベイラビリティ・ゾーン(AZ)をまたいだレプリケーション

注:同期は一方向のみで、AZ-2 のボリュームは、同期元の AZ-1 のボリュームが見えなくなったときに、AZ-1 のボリュームを参照していたコンテナが AZ-2 のボリュームを参照するようにスケジュールされます。

今回は、SDS である Portworx ならではの同期レプリケーションと、コンテナから見えるボリュームと物理ストレージの分離によるシンプルかつ迅速なフェイルオーバーをご紹介しました。Portworx は、これらの機能によって、パブリック・クラウドにおけるコンテナ・データの可用性を向上させます。

Portworx をクラウドでご利用いただくことで、大幅なコスト削減も可能になります。以下の記事もあわせてご参照ください。


Pure Storage、Pure Storage のロゴ、およびその他全ての Pure Storage のマーク、製品名、サービス名は、米国およびその他の国における Pure Storage, Inc. の商標または登録商標です。その他記載の会社名、製品名は、各社の商標または登録商標です。