第4章 Data Grid for OpenShift サービスの設定

4.1. Data Grid for OpenShift サービス

Data Grid サービスは、データを失うことなく簡単にスケールアップまたはスケールダウンできるステートフルなアプリケーションです。

cache-service

使いやすい Data Grid for OpenShift クラスターで、高パフォーマンスキャッシングでアプリケーションの応答時間を加速するように設計されています。

  • メモリーのデータはノード間で均等に分散されます。サービスの作成時に、Data Grid クラスターの初期サイズを定義します。また、ディストリビューションも同期できます。データを別のノードに伝播する場合には、送信ノードは操作が完了するまで待ってからスレッドを続行します。
  • キャッシュエントリーの単一コピー (デフォルト)。Pod が再起動すると、その Pod のデータが失われます。データに対する回復性をさらに強化するには、サービスの作成時にレプリケーションを簡単に有効にできます。
  • JVM の効率化を図るため、キャッシュエントリーはオフヒープに保存されます。キャッシュサイズが Pod で利用可能なメモリー量に達すると、エントリーはエビクトされます。オプションで、エビクションポリシーを ContainerFullException をスローするよう変更できます。
datagrid-service
複数のキャッシュ設定を作成できる Data Grid for OpenShift の完全なディストリビューション。インデックスの作成やクエリー、Prometheus モニタリングなどの高度な機能を提供します。

4.1.1. コンテナーストレージ

cache-service および datagrid-service コンテナーでは、ストレージボリュームが /opt/datagrid/standalone/data にマウントされます。

ボリュームのサイズは、デフォルトで 1 GB です。datagrid-service を使用してサイズを調整できますが、cache-service は調整できません。

一時または永続
キャッシュをリモートで作成するときに、一時的または永続的であるかどうかを制御します。永続キャッシュは、キャッシュの定義がストレージボリュームに保存されるため、コンテナーの再起動後も維持されます。デフォルトのキャッシュは常に永続的です。
Persistent (永続)
DataGrid-service を使用すると、キャッシュエントリーが永続化され、ストレージボリュームのインデックスを作成します。データを確実に保存する必要がある場合には、キャッシュストアを使用して、オプションで外部ファイルベースのストレージまたはデータベースに永続化できます。

4.1.2. パーティション処理

デフォルトでは、OpenShift サービスの Data Grid は、パーティション処理の設定を使用してデータの一貫性を確保します。

  • セグメントの所有者がすべて同じパーティションにある場合を除き、キャッシュエントリーの読み取りおよび書き込み操作を拒否する DENY_READ_WRITES 競合解決ストラテジー。
  • 競合が検出されると、キャッシュからエントリーを削除する REMOVE_ALL マージポリシー。
注記

ネットワーク分割は、データがクラスター全体に複製される場合にのみ適用されます。

4.1.3. サービスの可用性の確認

cache-service および datagrid-service のテンプレートは、openshift namespace の Red Hat OpenShift Online および Red Hat OpenShift Container Platform で利用できます。

以下のコマンドを実行して、サービステンプレートが利用可能であることを確認します。

$ oc get templates -n openshift | grep 'cache-service\|datagrid-service'

4.1.3.1. テンプレートのインポート

必要に応じて、以下のように cache-service および datagrid-service をインポートします。

  1. OpenShift クラスターにログインします。
  2. サービステンプレートをインポートします。

    $ for resource in cache-service-template.yaml \
      datagrid-service-template.yaml
    do
      oc create -n openshift -f \
      https://raw.githubusercontent.com/jboss-container-images/jboss-datagrid-7-openshift-image/7.3-v1.9/services/${resource}
    done
    ヒント

    既存のテンプレートを oc replace --force で上書きします。