Data Grid クラスターのバックアップおよび復元

Red Hat Data Grid 8.2

ガイド

概要

  • 本書の英語版は、こちら で確認できます。
  • 翻訳の更新日:
    2021/08/08
  • 原文の更新日:
    2021/05/27

Data Grid Operator は、障害復旧のため、または Data Grid バージョン間で移行する際に、Data Grid クラスターの状態のバックアップおよび復元を可能にするカスタムリソース (CR) を監視します。
Backup CR
Data Grid クラスターのコンテンツを永続ボリュームにアーカイブします。
Restore CR
アーカイブしたコンテンツを Data Grid クラスターに復元します。

1. Data Grid クラスターのバックアップ

Data Grid クラスターの状態を永続ボリュームに保存するバックアップファイルを作成します。

前提条件

  • spec.service.type: DataGridInfinispan CR を作成します。
  • バックアップを作成する Data Grid クラスターのリソースがあります。バックアップは、キャッシュ、キャッシュエントリー、キャッシュテンプレート、Protobuf スキーマ、カウンター、スクリプトなど、Cache Manager が管理するすべてのリソースをアーカイブします。
重要
Data Grid のバックアップは、スナップショットの分離を提供しません。バックアップ操作がすでにアーカイブされているキャッシュエントリーで書き込み操作が実行される場合、書き込みがバックアップされない可能性があります。クラスターの正確な状態を確実にアーカイブするには、クラスターのバックアップを行う前に、クラスターにアクティブなクライアント接続がないことを確認してください。

手順

  1. Backup CR を作成します。
    1. metadata.name フィールドで Backup CR に名前を付けます。
    2. spec.cluster フィールドでバックアップする Data Grid クラスターを指定します。
      apiVersion: infinispan.org/v2alpha1 kind: Backup metadata: name: my-backup spec: cluster: source-cluster
  2. 特定のリソースのみのバックアップを作成する場合は、spec.resources フィールドを追加します。
    spec: resources: templates: - distributed-sync-prod - distributed-sync-dev caches: - cache-one - cache-two counters: - counter-name protoSchemas: - authors.proto - books.proto tasks: - wordStream.js
    * ワイルドカード文字を使用して、すべてのリソースをバックアップすることもできます。
    spec: resources: caches: - "*" protoSchemas: - "*"
  3. Backup CR を適用します。
    $ oc apply -f my-backup.yaml
    新しい Pod は Data Grid クラスターに参加し、バックアップファイルを作成します。操作が完了すると、Pod はクラスターを離れ、以下のメッセージをログに記録します。
    ISPN005044: Backup file created 'my-backup.zip'
    生成されるバックアップファイルは /opt/infinispan/backups ディレクトリーに保存されます。
  4. 以下のコマンドを実行して、バックアップが成功したことを確認します。
    $ oc describe Backup my-backup

2. Data Grid クラスターの復元

バックアップアーカイブから Data Grid クラスターの状態を復元します。

前提条件

  • ソースクラスターに Backup CR を作成します。
  • 状態を復元する Data Grid サービスノードの Data Grid クラスターを作成します。
    重要
    バックアップを復元する前に、クラスターにアクティブなクライアント接続がないことを確認してください。バックアップから復元したキャッシュエントリーは、最近のキャッシュエントリーを上書きする可能性があります。たとえば、クライアントは、k=1 が含まれるバックアップを復元する前に cache.put(k=2) を実行します。

手順

  1. Restore CR を作成します。
    1. metadata.name フィールドで Restore CR に名前を付けます。
    2. spec.backup フィールドで使用する Backup CR を指定します。
    3. spec.cluster フィールドで復元する Data Grid クラスターを指定します。
      apiVersion: infinispan.org/v2alpha1 kind: Restore metadata: name: my-restore spec: backup: my-backup cluster: target-cluster
  2. spec.resources フィールドを追加して、特定のリソースのみを復元します。
    spec: resources: templates: - distributed-sync-prod - distributed-sync-dev caches: - cache-one - cache-two counters: - counter-name protoSchemas: - authors.proto - books.proto tasks: - wordStream.js
  3. Restore CR を適用します。
    $ oc apply -f my-restore.yaml
    新しい Pod は Data Grid クラスターに参加し、バックアップファイルからの状態を復元します。操作が完了すると、Pod はクラスターを離れ、以下のメッセージをログに記録します。
    ISPN005045: Restore 'my-backup' complete
  4. Data Grid コンソールを開くか、または CLI 接続を確立して、キャッシュとデータがクラスターに復元されていることを確認します。