在 Red Hat Enterprise Linux 上使用 SAP ASCS/SCS 高可用性 VM 部署 SAP 對話框實例

本文說明如何在 Red Hat Enterprise Linux (RHEL) 上執行的相同 SAP ASCS/SCS 高可用性叢集上安裝和設定主要應用程式伺服器 (PAS) 和其他應用程式伺服器 (AAS) 對話框實例。

參考資料

概觀

本文說明您在高可用性設定中使用 SAP ASCS/SCS 和 SAP ERS 實例部署主要應用程式伺服器 (PAS) 和其他應用程式伺服器 (AAS) 對話框實例的成本優化案例。 若要將單一 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 檔案儲存體Azure NetApp Files 上展示 NFS。

本文所示的範例,說明部署使用下列系統資訊 -

執行個體名稱 實例編號 虛擬主機名 虛擬 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 --- ---

注意

如果您想要向外延展,請在個別的 VM 上安裝其他 SAP 應用程式實例。

Architecture of dialog instance installation with SAP ASCS/SCS cluster

成本優化解決方案的重要考慮

  • 只有兩個對話框實例,PAS 和一個 AAS 可以使用 SAP ASCS/SCS 叢集設定進行部署。
  • 如果您想要使用其他應用程式伺服器來相應放大 SAP 系統(例如 sapa03sapa04),您可以將它們安裝在不同的 VM 中。 在虛擬主機名上安裝 PAS 和 AAS 之後,您可以在不同的 VM 中使用實體或虛擬主機名來安裝其他應用程式伺服器。 若要深入瞭解如何將虛擬主機名指派給 VM,請參閱在 Azure 中使用 SAP 虛擬主機名與 Linux 的部落格
  • 使用 SAP ASCS/SCS 叢集設定進行 PAS 和 AAS 部署時,ASCS、ERS、PAS 和 AAS 的實例數目必須不同。
  • 請考慮根據重設大小指導方針適當地調整 VM SKU 的大小。 您必須考慮叢集行為,當叢集中的其他 VM 無法使用時,多個 SAP 實例(ASCS、ERS、PAS 和 AAS)可能會在單一 VM 上執行。
  • 使用 SAP ASCS/SCS 叢集安裝程式執行的對話框實例(PAS 和 AAS)必須使用虛擬主機名來安裝。
  • 您也必須使用相同的 SAP ASCS/SCS 叢集設定記憶體解決方案來部署 PAS 和 AAS 實例。 例如,如果您已在 Azure 檔案上使用 NFS 設定 SAP ASCS/SCS 叢集,則必須使用相同的記憶體解決方案來部署 PAS 和 AAS。
  • PAS 和 AAS 的實體目錄 /usr/sap/<SID>/D<nr> 必須掛接在 NFS 檔案系統上,並由叢集管理為資源。

    注意

    針對 SAP J2EE 系統,不支援將 NFS 放在 /usr/sap/<SID>/J<nr> Azure 檔案儲存體 上。

  • 若要在個別的 VM 上安裝其他應用程式伺服器,您可以使用 NFS 共用或本機受控磁碟做為實例目錄檔案系統。 如果您要為 SAP J2EE 系統安裝其他應用程式伺服器,/usr/sap/<SID>/J<nr>則不支援在 Azure 檔案儲存體 上的 NFS。
  • 在傳統的 SAP ASCS/SCS 高可用性設定中,當 SAP ASCS 和 ERS 叢集節點有任何影響時,在個別 VM 上執行的應用程式伺服器實例不會受到影響。 但是,使用成本優化設定時,當叢集中的其中一個節點生效時,PAS 或 AAS 實例都會重新啟動。
  • 如需 Azure 檔案儲存體 考慮Azure NetApp Files 考慮,請參閱 NFS,因為此設定也適用相同的考慮。

必要條件

本文所述的組態是已設定 SAP ASCS/SCS 叢集設定的新增專案。 在此設定中,PAS 和 AAS 將會安裝在虛擬主機名上,且其實例目錄是由叢集所管理。 根據您的記憶體,遵循下列指南中所述的步驟,在 SAPInstance 叢集中設定 SAP ASCS 和 SAP ERS 實例的資源。

使用 SWPM 安裝 ASCSERS資料庫實例 之後,請遵循下列步驟來安裝 PAS 和 AAS 實例。

設定適用於 PAS 和 AAS 的 Azure Load Balancer

本文件假設您已如設定 Azure 負載平衡器中所述 ,設定 SAP ASCS/SCS 叢集設定的負載平衡器。 在相同的 Azure 負載平衡器中,請遵循下列步驟來建立 PAS 和 AAS 的其他前端 IP 和負載平衡規則。

  1. 開啟針對 SAP ASCS/SCS 叢集設定所建立的內部負載平衡器。
  2. 前端IP組態:建立兩個前端IP,一個用於PAS,另一個用於AAS(例如:10.90.90.30和10.90.90.90.31)。
  3. 後端集區:後端集區維持不變,因為我們在相同的後端集區上部署 PAS 和 AAS。
  4. 輸入規則:建立兩個負載平衡規則,一個用於 PAS,另一個用於 AAS。 針對這兩個負載平衡規則,請遵循相同的步驟。
  5. 前端IP位址:選取前端IP
    1. 後端集區:選取後端集區
    2. 檢查「高可用性埠」
    3. 通訊協定:TCP
    4. 健康情況探查:使用下列詳細數據建立健康情況探查(適用於 PAS 和 AAS)
      1. 通訊協定:TCP
      2. 埠:[例如:620<實例否。> 適用於 PAS,620<實例否。> AAS]
      3. 間隔:5
      4. 探查臨界值:2
    5. 閑置逾時(分鐘):30
    6. 檢查 [啟用浮動 IP]

注意

健康情況探查組態屬性 numberOfProbes,否則在入口網站中稱為「狀況不良閾值」,則不會受到尊重。 因此,若要控制連續探查成功或失敗的數目,請將屬性 “probeThreshold” 設定為 2。 目前無法使用 Azure 入口網站 來設定此屬性,因此請使用 Azure CLIPowerShell 命令。

重要

負載平衡案例中的 NIC 次要IP組態不支援浮動IP。 如需詳細資訊,請參閱 Azure Load Balancer 限制。 如果您需要 VM 的其他 IP 位址,請部署第二個 NIC。

注意

當沒有公用IP位址的VM放置在內部(無公用IP位址)標準 Azure 負載平衡器的後端集區時,除非執行其他設定以允許路由傳送至公用端點,否則不會有輸出因特網連線能力。 如需如何達成輸出連線的詳細資訊,請參閱在 SAP 高可用性案例中使用 Azure Standard Load Balancer 進行 虛擬機器 的公用端點連線。

重要

請勿在放在 Azure Load Balancer 後方的 Azure VM 上啟用 TCP 時間戳。 啟用 TCP 時間戳記會導致健康狀態探查失敗。 將參數 net.ipv4.tcp_timestamps 設定為 0。 如需詳細資訊,請參閱 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 目錄。 在其中一部 VM 上暫時掛接 NFS 共用 sapnw1 ,並建立將做為巢狀裝入點的 SAP 目錄。

    1. 如果使用,Azure 檔案上的 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] 設定 SWAP 空間。 使用中央服務安裝對話框實例時,您需要設定更多交換空間。

    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 位址的虛擬主機名,在第二個節點上安裝 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),必須複製這兩個叢集節點中的 $HOME/.hdb<sid>adm 內容。

    # 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 的分數是確保如果只有一個節點可用,則兩個實例都會繼續在其他節點上執行。 如果您想要在這類情況下讓 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 叢集。 執行一般故障轉移測試