RHEL 上の SAP ASCS/SCS 高可用性 VM で SAP ダイアログ インスタンスをデプロイする

この記事では、Red Hat Enterprise Linux (RHEL) で実行されている同じ ABAP SAP セントラル サービス (ASCS)/SAP セントラル サービス (SCS) 高可用性クラスターにプライマリ アプリケーション サーバー (PAS) と追加アプリケーション サーバー (AAS) ダイアログ インスタンスをインストールして構成する方法について説明します。

リファレンス

概要

この記事では、高可用性セットアップで SAP ASCS/SCS インスタンスと エンキュー レプリケーション サーバー (ERS) インスタンスを使用して PAS と AAS のダイアログ インスタンスをデプロイするコスト最適化シナリオについて説明します。 1 つの SAP システムの VM の数を最小限に抑えるために、SAP ASCS/SCS と SAP ERS が実行されているのと同じホストに PAS と AAS をインストールする必要があります。 SAP ASCS/SCS が高可用性クラスター セットアップで構成されている場合、PAS と AAS もクラスターで管理する必要があります。 この構成は、基本的には、既に構成されている SAP ASCS/SCS クラスターのセットアップへの追加です。 このセットアップでは、PAS と AAS は仮想ホスト名にインストールされ、そのインスタンス ディレクトリはクラスターによって管理されます。

このセットアップでは、PAS と AAS に高可用性インスタンス ディレクトリ (/usr/sap/<SID>/D<nr>) が必要です。 インスタンス ディレクトリ ファイル システムは、ASCS と ERS インスタンス構成に使用したのと同じ高可用性ストレージに配置できます。 提示されたアーキテクチャでは、セットアップ用の高可用性インスタンス ディレクトリの Azure Files 上の NFS または Azure NetApp Files が示されています。

この記事で示す例では、次のシステム情報を使用してデプロイについて説明しています。

インスタンス名 インスタンス番号 仮想ホスト名 仮想 IP (プローブ ポート)
ABAP SAP セントラル サービス (ASCS) 00 sapascs 10.90.90.10 (62000)
エンキュー レプリケーション サーバー (ERS) 01 sapers 10.90.90.9 (62001)
プライマリ アプリケーション サーバー (PAS) 02 sappas 10.90.90.30 (62002)
追加のアプリケーション サーバー (AAS) 03 sapers 10.90.90.31 (62003)
SAP システム識別子 NW1 --- ---

Note

スケールアウトする場合は、別の VM にさらに SAP アプリケーション インスタンスをインストールします。

Diagram that shows the architecture of dialog instance installation with an SAP ASCS/SCS cluster.

コスト最適化ソリューションに関する重要な考慮事項

  • SAP ASCS/SCS クラスターのセットアップを使用してデプロイできるダイアログ インスタンスは、PAS と 1 つの AAS の 2 つだけです。
  • さらなるアプリケーション サーバー (sapa03sapa04 など) を使用して SAP システムをスケールアウトする場合は、それらを別々の VM にインストールできます。 PAS と AAS が仮想ホスト名にインストールされている場合は、物理ホスト名または仮想ホスト名のいずれかを使用して別の VM にさらにアプリケーション サーバーをインストールできます。 仮想ホスト名を VM に割り当てる方法の詳細については、ブログ「Azure で Linux を使用した SAP 仮想ホスト名の使用」を参照してください。
  • SAP ASCS/SCS クラスターをセットアップした PAS と AAS のデプロイでは、ASCS、ERS、PAS、AAS のインスタンス数が異なっている必要があります。
  • サイズ設定のガイドラインに基づいて、VM SKU のサイズを適切に設定することを検討してください。 クラスター内の別の VM が使用できない場合は、1 つの VM で複数の SAP インスタンス (ASCS、ERS、PAS、AAS) が実行される可能性があるクラスターの動作を考慮する必要があります。
  • SAP ASCS/SCS クラスターのセットアップで実行されているダイアログ インスタンス (PAS と AAS) は、仮想ホスト名を使用してインストールする必要があります。
  • また、PAS インスタンスと AAS インスタンスをデプロイするには、SAP ASCS/SCS クラスターのセットアップと同じストレージ ソリューションを使用する必要があります。 たとえば、Azure Files で NFS を使用して SAP ASCS/SCS クラスターを構成した場合、PAS と AAS のデプロイに同じストレージ ソリューションを使用する必要があります。
  • PAS と AAS のインスタンス ディレクトリ /usr/sap/<SID>/D<nr> は NFS ファイル システムにマウントする必要があり、クラスターによってリソースとして管理されます。

    Note

    SAP J2EE システムの場合、Azure Files の NFS に /usr/sap/<SID>/J<nr> を配置することはサポートされません。

  • 別の VM にさらにアプリケーション サーバーをインストールするには、インスタンス ディレクトリ ファイル システムに NFS 共有またはローカル マネージド ディスクを使用します。 SAP J2EE システム用にさらにアプリケーション サーバーをインストールする場合、Azure Files 上の NFS で /usr/sap/<SID>/J<nr> はサポートされていません。
  • 従来の SAP ASCS/SCS 高可用性構成では、SAP ASCS および ERS のクラスター ノードに影響がある場合、個別の VM で実行されているアプリケーション サーバー インスタンスは影響を受けません。 ただし、コスト最適化の構成では、クラスター内のいずれかのノードに影響がある場合、PAS または AAS インスタンスのどちらかが再起動します。
  • このセットアップには同じ考慮事項が当てはまるため、「Azure Files 上の NFS の考慮事項」と「Azure NetApp Files の考慮事項」を参照してください。

前提条件

この記事で説明する構成は、既に構成されている SAP ASCS/SCS クラスターのセットアップへの追加です。 この構成では、PAS と AAS は仮想ホスト名にインストールされ、そのインスタンス ディレクトリはクラスターによって管理されます。 ストレージに基づき、次の記事で説明されている手順を使用して、クラスター内の SAP ASCS/SCS および SAP ERS インスタンス用に SAPInstance リソースを構成します。

Software Provisioning Manager (SWPM) を使用して ASCSERSDatabase インスタンスをインストールした後、次の手順に従って PAS インスタンスと AAS インスタンスをインストールします。

PAS と AAS の Azure Load Balancer を構成する

この記事では、「Azure Load Balancer の構成」の説明に従って SAP ASCS/SCS クラスター セットアップ用のロード バランサーが既に構成されていることを前提としています。 同じ Azure Load Balancer インスタンスで、こちらの手順に従って、PAS および AAS 用のフロントエンド IP と負荷分散規則をさらに作成します。

  1. SAP ASCS/SCS クラスター セットアップ用に作成した内部ロード バランサーを開きます。
  2. フロントエンド IP 構成: 2 つのフロントエンド IP を作成します。1 つは PAS 用で、もう 1 つは AAS 用です (例: 10.90.90.3010.90.90.31)。
  3. バックエンド プール: PAS と AAS を同じバックエンド プールにデプロイしているため、このプールは同じままです。
  4. 受信規則: 2 つの負荷分散ルールを作成します。1 つは PAS 用で、もう 1 つは AAS 用です。 両方の負荷分散規則に対して同じ手順を実行します。
  5. フロントエンド IP アドレス: フロントエンド IP を選択します。
    1. バックエンド プール: バックエンド プールを選択します。
    2. 高可用性ポート: このオプションを選択します。
    3. [プロトコル]: [TCP] を選択します。
    4. 正常性プローブ: 次の詳細を使用して正常性プローブを作成します (PAS と AAS の両方に適用されます)。
      1. [プロトコル]: [TCP] を選択します。
      2. ポート: 例: PAS に対しては 620<Instance-no.>、AAS に対しては 620<Instance-no.>
      3. サイクル間隔: 「5」と入力します。
      4. プローブしきい値: 「2」と入力します。
    5. アイドル タイムアウト (分): 「30」と入力します。
    6. フローティング IP を有効にする: このオプションを選択します。

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

重要

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

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

重要

Azure Load Balancer の背後に配置された Azure VM では TCP タイムスタンプを有効にしないでください。 TCP タイムスタンプを有効にすると正常性プローブが失敗します。 パラメーター net.ipv4.tcp_timestamps0 に設定します。 詳細については、「Load Balancer の正常性プローブ」を参照してください。

PAS と AAS のインストール用にサーバーを準備する

このドキュメントの各手順にプレフィックスが付いている場合、その意味は次のとおりです。

  • [A]: すべてのノードに当てはまります。
  • [1]: ノード 1 にのみ当てはまる。
  • [2]: ノード 2 にのみ当てはまる。
  1. [A] ホスト名解決を設定します。

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

    sudo vi /etc/hosts
    
    # 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
    # IP address of the load balancer frontend configuration for SAP Netweaver PAS
    10.90.90.30   sappas
    # IP address of the load balancer frontend configuration for SAP Netweaver AAS
    10.90.90.31   sapaas
    
  2. [1] NFS 共有に SAP ディレクトリを作成します。 NFS 共有 sapnw1 をいずれかの VM に一時的にマウントし、入れ子になったマウント ポイントとして使用される SAP ディレクトリを作成します。

    1. Azure Files 上の NFS を使用している場合:

      # 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 usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
    2. Azure NetApp Files を使用している場合:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      
      # If using NFSv3
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3,tcp 10.90.91.5:/sapnw1 /saptmp
      # If using NFSv4.1
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys,tcp 10.90.91.5:/sapnw1 /saptmp
      
      # create the SAP directories
      sudo cd /saptmp
      sudo mkdir -p usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      sudo cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
  3. [A] 共有ディレクトリを作成します。

    sudo mkdir -p /usr/sap/NW1/D02
    sudo mkdir -p /usr/sap/NW1/D03
    
    sudo chattr +i /usr/sap/NW1/D02
    sudo chattr +i /usr/sap/NW1/D03
    
  4. [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
    ResourceDisk.SwapSizeMB=10480
    

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

    sudo service waagent restart
    
  5. [A] PAS および AAS のファイアウォール規則を追加します。

    # Probe and gateway port for PAS and AAS
    sudo firewall-cmd --zone=public --add-port={62002,62003,3302,3303}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62002,62003,3303,3303}/tcp
    

SAP Netweaver PAS インスタンスをインストールする

  1. [1] クラスターの状態を確認します。 インストール用に PAS リソースを構成する前に、ASCS リソースと ERS リソースが構成され、開始されていることを確認してください。

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    
  2. [1] PAS インスタンスのファイルシステム、仮想 IP、正常性プローブ リソースを作成します。

    sudo pcs node standby sap-cl2
    sudo pcs resource create vip_NW1_PAS IPaddr2 ip=10.90.90.30 --group g-NW1_PAS
    sudo pcs resource create nc_NW1_PAS azure-lb port=62002 --group g-NW1_PAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_PAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_PAS
    

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

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    
  3. [1] ファイルシステムのマウント後に /usr/sap/SID/D02 フォルダの所有権を変更します。

    sudo chown nw1adm:sapsys /usr/sap/NW1/D02
    
  4. [1] SAP NetWeaver PAS をインストールします。

    PAS のロード バランサー フロントエンド構成の IP アドレスに対応する仮想ホスト名を使い、最初のノードにルートとして SAP NetWeaver PAS をインストールします。 たとえば、sappas10.90.90.30、およびロード バランサのプローブに使用したインスタンス番号 (02 など) を使用します。

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

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again.
    sudo firewall-cmd --zone=public  --add-port=4237/tcp
    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<pas_virtual_hostname>
    
  5. /usr/sap/sapservices ファイルを更新します。

    sapinit スタートアップ スクリプトによってインスタンスが開始されないようにするには、Pacemaker によって管理されているすべてのインスタンスを /usr/sap/sapservices ファイルからコメント アウトする必要があります。

    sudo vi /usr/sap/sapservices
    
    # On the node where PAS is installed, comment out the following lines. 
    # LD_LIBRARY_PATH=/usr/sap/NW1/D02/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D02/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D02_sappas -D -u nw1adm
    
  6. [1] PAS クラスター リソースを作成します。

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=60 \
     --group g-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=105 \
     --group g-NW1_PAS
    

    クラスターの状態を確認します。

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  7. ASCS インスタンスが開始された後にのみ PAS リソース グループを開始するように制約を構成します。

    sudo pcs constraint order g-NW1_ASCS then g-NW1_PAS kind=Optional symmetrical=false
    

SAP Netweaver AAS インスタンスをインストールする

  1. [2] クラスターの状態を確認します。 インストール用に AAS リソースを構成する前に、ASCS、ERS、PAS のリソースが開始されていることを確認してください。

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  2. [2] AAS インスタンスのファイルシステム、仮想 IP、正常性プローブ リソースを作成します。

    sudo pcs node unstandby sap-cl2
    # Disable PAS resource as it will fail on sap-cl2 due to missing environment variables like hdbuserstore. 
    sudo pcs resource disable g-NW1_PAS
    sudo pcs node standby sap-cl1
    # Execute below command to cleanup resource, if required
    pcs resource cleanup rsc_sap_NW1_ERS01
    
    sudo pcs resource create vip_NW1_AAS IPaddr2 ip=10.90.90.31 --group g-NW1_AAS
    sudo pcs resource create nc_NW1_AAS azure-lb port=62003 --group g-NW1_AAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_AAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \ 
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_AAS
    

    クラスターの状態が正常であることと、すべてのリソースが起動されていることを確認します。 リソースがどのノードで実行されているかは重要ではありません。 g-NW1_PAS リソース グループが停止しているため、すべての PAS リソースが停止 (無効) 状態になります。

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    
  3. [2] ファイルシステムのマウント後に /usr/sap/SID/D03 フォルダの所有権を変更します。

    sudo chown nw1adm:sapsys /usr/sap/NW1/D03
    
  4. [2] SAP NetWeaver AAS をインストールします

    PAS のロード バランサー フロントエンド構成の IP アドレスに対応する仮想ホスト名を使い、2 番目のノードにルートとして SAP NetWeaver AAS をインストールします。 たとえば、sapaas10.90.90.31、およびロード バランサのプローブに使用したインスタンス番号 (03 など) を使用します。

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

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again.
    sudo firewall-cmd --zone=public  --add-port=4237/tcp
    
    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=<aas_virtual_hostname>
    
  5. /usr/sap/sapservices ファイルを更新します。

    sapinit スタートアップ スクリプトによってインスタンスが開始されないようにするには、Pacemaker によって管理されているすべてのインスタンスを /usr/sap/sapservices ファイルからコメント アウトする必要があります。

    sudo vi /usr/sap/sapservices
    
    # On the node where AAS is installed, comment out the following lines. 
    #LD_LIBRARY_PATH=/usr/sap/NW1/D03/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D03/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D03_sapaas -D -u nw1adm
    
  6. [2] AAS クラスター リソースを作成します。

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=60 \
     --group g-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=105 \
     --group g-NW1_AAS
    

    クラスターの状態を確認します。

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    
  7. ASCS インスタンスが開始された後にのみ AAS リソース グループを開始するように制約を構成します。

    sudo pcs constraint order g-NW1_ASCS then g-NW1_AAS kind=Optional symmetrical=false
    

PAS インスタンスおよび AAS インスタンスの構成後

  1. [1] PAS と AAS を任意のクラスター ノード (sap-cl1 または sap-cl2) で実行するには、両方のクラスター ノードの <sid>adm$HOME/.hdb 内のコンテンツをコピーする必要があります。

    # Check current content of /home/nw1adm/.hdb on sap-cl1
    sap-cl1:nw1adm > ls -ltr $HOME/.hdb
    drwx------. 2 nw1adm sapsys 66 Aug  8 19:11 sappas
    drwx------. 2 nw1adm sapsys 84 Aug  8 19:12 sap-cl1
    # Check current content of /home/nw1adm/.hdb on sap-cl2
    sap-cl2:nw1adm > ls -ltr $HOME/.hdb
    total 0
    drwx------. 2 nw1adm sapsys 64 Aug  8 20:25 sap-cl2
    drwx------. 2 nw1adm sapsys 66 Aug  8 20:26 sapaas
    
    # As PAS and AAS is installed using virtual hostname, you need to copy virtual hostname directory in /home/nw1adm/.hdb
    # Copy sappas directory from sap-cl1 to sap-cl2
    sap-cl1:nw1adm > scp -r sappas nw1adm@sap-cl2:/home/nw1adm/.hdb
    # Copy sapaas directory from sap-cl2 to sap-cl1. Execute the command from the same sap-cl1 host. 
    sap-cl1:nw1adm > scp -r nw1adm@sap-cl2:/home/nw1adm/.hdb/sapaas . 
    
  2. [1] 両方のノードが実行されているときに、PAS インスタンスと AAS インスタンスが同じノードで実行されないようにするには、次のコマンドを使用して負のコロケーション制約を追加します。

    sudo pcs constraint colocation add g-NW1_AAS with g-NW1_PAS score=-1000
    sudo pcs node unstandby sap-cl1
    sudo pcs resource enable g-NW1_PAS
    

    スコア -1000 は、使用できるノードが 1 つしかない場合でも、両方のインスタンスがもう一方のノードで引き続き実行されることを保証します。 このような状況で AAS インスタンスをダウンさせたままにする場合は、score=-INFINITY を使用してこの条件を適用できます。

  3. クラスターの状態を確認します。

    sudo pcs status
    
    # Node List:
    #   Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      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
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    

クラスターの設定をテストする

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