第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
をインポートします。
- OpenShift クラスターにログインします。
サービステンプレートをインポートします。
$ 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
で上書きします。