分享方式:


SLES for SAP 應用程式 VM 上具有簡單掛接和 NFS 的高可用性 SAP NetWeaver

本文說明如何使用簡單掛接結構,來部署和設定 Azure 虛擬機器 (VM)、安裝叢集架構,以及安裝高可用性 (HA) SAP NetWeaver 系統。 您可以使用下列其中一個 Azure 原生網路檔案系統 (NFS) 服務來實作呈現的架構:

簡單掛接組態預期會是 SLES for SAP Applications 15 上新實作的預設值。

必要條件

下列指南包含設定 NetWeaver HA 系統所需的一切資訊:

概觀

本文描述 ASCS 的高可用性設定,其中具有簡單的掛接結構。 若要部署 SAP 應用程式層,您需要具有高可用性的共用目錄,例如 /sapmnt/SID/usr/sap/SID/usr/sap/trans。 您可以在 Azure 檔案儲存體上的 NFSAzure NetApp Files 上部署這些檔案系統。

您仍然需要 Pacemaker 叢集來協助保護單一失敗點元件,例如 SAP 中央服務 (SCS) 和 ASCS。

相較於傳統的 Pacemaker 叢集設定,使用簡單掛接部署時,叢集不會管理檔案系統。 只在 SLES for SAP Applications 15 和更新版本上才支援此設定。 本文並未詳細涵蓋資料庫層。

範例設定和安裝命令會使用下列執行個體號碼。

執行個體名稱 執行個體號碼
ASCS 00
加入佇列複寫伺服器 (ERS) 01
主要應用程式伺服器 (PAS) 02
其他應用程式伺服器 (AAS) 03
SAP 系統識別碼 NW1

重要

只在 SLES for SAP Applications 15 和更新版本上,才支援使用簡單掛接結構的設定。

圖表顯示具有簡單掛接和 NFS 的 SAP NetWeaver 高可用性。

此圖顯示具有簡單掛接的一般 SAP Netweaver HA 架構。 "sapmnt" 和 "saptrans" 檔案系統部署在 Azure 原生 NFS 上:Azure 檔案儲存體上的 NFS 共用或 Azure NetApp Files 上的 NFS 磁碟區。 Pacemaker 叢集可保護 SAP 中央服務。 叢集 VM 位於 Azure 負載平衡器後方。 相較於傳統的 Pacemaker 設定,Pacemaker 叢集不會管理檔案系統。

準備基礎結構

SAP 執行個體的資源代理程式隨附於 SUSE Linux Enterprise Server for SAP Applications 中。 SUSE Linux Enterprise Server for SAP Applications 12 或 15 的映像可在 Azure Marketplace 取得。 您可以使用此映像來部署新的 VM。

透過 Azure 入口網站手動部署 Linux VM

本文件假設您已部署資源群組、Azure 虛擬網路、子網路。

使用 SLES for SAP Applications 映像部署虛擬機器。 選擇 SAP 系統支援的適當 SLES 映像版本。 您可以在任一可用性選項中部署 VM:虛擬機器擴展集、可用性區域或可用性設定組。

設定 Azure Load Balancer

在 VM 設定期間,您可以選擇在網路區段中建立或選取現有的負載平衡器。 請遵循下列步驟來設定標準負載平衡器,以進行 SAP ASCS 和 SAP ERS 的高可用性設定。

請遵循建立負載平衡器指南,使用 Azure 入口網站為高可用性 SAP 系統設定標準負載平衡器。 在設定負載平衡器期間,請考慮下列幾點。

  1. 前端 IP 設定:建立兩個前端 IP,一個用於 ASCS,另一個用於 ERS。 選取與您的 ASCS/ERS 虛擬機器相同的虛擬網路和子網路。
  2. 後端集區:建立後端集區,並新增 ASCS 和 ERS VM。
  3. 輸入規則:建立兩個負載平衡規則,一個用於 ASCS,另一個用於 ERS。 對於這兩個負載平衡規則,請遵循相同的步驟。
    • 前端 IP 位址:選取前端 IP
    • 後端集區:選取後端集區
    • 勾選 [高可用性連接埠]
    • 通訊協定:TCP
    • 健全狀態探查:使用下列詳細資料建立健全狀態探查 (適用於 ASCS 或 ERS)
      • 通訊協定:TCP
      • 連接埠:[例如:620<Instance-no.> 適用於 ASCS,621<Instance-no.> 適用於 ERS]
      • 間隔:5
      • 探查閾值:2
    • 閒置逾時 (分鐘):30
    • 勾選 [啟用浮動 IP]

注意

未遵守健全狀態探查設定屬性 numberOfProbes,在入口網站中又名為「狀況不良閾值」。 因此,若要控制連續探查成功或失敗的數目,請將屬性 "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。 如需詳細資料,請參閱 Load Balancer 健康狀態探查
  • 若要防止 saptune 將手動設定 net.ipv4.tcp_timestamps 值從 0 變更回 1,您應該將 saptune 版本更新為 3.1.1 或更高版本。 如需詳細資訊,請參閱 saptune 3.1.1 - 我需要更新嗎?

部署 NFS

有兩個選項可用來部署 Azure 原生 NFS 以裝載 SAP 共用目錄。 您可以部署 Azure 檔案儲存體上的 NFS 檔案共用,或是在 Azure NetApp Files 上部署 NFS 磁碟區。 Azure 檔案儲存體上的 NFS 支援 NFSv4.1 通訊協定。 Azure NetApp Files 上的 NFS 同時支援 NFSv4.1 和 NFSv3。

後續各節描述部署 NFS 的步驟。 只選取其中「一個」選項。

部署 Azure 檔案儲存體帳戶和 NFS 共用

Azure 檔案儲存體上的 NFS 會在 Azure 檔案儲存體進階儲存體上執行。 在您設定 Azure 檔案儲存體上的 NFS 之前,請參閱如何建立 NFS 共用

Azure 區域內的備援有兩個選項:

檢查您選取的 Azure 區域是否在具有適當備援的 Azure 檔案儲存體上提供 NFSv4.1。 針對 [進階檔案儲存體] 檢閱依 Azure 區域的 Azure 檔案儲存體可用性。 如果您的案例受益於 ZRS,請驗證 Azure 區域中是否支援與 ZRS 的進階檔案共用

建議您透過 Azure 私人端點存取您的 Azure 儲存體帳戶。 請務必在相同的 Azure VNet 或在對等互連的 Azure 虛擬網路中,部署 Azure 檔案儲存體儲存體帳戶端點和 VM (您需要在其中掛接 NFS 共用)。

  1. 部署名稱 sapnfsafs 的 Azure 檔案儲存體帳戶。 此範例會使用 ZRS。 如果您不熟悉此程序,請參閱 Azure 入口網站的建立儲存體帳戶
  2. 在 [基本] 索引標籤上,使用這些設定:
    1. 針對 [儲存體帳戶名稱],輸入 sapnfsafs
    2. 針對 [效能],選取 [進階]
    3. 針對 [進階帳戶類型],選取 [檔案儲存體]
    4. 針對 [複寫],選取 [區域備援 (ZRS)]
  3. 選取 [下一步]。
  4. 在 [進階] 索引標籤上,清除 [REST API 需要安全傳輸]。 如果您未清除此選項,就無法將 NFS 共用掛接至 VM。 掛接作業將會逾時。
  5. 選取 [下一步]。
  6. 在 [網路] 區段中,設定下列設定:
    1. 在 [網路連線能力] 底下,針對 [連線方法] 選取 [私人端點]
    2. 在 [私人端點] 底下,選取 [新增私人端點]
  7. 在 [建立私人端點] 窗格上,選取您的訂用帳戶、資源群組和位置。 然後進行下列選擇:
    1. 針對 [名稱],輸入 sapnfsafs_pe
    2. 針對 [儲存體子資源],選取 [檔案]
    3. 在 [網路] 底下,針對 [虛擬網路] 選取要使用的虛擬網路和子網路。 您可以再次使用 SAP VM 所在的虛擬網路或對等互連的虛擬網路。
    4. 在 [私人 DNS 整合] 底下,針對 [與私人 DNS 區域整合] 接受預設選項 [是]。 請務必選取您的私人 DNS 區域。
    5. 選取 [確定]。
  8. 再次在 [網路] 索引標籤上,選取 [下一步]
  9. 在 [資料保護] 索引標籤上,保留所有預設設定。
  10. 選取 [檢閱 + 建立] 以驗證您的設定。
  11. 等待驗證完成。 在繼續之前先修正任何問題。
  12. [檢閱 + 建立] 索引標籤中,選取 [建立]

接下來,在您所建立的儲存體帳戶中部署 NFS 共用。 在此範例中,有兩個 NFS 共用:sapnw1saptrans

  1. 登入 Azure 入口網站
  2. 選取或搜尋儲存體帳戶
  3. 在 [儲存體帳戶] 頁面上,選取 [sapnfsafs]
  4. 在 [sapnfsafs] 的資源功能表上,選取 [資料儲存體] 底下的 [檔案共用]
  5. 在 [檔案共用] 頁面上,選取 [檔案共用],然後:
    1. 針對 [名稱],輸入 sapnw1saptrans
    2. 選取適當的共用大小。 請考慮儲存在共用上的資料大小、每秒 I/O (IOPS) 和輸送量需求。 如需詳細資訊,請參閱 Azure 檔案共用目標
    3. 選取 [NFS] 作為通訊協定。
    4. 選取 [沒有根壓縮]。 否則,當您在 VM 上掛接共用時,將看不到檔案擁有者或群組。

不需要透過 NFS 掛接的 SAP 檔案系統也可以部署在 Azure 磁碟儲存體上。 在此範例中,您可以在 Azure 磁碟儲存體上部署 /usr/sap/NW1/D02/usr/sap/NW1/D03

Azure 檔案儲存體共用上 NFS 的重要考量

當您規劃使用 Azure 檔案儲存體上的 NFS 進行部署時,請考量下列重點:

  • 共用大小的下限為 100 GiB。 您只需支付已佈建共用的容量費用。
  • 根據容量需求以及 IOPS 和輸送量需求來調整 NFS 共用大小。 如需詳細資訊,請參閱 Azure 檔案共用目標
  • 測試工作負載以驗證您的調整大小,並確保其符合您的效能目標。 若要了解如何對 Azure 檔案儲存體上的 NFS 效能問題進行疑難排解,請參閱針對 Azure 檔案共用效能進行疑難排解
  • 若為 SAP J2EE 系統,不支援在 Azure 檔案儲存體的 NFS 上放置 /usr/sap/<SID>/J<nr>
  • 如果您的 SAP 系統有大量批次作業,您可能會有數百萬筆作業記錄。 如果 SAP 批次作業記錄儲存在檔案系統中,請特別注意 sapmnt 共用的大小調整。 從 SAP_BASIS 7.52 開始,批次作業記錄的預設行為是儲存在資料庫中。 如需詳細資訊,請參閱資料庫中的作業記錄
  • 為每個 SAP 系統部署個別的 sapmnt 共用。
  • 請勿將 sapmnt 共用用於任何其他活動,例如介面。
  • 請勿將 saptrans 共用用於任何其他活動,例如介面。
  • 避免在單一儲存體帳戶中合併太多 SAP 系統的共用。 也有儲存體帳戶的可擴縮性和效能目標。 也請小心不要超過儲存體帳戶的限制。
  • 一般而言,請勿在單一儲存體帳戶中合併超過個 SAP 系統的共用。 此指導方針可協助您避免超過儲存體帳戶限制,並簡化效能分析。
  • 一般而言,請避免在相同的儲存體帳戶中混合共用,例如非生產與生產 SAP 系統的 sapmnt
  • 建議您在 SLES 15 SP2 或更新版本上部署,以獲益於 NFS 用戶端改善
  • 使用私人端點。 萬一發生區域性失敗時,您的 NFS 工作階段會自動重新導向至狀況良好的區域。 您不需要在 VM 上重新掛接 NFS 共用。
  • 如果您要跨可用性區域部署 VM,請在支援 ZRS 的 Azure 區域中使用儲存體帳戶搭配 ZRS
  • Azure 檔案儲存體目前不支援災害復原案例的自動跨區域複寫。

部署 Azure NetApp Files 資源

  1. 檢查在您選擇的 Azure 區域中是否可以使用 Azure NetApp Files 服務。

  2. 在選取的 Azure 區域中建立 NetApp 帳戶。 請遵循這些指示

  3. 設定Azure NetApp Files容量集區。 請遵循這些指示

    本文中呈現的 SAP NetWeaver 架構使用單一 Azure NetApp Files 容量集區,以及進階 SKU。 我們建議針對 Azure 上的 SAP NetWeaver 應用程式工作負載使用 Azure NetApp Files 進階 SKU。

  4. 依照這些指示所述,將子網路委派給 Azure NetApp Files。

  5. 遵循這些指示部署 Azure NetApp Files 磁碟區。 在指定的 Azure NetApp Files 子網路中部署磁碟區。 Azure NetApp 磁碟區的 IP 位址會自動指派。

    請記得,Azure NetApp Files 資源和 Azure VM 必須位於相同的 Azure 虛擬網路,或位於對等互連 Azure 虛擬網路中。 此範例使用兩個 Azure NetApp Files 磁碟區:sapnw1trans。 掛接至對應掛接點的檔案路徑如下:

    • 磁碟區 sapnw1 (nfs://10.27.1.5/sapnw1/sapmntNW1)
    • 磁碟區 sapnw1 (nfs://10.27.1.5/sapnw1/usrsapNW1)
    • 磁碟區 trans (nfs://10.27.1.5/trans)

不需共用的 SAP 檔案系統也可部署在 Azure 磁碟儲存體上。 例如,/usr/sap/NW1/D02/usr/sap/NW1/D03 可以部署為 Azure 磁碟儲存體。

Azure NetApp Files 上的 NFS 的重要考量

考慮將 Azure NetApp Files 用於 SAP NetWeaver 高可用性架構時,請留意下列重要考量:

  • 最小容量集區為 4 TiB。 您可以增加容量集區的大小,以 1 TiB 為增量單位。
  • 最小磁碟區為 100 GiB。
  • 裝載 Azure NetApp Files 磁碟區的 Azure NetApp Files 和所有虛擬機器,必須位於相同 Azure 虛擬網路中,或相同區域的對等互連虛擬網路中。 Azure NetApp Files 支援透過相同區域內的虛擬網路對等互連進行存取。 尚不支援透過全域對等互連來存取 Azure NetApp Files。
  • 所選取虛擬網路必須具備委派給 Azure NetApp Files 的子網路。
  • Azure NetApp Files 磁碟區的輸送量和效能特性取決於磁碟區配額和服務等級,如 Azure NetApp Files 的服務等級中所述。 為 SAP 調整 Azure NetApp Files 磁碟區的大小時,請確定產生的輸送量符合應用程式需求。
  • Azure NetApp Files 提供匯出原則。 您可以控制允許的用戶端和存取類型 (例如,讀取/寫入或唯讀)。
  • Azure NetApp Files 尚無法感知區域。 Azure NetApp Files 目前不會部署在 Azure 區域中的所有可用性區域。 請注意部分 Azure 區域中的潛在延遲影響。
  • Azure NetApp Files 磁碟區可作為 NFSv3 或 NFSv4.1 磁碟區部署。 SAP 應用程式層 (ASCS/ERS、SAP 應用程式伺服器) 支援這兩個通訊協定。

設定 ASCS

接下來,您將準備並安裝 SAP ASCS 和 ERS 執行個體。

建立 Pacemaker 叢集

遵循在 Azure 中的 SUSE Linux Enterprise Server 上設定 Pacemaker 中的步驟,建立 SAP ASCS 的基本 Pacemaker 叢集。

準備安裝

下列項目前面會加上:

  • [A]:適用於所有節點。
  • [1]:適用於所有節點 1。
  • [2]:適用於所有節點 2。
  1. [A] 安裝最新版的 SUSE 連接器。

    sudo zypper install sap-suse-cluster-connector
    
  2. [A] 安裝 sapstartsrv 資源代理程式。

    sudo zypper install sapstartsrv-resource-agents
    
  3. [A] 更新 SAP 資源代理程式。

    若要使用本文所描述的設定,您需要資源代理程式套件的修補檔。 若要檢查是否已安裝修補檔,請使用下列命令。

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

    輸出應該類似下列範例。

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

    如果 grep 命令找不到 IS_ERS 參數,您必須安裝 SUSE 下載頁面所列出的修補檔。

    重要

    自 2021 年 11 月起,您至少須安裝 sapstartsrv-resource-agents 0.91 版和 resource-agents 4.x。

  4. [A] 設定主機名稱解析。

    您可以使用 DNS 伺服器,或修改所有節點上的 /etc/hosts。 此範例說明如何使用 /etc/hosts 檔案。

    sudo vi /etc/hosts
    

    將下列幾行插入至 /etc/hosts。 變更 IP 位址和主機名稱以符合您的環境。

     # IP address of cluster node 1
     10.27.0.6    sap-cl1
     # IP address of cluster node 2
     10.27.0.7     sap-cl2
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
     10.27.0.9   sapascs
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
     10.27.0.10    sapers
    
  5. [A] 設定分頁檔。

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

    重新啟動代理程式以啟動變更。

    sudo service waagent restart
    

如果您使用 Azure 檔案儲存體上的 NFS,請準備 SAP 目錄

  1. [1] 在 NFS 共用上建立 SAP 目錄。

    暫時將 NFS 共用 sapnw1 掛接至其中一個 VM,並建立將作為巢狀掛接點使用的 SAP 目錄。

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # Unmount the volume and delete the temporary directory.
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  2. [A] 建立共用目錄。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans   
    
  3. [A] 掛接檔案系統。

    使用簡單的掛接設定時,Pacemaker 叢集不會控制檔案系統。

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

如果您使用 Azure NetApp Files 上的 NFS,請準備 SAP 目錄

本節中的指示只有在您搭配 NFSv4.1 通訊協定使用 Azure NetApp Files 磁碟區時才適用。 在所有將掛接 Azure NetApp Files NFSv4.1 磁碟區的 VM 上執行設定。

  1. [A] 停用識別碼對應。

    1. 驗證 NFS 網域設定。 確定網域已設為預設的 Azure NetApp Files 網域,即 defaultv4iddomain.com。 也請驗證對應是否已設定為 nobody

      sudo cat /etc/idmapd.conf
      # Examplepython-azure-mgmt-compute
      [General]
      Verbosity = 0
      Pipefs-Directory = /var/lib/nfs/rpc_pipefs
      Domain = defaultv4iddomain.com
      [Mapping]
      Nobody-User = nobody
      Nobody-Group = nobody
      
    2. 驗證 nfs4_disable_idmapping。 它應該設定為 Y

      若要建立 nfs4_disable_idmapping 所在的目錄結構,請執行 mount 命令。 您將無法在 /sys/modules 下手動建立目錄,因為其存取已保留給核心和驅動程式。

      # Check nfs4_disable_idmapping. 
      cat /sys/module/nfs/parameters/nfs4_disable_idmapping
      # If you need to set nfs4_disable_idmapping to Y:
      mkdir /mnt/tmp
      mount 10.27.1.5:/sapnw1 /mnt/tmp
      umount  /mnt/tmp
      echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
      # Make the configuration permanent.
      echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
      
  2. [1] 將 Azure NetApp Files 磁碟區暫時掛接在其中一個 VM 上,然後建立 SAP 目錄 (檔案路徑)。

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    # If you're using NFSv3:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 10.27.1.5:/sapnw1 /saptmp
    # If you're using NFSv4.1:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.27.1.5:/sapnw1 /saptmp
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # Unmount the volume and delete the temporary directory.
    sudo cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  3. [A] 建立共用目錄。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans
    
  4. [A] 掛接檔案系統。

    使用簡單的掛接設定時,Pacemaker 叢集不會控制檔案系統。

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

安裝 SAP NetWeaver ASCS 和 ERS

  1. [1] 為 ASCS 執行個體建立虛擬 IP 資源和健康情況探查。

    重要

    建議使用 azure-lb 資源代理程式,其屬於最低版本為 resource-agents-4.3.0184.6ee15eb2-4.13.1 的 resource-agents 套件。

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

    確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。

    sudo crm_mon -r
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl1
    # Resource Group: g-NW1_ASCS
    #  nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #  vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  2. [1] 以 root 身分在第一個節點上安裝 SAP NetWeaver ASCS。

    針對 ASCS 使用虛擬主機名稱,其會對應至負載平衡器的前端設定 IP 位址 (例如,sapascs10.27.0.9),以及使用您用於探查負載平衡器的執行個體號碼 (例如,00)。

    您可以使用 sapinst 參數 SAPINST_REMOTE_ACCESS_USER 來允許非 root 使用者連線到 sapinst。 您可以使用 SAPINST_USE_HOSTNAME 參數,來使用虛擬主機名稱安裝 SAP。

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

    如果安裝無法在 /usr/sap/NW1/ASCS00 中建立子資料夾,請設定 ASCS00 資料夾的擁有者和群組,然後再試一次。

    chown nw1adm /usr/sap/NW1/ASCS00
    chgrp sapsys /usr/sap/NW1/ASCS00
    
  3. [1] 為 ERS 執行個體建立虛擬 IP 資源和健全狀態探查。

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

    確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。

    sudo crm_mon -r
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_ERS
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ERS  (ocf::heartbeat:IPaddr2):     Started sap-cl2
    
  4. [2] 以 root 身分在第二個節點上安裝 SAP NetWeaver ERS。

    針對 ERS 使用虛擬主機名稱,其會對應至負載平衡器的前端設定 IP 位址 (例如,sapers10.27.0.10),以及使用您用於探查負載平衡器的執行個體號碼 (例如,01)。

    您可以使用 SAPINST_REMOTE_ACCESS_USER 參數來允許非 root 使用者連線到 sapinst。 您可以使用 SAPINST_USE_HOSTNAME 參數,來使用虛擬主機名稱安裝 SAP。

    <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    注意

    請使用 SWPM SP 20 PL 05 或更新版本。 舊版未正確地設定權限,導致安裝失敗。

    如果安裝無法在 /usr/sap/NW1/ERS01 中建立子資料夾,請設定 ERS01 資料夾的擁有者和群組,然後再試一次。

    chown nw1adm /usr/sap/NW1/ERS01
    chgrp sapsys /usr/sap/NW1/ERS01
    
  5. [1] 調整 ASCS 執行個體設定檔。

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

    針對獨立 Enqueue Server 1 和 2 (ENSA1 和 ENSA2),請確定已如 SAP 附註 1410736 中所述設定 keepalive OS 參數。

    現在調整 ERS 執行個體設定檔。

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

    SAP NetWeaver 應用程式伺服器與 ASCS 之間的通訊是透過軟體負載平衡器來路由傳送。 在逾時時間 (可設定) 過後,負載平衡器就會將非作用中的連線中斷。

    為了防止此中斷連線,您必須在 SAP NetWeaver ASCS 設定檔中設定參數 (如果您使用 ENSA1 的話)。 針對 ENSA1 和 ENSA2,同時變更所有 SAP 伺服器上的 Linux 系統 keepalive 設定。 如需詳細資訊,請參閱 SAP 附註 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] 將 ASCS 和 ERS SAP 服務新增至 sapservice 檔案。

    將 ASCS 服務項目新增至第二個節點,並將 ERS 服務項目複製到第一個節點。

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh sap-cl2 "cat >>/usr/sap/sapservices"
    sudo ssh sap-cl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [A] 停用 systemd ASCS 和 ERS SAP 執行個體的服務。 只有當 SAP 啟動架構由 systemd 根據 SAP 備註 3115048 管理時,此步驟才適用

    注意

    使用 SLES 叢集設定管理 SAP ASCS 和 SAP ERS 之類的 SAP 執行個體時,您必須進行其他修改,以將叢集與以 systemd 為基礎的原生 SAP 啟動架構進行整合。 這可確保維護流程不會危害叢集穩定性。 根據 SAP 備註 3115048,安裝或將 SAP 啟動架構切換至已啟用 systemd 的安裝之後,您應該停用 ASCS 和 ERS SAP 執行個體的 systemd 服務。

    # Stop ASCS and ERS instances using <sid>adm
    sapcontrol -nr 00 -function Stop
    sapcontrol -nr 00 -function StopService
    
    sapcontrol -nr 01 -function Stop
    sapcontrol -nr 01 -function StopService
    
    # Execute below command on VM where you have performed ASCS instance installation (e.g. sap-cl1)
    sudo systemctl disable SAPNW1_00
    # Execute below command on VM where you have performed ERS instance installation (e.g. sap-cl2)
    sudo systemctl disable SAPNW1_01
    
  10. [A] 啟用 sappingsappongsapping 代理程式會在 sapinit 之前執行,以隱藏 /usr/sap/sapservices 檔案。 sappong 代理程式會在 sapinit 之後執行,以在 VM 開機期間取消隱藏 sapservices 檔案。 在開機時不會自動為 SAP 執行個體啟動 SAPStartSrv,因為 Pacemaker 叢集會加以管理。

    sudo systemctl enable sapping
    sudo systemctl enable sappong
    
  11. [1] 建立檔案並載入檔案,以建立 ASCS 和 ERS 的 SAPStartSrv 資源。

    vi crm_sapstartsrv.txt
    

    crm_sapstartsrv.txt 檔案中輸入下列基本類型並儲存

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

    使用下列命令載入檔案。

    sudo crm configure load update crm_sapstartsrv.txt
    

    注意

    如果您已在 crmsh version 4.4.0+20220708.6ed6b56f-150400.3.3.1 或更新版本上使用 "crm configure primitive…" 設定 SAPStartSrv 資源,請務必檢閱 SAPStartSrv 資源基本類型的設定。 如果監視作業存在,則應該將其移除。 雖然 SUSE 也建議移除啟動和停止作業,但這些作業並不如監視作業那麼重要。 如需詳細資訊,請參閱 crmsh 套件的最近變更可能會導致 SAP NetWeaver HA 叢集中不支援的 SAPStartSrv 資源代理程式設定

  12. [1] 建立 SAP 叢集資源。

    根據您執行的是 ENSA1 還是 ENSA2 系統,選取各自的索引標籤以定義資源。 SAP 在 SAP NetWeaver 7.52 中引進了 ENSA2 的支援,包括複寫。 從 ABAP 平台 1809 開始,預設會安裝 ENSA2。 如需 ENSA2 支援,請參閱 SAP 附註 2630416

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

如果您是從舊版本升級並切換到 ENSA2,請參閱 SAP 附註 2641019

確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。

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

準備 SAP 應用程式伺服器

某些資料庫需要您在應用程式伺服器上執行資料庫安裝。 準備能夠執行資料庫安裝的應用程式伺服器 VM。

下列常用步驟假設您在與 ASCS 和 HANA 伺服器不同的伺服器上安裝應用程式伺服器:

  1. 設定主機名稱解析。

    您可以使用 DNS 伺服器,或修改所有節點上的 /etc/hosts。 此範例說明如何使用 /etc/hosts 檔案。

    sudo vi /etc/hosts
    

    將下列幾行插入至 /etc/hosts。 變更 IP 位址和主機名稱以符合您的環境。

    10.27.0.6   sap-cl1
    10.27.0.7   sap-cl2
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
    10.27.0.9   sapascs
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
    10.27.0.10  sapers
    10.27.0.8   sapa01
    10.27.0.12  sapa02
    
  2. 設定分頁檔。

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

    重新啟動代理程式以啟動變更。

    sudo service waagent restart
    

準備 SAP 目錄

如果您使用 Azure 檔案儲存體上的 NFS,請使用下列指示,準備 SAP 應用程式伺服器 VM 上的 SAP 目錄:

  1. 建立掛接點。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  2. 掛接檔案系統。

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

如果您使用 Azure NetApp Files 上的 NFS,請使用下列指示,準備 SAP 應用程式伺服器 VM 上的 SAP 目錄:

  1. 建立掛接點。

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
    
  2. 掛接檔案系統。

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

安裝資料庫

在此範例中,SAP NetWeaver 安裝在 SAP Hana 上。 您可以對此安裝使用任何支援的資料庫。 如需如何在 Azure 中安裝 SAP HANA 的詳細資訊,請參閱 Azure 虛擬機器上 SAP HANA 的高可用性。 如需所支援資料庫的清單,請參閱 SAP 附註 1928533

以 root 身分安裝 SAP NetWeaver 資料庫執行個體,方法為使用虛擬主機名稱,其會對應至資料庫負載平衡器前端設定的 IP 位址。 您可以使用 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 應用程式伺服器。

    您可以使用 SAPINST_REMOTE_ACCESS_USER 參數來允許非 root 使用者連線到 sapinst

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. [A] 將 SAP HANA 安全存放區更新為指向 SAP HANA 系統複寫設定的虛擬名稱。

    執行下列命令來列出項目。

    hdbuserstore List
    

    此命令應該會列出所有項目,且看起來應該類似此範例。

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

    在此範例中,預設進入點的 IP 位址會指向 VM,而不是負載平衡器。 變更進入點以指向負載平衡器的虛擬機器主機名稱。 請務必使用相同的連接埠和資料庫名稱。 例如,使用範例輸出中的 30313NW1

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

測試您的叢集設定

徹底測試 Pacemaker 叢集。 執行一般容錯移轉測試

下一步