分享方式:


在 RHEL 上使用 SAP ASCS/SCS 高可用性 VM 部署 SAP 對話方塊執行個體

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

參考資料

概觀

本文說明您在高可用性設定中使用 SAP ASCS/SCS 和加入佇列複寫伺服器 (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 檔案儲存體上的 NFSAzure 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 --- ---

注意

如果您想要向外延展,請在個別 VM 上安裝更多 SAP 應用程式執行個體。

顯示使用 SAP ASCS/SCS 叢集對話方塊執行個體安裝架構的圖表。

成本最佳化解決方案的重要考量事項

  • 只有兩個對話方塊執行個體,PAS 和一個 AAS 可以使用 SAP ASCS/SCS 叢集設定進行部署。
  • 如果您想要使用更多應用程式伺服器 (例如 sapa03sapa04) 等來向外延展 SAP 系統,您可以將其安裝在不同的 VM 中。 在虛擬主機名稱上安裝 PAS 和 AAS 之後,您可以在不同的 VM 中使用實體或虛擬主機名稱來安裝更多應用程式伺服器。 若要深入了解如何將虛擬主機名稱指派給 VM,請參閱在 Azure 中搭配 Linux 使用 SAP 虛擬主機名稱部落格。
  • 若 PAS 和 AAS 部署具有 SAP ASCS/SCS 叢集設定,則 ASCS、ERS、PAS 和 AAS 的執行個體數目必須不同。
  • 請考慮根據調整大小指導方針適當調整您 VM SKU 的大小。 您必須考慮叢集行為,其中多個 SAP 執行個體 (ASCS、ERS、PAS 和 AAS) 在叢集中的其他 VM 無法使用時,可能會在單一 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 系統,不支援在 Azure 檔案儲存體上的 NFS 放置 /usr/sap/<SID>/J<nr>

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

必要條件

本文所述的組態是已設定 SAP ASCS/SCS 叢集設定的新增項目。 在此設定中,PAS 和 AAS 將會安裝在虛擬主機名稱上,且其執行個體目錄是受叢集管理。 根據您的儲存體,請使用下列文章中所述的步驟,在叢集中設定 SAP ASCS 和 SAP ERS 執行個體的 SAPInstance 資源。

使用軟體佈建管理員 (SWPM) 安裝 ASCSERS資料庫執行個體之後,請遵循後續步驟來安裝 PAS 和 AAS 執行個體。

為 PAS 和 AAS 設定 Azure Load Balancer

本文假設您已設定 SAP ASCS/SCS 叢集設定的負載平衡器,如設定 Azure Load Balancer 中所述。 在相同的 Azure Load Balancer 執行個體中,請遵循下列步驟,為 PAS 和 AAS 建立更多前端 IP 和負載平衡規則。

  1. 開啟您為 SAP ASCS/SCS 叢集設定建立的內部負載平衡器。
  2. 前端IP組態:建立兩個前端 IP,一個用於 PAS,另一個用於 AAS (例如 10.90.90.90.3010.90.90.31)。
  3. 後端集區:此集區會維持不變,因為我們在相同的後端集區上部署 PAS 和 AAS。
  4. 輸入規則:建立兩個負載平衡規則,一個用於 PAS,另一個用於 AAS。 針對這兩個負載平衡規則,請遵循相同的步驟。
  5. 前端 IP 位址:選取前端 IP。
    1. 後端集區:選取後端集區。
    2. 高可用性連接埠:選取此選項。
    3. 通訊協定:選取 [TCP]
    4. 健全狀態探查:使用下列詳細資料建立健全狀態探查 (適用於 PAS 和 AAS):
      1. 通訊協定:選取 [TCP]
      2. 連接埠:例如 620<Instance-no.> 適用於 PAS,而 620<Instance-no.> 適用於 AAS。
      3. 間隔:輸入 5
      4. 探查閾值:輸入 2
    5. 閒置逾時 (分鐘):輸入 30
    6. 啟用浮動 IP:選取此選項。

未遵守健全狀態探查設定屬性 numberOfProbes,在 Azure 入口網站中又名為狀況不良閾值。 若要控制連續探查成功或失敗的數目,請將屬性 probeThreshold 設定為 2。 目前無法使用 Azure 入口網站來設定此屬性。 請使用 Azure CLIPowerShell 命令。

當不具公用 IP 位址的 VM 放在內部 (沒有公用 IP 位址) Standard Azure Load Balancer 執行個體的後端集區時,除非另外設定來允許路由傳送至公用端點,否則不會有輸出網際網路連線能力。 如需如何實現輸出連線能力的步驟,請參閱在 SAP 高可用性案例中使用 Azure Standard Load Balancer 實現虛擬機器的公用端點連線能力

重要

請勿在位於 Azure Load Balancer 後方的 Azure VM 上啟用 TCP 時間戳記。 啟用 TCP 時間戳記會導致健全狀態探查失敗。 將 net.ipv4.tcp_timestamps 參數設定為 0。 如需詳細資訊,請參閱負載平衡器健全狀態探查

準備伺服器以進行 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 檔案儲存體上的 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 來允許非 root 使用者連線到 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 來允許非 root 使用者連線到 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 的分數是確保若只能使用一個節點,則兩個執行個體都會繼續在其他節點上執行。 如果您想要在這類情況下將 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 叢集。