SAP HANA のディスク スナップショット ベースのバックアップと復元

このプランニング ガイドでは、Google Cloud の SAP 用エージェントのディスク スナップショット機能について説明します。他の機能の詳細については、Google Cloud の SAP 用エージェントのプランニング ガイドをご覧ください。

ディスク スナップショット機能を使用すると、Compute Engine VM インスタンスで実行されている SAP HANA スケールアップ システムのバックアップと復元を行うことができます。

この機能は SAP HANA のデータ スナップショット機能と統合されており、/hana/data ディスクの標準スナップショットを使用して SAP HANA データベースのバックアップと復元を行うことができます。

エージェントのこの機能を使用して SAP HANA のバックアップと復元を行う方法については、ディスク スナップショットを使用して SAP HANA のバックアップと復元を行うをご覧ください。

毎月の費用の見積もり

作成した標準スナップショットに対して料金が発生します。料金については、ディスク スナップショットをご覧ください。

Google Cloud 料金計算ツールを使用すると、ディスク スナップショットを SAP HANA データ ボリュームのバックアップとして使用する場合の月額費用を見積もることができます。費用の見積もりには次の情報が役立ちます。

  • 最初のディスク スナップショットのフルサイズの推定値。
  • 各ディスク スナップショットの差分サイズの推定値。
  • スナップショットの頻度。たとえば、毎日 1 つのスナップショットを作成する場合、スナップショットの頻度は 24 時間です。
  • スナップショットの保持時間。
  • スナップショット ストレージの冗長性: 単一リージョンまたはマルチリージョン。
  • ネットワーク経由でのリージョン内およびリージョン間のデータ転送量の推定値。たとえば、ソースディスクと異なるロケーションに標準スナップショットを作成したり、そのようなスナップショット復元すると、ネットワーク料金が発生することがあります。

制限事項

Google Cloud の SAP 用エージェントでスナップショット ベースのバックアップと復元を行う場合、次のような制限があります。

  • SAP HANA スケールアウト デプロイには、エージェントのディスク スナップショット機能を使用できません。詳細については、スケールアウト デプロイでのスナップショットの使用をご覧ください。
  • /hana/data ボリュームについて、次のことを確認する必要があります。
    • ストライピングされていない SSD ベースの Persistent Disk または Hyperdisk ボリュームに独立してホストされている。このディスクには、他の SAP HANA ボリュームがホストされないようにする必要があります。SAP Note 2039883 - FAQ: SAP HANA database and data snapshots (storage snapshots) に説明されているように、SAP HANA データベースを復元できるようにするため、ストレージ スナップショットにデータベースのログ領域が含まれないようにする必要があります。
    • 論理ボリュームにマッピングされている。これにより、エージェントはディスク スナップショット ベースのバックアップまたは復元オペレーション中にマウント ポイントを正しく処理できます。
  • Terraform などの Infrastructure as Code(IaC)ツールを使用して SAP HANA システムをデプロイした場合、エージェントはスナップショット ベースのバックアップを作成できますが、復元オペレーションは実行できません。詳細については、IaC ツールベースのデプロイでスナップショットを使用するをご覧ください。
  • バックアップと復元では、SAP HANA ホスト VM で実行されているエージェント インスタンスを使用する必要があります。他の VM で実行されているエージェント インスタンスは使用できません。
  • バックアップと復元を実行するには、root アクセス権を付与するか適切な sudo グループを使用して、特定のオペレーティング システムのコマンドに対する sudo アクセス権を付与する必要があります。詳細については、権限を設定するをご覧ください。

必要な権限

Google Cloud の SAP 用エージェントが SAP HANA システムのディスク スナップショット ベースのバックアップと復元のオペレーションを実行できるようにするには、次に対して権限を設定する必要があります。

  • SAP HANA システムが実行されている Google Cloud プロジェクト。
  • オペレーティング システムでエージェント コマンドを実行しているユーザー(SAP HANA オペレーティング システムのユーザーまたは独自のユーザー)。
  • エージェントが使用する SAP HANA データベース ユーザー。

付与する必要のある権限については、権限を設定するをご覧ください。

ディスク スナップショット ベースのバックアップを作成する

Google Cloud の SAP 用エージェントを使用して SAP HANA のディスク スナップショット ベースのバックアップを作成するには、hanadiskbackup コマンドを実行します。手順については、ディスク スナップショットを使用して SAP HANA のバックアップと復元を行うをご覧ください。

次のフローチャートは、エージェントがバックアップを作成する際の処理の流れを示しています。

Google Cloud の SAP 用エージェントによる SAP HANA のディスク スナップショット ベースのバックアップのフローチャート

エージェントのディスク スナップショット機能が SAP HANA のバックアップを作成する方法

hanadiskbackup コマンドを実行すると、エージェントは次の処理を行います。

  1. hanadiskbackup コマンドに指定されたすべての入力引数を検証します。
  2. hanadiskbackup コマンドに指定された入力を使用して、SAP HANA データベースに接続します。
  3. 既存のスナップショットがないことを確認します。

    /hana/data ボリュームをホストしているディスクのスナップショットが存在し、hanadiskbackup コマンドに abandon-prepared=TRUE が指定されていない場合、エージェントはこの処理を終了します。バックアップは作成されません。この場合、hanadiskbackup コマンドを確認して手動で再実行する必要があります。

  4. スナップショットの作成を開始したことを SAP HANA に通知します。
  5. /hana/data ボリュームをホストする Persistent Disk または Hyperdisk ボリュームのスナップショットを作成します。
  6. スナップショットの作成に成功したことを SAP HANA に通知します。

このバックアップのステップのいずれかでエラーが発生すると、エージェントはスナップショットの作成を UNSUCCESSFUL として処理を終了します。この場合、状況を確認して hanadiskbackup コマンドを手動で再実行する必要があります。/var/log/google-cloud-sap-agent/hanadiskbackup.log ファイルの内容を表示すると、エージェントがバックアップ処理を終了した理由を確認できます。

差分バックアップを作成する

hanadiskbackup コマンドを実行すると、エージェントは、指定したディスクの標準スナップショットを作成します。

標準ディスクのスナップショットの利点は増分のみが保存されることです。2 回目以降のバックアップでは、まったく新しいバックアップが作成されるのではなく、増分ブロックの変更のみが格納されます。つまり、デフォルトでは、Google Cloud の SAP 用エージェントを使用して SAP HANA の最初のディスク スナップショットを作成した場合、その後に作成するスナップショットはすべて差分バックアップになります。差分バックアップを作成するために別の操作を行う必要はありません。

詳細については、増分標準スナップショットの仕組みをご覧ください。

ディスク スナップショットを暗号化する

デフォルトでは、Google Cloud のデータは保存時に AES-256 で暗号化されます。この処理はディスクとディスク スナップショットに保存されるデータに行われます。スナップショットの暗号化に顧客管理の暗号鍵(CMEK)または顧客指定の暗号鍵(CSEK)を使用することもできます。

また、SAP HANA で提供されるデータ ボリュームの暗号化を有効にして、セキュリティを強化することもできます。このオプションの詳細については、データ ボリュームとログボリュームの暗号化の有効化をご覧ください。

ディスク スナップショットを使用して SAP HANA データを復元する

ディスク スナップショット ベースのバックアップ機能を使用して SAP HANA データベースの復元を開始するには、hanadiskrestore コマンドを実行します。手順については、ディスク スナップショットを使用して SAP HANA のバックアップと復元を行うをご覧ください。

次のフローチャートは、エージェントのディスク スナップショット機能が SAP HANA データベースを復元する際の処理の流れを示しています。

Google Cloud の SAP 用エージェントを使用した SAP HANA のディスク スナップショット ベースの復元のフローチャート

エージェントのディスク スナップショット機能を使用して SAP HANA の復元を行う方法

ディスク スナップショットを使用して SAP HANA データベースを復元する手順は次のとおりです。

  1. Google Cloud の SAP 用エージェントを使用して、/hana/data ボリュームをホストしているディスクを復元します。これを行うには、エージェントの hanadiskrestore コマンドを実行します。手順については、ディスク スナップショットを使用して SAP HANA のバックアップと復元を行うをご覧ください。

    エージェントがディスク スナップショットを使用して SAP HANA データ ボリュームを復元する際の処理の流れは次のとおりです。このステップは上のフローチャートに示しています。

    1. hanadiskrestore コマンドに指定されたすべての入力引数を検証します。
    2. SAP HANA を停止します。
    3. /hana/data ボリュームのマウントを解除します。
    4. /hana/data ボリュームをホストしているディスクをホスト VM から切断します。
    5. ディスク スナップショットから /hana/data ボリュームに新しいディスクを作成します。
    6. 新しいディスクをホスト VM にアタッチします。
    7. SAP HANA のボリューム グループを再スキャンします。
  2. 次のサブセクションで説明するように、スナップショットの時刻または特定の時点に SAP HANA データベースを手動で復元します。

この処理のいずれかのステップでエラーが発生すると、エージェントは処理を終了します。この場合、状況を確認して必要に応じてトラブルシューティングを行い、hanadiskrestore コマンドを手動で再試行する必要があります。/var/log/google-cloud-sap-agent/hanadiskrestore.log ファイルの内容を表示すると、エージェントが復元処理を終了した理由を確認できます。

特定の時点に復元する

SAP HANA データベースを特定の時点に復元するには、/hana/data ボリュームをホストしているディスクのスナップショットだけでなく、以前に作成したデータベースの SAP HANA の差分バックアップとログ バックアップが必要です。

SAP HANA ログのバックアップは、エージェントの Backint 機能か、SAP HANA データベースのファイル システム バックアップ機能を使用して作成できます。

復元の実行中に将来のタイムスタンプを指定すると、SAP HANA データベースは最新の状態に復元されます。

外部ソースから復元する

ある SAP HANA システム用に作成したディスク スナップショット ベースのバックアップを使用して、別の SAP HANA システムを復元できます。また、テスト環境から品質保証環境に復元するなど、環境間でシステムを移動することもできます。

手順については、システムのコピーまたは更新を行うをご覧ください。

SAP HANA デプロイでのディスク スナップショットの使用

以降のセクションでは、SAP HANA スケールアップ システムで Google Cloud の SAP 用エージェントのディスク スナップショット機能を使用するための計画情報をシナリオ別に説明します。

HA デプロイでのスナップショットの使用

高可用性(HA)クラスタで実行されている SAP HANA スケールアップ システムの場合、クラスタ内のプライマリ ノードとスタンバイ ノードの両方に Google Cloud の SAP 用エージェントをインストールする必要があります。

SAP HANA HA システムのディスク スナップショット ベースのバックアップを作成するには、プライマリ ノードの /hana/data ディスクに対してのみ hanadiskbackup コマンドを実行する必要があります。フェイルオーバー イベントが発生した場合は、新しいプライマリ ノードで hanadiskbackup コマンドを実行する必要があります。また、コマンドの実行時に、プライマリ ノードのホストの SAP HANA ホスト名または IP アドレスを指定する必要があります。クラスタで使用されている SAP HANA 仮想 IP(VIP)は指定しないでください。

復元オペレーションの実行中に、ディスク スナップショットを使用して、プライマリ ノードまたはスタンバイ ノードのいずれかに /hana/data ボリュームをホストするディスクを復元できます。SAP HANA データベースは、ディスク スナップショットの作成時点または特定の時点に復元できます。

DR デプロイでのスナップショットの使用

Google Cloud の障害復旧(DR)デプロイの SAP HANA スケールアップ システムの場合は、プライマリ ホストとスタンバイ ホストの両方に Google Cloud の SAP 用エージェントをインストールする必要があります。

SAP HANA HA システムのディスク スナップショット ベースのバックアップを作成するには、プライマリ データベース インスタンスの /hana/data ディスクに対してのみ hanadiskbackup コマンドを実行する必要があります。SAP HANA システム レプリケーションを中止してスタンバイ データベース インスタンスを昇格させる場合は、新しいプライマリ インスタンスで hanadiskbackup コマンドを実行する必要があります。

DR デプロイでは、プライマリ データベース インスタンスで復元操作を行います。SAP HANA データベースは、ディスク スナップショットの作成時点または特定の時点に復元できます。

スケールアウト デプロイでのスナップショットの使用

Google Cloud の SAP 用エージェントのディスク スナップショット機能は、SAP HANA スケールアウト デプロイと互換性がありません。

ただし、次のオプションを使用すると、SAP HANA スケールアウト デプロイのバックアップと復元を行うことができます。

IaC ツールベースのデプロイでスナップショットの使用

Google Cloud の SAP 用エージェントのディスク スナップショット機能は、Terraform などの Infrastructure as Code(IaC)ツールでデプロイされた SAP HANA システムと部分的に互換性があります。

エージェントは、これらのシステムのスナップショット ベースのバックアップを作成できますが、復元オペレーションは実行できません。エージェントによるスナップショット ベースの復元では /hana/data ボリュームのディスクが再作成されるため、IaC による状態管理と競合したり、問題が発生する可能性があります。

たとえば、エージェントを使用して復元を行った後、IaC ツールが /hana/data ボリュームをホストしているディスクのステータスを確認するたびに、システムに定義された構成に戻すために前のディスクをアタッチしたり、新しいディスクを削除して以前のディスクを再作成することがあります。これにより、SAP HANA データベースが使用不能になるほど、SAP HANA データベースに重大な影響が生じる可能性があります。

ただし、ほとんどの IaC ツールには、管理しているインフラストラクチャの変更に合わせてシステムの状態を変更できるワークフローが用意されています。IaC ツールでデプロイされた SAP HANA システムを復元する際の大まかな流れは次のとおりです。

  1. SAP HANA データベースを停止します。手順については、SAP ドキュメントの Starting and Stopping SAP HANA Systems をご覧ください。

  2. SAP HANA システムをホストする Compute Engine VM インスタンスを停止します。HA デプロイまたは DR デプロイの場合は、すべての VM を停止します。手順については、VM を停止するをご覧ください。

  3. SAP HANA システムの定義を含む IaC 構成ファイルで /hana/data ボリュームのディスクの定義を変更し、既存のディスク スナップショットを使用して再作成できるようにします。HA / DR デプロイの場合は、この操作をプライマリ SAP HANA ノードに対して行います。

    たとえば、Google Cloud によって提供される Terraform 構成のいずれかを使用して SAP HANA システムをデプロイした場合は、次のように ./terraform/modules/sap_hana/main.tf ファイルに snapshot 引数を指定します。

    # Split data/log/sap disks
    resource "google_compute_disk" "sap_hana_data_disks" {
     count   = var.use_single_shared_data_log_disk ? 0 : var.sap_hana_scaleout_nodes + 1
     name    = format("${var.instance_name}-data%05d", count.index + 1)
     type    = local.final_data_disk_type
     zone    = var.zone
     size    = local.data_pd_size
     snapshot = "hana-SID-snapshot-YYYYMMDD-HHMMSS"
     project = var.project_id
     provisioned_iops = local.final_data_iops
    }
    
  4. 変更した構成を適用します。たとえば、Terraform を使用している場合は、次のコマンドを実行します。

    terraform validate
    terraform apply
    
  5. SAP HANA データベースを復元します。手順については、ディスク スナップショットを使用して復元を行うをご覧ください。

ロギングを有効にする

Google Cloud の SAP 用エージェントは、ディスク スナップショット ベースのバックアップと復元の実行中に、ログファイルに書き込みを行います。バックアップの場合は hanadiskbackup.log、復元の場合は hanadiskrestore.log を使用します。

これらのログファイルは、ホストの /var/log/google-cloud-sap-agent/ ディレクトリにあります。

デフォルトでは、バックアップと復元の実行中にロギングが有効になります。デフォルトのログレベルは info です。ログレベルを変更するには、hanadiskbackup コマンドと hanadiskrestore コマンドを実行するときに -loglevel 引数を使用します。

モニタリングを有効化する

デフォルトでは、Google Cloud の SAP 用エージェントは、hanadiskbackup コマンドを実行するたびに次の指標を Cloud Monitoring に出力します。これは、-send-metrics-to-monitoring 引数によって制御されます(デフォルト値は TRUE)。

これらの指標をダッシュボードで表示し、アラートの構成に使用できます。

指標 説明
workload.googleapis.com/sap/agent/hanadiskbackup/status

Boolean

ディスク スナップショット ベースのバックアップ オペレーションが成功したかどうかを通知します。値 true は成功を表し、false は失敗を表します。

workload.googleapis.com/sap/agent/hanadiskbackup/totaltime

Int

バックアップ オペレーションでディスク スナップショットの作成にかかった時間(秒単位)を通知します。これには、指定した Cloud Storage バケットにスナップショットをアップロードする時間も含まれます。

workload.googleapis.com/sap/agent/hanadiskbackup/dbfreezetime

Int

ディスク スナップショット ベースのバックアップ オペレーション中に SAP HANA ファイル システムがフリーズした時間を秒単位で示します。

ベスト プラクティス

ディスク スナップショットを使用して SAP HANA のバックアップと復元を行う際は、次のベスト プラクティスに従うことをおすすめします。

  • データベースの代替復元オプションを準備する。バックアップと復元の戦略を設計する際は、さまざまな方法を組み合わせることを強くおすすめします。たとえば、エージェントのディスク スナップショット機能と、エージェントの Backint 機能またはファイル システムのバックアップ機能で作成された SAP HANA データベースのフル バックアップと組み合わせて使用できます。
  • /hana/data ボリュームとディスク スナップショットの整合性をチェックする。スナップショット ベースのバックアップ オペレーションではブロックレベルの整合性チェックは行われません。hdbpersdiag ツールを使用して、次の整合性チェックを定期的に行うことをおすすめします。

    • /hana/data ボリュームのページ整合性チェックを実行します。データ ボリュームを使用するプロセス(SAP HANA インデックス サーバーなど)がある場合、ツールでは特定のデータ ボリュームのデータページをチェックできないため、このアクティティではダウンタイムが必要になります。
    • SAP HANA ホスト以外の VM に、エージェントの hanadiskbackup コマンドで作成したスナップショットから一時ディスクをデプロイし、そのディスクで整合性チェックを実行します。手順については、スナップショットの整合性を検証するをご覧ください。

    hdbpersdiag ツールの詳細については、SAP ドキュメントの Persistence Consistency Check をご覧ください。

  • ディスク スナップショットのメンテナンス アクティビティを実施する。Google Cloud の SAP 用エージェントは、ディスク スナップショットのメンテナンス アクティビティを実行しません。このため、定期的にスナップショットを確認し、古いスナップショットの削除などを行うことをおすすめします。

    ディスク スナップショットに関するベスト プラクティスについては、Compute Engine のディスク スナップショットのベスト プラクティスをご覧ください。