Azure Files 上の NFS を使用した SUSE Linux Enterprise Server 上の Azure VM での SAP NetWeaver の高可用性

この記事では、Azure Files 上の NFS を使用して、VM のデプロイと構成、クラスター フレームワークのインストール、HA SAP NetWeaver システムのインストールを行う方法について説明します。 この構成例では、SUSE Linux Enterprise Server (SLES) で実行される VM を使用します。

SLES for SAP Applications 15 への新しい実装では、シンプルなマウント構成で SAP ASCS/ERS 用の高可用性をデプロイすることをお勧めします。 この記事で説明されている SAP セントラル サービス ディレクトリ用のクラスター制御ファイル システムに基づく従来の Pacemaker 構成は、引き続きサポートされています

前提条件

  • Azure Files のドキュメント
  • SAP Note 1928533: 次の情報が含まれています。
    • SAP ソフトウェアのデプロイでサポートされる Azure VM サイズの一覧。
    • Azure VM サイズの容量に関する重要な情報。
    • サポートされる SAP ソフトウェア、およびオペレーティング システム (OS) とデータベースの組み合わせ。
    • Microsoft Azure 上の Windows と Linux に必要な SAP カーネル バージョン。
  • SAP Note 2015553: SAP でサポートされる Azure 上の SAP ソフトウェア デプロイの前提条件が記載されています。
  • SAP Note 2205917: SUSE Linux Enterprise Server for SAP Applications 向けの推奨の OS 設定が記載されています。
  • SAP Note 2178632: Azure 上の SAP について報告されるすべての監視メトリックに関する詳細情報が記載されています。
  • SAP Note 2191498: Azure 上の Linux に必要な SAP Host Agent のバージョンが記載されています。
  • SAP Note 2243692: Azure 上の Linux で動作する SAP のライセンスに関する情報が記載されています。
  • SAP Note 1984787: SUSE Linux Enterprise Server 12 に関する一般情報が記載されています。
  • SAP Note 2578899: SUSE Linux Enterprise Server 15 に関する一般情報が記載されています。
  • SAP Note 1999351: Azure Enhanced Monitoring Extension for SAP に関するその他のトラブルシューティング情報が記載されています。
  • SAP Community WIKI: Linux に必要なすべての SAP Note を参照できます。
  • Linux 上の SAP のための Azure Virtual Machines の計画と実装
  • Linux 上の SAP のための Azure Virtual Machines のデプロイ
  • Linux 上の SAP のための Azure Virtual Machines DBMS のデプロイ
  • SUSE SAP HA ベスト プラクティス ガイド。 このガイドには、オンプレミスで Netweaver HA と SAP HANA System Replication を設定するために必要なすべての情報が記載されています。 一般的なベースラインとしてこのガイドを使用してください。 このガイドには詳細な情報が提供されています。
  • SUSE High Availability Extension リリース ノート

概要

SAP NetWeaver アプリケーション レイヤーをデプロイするには、環境内に /sapmnt/SID/usr/sap/trans のような共有ディレクトリが必要です。 さらに、HA SAP システムをデプロイする場合は、/sapmnt/SID/usr/sap/SID/ASCS のようなファイル システムを保護し、高可用性にする必要があります。

現在では、これらのファイル システムを Azure Files 上の NFS に配置できます。 Azure Files 上の NFS は、HA ストレージ ソリューションです。 このソリューションは、同期ゾーン冗長ストレージ (ZRS) を提供するもので、Availability Zones にデプロイされた SAP ASCS/ERS インスタンスに適しています。 SAP Netweaver セントラル サービス (ASCS/SCS) などの単一障害点コンポーネントを保護するには、引き続き Pacemaker クラスターが必要です。

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

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

SAP NetWeaver High Availability with NFS on Azure Files

この図は、一般的な SAP Netweaver HA アーキテクチャを示しています。 "sapmnt" と "saptrans" のファイル システムは、Azure Files 上の NFS 共有にデプロイされます。 SAP セントラル サービスは Pacemaker クラスターによって保護されます。 クラスター化された VM は、Azure ロード バランサーの背後に配置されます。 NFS 共有は、プライベート エンド ポイントを介してマウントされます。

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

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 コマンドを使用してください。

重要

フローティング IP は、負荷分散シナリオの NIC セカンダリ IP 構成ではサポートされていません。 詳細については、Azure Load Balancer の制限事項に関する記事を参照してください。 VM に追加の IP アドレスが必要な場合は、2 つ目の NIC をデプロイします。

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 – 更新する必要がありますか?」を参照してください。

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

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

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

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

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

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

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

  1. Azure portal にサインインします。

  2. ストレージ アカウントを選択するか、検索します。

  3. [ストレージ アカウント] ページで、 [sapafsnfs] を選びます。

  4. sapafsnfs のリソース メニューで、 [データ ストレージ] の下の [ファイル共有] を選びます。

  5. [ファイル共有] ページで、 [ファイル共有] を選択します。

    1. [名前] に、「sapnw1」、「saptrans」と入力します。
    2. 適切な共有サイズを選択します。 たとえば、128 GB です。 共有に格納されるデータのサイズ、IOPS、スループットの要件を考慮してください。 詳細については、Azure ファイル共有のターゲットに関するページをご覧ください。
    3. プロトコルとして [NFS] を選びます。
    4. [ルート スカッシュなし] を選びます。 そうしないと、VM に共有をマウントするときに、ファイルの所有者またはグループが表示できません。

    重要

    上記の共有サイズは単なる例です。 共有のサイズを必ず適切に設定してください。 サイズは、共有に格納されるデータのサイズだけでなく、IOPS とスループットの要件にも基づいて決定してください。 詳細については、Azure ファイル共有のターゲットに関するページを参照してください。

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

(A)SCS のセットアップ

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

Pacemaker クラスターの作成

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

インストール

次の各手順の先頭には、 [A] - 全ノードが該当、 [1] - ノード 1 のみ該当、 [2] - ノード 2 のみ該当、のいずれかが付いています。

  1. [A] 最新バージョンの SUSE コネクタをインストールします

    sudo zypper install sap-suse-cluster-connector
    

    Note

    ホスト名にダッシュを使用する場合の既知の問題は、パッケージ sap-suse-cluster-connector のバージョン 3.1.1 で修正されています。 ホスト名にダッシュが付いたクラスター ノードを使用している場合は、必ずバージョン 3.1.1 以降のパッケージ sap-suse-cluster-connector を使用してください。 そうしないと、クラスターは機能しません。

    SAP SUSE クラスター コネクタの新しいバージョンをインストールしたことを確認します。 古いものの名前は sap_suse_cluster_connector であり、新しいものの名前は sap-suse-cluster-connectorです。

  2. [A] SAP リソース エージェントを更新します

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

    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 ダウンロード ページに記載されている修正プログラムをインストールする必要があります。

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

    DNS サーバーを使用するか、すべてのノードの /etc/hosts を変更します。 この例では、/etc/hosts ファイルを使用する方法を示しています。 次のコマンドの IP アドレスとホスト名を置き換えます

    sudo vi /etc/hosts
    

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

     # IP address of cluster node 1
     10.90.90.7    sap-cl1
     # IP address of cluster node 2
     10.90.90.8     sap-cl2
     # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
     10.90.90.10   sapascs
     # IP address of the load balancer frontend configuration for SAP Netweaver ERS
     10.90.90.9    sapers
    
  4. [1] NFS 共有に SAP ディレクトリを作成します。
    NFS 共有 sapnw1 をいずれかの VM に一時的にマウントし、入れ子になったマウント ポイントとして使用される SAP ディレクトリを作成します。

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfs.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 usrsapNW1ascs
    sudo mkdir -p usrsapNW1ers
    sudo mkdir -p usrsapNW1sys
    # unmount the volume and delete the temporary directory
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    

SAP NetWeaver のインストールの準備

  1. [A] 共有ディレクトリを作成します

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/NW1/SYS
    sudo mkdir -p /usr/sap/NW1/ASCS00
    sudo mkdir -p /usr/sap/NW1/ERS01
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/NW1/SYS
    sudo chattr +i /usr/sap/NW1/ASCS00
    sudo chattr +i /usr/sap/NW1/ERS01
    
  2. [A] Pacemaker クラスターによって制御されないファイル システムをマウントします。

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1sys/ /usr/sap/NW1/SYS  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    mount -a 
    
  3. [A] スワップ ファイルを構成します

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

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

    sudo service waagent restart
    

SAP NetWeaver ASCS/ERS のインストール

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

    重要

    resource-agents パッケージの一部である azure-lb リソース エージェントを使用することをお勧めします。パッケージのバージョン要件は次のとおりです。

    • SLES 12 SP4/SP5 の場合、バージョンは resource-agents-4.3.018.a7fb5035-3.30.1 以上である必要があります。
    • SLES 15 以上の場合、バージョンは resource-agents-4.3.0184.6ee15eb2-4.13.1 以上である必要があります。
    sudo crm node standby sap-cl2
    sudo crm configure primitive fs_NW1_ASCS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ascs' directory='/usr/sap/NW1/ASCS00' fstype='nfs' options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.90.90.10 \
      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 fs_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
    #  fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #  nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #  vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
    
  2. [1] SAP NetWeaver ASCS をインストールします

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

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

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

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

    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 fs_NW1_ERS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1ers' directory='/usr/sap/NW1/ERS01' fstype='nfs' options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.90.90.9 \
      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 fs_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
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_ERS
    #      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started sap-cl2 
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ERS  (ocf::heartbeat:IPaddr2):     Started sap-cl2
    
  4. [2] SAP NetWeaver ERS をインストールします

    root として SAP NetWeaver ERS を 2 番目のノードにインストールします。その際、ERS のロード バランサー フロントエンド構成の IP アドレスに対応する仮想ホスト名 (たとえば、sapers10.90.90.9) と、ロード バランサーのプローブに使用したインスタンス番号 (たとえば、01) を使用します。

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

    <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Note

    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/SCS および ERS インスタンス プロファイルを適用します

    • ASCS/SCS プロファイル
    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 keep alive parameter, if using ENSA1
    enque/encni/set_so_keepalive = true
    

    ENSA1 と ENSA2 の両方について、keepalive OS パラメーターが SAP ノート keepalive の説明に従って設定されていることを確認します。

    • 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 ERS profile
    # Autostart = 1
    
  6. [A] キープ アライブを構成します

    SAP NetWeaver アプリケーション サーバーと ASCS/SCS の間の通信は、ソフトウェア ロード バランサーを介してルーティングされます。 ロード バランサーは、構成可能なタイムアウト後に非アクティブな接続を切断します。 これを回避するには、SAP NetWeaver ASCS/SCS プロファイルにパラメーターを設定する必要があります (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. [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"
    
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
      operations \$id=rsc_sap_NW1_ASCS00-operations \
      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 \
      meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
      operations \$id=rsc_sap_NW1_ERS01-operations \
      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 \
      meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    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"
    

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

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

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

SAP NetWeaver アプリケーション サーバーの準備

一部のデータベースでは、データベース インスタンスのインストールがアプリケーション サーバーで実行される必要があります。 このような場合に使用できるようにアプリケーション サーバー仮想マシンを準備します。

下の手順では、ASCS/SCS および HANA サーバーとは別のサーバーにアプリケーション サーバーをインストールすることを前提としています。 それ以外の場合、以下の手順の一部 (ホスト名解決の構成など) は必要ありません。

次の各手順の先頭には、 [A] - PAS と AAS の両方が該当、 [P] - PAS のみ該当、 [S] - ノード AAS のみ該当、のいずれかが付いています。

  1. [A] オペレーティング システムを構成します

    ダーティ キャッシュのサイズを小さくします。 詳しくは、「Low write performance on SLES 11/12 servers with large RAM」(大容量 RAM を備えた SLES 11/12 サーバーでの書き込みのパフォーマンスの低さ) をご覧ください。

    sudo vi /etc/sysctl.conf
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  2. [A] ホスト名解決を設定します

    DNS サーバーを使用するか、すべてのノードの /etc/hosts を変更します。 この例では、/etc/hosts ファイルを使用する方法を示しています。 次のコマンドの IP アドレスとホスト名を置き換えます

    sudo vi /etc/hosts
    

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

    10.90.90.7    sap-cl1
    10.90.90.8    sap-cl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.90.90.10   sapascs
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.90.90.9    sapers
    10.90.90.12   sapa01
    10.90.90.13   sapa02
    
  3. [A] sapmnt ディレクトリを作成します

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

    vi /etc/fstab
    # Add the following lines to fstab, save and exit
    sapnfs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0
    
    # Mount the file systems
    mount -a 
    
  5. [A] スワップ ファイルを構成します

    sudo vi /etc/waagent.conf
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    ResourceDisk.SwapSizeMB=2000
    

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

    sudo service waagent restart
    

データベースのインストール

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

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

sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

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

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

  1. [A] アプリケーション サーバーを準備します。前述の「SAP NetWeaver アプリケーション サーバーの準備」の章の手順に従って、アプリケーション サーバーを準備します。

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

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] SAP HANA Secure Store を更新します

    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.90.90.5:30313
      USER: SAPABAP1
      DATABASE: NW1
    

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

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

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

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

次のステップ