Terraform: ホストの自動フェイルオーバーを備える SAP HANA スケールアウト システムのデプロイメント ガイド

このガイドでは、Terraform を使用して、SAP HANA ホストの自動フェイルオーバー障害復旧ソリューションが組み込まれた SAP HANA スケールアウト システムをデプロイする方法について説明します。Terraform を使用すると、SAP のサポート要件を満たすシステムをデプロイし、SAP と Compute Engine 両方のベスト プラクティスを遵守できます。

作成された SAP HANA システムでは、1 つのマスターホスト、最大 15 までのワーカーホスト、最大 3 つまでのスタンバイ ホストを、1 つの Compute Engine ゾーン内に作成できます。

また、システムには、SAP HANA スタンバイ ノード用の Google Cloud ストレージ マネージャー(SAP HANA 用のストレージ マネージャー)も含まれ、フェイルオーバーの間、ストレージ デバイスのスタンバイ ノードへの転送を管理します。SAP HANA のストレージ マネージャーは、SAP HANA /shared ボリュームにインストールされます。

ホスト自動フェイルオーバー ソリューションに関する SAP からの情報については、ホスト自動フェイルオーバーをご覧ください。

ホスト自動フェイルオーバー機能が不要な場合は、このガイドを使用せずにTerraform: SAP HANA デプロイガイドを使用してください。

Linux 高可用性クラスタに SAP HANA をデプロイする必要がある場合は、次のいずれかのガイドを使用してください。

このガイドは、高可用性のためのスタンバイ ホストおよびネットワーク ファイル システムを含む SAP のスケールアウト構成に精通した SAP HANA の上級ユーザーを対象としています。

前提条件

SAP HANA 高可用性スケールアウト システムを作成する前に、以下の要件を確認してください。

  • SAP HANA プランニング ガイドSAP HANA 高可用性プランニング ガイドを読んでいる。
  • 個人または組織で Google Cloud アカウントを所有していて、SAP HANA をデプロイするプロジェクトを作成済みである。Google Cloud アカウントとプロジェクトの作成方法については、SAP HANA デプロイガイドの Google アカウントの設定をご覧ください。
  • データ所在地、アクセス制御、サポート担当者、規制要件に準拠しながら SAP ワークロードを実行する必要がある場合は、必要な Assured Workloads フォルダを作成する必要があります。詳細については、Google Cloud 上の SAP のコンプライアンスと主権管理をご覧ください。
  • SAP HANA のインストール メディアが、ユーザーのデプロイ プロジェクトおよびリージョンで利用可能な Cloud Storage バケットに格納されている。SAP HANA インストール メディアを Cloud Storage バケットにアップロードする方法については、SAP HANA デプロイガイドの Cloud Storage バケットの作成をご覧ください。
  • スケールアウトした SAP HANA システムのホスト間で SAP HANA の /hana/shared ボリュームと /hanabackup ボリュームを共有するために、マネージド Filestore ソリューションなどの NFS ソリューションが用意されている。Terraform 構成ファイルで NFS サーバーのマウント ポイントを指定してから、システムをデプロイします。Filestore NFS サーバーをデプロイするには、インスタンスの作成をご覧ください。
  • SAP HANA スケールアウト ノードをホストする SAP HANA サブネットワーク内のすべての VM 間の通信が許可されている。

  • プロジェクト メタデータで OS Login が有効になっている場合は、デプロイが完了するまで一時的に OS Login を無効にする必要があります。デプロイのために、次の手順によりインスタンス メタデータで SSH 認証鍵を構成します。OS Login が有効になっている場合、メタデータ ベースの SSH 認証鍵構成は無効になり、このデプロイは失敗します。デプロイが完了したら、再度 OS Login を有効にできます。

    詳細については、以下をご覧ください。

ネットワークの作成

セキュリティ上の理由から、新しいネットワークを作成します。アクセスできるユーザーを制御するには、ファイアウォール ルールを追加するか、別のアクセス制御方法を使用します。

プロジェクトにデフォルトの VPC ネットワークがある場合、デフォルトは使用せず、明示的に作成したファイアウォール ルールが唯一の有効なルールとなるように、独自の VPC ネットワークを作成してください。

デプロイ中、VM インスタンスは通常、Google Cloud の SAP 用エージェントをダウンロードするためにインターネットにアクセスする必要があります。Google Cloud から入手できる SAP 認定の Linux イメージのいずれかを使用している場合も、ライセンスを登録して OS ベンダーのリポジトリにアクセスするために、VM インスタンスからインターネットにアクセスする必要があります。このアクセスをサポートするために、NAT ゲートウェイを配置し、VM ネットワーク タグを使用して構成します。ターゲット VM に外部 IP がない場合でもこの構成が可能です。

プロジェクトの VPC ネットワークを作成するには、次の手順を行います。

  1. カスタムモードのネットワークを作成します。詳細については、カスタムモード ネットワークの作成をご覧ください。

  2. サブネットワークを作成し、リージョンと IP 範囲を指定します。詳細については、サブネットの追加をご覧ください。

NAT ゲートウェイの設定

パブリック IP アドレスなしで 1 台以上の VM を作成する必要がある場合は、ネットワーク アドレス変換(NAT)を使用して、VM がインターネットにアクセスできるようにする必要があります。Cloud NAT は Google Cloud の分散ソフトウェア定義マネージド サービスであり、VM からインターネットへのパケットの送信と、それに対応するパケットの受信を可能にします。また、別個の VM を NAT ゲートウェイとして設定することもできます。

プロジェクトに Cloud NAT インスタンスを作成する方法については、Cloud NAT の使用をご覧ください。

プロジェクトに Cloud NAT を構成すると、VM インスタンスはパブリック IP アドレスなしでインターネットに安全にアクセスできるようになります。

ファイアウォール ルールの追加

デフォルトでは、暗黙のファイアウォール ルールにより、Virtual Private Cloud(VPC)ネットワークの外部からの受信接続がブロックされます。受信側の接続を許可するには、VM にファイアウォール ルールを設定します。VM との受信接続が確立されると、トラフィックはその接続を介して双方向に許可されます。

特定のポートへの外部アクセスを許可するファイアウォール ルールや、同じネットワーク上の VM 間のアクセスを制限するファイアウォール ルールも作成できます。VPC ネットワーク タイプとして default が使用されている場合は、default-allow-internal ルールなどの追加のデフォルト ルールも適用されます。追加のデフォルト ルールは、同じネットワークであれば、すべてのポートで VM 間の接続を許可します。

ご使用の環境に適用可能な IT ポリシーによっては、データベース ホストへの接続を分離するか制限しなければならない場合があります。これを行うには、ファイアウォール ルールを作成します。

目的のシナリオに応じて、次の対象にアクセスを許可するファイアウォール ルールを作成できます。

  • すべての SAP プロダクトの TCP/IP にリストされているデフォルトの SAP ポート。
  • パソコンまたは企業のネットワーク環境から Compute Engine VM インスタンスへの接続。使用すべき IP アドレスがわからない場合は、社内のネットワーク管理者に確認してください。
  • SAP HANA サブネットワークの VM 間の通信(SAP HANA スケールアウト システムのノード間の通信や、3 層アーキテクチャのデータベース サーバーとアプリケーション サーバー間の通信など)。VM 間の通信を有効にするには、サブネットワーク内から発信されるトラフィックを許可するファイアウォール ルールを作成する必要があります。

プロジェクトのファイアウォール ルールを作成するには、ファイアウォール ルールの作成をご覧ください。

スタンバイ ホストがある SAP HANA スケールアウト システムの作成

次の手順では、以下の作業を行います。

  • 作成済みの構成ファイルで Terraform を呼び出し、SAP HANA システムを作成します。
  • デプロイを確認します。
  • ホストエラーをシミュレーションして、スタンバイ ホストをテストします。

以降の手順の一部では、gcloud コマンドを入力するために Cloud Shell を使用します。最新バージョンの Google Cloud SDK がインストールされている場合は、ローカル ターミナルからも gcloud コマンドを入力できます。

SAP HANA システムの定義と作成

次の手順では、Terraform の構成ファイルをダウンロードして完成させ、標準の Terraform コマンドを使用して現在の作業ディレクトリを初期化し、Google Cloud 用の Terraform プロバイダ プラグインとモジュール ファイルをダウンロードして、構成を使用します。これにより、VM、永続ディスク、SAP HANA インスタンスがデプロイされます。

  1. 永続ディスクや CPU などプロジェクトのリソースの現在の割り当てが、インストールしようとしている SAP HANA システムに対して十分であることを確認します。割り当てが不足していると、デプロイは失敗します。SAP HANA の割り当て要件については、SAP HANA の料金と割り当てに関する考慮事項をご覧ください。

    [割り当て] ページに移動

  2. Cloud Shell を開きます。

    Cloud Shell に移動

  3. SAP HANA 高可用性スケールアウト システムの sap_hana_scaleout.tf 構成ファイルを作業ディレクトリにダウンロードします。

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/terraform/sap_hana_scaleout.tf
  4. sap_hana_scaleout.tf ファイルを Cloud Shell コードエディタで開きます。

    Cloud Shell コードエディタを開くには、Cloud Shell ターミナル ウィンドウの右上にある鉛筆アイコンをクリックします。

  5. sap_hana_scaleout.tf ファイルで、二重引用符で囲まれた内容をご使用のインストール環境の値に置き換えて、次の引数の値を更新します。たとえば、ZONE を us-central1-f に置き換えます。

    引数 データ型 説明
    source 文字列

    デプロイ時に使用する Terraform モジュールの場所とバージョンを指定します。

    sap_hana_scaleout.tf 構成ファイルには、source 引数の 2 つのインスタンスがあります。1 つは有効で、もう 1 つはコメントとして追加されています。デフォルトで有効な source 引数に、モジュール バージョンとして latest を指定します。デフォルトでは、source 引数の 2 番目のインスタンスの先頭に # 文字があり、引数が無効になっています。この引数には、モジュール バージョンを識別するタイムスタンプを指定します。

    すべてのデプロイで同じモジュール バージョンを使用する必要がある場合は、バージョン タイムスタンプを指定する source 引数の先頭から # 文字を削除し、latest を指定する source 引数の先頭にコメント文字を追加します。

    project_id 文字列 このシステムをデプロイする Google Cloud プロジェクトの ID を指定します。例: my-project-x
    zone 文字列

    SAP システムをデプロイするゾーンを指定します。このゾーンは、サブネットに選択したのと同じリージョンに存在する必要があります。

    たとえば、サブネットが us-central1 リージョンにデプロイされている場合は、us-central1-a などのゾーンを指定できます。

    machine_type 文字列 SAP システムの実行に必要な Compute Engine 仮想マシン(VM)のタイプを指定します。カスタム VM タイプが必要な場合は、必要な数に最も近く、かつ必要数以上の vCPU 数を持つ事前定義された VM タイプを指定します。デプロイが完了したら、vCPU 数とメモリ量を変更してください。

    例: n1-highmem-32

    subnetwork 文字列 前の手順で作成したサブネットワークの名前を指定します。共有 VPC にデプロイする場合は、この値を SHARED_VPC_PROJECT_ID/SUBNETWORK として指定します。例: myproject/network1
    linux_image 文字列 SAP システムをデプロイする Linux オペレーティング システム イメージの名前を指定します。 たとえば、rhel-9-2-sap-hasles-15-sp5-sap です。使用可能なオペレーティング システム イメージのリストについては、Google Cloud コンソールの [イメージ] ページをご覧ください。
    linux_image_project 文字列 引数 linux_image に指定するイメージを含む Google Cloud プロジェクトを指定します。このプロジェクトは独自のプロジェクトか、Google Cloud イメージ プロジェクトです。 Compute Engine イメージの場合は、rhel-sap-cloudsuse-sap-cloud を指定します。 ご利用のオペレーティング システムのイメージ プロジェクトを確認するには、オペレーティング システムの詳細をご覧ください。
    instance_name 文字列 ホスト VM インスタンスの名前を指定します。名前には、小文字、数字、ハイフンを使用できます。ワーカーホストとスタンバイ ホストの VM インスタンスの名前は同じになり、名前に w とホスト番号が追加されます。
    sap_hana_shared_nfs 文字列 /hana/shared ボリュームの NFS マウント ポイントを指定します。例: 10.151.91.122:/hana_shared_nfs
    sap_hana_backup_nfs 文字列 /hanabackup ボリュームの NFS マウント ポイントを指定します。例: 10.216.41.122:/hana_backup_nfs
    sap_hana_deployment_bucket 文字列 デプロイした VM に SAP HANA を自動的にインストールするには、SAP HANA インストール ファイルを含む Cloud Storage バケットのパスを指定します。パスには gs:// を含めないでください。バケット名とフォルダ名のみを含めます。例: my-bucket-name/my-folder

    Cloud Storage バケットは、project_id 引数に指定した Google Cloud プロジェクト内に存在する必要があります。

    sap_hana_sid 文字列 デプロイされた VM に SAP HANA を自動的にインストールするには、SAP HANA システム ID を指定します。ID は英数字 3 文字で、最初の文字はアルファベットにする必要があります。文字は大文字のみ使用できます。例: ED1
    sap_hana_instance_number 整数 省略可。SAP HANA システムのインスタンス番号(0~99)を指定します。デフォルトは 0 です。
    sap_hana_sidadm_password 文字列 デプロイした VM に SAP HANA を自動的にインストールするには、デプロイ時に使用するインストール スクリプトで SIDadm の一時パスワードを指定します。パスワードは 8 文字以上で設定し、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含める必要があります。

    パスワードを書式なしテキストとして指定する代わりに、シークレットを使用することをおすすめします。詳細については、パスワード管理をご覧ください。

    sap_hana_sidadm_password_secret 文字列 省略可。Secret Manager を使用して SIDadm パスワードを保存している場合は、このパスワードに対応するシークレットの名前を指定します。

    Secret Manager では、Secret 値(パスワード)は 8 文字以上で、英大文字、英小文字、数字をそれぞれ 1 文字以上使用します。

    詳細については、パスワード管理をご覧ください。

    sap_hana_system_password 文字列 デプロイした VM に SAP HANA を自動的にインストールするには、デプロイ時に使用するインストール スクリプトで一時的なデータベース スーパーユーザーのパスワードを指定します。パスワードは 8 文字以上で設定し、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含める必要があります。

    パスワードを書式なしテキストとして指定する代わりに、シークレットを使用することをおすすめします。詳細については、パスワード管理をご覧ください。

    sap_hana_system_password_secret 文字列 省略可。Secret Manager を使用してデータベースのスーパーユーザーのパスワードを保存している場合は、このパスワードに対応するシークレットの名前を指定します。

    Secret Manager では、Secret 値(パスワード)は 8 文字以上で、英大文字、英小文字、数字をそれぞれ 1 文字以上使用します。

    詳細については、パスワード管理をご覧ください。

    sap_hana_double_volume_size ブール値 省略可。HANA のボリューム サイズを 2 倍にするには、true を指定します。この引数は、複数の SAP HANA インスタンスまたは障害復旧 SAP HANA インスタンスを同じ VM にデプロイしたい場合に便利です。デフォルトでは、SAP の認証とサポート要件を満たしつつ、ボリューム サイズが VM のサイズに必要な最小サイズとして自動的に計算されます。デフォルト値は false です。
    sap_hana_sidadm_uid 整数 省略可。SID_LC adm ユーザー ID のデフォルト値をオーバーライドする値を指定します。デフォルト値は 900 です。SAP ランドスケープ内での整合性を保つために、別の値に変更できます。
    sap_hana_sapsys_gid 整数 省略可。sapsys のデフォルトのグループ ID をオーバーライドします。デフォルト値は 79 です。
    sap_hana_worker_nodes 整数 追加で必要な SAP HANA ワーカーホスト数を指定します。1~15 のワーカーホスト数を指定できます。値に引用符を使用しないでください。デフォルトの値は 1 です。
    sap_hana_standby_nodes 整数 追加で必要な SAP HANA スタンバイ ホストの数を指定します。1~3 のスタンバイ ホスト数を指定できます。値に引用符を使用しないでください。デフォルト値は 1 です。
    network_tags 文字列 省略可。ファイアウォールまたはルーティングの目的で使用され、VM インスタンスに関連付けるネットワーク タグを 1 つ以上カンマ区切りで指定します。

    public_ip = false を指定していて、ネットワーク タグを指定しない場合は、インターネットへの別のアクセス手段を必ず指定してください。

    nic_type 文字列 省略可。VM インスタンスで使用するネットワーク インターフェースを指定します。値には GVNIC または VIRTIO_NET を指定できます。Google Virtual NIC(gVNIC)を使用するには、linux_image 引数の値として gVNIC をサポートする OS イメージを指定する必要があります。OS イメージの一覧については、オペレーティング システムの詳細をご覧ください。

    この引数の値を指定しなかった場合は、machine_type 引数に指定したマシンタイプに基づいて、ネットワーク インターフェースが自動的に選択されます。

    この引数は sap_hana モジュール バージョン 202302060649 以降で使用できます。
    disk_type 文字列 省略可。デプロイの SAP データとログボリュームにデプロイする Persistent Disk または Hyperdisk ボリュームのデフォルト タイプを指定します。Google Cloud が提供する Terraform 構成によって実行されるデフォルトのディスク デプロイについては、Terraform によるディスク デプロイをご覧ください。

    この引数の有効な値は pd-ssdpd-balancedhyperdisk-extremehyperdisk-balancedpd-extreme です。

    いくつかの高度な引数を使用して、このデフォルトのディスクタイプと関連するデフォルトのディスクサイズとデフォルトの IOPS をオーバーライドできます。詳細については、作業ディレクトリに移動してから、terraform init コマンドを実行して、/.terraform/modules/sap_hana_scaleout/variables.tf ファイルを確認してください。これらの引数を本番環境で使用する前に、非本番環境でテストしてください。

    use_single_shared_data_log_disk ブール値 省略可。デフォルト値は false です。これは、SAP ボリューム(/hana/data/hana/log/hana/shared/usr/sap)ごとに、個別の永続ディスクまたは Hyperdisk をデプロイするように Terraform に指示します。これらの SAP ボリュームを同じ永続ディスクまたは Hyperdisk にマウントするには、true を指定します。
    public_ip ブール値 省略可。パブリック IP アドレスを VM インスタンスに追加するかどうかを指定します。デフォルト値は true です。
    service_account 文字列 省略可。ホスト VM とホスト VM で実行されるプログラムで使用されるユーザー管理のサービス アカウントのメールアドレスを指定します。例: svc-acct-name@project-id.iam.gserviceaccount.com

    この引数に値を指定しない場合、または省略した場合、インストール スクリプトは、Compute Engine のデフォルトのサービス アカウントを使用します。詳細については、Google Cloud 上での SAP プログラム向け Identity and Access Management をご覧ください。

    sap_deployment_debug ブール値 省略可。Cloud カスタマーケアでデプロイのデバッグを有効にするよう求められた場合にのみ、true を指定します。これにより、デプロイの際に詳細なログが生成されます。デフォルト値は false です。
    reservation_name 文字列 省略可。このデプロイに特定の Compute Engine VM 予約を使用するには、予約の名前を指定します。デフォルトでは、インストール スクリプトは、次の条件に基づいて使用可能な Compute Engine 予約を選択します。

    予約を使用するときに名前を指定するのか、インストール スクリプトで自動的に選択するかに関係なく、予約は次のように設定する必要があります。

    • specificReservationRequired オプションは true に設定されます。または、Google Cloud コンソールで [特定の予約を選択] オプションが選択されています。
    • Compute Engine のマシンタイプによっては、マシンタイプの SAP 認定に含まれていない CPU プラットフォームに対応しているものもあります。対象となる予約が次のいずれかのマシンタイプの場合、予約には指示された最小の CPU プラットフォームを指定する必要があります。
      • n1-highmem-32: Intel Broadwell
      • n1-highmem-64: Intel Broadwell
      • n1-highmem-96: Intel Skylake
      • m1-megamem-96: Intel Skylake
    • Google Cloud での使用が SAP に認定されている他のすべてのマシンタイプの最小 CPU プラットフォームは、SAP の最小 CPU 要件に準拠しています。
    vm_static_ip 文字列 省略可。VM インスタンスに有効な静的 IP アドレスを指定します。IP アドレスを指定しない場合は、VM インスタンスに対して IP アドレスが自動的に生成されます。

    この引数は sap_hana_scaleout モジュール バージョン 202306120959 以降で使用できます。

    worker_static_ips リスト(文字列) 省略可。スケールアウト システムのワーカー インスタンスに対して有効な静的 IP アドレスの配列を指定します。この引数の値を指定しない場合、ワーカー VM インスタンスごとに IP アドレスが自動的に生成されます。例: [ "1.0.0.1", "2.3.3.4" ]

    静的 IP アドレスは、インスタンスの作成順に割り当てられます。たとえば、3 つのワーカー インスタンスをデプロイするものの、引数 worker_static_ips に 2 つの IP アドレスのみを指定する場合、これらの IP アドレスは、Terraform の構成がデプロイされる最初の 2 つの VM インスタンスに割り当てられます。3 つ目のワーカー VM インスタンスでは、IP アドレスが自動的に生成されます。

    この引数は sap_hana_scaleout モジュール バージョン 202306120959 以降で使用できます。

    standby_static_ips リスト(文字列) 省略可。スケールアウト システムのスタンバイ インスタンスに対して有効な静的 IP アドレスの配列を指定します。この引数の値を指定しない場合、スタンバイ VM インスタンスごとに IP アドレスが自動的に生成されます。例: [ "1.0.0.1", "2.3.3.4" ]

    静的 IP アドレスは、インスタンスの作成順に割り当てられます。たとえば、3 つのスタンバイ インスタンスをデプロイするものの、引数 standby_static_ips に 2 つの IP アドレスのみを指定する場合、これらの IP アドレスは、Terraform の構成がデプロイされる最初の 2 つの VM インスタンスに割り当てられます。3 つ目のスタンバイ VM インスタンスでは、IP アドレスが自動的に生成されます。

    この引数は sap_hana_scaleout モジュール バージョン 202306120959 以降で使用できます。

    以下は、us-central1-f ゾーンに 3 つのワーカーホストと 1 つのスタンバイ ホストを設定して、SAP HANA スケールアウト システムをデプロイする構成ファイルの例です。各ホストは、Compute Engine の公開イメージで提供される Linux オペレーティング システムを実行している n2-highmem-32 VM にインストールされます。NFS ボリュームは Filestore によって提供されます。仮のパスワードは、デプロイと構成の処理時にのみ使用されます。

    わかりやすくするために、この例では構成ファイルのコメントは省略しています。

    # ...
    module "hana_scaleout" {
    source = "https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/sap_hana_scaleout/sap_hana_scaleout_module.zip"
    #
    # By default, this source file uses the latest release of the terraform module
    # for SAP on Google Cloud. To fix your deployments to a specific release
    # of the module, comment out the source property above and uncomment the source property below.
    #
    # source = "https://storage.googleapis.com/cloudsapdeploy/terraform/YYYYMMDDHHMM/terraform/sap_hana_scaleout/sap_hana_scaleout_module.zip"
    #
    # ...
    #
    project_id = "example-project-123456"
    zone = "us-central1-f"
    machine_type = "n2-highmem-32"
    subnetwork = "example-sub-network-sap"
    linux_image = "sles-15-sp4-sap"
    linux_image_project = "suse-sap-cloud"
    
    instance_name = "hana-scaleout-w-failover"
    sap_hana_shared_nfs = "10.74.146.58:/hana_shr"
    sap_hana_backup_nfs = "10.188.249.170:/hana_bup"
    # ...
    sap_hana_deployment_bucket = "hana2-sp5-rev53"
    sap_hana_sid = "HF0"
    sap_hana_instance_number = 00
    sap_hana_sidadm_password = "TempPa55word"
    sap_hana_system_password = "TempPa55word"
    # ...
    sap_hana_worker_nodes = 3
    sap_hana_standby_nodes = 1
    vm_static_ip = "10.0.0.1"
    worker_static_ips = ["10.0.0.2", "10.0.0.3", "10.0.0.4"]
    standby_static_ips = ["10.0.0.5"]
    # ...
    }
  6. 現在の作業ディレクトリを初期化し、Google Cloud 用の Terraform プロバイダのプラグインとモジュール ファイルをダウンロードするには、以下の操作を行います。

    terraform init

    terraform init コマンドで、他の Terraform コマンドの作業ディレクトリを準備します。

    作業ディレクトリのプロバイダ プラグインと構成ファイルを強制的に更新するには、--upgrade フラグを指定します。--upgrade フラグが省略されていて、作業ディレクトリに変更を加えていない場合、source URL で latest が指定されている場合でも、Terraform はローカル キャッシュに保存されたコピーを使用します。

  7. 必要に応じて、Terraform 実行プランを作成します。

    terraform plan

    terraform plan コマンドによって、現在の構成で必要な変更が表示されます。この手順をスキップすると、terraform apply コマンドは自動的に新しいプランを作成し、それを承認するように求めます。

  8. 実行計画を適用します。

    terraform apply

    アクションを承認するように求められたら、yes を入力します。

    terraform apply コマンドは、Google Cloud インフラストラクチャを設定します。Compute Engine マシンが起動すると、Google Cloud インフラストラクチャはオペレーティング システムを構成する起動スクリプトを呼び出し、SAP HANA をインストールます。

    Terraform によって制御が行われる間、Cloud Shell にステータス メッセージが書き込まれます。スクリプトが呼び出されると、Logging ログを確認するで説明されているように、ステータス メッセージが Logging に書き込まれ、Google Cloud コンソールで表示できるようになります。

    完了までの時間は一定ではありませんが、通常 45 分から 1 時間でプロセス全体が完了します。

デプロイの確認

デプロイを確認するには、Cloud Logging でデプロイログを確認、プライマリ ホストとワーカーホストの VM 上のディスクとサービスを確認して、SAP HANA Studio でシステムを表示し、スタンバイ ホストによる引き継ぎをテストします。

ログを調べる

  1. Google Cloud コンソールで Cloud Logging を開き、インストールの進行状況をモニタリングして、エラーを確認します。

    Cloud Logging に移動

  2. ログをフィルタします。

    ログ エクスプローラ

    1. [ログ エクスプローラ] ページで、[クエリ] ペインに移動します。

    2. [リソース] プルダウン メニューから [グローバル] を選択し、[追加] をクリックします。

      [グローバル] オプションが表示されない場合は、クエリエディタに次のクエリを入力します。

      resource.type="global"
      "Deployment"
      
    3. [クエリを実行] をクリックします。

    以前のログビューア

    • [以前のログビューア] ページの基本的なセレクタ メニューから、ロギング リソースとして [グローバル] を選択します。
  3. フィルタされたログを分析します。

    • "--- Finished" が表示されている場合、デプロイメントは完了しています。次の手順に進んでください。
    • 割り当てエラーが発生した場合:

      1. [IAM と管理] の [割り当て] ページで、SAP HANA プランニング ガイドに記載されている SAP HANA の要件を満たしていない割り当てを増やします。

      2. Cloud Shell を開きます。

        Cloud Shell に移動

      3. 作業ディレクトリに移動してデプロイを削除し、失敗したインストールから VM と永続ディスクをクリーンアップします。

        terraform destroy

        アクションの承認を求められたら、「yes」と入力します。

      4. デプロイを再実行します。

VM に接続してディスクと SAP HANA サービスを確認する

デプロイが完了したら、マスターホストといずれか 1 つのワーカーホストのディスクとサービスの状態をみて、ディスクと SAP HANA サービスが正しくデプロイされていることを確認します。

  1. Compute Engine VM インスタンスのページで、2 つの VM インスタンスそれぞれの行に表示された [SSH] ボタンをクリックして、マスターホストの VM といずれか 1 つのワーカーホストの VM に接続します。

    [VM インスタンス] に移動

    ワーカーホストに接続するときは、スタンバイ ホストに接続していないことを確認してください。スタンバイ ホストはワーカーホストと同じ命名規則を使用しますが、最初のテイクオーバーが行われるまでは、最も大きな数字のサフィックスをもつワーカーがスタンバイ ホストになります。たとえば、3 つのワーカーホストと 1 つのスタンバイ ホストがある場合、最初のテイクオーバーまでは、スタンバイ ホストのサフィックスは「w4」になります。

  2. 各ターミナル ウィンドウで、root ユーザーに変更します。

    sudo su -
  3. 各ターミナル ウィンドウで、ディスク ファイル システムを表示します。

    df -h

    マスターホストでは、出力は次のようになります。

    hana-scaleout-w-failover:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G   18M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sdb3                        45G  6.4G   39G  15% /
    /dev/sdb2                        20M  3.0M   17M  15% /boot/efi
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    /dev/mapper/vg_hana_data-data   422G   12G  411G   3% /hana/data/HF0/mnt00001
    /dev/mapper/vg_hana_log-log     128G  7.8G  121G   7% /hana/log/HF0/mnt00001
    tmpfs                            26G     0   26G   0% /run/user/174
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/900
    tmpfs                            26G     0   26G   0% /run/user/1000

    ワーカーホストで、/hana/data ディレクトリと /hana/log ディレクトリは、マウントが異なることに注意してください。

    hana-scaleout-w-failoverw1:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
    tmpfs                            26G     0   26G   0% /run/user/1000

    障害が発生したホストからテイクオーバーされるまでは、スタンバイ ホストにデータ ディレクトリとログ ディレクトリはマウントされません。

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
  4. 各ターミナル ウィンドウで、SAP HANA オペレーティング システムのユーザーに切り替えます。SID_LC は、構成ファイルで指定した sap_hana_sid 値に置き換えます。SID_LC の値は小文字にする必要があります。

    su - SID_LCadm
  5. 各ターミナル ウィンドウで、hdbnameserverhdbindexserver などの SAP HANA サービスがインスタンスで実行されていることを確認します。

    HDB info

    マスターホストでは、次の簡略化された出力例に似た出力が表示されます。

    hana-scaleout-w-failover:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failover:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      25987    25986   0.4      15248       6312 -sh
    hf0adm      26049    25987   0.0      10448       4036  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      26084    26049   0.0      19892       3864      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      22386    22385   0.0      15248       6248 -sh
    hf0adm      19164        1   0.0      13604       3124 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19171    19164   0.0     481188      84340  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failover/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failover/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failover
    hf0adm      19193    19171   3.4    9616860    3970304      \_ hdbnameserver
    hf0adm      19583    19171   0.3    4636456     206500      \_ hdbcompileserver
    hf0adm      19586    19171   0.3    4883932     235764      \_ hdbpreprocessor
    hf0adm      19624    19171   5.9    9896896    4193620      \_ hdbindexserver -port 30003
    hf0adm      19627    19171   1.2    7920208    1605448      \_ hdbxsengine -port 30007
    hf0adm      20072    19171   0.5    6825984     531884      \_ hdbwebdispatcher
    hf0adm      15053        1   0.0     590628      33208 hdbrsutil  --start --port 30003 --volume 3 --volumesuffix mnt00001/hdb00003.00003 --identifier 1689854702
    hf0adm      14420        1   0.0     590560      33308 hdbrsutil  --start --port 30001 --volume 1 --volumesuffix mnt00001/hdb00001 --identifier 1689854671
    hf0adm      14155        1   0.1     554820      33320 /usr/sap/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failover -D -u hf0adm
    hf0adm      14030        1   0.0      57024      11060 /usr/lib/systemd/systemd --user
    hf0adm      14031    14030   0.0     243164       4036  \_ (sd-pam)

    ワーカーホストでは、次の簡略化された出力例に似た出力が表示されます。

    hana-scaleout-w-failoverw1:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw1:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      16442    16441   0.0      15248       6276 -sh
    hf0adm      17317    16442   0.0      10448       4032  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      17352    17317   0.0      19892       3816      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      11873        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11880    11873   0.0     477076      84260  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw1/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw1
    hf0adm      11902    11880   0.8    7738216     784912      \_ hdbnameserver
    hf0adm      12140    11880   0.4    4245828     199884      \_ hdbcompileserver
    hf0adm      12143    11880   0.4    4758024     235448      \_ hdbpreprocessor
    hf0adm      12176    11880   0.6    6046020     534448      \_ hdbwebdispatcher
    hf0adm      12210    11880   2.0    8363976    1743196      \_ hdbindexserver -port 30003
    hf0adm      10452        1   0.0     525100      33640 hdbrsutil  --start --port 30003 --volume 4 --volumesuffix mnt00002/hdb00004.00003 --identifier 1689855202
    hf0adm      10014        1   0.1     554696      31992 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw1 -D -u hf0adm

    スタンバイ ホストでは、次の簡略化された出力例に似た出力が表示されます。

    hana-scaleout-w-failoverw4:~ # su - hf0adm
    hf0adm@hana-scaleout-w-failoverw4:/usr/sap/HF0/HDB00> HDB info
    USER          PID     PPID  %CPU        VSZ        RSS COMMAND
    hf0adm      15597    15596   0.5      15248       6272 -sh
    hf0adm      15659    15597   0.0      10448       4004  \_ /bin/sh /usr/sap/HF0/HDB00/HDB info
    hf0adm      15694    15659   0.0      19892       3860      \_ ps fx -U hf0adm -o user:8,pid:8,ppid:8,pcpu:5,vsz:10,rss:10,args
    hf0adm      10285        1   0.0      13604       3244 sapstart pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10292    10285   0.0     478076      84540  \_ /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/trace/hdb.sapHF0_HDB00 -d -nw -f /usr/sap/HF0/HDB00/hana-scaleout-w-failoverw4/daemon.ini pf=/usr/sap/HF0/SYS/profile/HF0_HDB00_hana-scaleout-w-failoverw4
    hf0adm      10314    10292   0.6    7468320     729308      \_ hdbnameserver
    hf0adm      10492    10292   0.3    3851320     191636      \_ hdbcompileserver
    hf0adm      10495    10292   0.3    4493296     227884      \_ hdbpreprocessor
    hf0adm      10528    10292   0.4    5381616     509368      \_ hdbwebdispatcher
    hf0adm       9750        1   0.0     620748      32796 /hana/shared/HF0/HDB00/exe/sapstartsrv pf=/hana/shared/HF0/profile/HF0_HDB00_hana-scaleout-w-failoverw4 -D -u hf0adm
  6. RHEL for SAP 9.0 以降を使用する場合は、パッケージ chkconfigcompat-openssl11 が VM インスタンスにインストールされていることを確認してください。

    SAP の詳細については、SAP Note 3108316 - Red Hat Enterprise Linux 9.x: Installation and Configuration をご覧ください。

SAP HANA Studio を接続する

  1. SAP HANA Studio から、SAP HANA のマスターホストに接続します。

    接続は、Google Cloud 外の SAP HANA Studio のインスタンス、または Google Cloud のインスタンスから行えます。ターゲット VM と SAP HANA Studio の間のネットワーク アクセスを有効にする必要がある場合があります。

    Google Cloud で SAP HANA Studio を使用し、SAP HANA システムへのアクセスを有効にする方法については、Compute Engine Windows VM での SAP HANA Studio のインストールをご覧ください。

  2. SAP HANA Studio で、デフォルトのシステム管理パネルの [Landscape] タブをクリックすると、次のように表示されます。

    SAP HANA Studio のランドスケープ ビューのスクリーンショット

クリーンアップしてデプロイを再試行する

前のセクションのデプロイ検証ステップのいずれかでインストールが正常に完了しなかった場合は、デプロイを元に戻し、次の手順を行ってデプロイを再試行する必要があります。

  1. エラーが発生した場合は、同じ理由でデプロイが再び失敗することがないようにエラーを解決してください。ログの確認または割り当て関連のエラーの解決について詳しくは、ログを調べるをご覧ください。

  2. Cloud Shell を開くか、Google Cloud CLI をローカル ワークステーションにインストールしている場合はターミナルを開きます。

    Cloud Shell を開く

  3. このデプロイに使用した Terraform 構成ファイルがあるディレクトリに移動します。

  4. 次のコマンドを実行して、デプロイメントに含まれるすべてのリソースを削除します。

    terraform destroy

    アクションの承認を求められたら、「yes」と入力します。

  5. このガイドで前述したように、デプロイを再試行します。

フェイルオーバー テストを実行する

SAP HANA システムが正常にデプロイされたことを確認したら、フェイルオーバー機能をテストします。

次の手順では、SAP HANA オペレーティング システム ユーザーに切り替えて、HDB stop コマンドを入力することで、フェイルオーバーを作動させます。HDB stop コマンドは、SAP HANA の正常なシャットダウンを開始してホストからディスクを切断します。このため、比較的迅速なフェイルオーバーが可能です。

フェイルオーバーを行うには:

  1. SSH を使用して、ワーカーホストの VM に接続します。各 VM インスタンスの [SSH] ボタンをクリックして、Compute Engine の [VM インスタンス] ページから接続するか、任意の SSH メソッドを使用できます。

    [VM インスタンス] に移動

  2. SAP HANA オペレーティング システムのユーザーに切り替えます。次のコマンドで、SID_LC は Terraform 構成ファイルの sap_hana_sid 引数に指定した値に置き換えます。

    su - SID_LCadm
  3. SAP HANA を停止して、障害をシミュレートします。

    HDB stop

    HDB stop コマンドにより、SAP HANA のシャットダウンが開始し、フェイルオーバーがトリガーされます。フェイルオーバー時に、ディスクは障害が発生したホストから切断され、スタンバイ ホストに再アタッチされます。障害が発生したホストは、再起動してスタンバイ ホストになります。

  4. テイクオーバーの完了を待って、障害が発生したホストを引き継いだホストに、SSH を使用して接続します。

  5. root ユーザーに切り替えます。

    sudo su -
  6. ディスク ファイル システムの情報を表示します。

    df -h

    出力は次のようになります。障害が発生したホストの /hana/data ディレクトリと /hana/log ディレクトリが、テイクオーバーしたホストにマウントされています。

    hana-scaleout-w-failoverw4:~ # df -h
    Filesystem                      Size  Used Avail Use% Mounted on
    devtmpfs                        4.0M  8.0K  4.0M   1% /dev
    tmpfs                           189G  4.0K  189G   1% /dev/shm
    tmpfs                            51G  9.4M   51G   1% /run
    tmpfs                           4.0M     0  4.0M   0% /sys/fs/cgroup
    /dev/sda3                        45G  6.4G   39G  15% /
    /dev/sda2                        20M  3.0M   17M  15% /boot/efi
    tmpfs                            26G     0   26G   0% /run/user/0
    10.74.146.58:/hana_shr          2.5T   41G  2.3T   2% /hana/shared
    10.188.249.170:/hana_bup        2.5T     0  2.4T   0% /hanabackup
    tmpfs                            26G     0   26G   0% /run/user/1000
    /dev/mapper/vg_hana_data-data   422G  593M  422G   1% /hana/data/HF0/mnt00002
    /dev/mapper/vg_hana_log-log     128G  3.2G  125G   3% /hana/log/HF0/mnt00002
  7. SAP HANA Studio で、SAP HANA システムの [Landscape] ビューを開き、フェイルオーバーが正常に完了したことを確認します。

    • フェイルオーバーに関係したホストのステータスは、INFO と表示されます。
    • [Index Server Role(Actual)] 列に、障害が発生したホストが新しいスタンバイ ホストとして表示されます。

    SAP HANA Studio のランドスケープ ビューのスクリーンショット

Google Cloud の SAP 用エージェントのインストールを検証する

VM をデプロイして SAP システムをインストールしたら、Google Cloud の SAP 用エージェントが正常に機能していることを確認します。

Google Cloud の SAP 用エージェントが実行されていることを確認する

エージェントの動作確認の手順は次のとおりです。

  1. ホスト VM インスタンスと SSH 接続を確立します。

  2. 次のコマンドを実行します。

    systemctl status google-cloud-sap-agent

    エージェントが正常に機能している場合、出力には active (running) が含まれます。次に例を示します。

    google-cloud-sap-agent.service - Google Cloud Agent for SAP
    Loaded: loaded (/usr/lib/systemd/system/google-cloud-sap-agent.service; enabled; vendor preset: disabled)
    Active:  active (running)  since Fri 2022-12-02 07:21:42 UTC; 4 days ago
    Main PID: 1337673 (google-cloud-sa)
    Tasks: 9 (limit: 100427)
    Memory: 22.4 M (max: 1.0G limit: 1.0G)
    CGroup: /system.slice/google-cloud-sap-agent.service
           └─1337673 /usr/bin/google-cloud-sap-agent
    

エージェントが実行されていない場合は、エージェントを再起動します。

SAP Host Agent が指標を受信していることを確認する

Google Cloud の SAP 用エージェントによってインフラストラクチャの指標が収集され、SAP Host Agent に正しく送信されていることを確認するには、次の操作を行います。

  1. SAP システムで、トランザクションとして「ST06」を入力します。
  2. 概要ウィンドウで可用性と以下のフィールドの内容を確認し、SAP と Google モニタリング インフラストラクチャのエンドツーエンドの設定が正しいか調べます。

    • クラウド プロバイダ: Google Cloud Platform
    • Enhanced Monitoring Access: TRUE
    • Enhanced Monitoring Details: ACTIVE

SAP HANA のモニタリングを設定する

必要に応じて、Google Cloud の SAP 用エージェントを使用して SAP HANA インスタンスをモニタリングできます。バージョン 2.0 以降では、SAP HANA モニタリング指標を収集して Cloud Monitoring に送信するようにエージェントを構成できます。Cloud Monitoring を使用すると、これらの指標を可視化するダッシュボードを作成し、指標のしきい値などに基づくアラートを設定できます。

Google Cloud の SAP 用エージェントを使用している SAP HANA モニタリング指標の収集の詳細については、SAP HANA モニタリング指標の収集をご覧ください。

SAP HANA Fast Restart を有効にする

Google Cloud では、SAP HANA の各インスタンス(特に大規模なインスタンス)で SAP HANA Fast Restart を有効にすることを強くおすすめします。SAP HANA Fast Restart により、SAP HANA の終了後もオペレーティング システムが稼働し続けている場合の再起動時間が短縮されます。

Google Cloud が提供する自動化スクリプトによって構成されるように、オペレーティング システムとカーネルの設定は、すでに SAP HANA 高速再起動をサポートしています。tmpfs ファイル システムを定義し、SAP HANA を構成する必要があります。

tmpfs ファイル システムを定義して SAP HANA を構成するには、手動の手順を行うか、Google Cloud が提供する自動化スクリプトを使用して SAP HANA Fast Restart を有効にします。詳細については、次の情報をご覧ください。

SAP HANA Fast Restart の詳しい手順については、SAP HANA Fast Restart オプションのドキュメントをご覧ください。

手動で行う場合の手順

tmpfs ファイル システムを構成する

ホスト VM とベースとなる SAP HANA システムが正常にデプロイされたら、tmpfs ファイル システムで NUMA ノードのディレクトリを作成してマウントする必要があります。

VM の NUMA トポロジを表示する

必要な tmpfs ファイル システムをマッピングする前に、VM に含まれる NUMA ノードの数を確認する必要があります。Compute Engine VM で利用可能な NUMA ノードを表示するには、次のコマンドを入力します。

lscpu | grep NUMA

たとえば、m2-ultramem-208 VM タイプには、次の例に示すように、0~3 の番号が付いた 4 つの NUMA ノードがあります。

NUMA node(s):        4
NUMA node0 CPU(s):   0-25,104-129
NUMA node1 CPU(s):   26-51,130-155
NUMA node2 CPU(s):   52-77,156-181
NUMA node3 CPU(s):   78-103,182-207
NUMA ノード ディレクトリを作成する

VM に NUMA ノードごとにディレクトリを作成し、権限を設定します。

たとえば、0~3 の番号が付いた 4 つの NUMA ノードの場合、次のようになります。

mkdir -pv /hana/tmpfs{0..3}/SID
chown -R SID_LCadm:sapsys /hana/tmpfs*/SID
chmod 777 -R /hana/tmpfs*/SID
NUMA ノード ディレクトリを tmpfs にマウントする

tmpfs ファイル システム ディレクトリをマウントし、mpol=prefer を使用してそれぞれの NUMA ノードの優先順位を指定します。

SID: SID を大文字で指定します。

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0 /hana/tmpfs0/SID
mount tmpfsSID1 -t tmpfs -o mpol=prefer:1 /hana/tmpfs1/SID
mount tmpfsSID2 -t tmpfs -o mpol=prefer:2 /hana/tmpfs2/SID
mount tmpfsSID3 -t tmpfs -o mpol=prefer:3 /hana/tmpfs3/SID
/etc/fstab の更新

オペレーティング システムの再起動後にマウント ポイントを使用できるようにするには、次のように、ファイル システム テーブル /etc/fstab にエントリを追加します。

tmpfsSID0 /hana/tmpfs0/SID tmpfs rw,relatime,mpol=prefer:0
tmpfsSID1 /hana/tmpfs1/SID tmpfs rw,relatime,mpol=prefer:1
tmpfsSID1 /hana/tmpfs2/SID tmpfs rw,relatime,mpol=prefer:2
tmpfsSID1 /hana/tmpfs3/SID tmpfs rw,relatime,mpol=prefer:3

省略可: メモリ使用量の上限を設定する

tmpfs ファイル システムは動的に拡張および縮小できます。

tmpfs ファイル システムで使用されるメモリを制限するには、size オプションを使用して NUMA ノード ボリュームのサイズ制限を設定します。次に例を示します。

mount tmpfsSID0 -t tmpfs -o mpol=prefer:0,size=250G /hana/tmpfs0/SID

また、global.ini ファイルの [memorymanager] セクションで persistent_memory_global_allocation_limit パラメータを設定して、特定の SAP HANA インスタンスと特定のサーバーノードにおけるすべての NUMA ノードについて、全体的な tmpfs メモリ使用量を制限できます。

Fast Restart 用の SAP HANA の構成

Fast Restart 用に SAP HANA を構成するには、global.ini ファイルを更新し、永続メモリに保存するテーブルを指定します。

global.ini ファイルの [persistence] セクションを更新する

tmpfs の場所を参照するように、SAP HANA の global.ini ファイルの [persistence] セクションを構成します。各 tmpfs の場所をセミコロンで区切ります。

[persistence]
basepath_datavolumes = /hana/data
basepath_logvolumes = /hana/log
basepath_persistent_memory_volumes = /hana/tmpfs0/SID;/hana/tmpfs1/SID;/hana/tmpfs2/SID;/hana/tmpfs3/SID

上記の例では、4 つの NUMA ノードに 4 つのメモリ ボリュームを指定しています。これは、m2-ultramem-208 に対応しています。m2-ultramem-416 で実行している場合は、8 つのメモリ ボリューム(0~7)を構成する必要があります。

global.ini ファイルを変更したら、SAP HANA を再起動します。

SAP HANA では、tmpfs の場所を永続メモリ領域として使用できるようになりました。

永続メモリに保存するテーブルを指定する

永続メモリに保存する特定の列テーブルまたはパーティションを指定します。

たとえば、既存のテーブルの永続メモリを有効にするには、SQL クエリを実行します。

ALTER TABLE exampletable persistent memory ON immediate CASCADE

新しいテーブルのデフォルトを変更するには、indexserver.ini ファイルにパラメータ table_default を追加します。次に例を示します。

[persistent_memory]
table_default = ON

列、テーブルのコントロール方法の詳細や、どのモニタリング ビューが詳細情報を提供するかは、SAP HANA 永続メモリをご確認ください。

自動で行う場合の手順

Google Cloud が提供する自動化スクリプトは、SAP HANA Fast Restart を有効にするためにディレクトリ /hana/tmpfs*、ファイル /etc/fstab、SAP HANA の構成を変更します。スクリプトを実行する際に、これが SAP HANA システムの初期デプロイか、マシンを別の NUMA サイズに変更するかによって、追加の手順が必要になる場合があります。

SAP HANA システムの初期デプロイや、NUMA ノードの数を増やすためにマシンのサイズを変更する場合は、Google Cloud 提供の自動化スクリプトで SAP HANA Fast Restart を有効にするときに、SAP HANA が稼働している必要があります。

NUMA ノードの数を減らすためにマシンサイズを変更する場合は、Google Cloud 提供の自動化スクリプトで SAP HANA Fast Restart を有効にするときに、SAP HANA が停止している必要があります。スクリプトの実行後、SAP HANA の構成を手動で更新し、SAP HANA Fast Restart の設定を完了する必要があります。詳細については、Fast Restart 用の SAP HANA の構成をご覧ください。

SAP HANA Fast Restart を有効にするには、次の手順を行います。

  1. ホスト VM との SSH 接続を確立します。

  2. root に切り替えます。

    sudo su -

  3. sap_lib_hdbfr.sh スクリプトをダウンロードします。

    wget https://storage.googleapis.com/cloudsapdeploy/terraform/latest/terraform/lib/sap_lib_hdbfr.sh
  4. ファイルを実行可能にします。

    chmod +x sap_lib_hdbfr.sh
  5. スクリプトにエラーがないことを確認します。

    vi sap_lib_hdbfr.sh
    ./sap_lib_hdbfr.sh -help

    コマンドからエラーが返された場合は、Cloud カスタマーケアにお問い合わせください。カスタマーケアへのお問い合わせ方法については、Google Cloud での SAP に関するサポートを受けるをご覧ください。

  6. スクリプトを実行する前に、SAP HANA のシステム ID(SID)とパスワードを SAP HANA データベースの SYSTEM ユーザーのものと置き換えてください。パスワードを安全に提供するには、Secret Manager でシークレットを使用することをおすすめします。

    Secret Manager で、シークレットの名前を使用してスクリプトを実行します。このシークレットは、ホスト VM インスタンスを含む Google Cloud プロジェクトに存在している必要があります。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -s SECRET_NAME 

    次のように置き換えます。

    • SID: SID を大文字で指定します。例: AHA
    • SECRET_NAME: SAP HANA データベースの SYSTEM ユーザーのパスワードに対応するシークレットの名前を指定します。このシークレットは、ホスト VM インスタンスを含む Google Cloud プロジェクトに存在している必要があります。

    書式なしテキストのパスワードを使用してスクリプトを実行することもできます。SAP HANA Fast Restart を有効にした後、パスワードを変更します。パスワードは VM のコマンドライン履歴に記録されるため、書式なしテキストのパスワードの使用はおすすめしません。

    sudo ./sap_lib_hdbfr.sh -h 'SID' -p 'PASSWORD'

    次のように置き換えます。

    • SID: SID を大文字で指定します。例: AHA
    • PASSWORD: SAP HANA データベースの SYSTEM ユーザーのパスワードを指定します。

初期実行に成功すると、次のような出力が表示されます。

INFO - Script is running in standalone mode
ls: cannot access '/hana/tmpfs*': No such file or directory
INFO - Setting up HANA Fast Restart for system 'TST/00'.
INFO - Number of NUMA nodes is 2
INFO - Number of directories /hana/tmpfs* is 0
INFO - HANA version 2.57
INFO - No directories /hana/tmpfs* exist. Assuming initial setup.
INFO - Creating 2 directories /hana/tmpfs* and mounting them
INFO - Adding /hana/tmpfs* entries to /etc/fstab. Copy is in /etc/fstab.20220625_030839
INFO - Updating the HANA configuration.
INFO - Running command: select * from dummy
DUMMY
"X"
1 row selected (overall time 4124 usec; server time 130 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistence', 'basepath_persistent_memory_volumes') = '/hana/tmpfs0/TST;/hana/tmpfs1/TST;'
0 rows affected (overall time 3570 usec; server time 2239 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('global.ini', 'SYSTEM') SET ('persistent_memory', 'table_unload_action') = 'retain';
0 rows affected (overall time 4308 usec; server time 2441 usec)

INFO - Running command: ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') SET ('persistent_memory', 'table_default') = 'ON';
0 rows affected (overall time 3422 usec; server time 2152 usec)

SAP HANA へ接続する

この手順では SAP HANA に外部 IP を使用しないため、SAP HANA インスタンスに接続できるのは、SSH を使用して踏み台インスタンスを経由するか、SAP HANA Studio を使用して Windows サーバーを経由する場合だけになることに注意してください。

  • 踏み台インスタンスを介して SAP HANA に接続するには、踏み台インスタンスに接続してから、任意の SSH クライアントを使用して SAP HANA インスタンスに接続します。

  • SAP HANA Studio を経由して SAP HANA データベースに接続するには、リモート デスクトップ クライアントを使用して、Windows Server インスタンスに接続します。接続後、手動で SAP HANA Studio をインストールし、SAP HANA データベースにアクセスします。

デプロイ後のタスクの実行

SAP HANA インスタンスを使用する前に、次のデプロイ後の手順を実行することをおすすめします。詳しくは、SAP HANA のインストールおよび更新ガイドをご覧ください。

  1. SAP HANA システム管理者とデータベースのスーパーユーザーの仮のパスワードを変更します。

  2. SAP HANA ソフトウェアを、最新のパッチで更新します。

  3. SAP HANA システムが VirtIO ネットワーク インターフェースにデプロイされている場合は、TCP パラメータ /proc/sys/net/ipv4/tcp_limit_output_bytes の値を 1048576 に設定することをおすすめします。この変更により、ネットワーク レイテンシに影響を与えることなく、VirtIO ネットワーク インターフェースの全体的なネットワーク スループットを改善できます。

  4. アプリケーション機能ライブラリ(AFL)またはスマートデータ アクセス(SDA)などの、追加コンポーネントがあればインストールします。

  5. 既存の SAP HANA システムをアップグレードする場合は、標準のバックアップと復元手順か、SAP HANA システム レプリケーションを使用して、既存のシステムからデータを読み込みます。

  6. 新しい SAP HANA データベースを構成し、バックアップします。詳細については、SAP HANA オペレーション ガイドをご覧ください。

SAP HANA ワークロードを評価する

Google Cloud 上で実行される SAP HANA ワークロードの継続的な検証チェックを自動化するには、Workload Manager を使用します。

Workload Manager を使用すると、SAP HANA ワークロードを SAP、Google Cloud、OS ベンダーのベスト プラクティスに対して自動的にスキャンして評価できます。これにより、ワークロードの品質、パフォーマンス、信頼性が向上します。

Google Cloud で実行されている SAP HANA ワークロードの評価で Workload Manager がサポートするベスト プラクティスについては、SAP 向けの Workload Manager のベスト プラクティスをご覧ください。Workload Manager を使用して評価を作成および実行する方法については、評価を作成して実行するをご覧ください。

次のステップ