Deployment Manager: SAP HANA スケールアップ デプロイガイド

このデプロイガイドでは、Cloud Deployment Manager と構成ファイル テンプレートを使用してインストールを定義することで、Google Cloud に SAP HANA システムをデプロイする方法について説明します。このガイドは、Compute Engine 仮想マシン(VM)、永続ディスク、Linux オペレーティング システムを構成して、SAP HANA システムの最高のパフォーマンスを実現するのに役立ちます。Deployment Manager テンプレートには、Compute Engine と SAP の両方のベスト プラクティスが組み込まれています。

このガイドでは、単一ホストのスケールアップによる SAP HANA システムのデプロイや、スタンバイ ホストを含まないマルチホストのスケールアウトによる SAP HANA システムのデプロイを行います。

SAP HANA の自動ホスト フェイルオーバーを含める必要がある場合は、ホストの自動フェイルオーバーを使用した SAP HANA スケールアウト システムの導入ガイドを使用してください。

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

前提条件

開始する前に、次の前提条件を満たしていることを確認してください。

  • SAP HANA プランニング ガイドを参照した。
  • Google Cloud アカウントとプロジェクトがある。
  • データ所在地、アクセス制御、サポート担当者、規制要件に準拠しながら SAP ワークロードを実行する必要がある場合は、必要な Assured Workloads フォルダを作成する必要があります。詳細については、Google Cloud 上の SAP のコンプライアンスと主権管理をご覧ください。
  • Virtual Private Cloud ネットワークが、VM へのアクセスを制御するファイアウォール ルールまたはその他の方法で設定されている。
  • SAP HANA インストール メディアにアクセスできる。

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

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

Google アカウントの設定

Google Cloud を使用するには Google アカウントが必要です。

  1. Google アカウントをお持ちでない場合は、Google アカウントに登録します。
  2. (省略可)データ所在地、アクセス制御、サポート担当者、規制要件に準拠しながら SAP ワークロードを実行する必要がある場合は、必要な Assured Workloads フォルダを作成する必要があります。詳細については、Google Cloud 上の SAP のコンプライアンスと主権管理をご覧ください。
  3. Google Cloud コンソールにログインし、新しいプロジェクトを作成します。
  4. 請求先アカウントを有効にします。
  5. SSH 認証鍵を使用して Compute Engine VM インスタンスに SSH 接続できるように、SSH 認証鍵を構成します。Google Cloud CLI を使用して、新しい SSH 認証鍵を作成します。
  6. gcloud CLI または Google Cloud コンソールを使用して、プロジェクトのメタデータに SSH 認証鍵を追加します。これにより、このプロジェクト内で作成されたすべての Compute Engine VM インスタンスにアクセスできるようになります。ただし、プロジェクト全体の SSH 認証鍵を明示的に無効にするインスタンスを除きます。

ネットワークの作成

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

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

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

ネットワークを設定するには:

コンソール

  1. Google Cloud コンソールで、[VPC ネットワーク] ページに移動します。

    [VPC ネットワーク] に移動

  2. [VPC ネットワークを作成] をクリックします。
  3. ネットワークの名前を入力します。

    命名規則に従って名前を付けてください。VPC ネットワークは、Compute Engine の命名規則を使用します。

  4. [サブネット作成モード] で [カスタム] をクリックします。
  5. [新しいサブネット] セクションで、サブネットに次の構成パラメータを指定します。
    1. サブネットの名前を入力します。
    2. [リージョン] で、サブネットを作成する Compute Engine のリージョンを選択します。
    3. [IP スタックタイプ] で [IPv4(シングルスタック)] を選択し、CIDR 形式で IP アドレス範囲を入力します。(10.1.0.0/24 など)

      これはサブネットのプライマリ IPv4 範囲です。複数のサブネットワークを追加する場合は、ネットワーク内の各サブネットワークに重複しない CIDR IP 範囲を割り当ててください。各サブネットワークとその内部 IP 範囲は、単一のリージョンにマッピングされることに注意してください。

    4. [完了] をクリックします。
  6. さらにサブネットを追加するには、[サブネットを追加] をクリックして前の手順を繰り返します。ネットワークを作成した後で、ネットワークにさらにサブネットを追加できます。
  7. [作成] をクリックします。

gcloud

  1. Cloud Shell に移動します。

    Cloud Shell に移動

  2. カスタム サブネットワーク モードで新しいネットワークを作成するには、次のコマンドを実行します。
    gcloud compute networks create NETWORK_NAME --subnet-mode custom

    NETWORK_NAME は、新しいネットワークの名前に置き換えます。命名規則に従って名前を付けてください。VPC ネットワークは、Compute Engine の命名規則を使用します。

    デフォルトの自動モードでは、各 Compute Engine リージョンにサブネットが自動的に作成されます。この自動モードを使用しないようにするには、--subnet-mode custom を指定します。詳しくは、サブネット作成モードをご覧ください。

  3. サブネットワークを作成し、リージョンと IP 範囲を指定します。
    gcloud compute networks subnets create SUBNETWORK_NAME \
        --network NETWORK_NAME --region REGION --range RANGE

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

    • SUBNETWORK_NAME: 新しいサブネットワークの名前
    • NETWORK_NAME: 前の手順で作成したサービスの名前
    • REGION: サブネットワークを配置するリージョン
    • RANGE: CIDR 形式で指定された IP アドレス範囲(例: 10.1.0.0/24)。

      複数のサブネットワークを追加する場合は、ネットワーク内の各サブネットワークに重複しない CIDR IP 範囲を割り当ててください。各サブネットワークとその内部 IP 範囲は、単一のリージョンにマッピングされることに注意してください。

  4. 必要に応じて前の手順を繰り返し、サブネットワークを追加します。

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 間の通信を有効にするには、サブネットワーク内から発信されるトラフィックを許可するファイアウォール ルールを作成する必要があります。
  • VM インスタンスへの SSH 接続(ブラウザでの SSH を含む)。
  • Linux のサードパーティ製ツールを使用した VM への接続。ファイアウォール ルールを作成して、ツールのアクセスを許可します。

ファイアウォール ルールを作成するには:

コンソール

  1. Google Cloud コンソールで、VPC ネットワークの [ファイアウォール] ページに移動します。

    [ファイアウォール] に移動

  2. ページ上部の [ファイアウォール ルールを作成] をクリックします。

    • [ネットワーク] フィールドで、VM が配置されているネットワークを選択します。
    • [ターゲット] フィールドで、このルールが適用される Google Cloud 上のリソースを指定します。たとえば、[ネットワーク上のすべてのインスタンス] を指定します。Google Cloud 上の特定のインスタンスにルールを制限するには、[指定されたターゲットタグ] にタグを入力してください。
    • [ソースフィルタ] フィールドで、次のいずれかを選択します。
      • 特定の IP アドレスからの受信トラフィックを許可する場合は、[IP 範囲] を選択します。[ソース IP の範囲] フィールドで IP アドレスの範囲を指定します。
      • サブネット: 特定のサブネットワークからの受信トラフィックを許可する場合に使用します。次の [サブネット] フィールドにサブネットワーク名を指定します。このオプションを使用すると、3 層構成またはスケールアウト構成で VM 間のアクセスを許可できます。
    • [プロトコルとポート] セクションで、[指定したプロトコルとポート] を選択して tcp:PORT_NUMBER を指定します。
  3. [作成] をクリックしてファイアウォール ルールを作成します。

gcloud

次のコマンドを使用して、ファイアウォール ルールを作成します。

$ gcloud compute firewall-rules create FIREWALL_NAME
--direction=INGRESS --priority=1000 \
--network=NETWORK_NAME --action=ALLOW --rules=PROTOCOL:PORT \
--source-ranges IP_RANGE --target-tags=NETWORK_TAGS

SAP HANA インストール ファイル用の Cloud Storage バケットの作成

Deployment Manager を使用して Compute Engine VM に SAP HANA をインストールする前に、SAP HANA バイナリを含むインストール ファイルを Cloud Storage バケットにアップロードする必要があります。

Deployment Manager は、SAP が提供するファイル形式での SAP HANA インストール ファイルを想定します。SAP HANA のバージョンに応じて、ファイル形式は ZIP、EXE、RAR のいずれかになります。

SAP HANA インストール ファイルをダウンロードするには、次のように Cloud Storage バケットを作成し、そのバケットにファイルをアップロードする必要があります。

  1. 必要な SAP HANA バージョンの基本インストール ファイルをダウンロードします。

    1. SAP Support Portal にアクセスします。
    2. [Software Downloads] をクリックします。
    3. [Installations & Upgrades] タブで、[By Alphabetical Index (AZ)] > [H] > [SAP HANA Platform Edition] > SAP HANA Platform Edition 2.0 をクリックします。
    4. [Installation] をクリックします。
    5. 必要なサービスパックとして、[Linux x86_64 distribution] を選択し、[Download Basket] をクリックします。

    ソフトウェアへのアクセスが許可されているものの、SAP Support Portal アカウントでソフトウェアにアクセスできない場合は、SAP Global Support Customer Interaction Center にお問い合わせください。

  2. SAP HANA データベースを必要なバージョンにアップグレードするために必要なファイルをダウンロードします。これらのファイルは SAR 形式で、ファイル名は IMDB_SERVERIMDB_CLIENTIMDB_AFL で始まります。

    1. SAP Support Portal にアクセスします。

    2. [Software Downloads] をクリックします。

    3. [Support Packages & Patches] タブに移動します。

    4. [By Alphabetical Index (AZ)] > [H] > [SAP HANA Platform Edition] > [SAP HANA Platform Edition 2.0] をクリックします。

    5. 必要なコンポーネントをクリックします。たとえば、SAP HANA Database 2.0、SAP HANA Client 2.0、SAP HANA AFL 2.0 などです。

    6. 必要なファイルを選択し、[Download Basket] をクリックします。

  3. Google Cloud プロジェクトで、Cloud Storage バケットを作成します。手順については、バケットを作成するをご覧ください。

    バケット名は Google Cloud 全体で一意である必要があります。バケットの作成中に、ストレージ クラスに [Standard] を選択します。

  4. バケットの権限を構成します。バケットのオーナーには、デフォルトでバケットへの読み書きアクセス権があります。他のプリンシパルへのアクセス権を付与するには、IAM 権限の使用をご覧ください。

  5. ダウンロードした SAP HANA バイナリを Cloud Storage バケットまたはバケット内のフォルダにアップロードします。手順については、ファイル システムからオブジェクトのアップロードをご覧ください。

  6. バケットまたはフォルダには、ファイル形式ごとにインストール ファイルが 1 つだけ含まれていることを確認します。例:

    510056441.ZIP
    IMDB_SERVER20_059_11-80002031.SAR
    IMDB_CLIENT20_005_111-80002082.SAR
    IMDB_AFL20_059_11-80002031.SAR
    
  7. SAP バイナリをアップロードしたバケットとフォルダの名前をメモします。後で SAP HANA をインストールする際に、この名前を使用する必要があります。

SAP HANA をインストールした VM の作成

次の手順では、Deployment Manager を使用して、SAP HANA に必要なすべての永続ディスクを含む 1 つ以上の VM インスタンスに SAP HANA をインストールします。インストールの設定値は、Deployment Manager 構成ファイルのテンプレートで定義します。

Deployment Manager では、SAP HANA システムと、SAP HANA システム用に作成されたすべての VM、ディスク、その他のリソースが、デプロイと呼ばれる単一のエンティティとして扱われます。Deployment Manager の [デプロイメント] ページで、Google Cloud プロジェクトのすべてのデプロイメントを確認できます。

次の手順では Cloud Shell を使用していますが、Google Cloud CLI の場合も同様です。

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

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

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

    Cloud Shell に移動

  3. Cloud Shell または gcloud CLI で次のコマンドを入力して、template.yaml 構成ファイルのテンプレートを作業ディレクトリにダウンロードします。

    wget https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/template.yaml
  4. 必要に応じて template.yaml のファイル名を変更し、このファイルで定義する構成がわかるようにします。

  5. Cloud Shell コードエディタで template.yaml ファイルを開きます。gcloud CLI を使用している場合は、任意のテキスト エディタで開きます。

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

  6. template.yaml ファイルで、以下のプロパティ値のかっことその内容をご使用のインストール環境の値に置き換えて更新します。

    [SID] や [PASSWORD] など、SAP HANA システムに指定するプロパティ値には、SAP によって定義されている規則が適用されるものがあります。詳細については、SAP HANA Server インストールおよび更新ガイドのパラメータ リファレンスをご覧ください。

    SAP HANA をインストールせずに VM インスタンスを作成する場合は、sap_hana_ で始まる行をすべて削除してください。

    プロパティ データ型 説明
    type 文字列

    デプロイ中に使用する Deployment Manager テンプレートの場所、タイプ、バージョンを指定します。

    YAML ファイルには 2 つの type 仕様が含まれており、そのうちの 1 つがコメントアウトされています。デフォルトで有効な type 仕様では、テンプレート バージョンを latest として指定します。コメントアウトされている type 仕様では、タイムスタンプを使用して特定のテンプレート バージョンを指定します。

    すべてのデプロイで同じテンプレート バージョンを使用する必要がある場合は、タイムスタンプを含む type 仕様を使用します。

    instanceName 文字列 SAP HANA マスターホストの VM インスタンスの名前。名前の指定に使用できるのは、小文字、数字、ハイフンのみです。他の文字(「_」(アンダースコア)や大文字など)が使用されている場合、デプロイは失敗します。ワーカーホストの VM インスタンスの名前は同じになり、「w」とホスト番号が追加された名前を用います。
    instanceType 文字列 SAP HANA を実行する Compute Engine 仮想マシンのタイプ。カスタム VM タイプが必要な場合は、必要な数に最も近く、かつ必要数以上の vCPU 数を持つ事前定義された VM タイプを指定します。デプロイが完了したら、vCPU 数とメモリ量を変更してください。
    zone 文字列 SAP HANA システムをデプロイして実行するゾーン。サブネットに選択したリージョン内である必要があります。
    subnetwork 文字列 前のステップで作成したサブネットワークの名前。共有 VPC にデプロイする場合は、この値を [SHAREDVPC_PROJECT]/[SUBNETWORK] の形式で指定します。例: myproject/network1
    linuxImage 文字列 SAP HANA で使用する Linux オペレーティング システム イメージまたはイメージ ファミリーの名前。イメージ ファミリーを指定するには、ファミリー名に接頭辞 family/ を追加しますたとえば、family/rhel-7-4-sapfamily/sles-12-sp2-sap です。特定のイメージを指定するには、イメージ名のみを指定します。利用可能なイメージ ファミリーの一覧については、Cloud コンソールの [イメージ] ページをご覧ください。
    linuxImageProject 文字列 使用するイメージを含む Google Cloud プロジェクト。このプロジェクトは独自のプロジェクトか、rhel-sap-cloudsuse-sap-cloud のような Google Cloud イメージ プロジェクトです。Google Cloud イメージ プロジェクトの一覧については、Compute Engine ドキュメントのイメージのページをご覧ください。
    sap_hana_deployment_bucket 文字列 前のステップでアップロードした SAP HANA インストール ファイルとリビジョン ファイルを含む、プロジェクト内の Cloud Storage バケットの名前。バケット内のすべてのアップグレード リビジョン ファイルは、デプロイ プロセス中に SAP HANA に適用されます。
    sap_hana_sid 文字列 SAP HANA システム ID。ID は英数字 3 文字で、最初の文字はアルファベットにする必要があります。文字は大文字のみ使用できます。
    sap_hana_instance_number 整数 SAP HANA システムのインスタンス番号(0~99)。デフォルトは 0 です。
    sap_hana_sidadm_password 文字列 オペレーティング システム管理者用の仮のパスワード。パスワードは 8 文字以上で設定し、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含める必要があります。
    sap_hana_system_password 文字列 データベースのスーパーユーザー向けの仮のパスワード。パスワードは 8 文字以上で設定し、少なくとも英大文字、英小文字、数字をそれぞれ 1 文字以上含める必要があります。
    sap_hana_scaleout_nodes 整数 追加で必要な SAP HANA ワーカーホストの数。ワーカーホストは、プライマリ SAP HANA インスタンスに追加されます。たとえば、3 を指定した場合、4 つの SAP HANA インスタンスがスケールアウト クラスタにデプロイされます。
    sap_hana_shared_nfs 文字列 NFS ソリューションを使用してワーカーホストと /hana/shared のボリュームを共有するマルチホスト デプロイの場合は、そのボリュームの NFS マウント ポイントを指定します。例: 10.151.91.122:/hana_shared_nfs

    sap_hana_shared_nfs を指定せず、sap_hana_scaleout_nodes に 1 以上の値を指定すると、デプロイ スクリプトはプライマリ SAP HANA VM インスタンスの /hana/shared ボリュームの NFS エクスポートを作成し、そのボリュームをワーカーノードと共有して、必要な共有 /hana/shared マウントで分散セットアップします。

    この引数は、Deployment Manager テンプレート バージョン 202302060649 以降で使用できます。
    sap_hana_backup_nfs 文字列 NFS ソリューションを使用してワーカーホストと /hanabackup のボリュームを共有するマルチホスト デプロイの場合は、そのボリュームの NFS マウント ポイントを指定します。例: 10.216.41.122:/hana_backup_nfs

    sap_hana_backup_nfs を指定せず、sap_hana_scaleout_nodes に 1 以上の値を指定すると、デプロイ スクリプトはプライマリ SAP HANA VM インスタンスの /hanabackup ボリュームの NFS エクスポートを作成し、そのボリュームをワーカーノードと共有して、必要な共有 /hanabackup マウントで分散セットアップします。

    この引数は、Deployment Manager テンプレート バージョン 202302060649 以降で使用できます。
    networkTag 文字列 省略可。ファイアウォールまたはルーティングの目的で使用される、VM インスタンスを表すネットワーク タグ。「publicIP: No」を指定していて、ネットワーク タグを指定しない場合は、インターネットへの別のアクセス手段を必ず指定してください。
    nic_type 文字列 省略可。ただし、ターゲット マシンと OS バージョンに適用可能な場合は推奨します。VM インスタンスで使用するネットワーク インターフェースを指定します。値には GVNIC または VIRTIO_NET を指定できます。Google Virtual NIC(gVNIC)を使用するには、linuxImage プロパティの値として gVNIC をサポートする OS イメージを指定する必要があります。OS イメージの一覧については、オペレーティング システムの詳細をご覧ください。

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

    この引数は、Deployment Manager テンプレート バージョン 202302060649 以降で使用できます。
    publicIP ブール値 省略可。パブリック IP アドレスを VM インスタンスに追加するかどうかを指定します。デフォルトは Yes です。

    以下は、構成ファイルの例です。3 つのワーカーホストを持つマスター SAP HANA インスタンスを含むスケールアウト HANA システムを使用して、n2-highmem-32 仮想マシンをデプロイするように Deployment Manager に指示しています。SAP HANA は SLES 15 SP2 オペレーティング システム上で実行されています。

    resources:
    - name: sap_hana
      type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/latest/dm-templates/sap_hana/sap_hana.py
      #
      # By default, this configuration file uses the latest release of the deployment
      # scripts for SAP on Google Cloud.  To fix your deployments to a specific release
      # of the scripts, comment out the type property above and uncomment the type property below.
      #
      # type: https://storage.googleapis.com/cloudsapdeploy/deploymentmanager/yyyymmddhhmm/dm-templates/sap_hana/sap_hana.py
      #
      properties:
        instanceName: example-vm
        instanceType: n2-highmem-32
        zone: us-central1-f
        subnetwork: example-subnet-us-central1
        linuxImage: family/sles-15-sp2-sap
        linuxImageProject: suse-sap-cloud
        sap_hana_deployment_bucket: mybucketname
        sap_hana_sid: ABC
        sap_hana_instance_number: 00
        sap_hana_sidadm_password: TempPa55word
        sap_hana_system_password: TempPa55word
        sap_hana_scaleout_nodes: 3
  7. 次のコマンドを実行して、インスタンスを作成します。

    gcloud deployment-manager deployments create [DEPLOYMENT-NAME] --config [TEMPLATE-NAME].yaml
    

    上記のコマンドによって Deployment Manager が起動し、VM と永続ディスクがデプロイされます。その後、Deployment Manager が別のスクリプトを呼び出し、そのスクリプトがオペレーティング システムを構成して SAP HANA をインストールします。

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

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

デプロイの確認

デプロイを確認するには、Cloud Logging でデプロイログを調べ、プライマリ ホストとワーカーホストの VM 上のディスクとサービスを調べます。

ログを調べる

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

    Cloud Logging に移動

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

    ログ エクスプローラ

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

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

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

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

    以前のログビューア

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

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

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

      2. Deployment Manager の [デプロイ] ページでデプロイメントを削除し、失敗したインストールから VM と永続ディスクをクリーンアップします。

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

VM と SAP HANA システムの構成を確認する

  1. SAP HANA システムが正常にデプロイされたら、SSH を使用して VM に接続します。Compute Engine の [VM インスタンス] ページで、VM インスタンスの SSH ボタンをクリックするか、お好みの SSH メソッドを使用します。

    Compute Engine VM インスタンス ページの SSH ボタン

  2. root ユーザーに変更します。

    sudo su -
  3. コマンド プロンプトで df -h を実行します。予想されるボリュームとサイズを含む次のような出力が表示されることを確認します。次の例は、3 つのワーカーノードがあるスケールアウト システムのマスターノードからのものです。

    example-vm:~ # df -h
    Filesystem                        Size  Used Avail Use% Mounted on
    devtmpfs                          126G  8.0K  126G   1% /dev
    tmpfs                             189G     0  189G   0% /dev/shm
    tmpfs                             126G   18M  126G   1% /run
    tmpfs                             126G     0  126G   0% /sys/fs/cgroup
    /dev/sda3                          30G  5.4G   25G  18% /
    /dev/sda2                          20M  2.9M   18M  15% /boot/efi
    /dev/mapper/vg_hana-shared        251G   50G  201G  20% /hana/shared
    /dev/mapper/vg_hana-sap            32G  282M   32G   1% /usr/sap
    /dev/mapper/vg_hana-data          426G  7.4G  419G   2% /hana/data
    /dev/mapper/vg_hana-log           125G  4.3G  121G   4% /hana/log
    /dev/mapper/vg_hanabackup-backup  2.0T  2.1G  2.0T   1% /hanabackup
    tmpfs                              26G     0   26G   0% /run/user/473
    tmpfs                              26G     0   26G   0% /run/user/900
    tmpfs                              26G     0   26G   0% /run/user/1003
  4. SAP 管理者ユーザーに切り替えます。

    su - SID_LCadm
    

    SID_LC は、構成ファイルのテンプレートで指定した SID 値に置き換えます。すべて小文字を使用します。

  5. インスタンスで、hdbnameserverhdbindexserver などの SAP HANA サービスが実行されていることを確認します。

    HDB info
    
  6. RHEL for SAP 9.0 以降を使用する場合は、パッケージ chkconfigcompat-openssl11 が VM インスタンスにインストールされていることを確認してください。

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

いずれかの検証手順でインストールが失敗したことが示されている場合、前のセクションの最後の手順で説明したように、[デプロイ] ページからデプロイを削除してインスタンスを再作成します。

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 モニタリング指標の収集をご覧ください。

Compute Engine Windows VM への SAP HANA Studio のインストール

Google Cloud 外の SAP HANA インスタンス、または Google Cloud のインスタンスから接続できます。そのためには、SAP HANA Studio 内からターゲット VM へのネットワーク アクセスを有効にする必要があります。

Google Cloud の Windows VM に SAP HANA Studio をインストールするには、次の手順を行います。

  1. Cloud Shell を使用して、次のコマンドを実行します。

    Cloud Shell を開く

    export NETWORK_NAME="[YOUR_NETWORK_NAME]"
    export REGION="[YOUR_REGION]"
    export ZONE="[YOUR_ZONE]"
    export SUBNET="[YOUR_SUBNETWORK_NAME]"
    export SOURCE_IP_RANGE="[YOUR_WORKSTATION_IP]"
    gcloud compute instances create saphanastudio --zone=$ZONE \
    --machine-type=n1-standard-2  --subnet=$SUBNET --tags=hanastudio \
    --image-family=windows-2016  --image-project=windows-cloud \
    --boot-disk-size=100 --boot-disk-type=pd-standard \
    --boot-disk-device-name=saphanastudio
    gcloud compute firewall-rules create ${NETWORK_NAME}-allow-rdp \
    --network=$NETWORK_NAME --allow=tcp:3389 --source-ranges=$SOURCE_IP_RANGE \
    --target-tags=hanastudio

    上記のコマンドで、現在の Cloud Shell セッションの変数を設定し、前に作成したサブネットワークに Windows サーバーを作成します。また、リモート デスクトップ プロトコル(RDP)を介したインスタンスに対し、ローカル ワークステーションからのアクセスを許可するファイアウォール ルールを作成します。

  2. SAP HANA Studio をこのサーバーにインストールします。

    1. SAP HANA Studio のインストール ファイルと SAPCAR 抽出ツールを Google Cloud プロジェクトの Cloud Storage バケットにアップロードします。
    2. RDP またはお好みの方法で、新しい Windows VM に接続します。
    3. Windows の Google Cloud CLI Shell または他のコマンドライン インターフェースを管理者権限で開きます。
    4. コマンド インターフェースに gsutil cp コマンドを入力して、SAP HANA Studio インストール ファイルと SAPCAR 抽出ツールをストレージ バケットから VM にコピーします。次に例を示します。

      gsutil cp gs://[SOURCE_BUCKET]/IMC_STUDIO2_232_0-80000323.SAR C:\[TARGET_DIRECTORY] &
      gsutil cp gs://[SOURCE_BUCKET]/SAPCAR_1014-80000938.EXE C:\[TARGET_DIRECTORY]
      
    5. ディレクトリをターゲット ディレクトリに変更します。

      cd C:\[TARGET_DIRECTORY]
      
    6. SAPCAR プログラムを実行して、SAP HANA Studio インストール ファイルを抽出します。

      SAPCAR_1014-80000938.EXE -xvf IMC_STUDIO2_232_0-80000323.SAR
      
    7. 抽出した hdbinst プログラムを実行して SAP HANA Studio をインストールします。

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 システム管理者とデータベースのスーパーユーザーの仮のパスワードを変更します。例:

    sudo passwd SID_LCadm

    システム データベースのシステム ユーザー パスワードのリセットをご覧ください。

  2. SAP HANA の永続ライセンスをインストールします。インストールしていない場合、一時ライセンスの有効期限が切れると SAP HANA はデータベースのロックダウンを発生させます。

    SAP HANA ライセンスの管理に関する SAP の詳細については、SAP HANA データベースのライセンスキーをご覧ください。

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

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

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

次のステップ

  • SAP HANA ディレクトリ用の永続ディスクではなく Google Cloud 用の NetApp Cloud Volumes Service を使用する必要がある場合は、SAP HANA プランニング ガイドの NetApp Cloud Volumes Service のデプロイ情報をご覧ください。
  • VM の管理とモニタリングの詳細については、SAP HANA 運用ガイドをご覧ください。