27.3. Red Hat Gluster Storage を使用する永続ストレージ
27.3.1. 概要
Red Hat Gluster Storage は、OpenShift Container Platform の永続ストレージおよび動的プロビジョニングを提供するように設定できます。OpenShift Container Platform 内のコンテナー化ストレージ (コンバージドモード) と、独自のノードでコンテナー化されていないノード (インデペンデントモード) の両方を使用することができます。
27.3.1.1. コンバージドモード
接続モードの場合、Red Hat Gluster Storage は、Container-Native Storage を使って、コンテナー化されたディレクトリーを OpenShift Container Platform ノードで実行します。それにより、コンピュートおよびストレージインスタンスをスケジュールでき、同じハードウェアのセットから実行することができます。
図27.1 アーキテクチャー: コンバージドモード
コンバージドモードは Red Hat Gluster Storage 3.4 で利用できます。詳細は、Container-Native Storage for OpenShift Container Platform を参照してください。
27.3.1.2. インデペンデントモード
独立モードの場合、Container-Ready Storage を使用することで、Red Hat Gluster Storage は独自の専用ノードで実行され、GlusterFS のボリューム管理 REST サービスの heketi のインスタンスによって管理されます。この heketi サービスは、スタンドアロンではなく、コンテナー化された状態で実行する必要があります。コンテナー化の場合、簡単なメカニズムで高可用性をサービスに提供できます。本書では、コンテナー化された heketi 設定にフォーカスします。
27.3.1.3. スタンドアロンの Red Hat Gluster Storage
スタンドアロンの Red Hat Gluster Storage クラスターが環境で使用できる場合、OpenShift Container Platform の GlusterFS ボリュームプラグインを使用してそのクラスター上でボリュームを使用することができます。この方法は、アプリケーションが専用のコンピュートノード、OpenShift Container Platform クラスターで実行され、ストレージはその専用ノードから提供される従来のデプロイメントです。
図27.2 アーキテクチャー - OpenShift Container Platform の GlusterFS ボリュームプラグインを使用したスタンドアロンの Red Hat Gluster Storage クラスター
Red Hat Gluster Storage の詳細は、Red Hat Gluster Storage Installation Guide および Red Hat Gluster Storage Administration Guide を参照してください。
インフラストラクチャーにおけるストレージの高可用性は、基礎となるストレージのプロバイダーに委ねられています。
27.3.1.4. GlusterFS ボリューム
GlusterFS ボリュームは、POSIX に準拠したファイルシステムを提供し、クラスター上の 1 つ以上のノードにまたがる 1 つ以上のブリックから設定されます。このブリックは所定のストレージノード上のディレクトリーであり、一般的にブロックストレージデバイスのマウントポイントになります。GlusterFS はボリュームの設定に応じて、所定のボリュームのブリック間でファイルの分散および複製を処理します。
heketi は、ボリューム管理において、作成、削除、サイズ変更といった一般的な操作に使用することが推奨されます。OpenShift Container Platform は、GlusterFS プロビジョナーを使用する際に heketi が存在していることを前提としています。heketi はデフォルトで、レプリカ数が 3 のボリュームを作成します。 このボリュームの各ファイルには 3 つの異なるノードをまたがる 3 つのコピーがあります。 したがって、heketi が使用する Red Hat Gluster Storage クラスターでは 3 つ以上のノードを利用可能にすることが推奨されます。
GlusterFS ボリュームに使用可能な機能は多数ありますが、これらについては本書では扱いません。
27.3.1.5. gluster-block ボリューム
gluster-block ボリュームは、iSCSI 上にマウントすることが可能なボリュームです。既存の GlusterFS ボリュームにファイルを作成し、そのファイルをブロックデバイスとして iSCSI ターゲットを介して提供することでマウントできます。このような GlusterFS ボリュームは、ブロックホスティングボリュームと呼ばれます。
gluster-block ボリュームにはトレードオフもあります。iSCSI ターゲットとして使用される場合、複数のノード/クライアントでマウントできる GlusterFS ボリュームとは対照的に、gluster-block ボリュームをマウントできるのは 1 回に 1 つのノード/クライアントのみです。ただし、バックエンドのファイルであるため、GlusterFS ボリュームでは一般にコストのかかる操作 (メタデータの参照など) を、GlusterFS ボリュームでの一般的により高速な操作 (読み取り、書き込みなど) に変換することが可能です。それにより、特定の負荷に対するパフォーマンスを大幅に改善できる可能性があります。
OpenShift Container Storage と OpenShift Container Platform の相互運用性の詳細は、OpenShift Container Storage and OpenShift Container Platform interoperability matrix を参照してください。
27.3.1.6. Gluster S3 Storage
Gluster S3 サービスは、ユーザーアプリケーションが S3 インターフェイスを介して GlusterFS ストレージへアクセスすることを可能にします。このサービスは GlusterFS の、オブジェクトデータ用とオブジェクトメタデータ用の 2 つのボリュームにバインドされ、受信する S3 REST 要求をボリューム上のファイルシステム操作に変換します。このサービスは OpenShift Container Platform 内の Pod として実行することが推奨されます。
現時点では、Gluster S3 サービスの使用およびインストールはテクノロジープレビューの段階にあります。