次の方法で共有


SLES for SAP Applications VM 上でのシンプルなマウントと NFS を使用した高可用性 SAP NetWeaver

この記事では、シンプルなマウント構造を使用して、Azure 仮想マシン (VM) のデプロイと構成、クラスター フレームワークのインストール、高可用性 (HA) SAP NetWeaver システムのインストールを行う方法について説明します。 示されたアーキテクチャは、次のいずれかの Azure ネイティブ ネットワーク ファイル システム (NFS) サービスを使用して実装できます。

SLES for SAP Applications 15 の新しい実装では、シンプルなマウントの構成が既定になる予定です。

前提条件

次のガイドには、NetWeaver HA システムを設定するために必要なすべての情報が含まれています。

概要

この記事では、シンプルなマウント構造を使用した ASCS の高可用性構成について説明します。 SAP アプリケーション レイヤーをデプロイするには、/sapmnt/SID/usr/sap/SID/usr/sap/trans のような可用性の高い共有ディレクトリが必要です。 これらのファイル システムは、Azure Files 上の NFS "または" Azure NetApp Files にデプロイできます。

SAP セントラル サービス (SCS) や ASCS などの単一障害点コンポーネントを保護するには、引き続き Pacemaker クラスターが必要です。

従来の Pacemaker クラスター構成と比較した場合、シンプルなマウントのデプロイでは、ファイル システムがクラスターによって管理されません。 この構成は、SLES for SAP Applications 15 以降でのみサポートされます。 この記事では、データベース レイヤーについては詳しく説明しません。

構成とインストール コマンドの例では、次のインスタンス番号を使用します。

インスタンス名 インスタンス番号
ASCS 00
エンキュー レプリケーション サーバー (ERS) 01
プライマリ アプリケーション サーバー (PAS) 02
追加のアプリケーション サーバー (AAS) 03
SAP システム識別子 NW1

重要

シンプルなマウント構造の構成は、SLES for SAP Applications 15 以降のリリースでのみサポートされます。

シンプルなマウントと NFS を使用した SAP NetWeaver の高可用性を示す図。

この図は、シンプルなマウントを使用した一般的な SAP NetWeaver HA アーキテクチャを示しています。 "sapmnt" および "saptrans" ファイル システムは、Azure ネイティブ NFS (Azure Files 上の NFS 共有または Azure NetApp Files 上の NFS ボリューム) にデプロイされます。 Pacemaker クラスターでは、SAP セントラル サービスを保護します。 クラスター化された VM は、Azure ロード バランサーの背後に配置されます。 従来の Pacemaker 構成とは異なり、ファイル システムが Pacemaker クラスターによって管理されません。

インフラストラクチャの準備

SAP インスタンスのリソース エージェントは、SUSE Linux Enterprise Server for SAP Applications に含まれています。 Azure Marketplace には、SUSE Linux Enterprise Server for SAP Applications 12 または 15 の画像が掲載されています。 この画像を使用して新しい VM をデプロイできます。

Azure portal 経由での手動による Linux VM のデプロイ

このドキュメントは、リソース グループ、Azure Virtual Network、サブネットが既にデプロイ済みであることを前提としています。

SLES for SAP Applications イメージを使用して仮想マシンをデプロイします。 SAP システムでサポートされている適切なバージョンの SLES イメージを選択します。 VM は、仮想マシン スケール セット、可用性ゾーン、可用性セットのいずれかの可用性オプションでデプロイできます。

Azure Load Balancer の構成

VM 構成中に、ネットワーク セクションでロード バランサーを作成するか既存のものを選択する選択肢もあります。 以下の手順に従って、SAP ASCS と SAP ERS の高可用性セットアップ用に標準ロード バランサーを構成します。

ロード バランサーの作成」のガイドに従い、Azure portal を使って高可用性 SAP システム用に Standard ロード バランサーを設定します。 ロード バランサーの設定においては、以下の点を考慮してください。

  1. フロントエンド IP 構成: 2 つのフロントエンド IP を作成します。1 つは ASCS 用、もう 1 つは ERS 用です。 ASCS/ERS 仮想マシンと同じ仮想ネットワークとサブネットを選択します。
  2. バックエンド プール: バックエンド プールを作成し、ASCS および ERS VM を追加します。
  3. 受信規則: 2 つの負荷分散規則を作成します。1 つは ASCS 用、もう 1 つは ERS 用です。 両方の負荷分散規則に対して同じ手順を実行します。
    • フロントエンド IP アドレス: フロントエンド IP を選択します
    • バックエンド プール: バックエンド プールを選択します
    • [High availability ports] (高可用性ポート) をオンにします
    • プロトコル: TCP
    • 正常性プローブ: 以下の詳細を使用して正常性プローブを作成します (ASCS と ERS の両方に適用されます)
      • プロトコル: TCP
      • ポート: [例: ASCS に対しては 620<Instance-no.>、ERS に対しては 621<Instance-no.>]
      • 間隔: 5
      • プローブしきい値: 2
    • アイドル タイムアウト (分): 30
    • [Floating IP を有効にする] をオンにします

Note

正常性プローブ構成プロパティ numberOfProbes (ポータルでは [異常のしきい値] と呼ばれます) が順守されていません。 このため、成功または失敗した連続プローブの数を制御するには、プロパティ "probeThreshold" を 2 に設定します。 現在、このプロパティは Azure portal を使用して設定できないため、Azure CLI または PowerShell コマンドを使用してください。

Note

パブリック IP アドレスのない VM が、内部の (パブリック IP アドレスのない) Standard Azure Load Balancer のバックエンド プール内に配置されている場合、パブリック エンドポイントへのルーティングを許可するように追加の構成が実行されない限り、送信インターネット接続はありません。 送信接続を実現する方法の詳細については、「SAP の高可用性シナリオにおける Azure Standard Load Balancer を使用した Virtual Machines のパブリック エンドポイント接続」を参照してください。

重要

  • Azure Load Balancer の背後に配置された Azure VM では TCP タイムスタンプを有効にしないでください。 TCP タイムスタンプを有効にすると正常性プローブが失敗することになります。 net.ipv4.tcp_timestamps パラメーターを 0 に設定します。 詳しくは、「Load Balancer の正常性プローブ」を参照してください。
  • saptune が手動で設定した net.ipv4.tcp_timestamps 値を 0 から 1 に変更するのを防ぐには、saptune バージョンを 3.1.1 以上に更新する必要があります。 詳しくは、「saptune 3.1.1 – Do I Need to Update? (saptune 3.1.1 – 更新する必要があるか)」を参照してください。

NFS の展開

SAP 共有ディレクトリをホストするために Azure ネイティブ NFS をデプロイするには、2 つのオプションがあります。 Azure Files に NFS ファイル共有をデプロイするか、Azure NetApp Files に NFS ボリュームをデプロイできます。 Azure Files 上の NFS では、NFSv4.1 プロトコルをサポートします。 Azure NetApp Files 上の NFS では、NFSv4.1 と NFSv3 の両方をサポートします。

次のセクションでは、NFS をデプロイする手順について説明します。 オプションを 1 つだけ選択します。

Azure Files ストレージ アカウントと NFS 共有のデプロイ

Azure Files 上の NFS は、Azure Files Premium ストレージの上で実行されます。 Azure Files 上の NFS を設定する前に、「NFS 共有を作成する方法」をご覧ください。

Azure リージョン内の冗長性には、次の 2 つのオプションがあります。

選択した Azure リージョンで、適切な冗長性を備えた Azure Files 上の NFSv4.1 が提供されていることを確認してください。 Azure リージョン別に利用可能な Azure FilesPremium Files Storage を確認してください。 ZRS のメリットがあるシナリオの場合は、お使いの Azure リージョンで ZRS を使用した Premium ファイル共有がサポートされていることを確認してください

Azure プライベート エンドポイントを使用して、Azure Storage アカウントにアクセスすることをお勧めします。 Azure Files ストレージ アカウントのエンドポイントと、NFS 共有をマウントする必要がある VM を、同じ Azure 仮想ネットワークまたはピアリングされた Azure 仮想ネットワークにデプロイしてください。

  1. sapnfsafs という名前の Azure Files ストレージ アカウントをデプロイします。 この例では、ZRS を使用します。 このプロセスに慣れていない場合は、Azure portal での「ストレージ アカウントの作成」を参照してください。
  2. [基本] タブで、次の設定を使用します。
    1. [ストレージ アカウント名] に、「sapnfsafs」と入力します。
    2. [パフォーマンス] では [Premium] を選択します。
    3. [Premium account type](Premium アカウントの種類)[FileStorage] を選択します。
    4. [レプリケーション] で、[Zone redundancy (ZRS)] (ゾーン冗長 (ZRS)) を選択します。
  3. [次へ] を選択します。
  4. [詳細設定] タブで、[REST API の安全な転送を必須にする] をオフにします。 このオプションをオフにしないと、NFS 共有を VM にマウントできません。 マウント操作がタイム アウトします。
  5. [次へ] を選択します。
  6. [ネットワーク] セクションで、これらの設定を構成します。
    1. [ネットワーク接続][接続方法] で、[プライベート エンドポイント] を選びます。
    2. [プライベート エンドポイント][プライベート エンドポイントの追加] を選びます。
  7. [プライベート エンドポイントの作成] ウィンドウで、サブスクリプション、リソース グループ、場所を選択します。 次に、以下のように選択します。
    1. [名前] に「sapnfsafs_pe」と入力します。
    2. [ストレージ サブリソース][ファイル] を選択します。
    3. [ネットワーク][仮想ネットワーク] で、使用する仮想ネットワークとサブネットを選びます。 この場合も、SAP VM がある仮想ネットワーク、またはピアリングされた仮想ネットワークを使用できます。
    4. [プライベート DNS 統合] では、[プライベート DNS ゾーンと統合する] の既定のオプション [はい] をそのまま使用します。 お使いのプライベート DNS ゾーンを選択します。
    5. [OK] を選択します。
  8. [ネットワーク] タブに戻り、 [次へ] を選びます。
  9. [データ保護] タブで、すべての既定の設定をそのまま維持します。
  10. [確認および作成] を選択して構成を検証します。
  11. 検証の終了を待ちます。 問題があれば、続行する前に修正してください。
  12. [確認および作成] タブで、 [作成] を選択します。

次に、作成したストレージ アカウントに NFS 共有をデプロイします。 この例では、sapnw1saptrans の 2 つの NFS 共有があります。

  1. Azure portal にサインインします。
  2. ストレージ アカウントを選択するか、検索します。
  3. [ストレージ アカウント] ページで、[sapnfsafs] を選びます。
  4. sapafsnfs のリソース メニューで、[データ ストレージ] の下の [ファイル共有] を選びます。
  5. [ファイル共有] ページで、[ファイル共有] を選択し、その後に次のようにします。
    1. [名前] に、「sapnw1」、「saptrans」と入力します。
    2. 適切な共有サイズを選択します。 共有に格納されるデータのサイズ、1 秒あたりの I/O (IOPS)、スループットの要件を考慮してください。 詳細については、Azure ファイル共有のターゲットに関するページをご覧ください。
    3. プロトコルとして [NFS] を選びます。
    4. [ルート スカッシュなし] を選びます。 そうしないと、VM に共有をマウントするときに、ファイルの所有者またはグループが表示できません。

NFS 経由でマウントする必要がない SAP ファイル システムを Azure ディスク ストレージにデプロイすることもできます。 この例では、/usr/sap/NW1/D02/usr/sap/NW1/D03 を Azure ディスク ストレージにデプロイできます。

Azure Files 共有上の NFS に関する重要な考慮事項

Azure Files 上の NFS を使用したデプロイを計画する際は、次の重要な点を考慮してください。

  • 共有の最小サイズは 100 GiB です。 プロビジョニングされた共有の容量に対してのみ料金が発生します。
  • 容量の要件だけでなく、IOPS とスループットの要件にも基づいて NFS 共有のサイズを決定してください。 詳細については、Azure ファイル共有のターゲットに関するページを参照してください。
  • ワークロードをテストしてサイズ設定を検証し、パフォーマンス目標を満たしていることを確認してください。 Azure Files 上の NFS のパフォーマンスの問題のトラブルシューティング方法については、Azure ファイル共有のパフォーマンスのトラブルシューティングに関する記事を参照してください。
  • SAP J2EE システムの場合、Azure Files 上の NFS に /usr/sap/<SID>/J<nr> を配置することはできません。
  • SAP システムのバッチ ジョブの負荷が高い場合は、ジョブ ログが数百万件になる可能性があります。 SAP のバッチ ジョブ ログがファイル システムに格納されている場合は、sapmnt 共有のサイズ設定に特に注意してください。 SAP_BASIS 7.52 の時点では、バッチ ジョブ ログの既定の動作として、データベースに格納されます。 詳細については、データベースのジョブ ログに関するページを参照してください。
  • SAP システムごとに個別の sapmnt 共有をデプロイします。
  • 他のアクティビティ (インターフェイスなど) には sapmnt 共有を使用しないでください。
  • 他のアクティビティ (インターフェイスなど) には saptrans 共有を使用しないでください。
  • 1 つのストレージ アカウントに統合する共有の SAP システムの数が多くなり過ぎないようにします。 また、ストレージ アカウントでのスケーラビリティとパフォーマンスのターゲットもあります。 ストレージ アカウントの制限を超えないことにも注意してください。
  • 一般に、1 つのストレージ アカウントに 5 つより多い SAP システムの共有を統合しないでください。 このガイドラインは、ストレージ アカウントの制限を超過しないようにするのに役立ち、パフォーマンス分析を簡略化します。
  • 通常は、非実稼働と実稼働の SAP システム用の sapmnt のような共有は、同じストレージ アカウントに混在させないようにします。
  • NFS クライアントの機能強化の恩恵を受けるために、SLES 15 SP2 以降にデプロイすることをお勧めします。
  • プライベート エンドポイントを使用してください。 万が一ゾーン障害が発生した場合、NFS セッションは自動的に正常なゾーンにリダイレクトされます。 NFS 共有を VM に再マウントする必要はありません。
  • VM を可用性ゾーンにデプロイする場合は、ZRS をサポートする Azure リージョンでストレージ アカウントと ZRS を使用します。
  • Azure Files では現在、ディザスター リカバリー シナリオにおけるリージョン間の自動レプリケーションはサポートされていません。

Azure NetApp Files リソースのデプロイ

  1. Azure NetApp Files サービスが選択した Azure リージョンで使用できることを確認します。

  2. 選択した Azure リージョンで NetApp アカウントを作成します。 こちらの手順に従ってください。

  3. Azure NetApp Files 容量プールを設定します。 こちらの手順に従ってください。

    この記事で示されている SAP NetWeaver アーキテクチャでは、1 つの Azure NetApp Files の容量プール、Premium SKU を使用しています。 Azure 上の SAP NetWeaver アプリケーション ワークロード用には、Azure NetApp Files Premium SKU をお勧めします。

  4. こちらの手順で説明するように、サブネットを Azure NetApp Files に委任します。

  5. こちらの手順に従って、Azure NetApp Files ボリュームをデプロイします。 指定された Azure NetApp Files のサブネット内にボリュームをデプロイします。 Azure NetApp ボリュームの IP アドレスは、自動的に割り当てられます。

    Azure NetApp Files のリソースと Azure VM は、同じ Azure 仮想ネットワーク内またはピアリングされた Azure 仮想ネットワーク内に配置する必要があることに注意してください。 この例では、2 つの Azure NetApp Files ボリューム sapnw1trans を使用します。 対応するマウント ポイントにマウントされるファイル パスは次のとおりです。

    • ボリューム sapnw1 (nfs://10.27.1.5/sapnw1/sapmntNW1)
    • ボリューム sapnw1 (nfs://10.27.1.5/sapnw1/usrsapNW1)
    • ボリューム trans (nfs://10.27.1.5/trans)

共有する必要がない SAP ファイル システムを Azure ディスク ストレージにデプロイすることもできます。 たとえば、/usr/sap/NW1/D02/usr/sap/NW1/D03 は Azure ディスク ストレージとしてデプロイできます。

Azure NetApp Files 上の NFS に関する重要な考慮事項

SAP NetWeaver 高可用性アーキテクチャ用 Azure NetApp Files を検討するときは、次の重要な考慮事項に注意してください。

  • 最小容量のプールは 4 テビバイト (TiB) です。 容量プールのサイズは、1 TiB 単位で増やすことができます。
  • 最小ボリュームは 100 GiB です。
  • Azure NetApp Files と、Azure NetApp Files のボリュームがマウントされるすべての仮想マシンは、同じ Azure 仮想ネットワーク内、または同じリージョン内のピアリングされた仮想ネットワーク内に存在する必要があります。 同一リージョン内の仮想ネットワーク ピアリングを介した Azure NetApp Files のアクセスがサポートされています。 グローバル ピアリング経由での Azure NetApp Files のアクセスは、まだサポートされていません。
  • 選択した仮想ネットワークには、Azure NetApp Files に委任されているサブネットがある必要があります。
  • Azure NetApp Files ボリュームのスループットおよびパフォーマンス特性は、「Azure NetApp Files のサービス レベル」に記載されているように、ボリューム クォータとサービス レベルの機能です。 SAP 用の Azure NetApp Files ボリュームのサイズを設定するときは、結果として得られるスループットがアプリケーション要件を満たしていることを確認してください。
  • Azure NetApp Files にはエクスポート ポリシーが用意されています。 許可されるクライアントとアクセスの種類 (読み取り/書き込み、読み取り専用など) は制御できます。
  • Azure NetApp Files は、ゾーンにはまだ対応していません。 現在、Azure NetApp Files は、Azure リージョン内のすべての可用性ゾーンにはデプロイされていません。 Azure リージョンによっては、待ち時間が発生する可能性があることに注意してください。
  • Azure NetApp Files ボリュームは、NFSv3 または NFSv4.1 ボリュームとしてデプロイできます。 SAP アプリケーション層 (ASCS/ERS、SAP アプリケーション サーバー) では、両方のプロトコルがサポートされています。

ASCS を設定する

次に、SAP ASCS と ERS のインスタンスを準備してインストールします。

Pacemaker クラスターの作成

Azure の SUSE Linux Enterprise Server に Pacemaker をセットアップする」の手順に従って、この SAP ASCS に対して基本的な Pacemaker クラスターを作成します。

インストールの準備

以下の項目には、次のいずれかのプレフィックスが付いています:

  • [A]: すべてのノードに当てはまります。
  • [1]: ノード 1 にのみ当てはまります。
  • [2]: ノード 2 にのみ当てはまります。
  1. [A] 最新バージョンの SUSE コネクタをインストールします。

    sudo zypper install sap-suse-cluster-connector
    
  2. [A]sapstartsrv リソース エージェントをインストールします。

    sudo zypper install sapstartsrv-resource-agents
    
  3. [A] SAP リソース エージェントを更新します。

    この記事で説明する構成を使用するには、リソース エージェント パッケージの修正プログラムが必要です。 この修正プログラムが既にインストールされているかどうかを確認するには、次のコマンドを使用します。

    sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
    

    出力は次の例のようになります。

    <parameter name="IS_ERS" unique="0" required="0">;
    

    grep コマンドで IS_ERS パラメーターが見つからない場合は、SUSE ダウンロード ページに記載されている修正プログラムをインストールする必要があります。

    重要

    2021 年 11 月からは、少なくとも sapstartsrv-resource-agents バージョン 0.91 と resource-agents 4.x をインストールする必要があります。

  4. [A] ホスト名解決を設定します。

    DNS サーバーを使用するか、すべてのノードで /etc/hosts を変更できます。 この例では、/etc/hosts ファイルを使用する方法を示します。

    sudo vi /etc/hosts
    

    /etc/hosts に次の行を挿入します。 お使いの環境に合わせて IP アドレスとホスト名を変更します。

     # IP address of cluster node 1
     10.27.0.6    sap-cl1
     # IP address of cluster node 2
     10.27.0.7     sap-cl2
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
     10.27.0.9   sapascs
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
     10.27.0.10    sapers
    
  5. [A] スワップ ファイルを構成します。

    sudo vi /etc/waagent.conf
    
    # Check if the ResourceDisk.Format property is already set to y, and if not, set it.
    ResourceDisk.Format=y
    
    # Set the ResourceDisk.EnableSwap property to y.
    # Create and use the SWAP file on the resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with the ResourceDisk.SwapSizeMB property.
    # The free space of resource disk varies by virtual machine size. Don't set a value that's too big. You can check the SWAP space by using the swapon command.
    ResourceDisk.SwapSizeMB=2000
    

    エージェントを再起動して変更をアクティブにします。

    sudo service waagent restart
    

Azure Files で NFS を使用している場合に SAP ディレクトリを準備する

  1. [1] NFS 共有に SAP ディレクトリを作成します。

    NFS 共有 sapnw1 をいずれかの VM に一時的にマウントし、入れ子になったマウント ポイントとして使用される SAP ディレクトリを作成します。

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # Unmount the volume and delete the temporary directory.
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  2. [A] 共有ディレクトリを作成します。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans   
    
  3. [A] ファイル システムをマウントします。

    シンプルなマウントの構成では、ファイル システムが Pacemaker クラスターによって制御されません。

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1/ /usr/sap/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab   
    # Mount the file systems.
    mount -a 
    

Azure NetApp Files で NFS を使用している場合に SAP ディレクトリを準備する

このセクションの手順は、NFSv4.1 プロトコルで Azure NetApp Files ボリュームを使用している場合にのみ適用されます。 Azure NetApp Files NFSv4.1 ボリュームがマウントされるすべての VM で構成を実行します。

  1. [A] ID マッピングを無効にします。

    1. NFS ドメイン設定を確認します。 ドメインが既定の Azure NetApp Files ドメイン (defaultv4iddomain.com) として設定されていることを確認します。 また、マッピングが nobody に設定されていることも確認します。

      sudo cat /etc/idmapd.conf
      # Examplepython-azure-mgmt-compute
      [General]
      Verbosity = 0
      Pipefs-Directory = /var/lib/nfs/rpc_pipefs
      Domain = defaultv4iddomain.com
      [Mapping]
      Nobody-User = nobody
      Nobody-Group = nobody
      
    2. nfs4_disable_idmapping を確認します。 これは Y に設定する必要があります。

      nfs4_disable_idmapping が配置されるディレクトリ構造を作成するには、mount コマンドを実行します。 アクセスがカーネルとドライバー用に予約されるため、/sys/modules の下に手動でディレクトリを作成できなくなります。

      # Check nfs4_disable_idmapping. 
      cat /sys/module/nfs/parameters/nfs4_disable_idmapping
      # If you need to set nfs4_disable_idmapping to Y:
      mkdir /mnt/tmp
      mount 10.27.1.5:/sapnw1 /mnt/tmp
      umount  /mnt/tmp
      echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
      # Make the configuration permanent.
      echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
      
  2. [1]: いずれかの VM で Azure NetApp Files ボリュームを一時的にマウントし、SAP ディレクトリ (ファイル パス) を作成します。

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    # If you're using NFSv3:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 10.27.1.5:/sapnw1 /saptmp
    # If you're using NFSv4.1:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.27.1.5:/sapnw1 /saptmp
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # Unmount the volume and delete the temporary directory.
    sudo cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  3. [A] 共有ディレクトリを作成します。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans
    
  4. [A] ファイル システムをマウントします。

    シンプルなマウントの構成では、ファイル システムが Pacemaker クラスターによって制御されません。

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3,hard 0 0" >> /etc/fstab
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    # Mount the file systems.
    mount -a 
    

SAP NetWeaver ASCS と ERS をインストールする

  1. [1] ASCS インスタンス用の仮想 IP リソースと正常性プローブを作成します。

    重要

    azure-lb リソース エージェントの使用をお勧めします。これは、resource-agents-4.3.0184.6ee15eb2-4.13.1 以上のバージョンで resource-agents パッケージに含まれています。

    sudo crm node standby sap-cl2   
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.27.0.9 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \
      meta resource-stickiness=3000
    

    クラスターの状態が正常であることと、すべてのリソースが起動されていることを確認します。 リソースがどのノードで実行されているかは重要ではありません。

    sudo crm_mon -r
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl1
    # Resource Group: g-NW1_ASCS
    #  nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #  vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  2. [1] 最初のノードに SAP NetWeaver ASCS をルートとしてインストールします。

    ASCS のロード バランサーのフロントエンド構成の IP アドレスに対応する仮想ホスト名 (sapascs10.27.0.9 など) と、ロード バランサーのプローブに使用したインスタンス番号 (00 など) を使用します。

    sapinst パラメーター SAPINST_REMOTE_ACCESS_USER を使用すると、ルート以外のユーザーが sapinst に接続することを許可できます。 仮想ホスト名を使用して SAP をインストールするには、SAPINST_USE_HOSTNAME パラメーターを使用します。

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<virtual_hostname>
    

    インストールで /usr/sap/NW1/ASCS00 へのサブフォルダーの作成に失敗する場合は、ASCS00 フォルダーの所有者とグループを設定し、もう一度試してください。

    chown nw1adm /usr/sap/NW1/ASCS00
    chgrp sapsys /usr/sap/NW1/ASCS00
    
  3. [1] ERS インスタンス用の仮想 IP リソースと正常性プローブを作成します。

    sudo crm node online sap-cl2
    sudo crm node standby sap-cl1
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.27.0.10 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

    クラスターの状態が正常であることと、すべてのリソースが起動されていることを確認します。 リソースがどのノードで実行されているかは重要ではありません。

    sudo crm_mon -r
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_ERS
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ERS  (ocf::heartbeat:IPaddr2):     Started sap-cl2
    
  4. [2] SAP NetWeaver ERS をルートとして 2 番目のノードにインストールします。

    ERS のロード バランサーのフロントエンド構成の IP アドレスに対応する仮想ホスト名 (sapers10.27.0.10 など) と、ロード バランサーのプローブに使用したインスタンス番号 (01 など) を使用します。

    SAPINST_REMOTE_ACCESS_USER パラメーターを使用すると、ルート以外のユーザーが sapinst に接続することを許可できます。 仮想ホスト名を使用して SAP をインストールするには、SAPINST_USE_HOSTNAME パラメーターを使用します。

    <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    注意

    SWPM SP 20 PL 05 以降を使用します。 それより前のバージョンではアクセス許可が正しく設定されないため、インストールが失敗します。

    インストールで /usr/sap/NW1/ERS01 へのサブフォルダーの作成に失敗する場合は、ERS01 フォルダーの所有者とグループを設定し、もう一度試してください。

    chown nw1adm /usr/sap/NW1/ERS01
    chgrp sapsys /usr/sap/NW1/ERS01
    
  5. [1] ASCS インスタンス プロファイルを調整します。

    sudo vi /sapmnt/NW1/profile/NW1_ASCS00_sapascs
    
    # Change the restart command to a start command.
    # Restart_Program_01 = local $(_EN) pf=$(_PF).
    Start_Program_01 = local $(_EN) pf=$(_PF)
    
    # Add the following lines.
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Add the keepalive parameter, if you're using ENSA1.
    enque/encni/set_so_keepalive = TRUE
    

    Standalone Enqueue Server 1 および 2 (ENSA1 および ENSA2) の場合は、keepalive OS パラメーターが SAP Note 1410736 の説明に従って設定されていることを確認します。

    次に、ERS インスタンス プロファイルを調整します。

    sudo vi /sapmnt/NW1/profile/NW1_ERS01_sapers
    
    # Change the restart command to a start command.
    # Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID).
    Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
    
    # Add the following lines.
    service/halib = $(DIR_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Remove Autostart from the ERS profile.
    # Autostart = 1
    
  6. [A]keepalive を構成します。

    SAP NetWeaver アプリケーション サーバーと ASCS の間の通信は、ソフトウェア ロード バランサーを介してルーティングされます。 ロード バランサーは、構成可能なタイムアウト後に非アクティブな接続を切断します。

    この切断が起こらないようにするには、SAP NetWeaver ASCS プロファイルにパラメーターを設定する必要があります (ENSA1 を使用する場合)。 ENSA1 と ENSA2 の両方について、すべての SAP サーバーの Linux システムの keepalive 設定を変更します。 詳細については、SAP Note 1410736 を参照してください。

    # Change the Linux system configuration.
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  7. [A] インストール後に SAP ユーザーを構成します。

    # Add sidadm to the haclient group.
    sudo usermod -aG haclient nw1adm
    
  8. [1]sapservice ファイルに ASCS および ERS SAP サービスを追加します。

    ASCS サービス エントリを 2 番目のノードに追加し、ERS サービス エントリを最初のノードにコピーします。

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh sap-cl2 "cat >>/usr/sap/sapservices"
    sudo ssh sap-cl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [A] ASCS および ERS SAP インスタンスの systemd サービスの無効化。 この手順は、SAP スタートアップ フレームワークが SAP Note 3115048 に従って systemd によって管理されている場合にのみ適用されます

    Note

    SLES クラスター構成を使用して SAP ASCS や SAP ERS などの SAP インスタンスを管理する場合は、クラスターをネイティブの systemd ベースの SAP 開始フレームワークと統合するために追加の変更を行う必要があります。 これにより、メンテナンス操作によってクラスターの安定性が損なわれなくなります。 インストール後、または SAP Note 3115048 に従って SAP スタートアップ フレームワークを systemd 対応セットアップに切り替えた後、ASCS および ERS SAP インスタンスの systemd サービスを無効にする必要があります。

    # Stop ASCS and ERS instances using <sid>adm
    sapcontrol -nr 00 -function Stop
    sapcontrol -nr 00 -function StopService
    
    sapcontrol -nr 01 -function Stop
    sapcontrol -nr 01 -function StopService
    
    # Execute below command on VM where you have performed ASCS instance installation (e.g. sap-cl1)
    sudo systemctl disable SAPNW1_00
    # Execute below command on VM where you have performed ERS instance installation (e.g. sap-cl2)
    sudo systemctl disable SAPNW1_01
    
  10. [A]sappingsappong を有効にします。 sapping エージェントは、/usr/sap/sapservices ファイルを非表示にする場合に sapinit の前に実行されます。 sappong エージェントは、VM の起動時に sapservices ファイルを再表示する場合に sapinit の後に実行されます。 SAPStartSrv は、Pacemaker クラスターによって管理されるので、起動時に SAP インスタンスに対して自動的に開始されません。

    sudo systemctl enable sapping
    sudo systemctl enable sappong
    
  11. [1] ファイルを作成して ASCS と ERS の SAPStartSrv リソースを作成し、ファイルを読み込みます。

    vi crm_sapstartsrv.txt
    

    crm_sapstartsrv.txt ファイルに以下のプリミティブを入力して保存します

    primitive rsc_sapstartsrv_NW1_ASCS00 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ASCS00_sapascs
    
    primitive rsc_sapstartsrv_NW1_ERS01 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ERS01_sapers
    

    次のコマンドを使用してファイルを読み込みます。

    sudo crm configure load update crm_sapstartsrv.txt
    

    Note

    crmsh バージョン 4.4.0+20220708.6ed6b56f-150400.3.3.1 以降で "crm configure primitive..." コマンドを使用して SAPStartSrv リソースを設定した場合、SAPStartSrv リソース プリミティブの構成を確認することが重要です。 モニター操作が存在する場合は、削除する必要があります。 SUSE では開始および停止操作の削除も提案されますが、これらはモニター操作ほど重要ではありません。 詳細については、「 crmsh パッケージに最近加えられた変更により、SAP NetWeaver HA クラスタ内の SAPStartSrv リソース エージェントの構成がサポートされなくなる場合があります」を参照してください。

  12. [1] SAP クラスター リソースを作成します。

    ENSA1 システムと ENSA2 システムのどちらを実行しているかに応じて、それぞれのタブを選択してリソースを定義します。 SAP では、SAP NetWeaver 7.52 で、レプリケーションを含む ENSA2 のサポートを導入しました。 ABAP Platform 1809 以降では、ENSA2 が既定でインストールされます。 ENSA2 のサポートについては、SAP Note 2630416 を参照してください。

    sudo crm configure property maintenance-mode="true"
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sapstartsrv_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sapstartsrv_NW1_ERS01
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS01
    
    sudo crm configure colocation col_sap_NW1_no_both -5000: g-NW1_ERS g-NW1_ASCS
    sudo crm configure location loc_sap_NW1_failover_to_ers rsc_sap_NW1_ASCS00 rule 2000: runs_ers_NW1 eq 1
    sudo crm configure order ord_sap_NW1_first_start_ascs Optional: rsc_sap_NW1_ASCS00:start rsc_sap_NW1_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online sap-cl1
    sudo crm configure property maintenance-mode="false"
    

以前のバージョンからアップグレードし、ENSA2 に切り替えている場合は、SAP Note 2641019 を参照してください。

クラスターの状態が正常であることと、すべてのリソースが起動されていることを確認します。 リソースがどのノードで実行されているかは重要ではありません。

sudo crm_mon -r
# Full list of resources:
# 
# stonith-sbd     (stonith:external/sbd): Started sap-cl2
#  Resource Group: g-NW1_ASCS
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
#      rsc_sapstartsrv_NW1_ASCS00 (ocf::suse:SAPStartSrv):        Started sap-cl1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
#  Resource Group: g-NW1_ERS
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started sap-cl2
#      rsc_sapstartsrv_NW1_ERS01  (ocf::suse:SAPStartSrv):        Started sap-cl2
#      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1

SAP アプリケーション サーバーを準備する

一部のデータベースでは、データベースのインストールをアプリケーション サーバーで実行する必要があります。 データベースのインストールを実行できるように、アプリケーション サーバーの VM を準備します。

次の一般的な手順では、ASCS および HANA サーバーとは別のサーバーにアプリケーション サーバーをインストールすることを前提としています。

  1. ホスト名解決を設定します。

    DNS サーバーを使用するか、すべてのノードで /etc/hosts を変更できます。 この例では、/etc/hosts ファイルを使用する方法を示します。

    sudo vi /etc/hosts
    

    /etc/hosts に次の行を挿入します。 お使いの環境に合わせて IP アドレスとホスト名を変更します。

    10.27.0.6   sap-cl1
    10.27.0.7   sap-cl2
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
    10.27.0.9   sapascs
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
    10.27.0.10  sapers
    10.27.0.8   sapa01
    10.27.0.12  sapa02
    
  2. スワップ ファイルを構成します。

    sudo vi /etc/waagent.conf
    
    # Set the ResourceDisk.EnableSwap property to y.
    # Create and use the SWAP file on the resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file by using the ResourceDisk.SwapSizeMB property.
    # The free space of the resource disk varies by virtual machine size. Don't set a value that's too big. You can check the SWAP space by using the swapon command.
    ResourceDisk.SwapSizeMB=2000
    

    エージェントを再起動して変更をアクティブにします。

    sudo service waagent restart
    

SAP ディレクトリの準備

Azure Files 上で NFS を使用している場合は、次の手順に従って SAP アプリケーション サーバー VM で SAP ディレクトリを準備します。

  1. マウント ポイントを作成します。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  2. ファイル システムをマウントします。

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab   
    # Mount the file systems.
    mount -a 
    

Azure NetApp Files 上で NFS を使用している場合は、次の手順に従って SAP アプリケーション サーバー VM で SAP ディレクトリを準備します。

  1. マウント ポイントを作成します。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
    
  2. ファイル システムをマウントします。

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3, hard 0 0" >> /etc/fstab
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab    
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    # Mount the file systems.
    mount -a 
    

データベースをインストールする

この例では、SAP HANA に SAP NetWeaver がインストールされます。 このインストールではサポートされている任意のデータベースを使用できます。 Azure で SAP HANA をインストールする方法の詳細については、Azure 仮想マシンでの SAP HANA の高可用性に関するページを参照してください。 サポートされているデータベースの一覧については、SAP Note 1928533 を参照してください。

ルートとして SAP NetWeaver データベース インスタンスをインストールします。その際、データベースのロード バランサー フロントエンド構成の IP アドレスに対応する仮想ホスト名を使用します。 SAPINST_REMOTE_ACCESS_USER パラメーターを使用すると、ルート以外のユーザーが sapinst に接続することを許可できます。

sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

SAP NetWeaver アプリケーション サーバーをインストールする

次の手順に従って、SAP アプリケーション サーバーをインストールします。

  1. [A] アプリケーション サーバーを準備します。

    SAP NetWeaver アプリケーション サーバーの準備」の手順に従います。

  2. [A] プライマリまたは追加の SAP NetWeaver アプリケーション サーバーをインストールします。

    SAPINST_REMOTE_ACCESS_USER パラメーターを使用すると、ルート以外のユーザーが sapinst に接続することを許可できます。

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] SAP HANA システム レプリケーション セットアップの仮想名を指すように SAP HANA Secure Store を更新します。

    次のコマンドを実行して、エントリを一覧表示します。

    hdbuserstore List
    

    このコマンドによってすべてのエントリが一覧表示され、次の例のようになります。

    DATA FILE       : /home/nw1adm/.hdb/sapa01/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/sapa01/SSFS_HDB.KEY
    
    KEY DEFAULT 
      ENV : 10.27.0.4:30313
      USER: SAPABAP1
      DATABASE: NW1
    

    この例では、既定のエントリの IP アドレスは、ロードバランサーではなく VM を指しています。 ロード バランサーの仮想ホスト名を指すようにエントリを変更します。 必ず同じポートとデータベース名を使用してください。 たとえば、サンプル出力の 30313NW1 を使用します。

    su - nw1adm
    hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
    

クラスターのセットアップをテストする

Pacemaker クラスターを十分にテストします。 一般的なフェールオーバー テストを実行します。

次のステップ