Red Hat Enterprise Linux 上適用於 SAP 應用程式多重 SID 的 Azure VM 上的 SAP NetWeaver 高可用性
本文說明如何使用適用於 SAP 應用程式的 Red Hat Enterprise Linux,在 Azure VM 上的兩個節點叢集中部署多個 SAP NetWeaver 高可用性系統 (multi-SID)。
在範例設定中,三個 SAP NetWeaver 7.50 系統會部署在單一、兩個節點高可用性叢集中。 SAP 系統 SID 如下:
NW1
:ASCS 實例號碼 00 和虛擬主機名msnw1ascs
。 ERS 實體號碼 02 與虛擬主機名稱msnw1ers
。NW2
:ASCS 實例號碼 10 和虛擬主機名msnw2ascs
。 ERS 實體編號 12 與虛擬主機名稱msnw2ers
。NW3
:ASCS 實例號碼 20 和虛擬主機名msnw3ascs
。 ERS 實體號碼 22 和虛擬主機名稱msnw3ers
。
本文未涵蓋資料庫層和SAP NFS共用的部署。
本文中的範例會針對 NFS 共用使用 Azure NetApp Files 磁碟區 sapMSID
,假設磁碟區已經部署。 這些範例假設 Azure NetApp Files 磁碟區是以 NFSv3 通訊協定部署。 他們會針對 SAP 系統 NW1
、 NW2
NW3
和 的 ASCS 和 ERS 實例,使用下列檔案路徑作為叢集資源:
- 磁碟區 sapMSID (nfs://10.42.0.4/sapmntNW1)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW1ascs)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW1sys)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW1ers)
- 磁碟區 sapMSID (nfs://10.42.0.4/sapmntNW2)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW2ascs)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW2sys)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW2ers)
- 磁碟區 sapMSID (nfs://10.42.0.4/sapmntNW3)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW3ascs)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW3sys)
- 磁碟區 sapMSID (nfs://10.42.0.4/usrsapNW3ers)
開始之前,請參閱下列 SAP 附注和檔:
- SAP 附注 1928533,其具有:
- 部署 SAP 軟體所支援的 Azure VM 大小清單。
- Azure VM 大小的重要容量資訊。
- 支援的 SAP 軟體和作業系統 (OS) 和資料庫組合。
- Microsoft Azure 上 Windows 和 Linux 的必要 SAP 核心版本。
- Azure NetApp Files 檔。
- SAP 附註 2015553 具有 Azure 中 SAP 支援 SAP 軟體部署的必要條件。
- SAP 附注 2002167 具有 Red Hat Enterprise Linux 的建議 OS 設定。
- SAP 附注 2009879 具有適用於 Red Hat Enterprise Linux 的 SAP HANA 指導方針。
- SAP 附注 2178632 有 Azure 中針對 SAP 報告的所有監視計量詳細資訊。
- SAP 附注 2191498 Azure 中具有適用於 Linux 的必要 SAP 主機代理程式版本。
- SAP 附注 2243692 有 Azure 中 Linux 上的 SAP 授權相關信息。
- SAP 附注 1999351 有更多適用於 SAP 的 Azure 增強監視擴充功能疑難解答資訊。
- SAP Community WIKI 具有適用於 Linux 的所有必要 SAP 附注。
- Azure 虛擬機器 Linux 上的 SAP 規劃和實作。
- 適用於Linux上SAP的 Azure 虛擬機器 部署。
- 適用於Linux上SAP的 Azure 虛擬機器 DBMS 部署。
- Pacemaker 叢集中的 SAP Netweaver。
- 一般 RHEL 檔:
- Azure 特定的 RHEL 文件:
- 使用 Azure NetApp Files 在 Microsoft Azure 上的 NetApp SAP 應用程式
概觀
參與叢集的虛擬機必須調整大小,才能在發生故障轉移時執行所有資源。 每個 SAP SID 都可以在多重 SID 高可用性叢集中彼此獨立故障轉移。
若要達到高可用性,SAP NetWeaver 需要高可用性共用。 本文說明在 Azure NetApp Files NFS 磁碟區上部署 SAP 共用的範例。 您可以改為在高可用性 GlusterFS 叢集上裝載共用,供多個 SAP 系統使用。
重要
支援使用 Red Hat Linux 進行 SAP ASCS/ERS 多重 SID 叢集,作為 Azure VM 中的客體作業系統,限制為 相同叢集上的五 個 SAP SSD。 每個新的 SID 都會增加複雜度。 不支援相同叢集上的SAP 加入佇列復寫伺服器 1 和加入佇列復寫伺服器 2。 多重 SID 叢集描述在一個 Pacemaker 叢集中安裝具有不同 SID 的多個 SAP ASCS/ERS 實例。 目前只有 ASCS/ERS 支援多重 SID 叢集。
提示
SAP ASCS/ERS 的多 SID 叢集是具有較高複雜度的解決方案。 實作會比較複雜。 它也牽涉到更高的系統管理工作,在執行維護活動時,例如OS修補。 開始實際實作之前,請花時間仔細規劃部署,以及 VM、NFS 掛接、VIP、負載平衡器設定等所有相關元件。
SAP NetWeaver ASCS、SAP NetWeaver SCS 和 SAP NetWeaver ERS 會使用虛擬主機名和虛擬IP位址。 在 Azure 上必須有負載平衡器才能使用虛擬 IP 位址。 我們建議使用 標準負載平衡器。
- ASCS 的前端 IP 位址:10.3.1.50 (NW1)、10.3.1.52 (NW2)和 10.3.1.54 (NW3)
- ERS 的前端 IP 位址:10.3.1.51 (NW1)、10.3.1.53 (NW2)和 10.3.1.55 (NW3)
- NW1 ASCS 的探查埠 62000、NW2 ASCS 的 62010 和 NW3 ASCS 的探查埠 62020
- NW1 ASCS 的探查埠 62102、NW2 ASCS 的 62112 和 NW3 ASCS 的探查埠 62122
重要
負載平衡案例中的 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健康情況探查。
SAP 共用
SAP NetWeaver 需要傳輸、配置檔目錄等的共享記憶體。 對於高可用性 SAP 系統,擁有高可用性共用非常重要。 您必須決定 SAP 共用的架構。 其中一個選項是在 Azure NetApp Files NFS 磁碟區上部署共用。 透過 Azure NetApp Files,您可以取得 SAP NFS 共用的內建高可用性。
另一個選項是在 Red Hat Enterprise Linux for SAP NetWeaver 上的 Azure VM 上建置 GlusterFS,這可以在多個 SAP 系統之間共用。
在叢集中部署第一個SAP系統
在您決定 SAP 共用的架構之後,請遵循對應的檔,在叢集中部署第一個 SAP 系統。
- 如果您使用 Azure NetApp Files NFS 磁碟區,請遵循 Red Hat Enterprise Linux 上的 SAP NetWeaver Azure VM 高可用性與適用於 SAP 應用程式的 Azure NetApp Files。
- 如果您使用 GlusterFS 叢集,請遵循 Red Hat Enterprise Linux 上適用於 SAP NetWeaver 的 Azure VM 上的 GlusterFS。
這些文章會引導您完成準備必要基礎結構、建置叢集、準備操作系統以執行 SAP 應用程式的步驟。
提示
在部署第一個系統之後,請務必測試叢集的故障轉移功能,再將額外的 SAP SID 新增至叢集。 如此一來,您便知道叢集功能可在將其他 SAP 系統的複雜度新增至叢集之前運作。
在叢集中部署更多SAP系統
此範例假設系統 NW1
已在叢集中部署。 這個範例示範如何在叢集中部署 SAP 系統 NW2
與 NW3
。
下列專案前面會加上:
- [A] 適用於所有節點
- [1] 僅適用於節點 1
- [2] 僅適用於節點 2
必要條件
重要
依照指示在叢集中部署其他 SAP 系統之前,請先在叢集中部署第一個 SAP 系統。 只有第一個系統部署期間才需要執行的步驟。
本文假設:
- Pacemaker 叢集已設定並執行。
- 已部署至少一個 SAP 系統 (ASCS / ERS 實例),並在叢集中執行。
- 叢集故障轉移功能已經過測試。
- 所有 SAP 系統的 NFS 共用都會部署。
準備 SAP NetWeaver 安裝
依照透過 Azure 入口網站 手動部署 Azure Load Balancer 的指示,將新部署系統的組態新增
NW2
NW3
至現有的 Azure Load Balancer。 調整組態的IP位址、健康情況探查埠和負載平衡規則。[A] 為更多 SAP 系統設定名稱解析。 您可以使用 DNS 伺服器, 或修改所有節點上的 /etc/hosts 。 此範例示範如何使用 /etc/hosts 檔案。 將IP位址和主機名調整至您的環境。
sudo vi /etc/hosts # IP address of the load balancer frontend configuration for NW2 ASCS 10.3.1.52 msnw2ascs # IP address of the load balancer frontend configuration for NW3 ASCS 10.3.1.54 msnw3ascs # IP address of the load balancer frontend configuration for NW2 ERS 10.3.1.53 msnw2ers # IP address of the load balancer frontend configuration for NW3 ERS 10.3.1.55 msnw3ers
[A] 建立 和
NW3
SAP 系統的共享目錄NW2
,以部署至叢集。sudo mkdir -p /sapmnt/NW2 sudo mkdir -p /usr/sap/NW2/SYS sudo mkdir -p /usr/sap/NW2/ASCS10 sudo mkdir -p /usr/sap/NW2/ERS12 sudo mkdir -p /sapmnt/NW3 sudo mkdir -p /usr/sap/NW3/SYS sudo mkdir -p /usr/sap/NW3/ASCS20 sudo mkdir -p /usr/sap/NW3/ERS22 sudo chattr +i /sapmnt/NW2 sudo chattr +i /usr/sap/NW2/SYS sudo chattr +i /usr/sap/NW2/ASCS10 sudo chattr +i /usr/sap/NW2/ERS12 sudo chattr +i /sapmnt/NW3 sudo chattr +i /usr/sap/NW3/SYS sudo chattr +i /usr/sap/NW3/ASCS20 sudo chattr +i /usr/sap/NW3/ERS22
[A] 針對您要部署至叢集的其他 SAP 系統,新增 /sapmnt/SID 和 /usr/sap/SID/SYS 文件系統的掛接專案。 在這裡範例中,它是
NW2
和NW3
。/etc/fstab
使用您要部署至叢集之其他 SAP 系統的檔案系統來更新檔案。- 如果使用 Azure NetApp Files,請遵循搭配 Azure NetApp Files 搭配 RHEL 上 SAP NW 的 Azure VM 高可用性中的指示。
- 如果使用 GlusterFS 叢集,請遵循 RHEL 上 SAP NW 的 Azure VM 高可用性中的指示。
安裝 ASCS / ERS
針對您要部署到叢集的其他 SAP 系統之 ASCS 實例,建立虛擬IP和健康情況探查叢集資源。 此範例使用
NW2
和NW3
ASCS,在 Azure NetApp Files 磁碟區上使用 NFSv3 通訊協定。sudo pcs resource create fs_NW2_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ascs' \ directory='/usr/sap/NW2/ASCS10' 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-NW2_ASCS sudo pcs resource create vip_NW2_ASCS IPaddr2 \ ip=10.3.1.52 \ --group g-NW2_ASCS sudo pcs resource create nc_NW2_ASCS azure-lb port=62010 \ --group g-NW2_ASCS sudo pcs resource create fs_NW3_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ascs' \ directory='/usr/sap/NW3/ASCS20' 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-NW3_ASCS sudo pcs resource create vip_NW3_ASCS IPaddr2 \ ip=10.3.1.54 \ --group g-NW3_ASCS sudo pcs resource create nc_NW3_ASCS azure-lb port=62020 \ --group g-NW3_ASCS
請確定叢集狀態良好,且所有資源都已啟動。 執行資源所在的節點位置並不重要。
[1] 安裝 SAP NetWeaver ASCS。
使用對應至 ASCS 負載平衡器前端組態 IP 位址的虛擬主機名,將 SAP NetWeaver ASCS 安裝為根目錄。 例如,針對系統
NW2
,虛擬主機名是msnw2ascs
、10.3.1.52
和您用於負載平衡器探查的實例號碼,例如10
。 若為系統NW3
,虛擬主機名為msnw3ascs
、10.3.1.54
,以及您用於負載平衡器探查的實例編號,例如20
。 記下您為每個 SAP SID 安裝 ASCS 的叢集節點。您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
來允許非根用戶連線到 sapinst。 您可以使用 參數SAPINST_USE_HOSTNAME
來安裝 SAP,並使用虛擬主機名。# 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=virtual_hostname
如果安裝無法在 /usr/sap/SID/ASCS<實例中>建立子資料夾,請嘗試將擁有者設定為 <sid>adm,並將群組設定為 ASCS<實例的 sapsys#>,然後<重試。>
[1] 為您要部署至叢集之其他 SAP 系統的 ERS 實例建立虛擬 IP 和健康情況探查叢集資源。 此範例適用於
NW2
和NW3
ERS,在 Azure NetApp Files 磁碟區上使用 NFS 搭配 NFSv3 通訊協定。sudo pcs resource create fs_NW2_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ers' \ directory='/usr/sap/NW2/ERS12' 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-NW2_AERS sudo pcs resource create vip_NW2_AERS IPaddr2 \ ip=10.3.1.53 \ --group g-NW2_AERS sudo pcs resource create nc_NW2_AERS azure-lb port=62112 \ --group g-NW2_AERS sudo pcs resource create fs_NW3_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ers' \ directory='/usr/sap/NW3/ERS22' 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-NW3_AERS sudo pcs resource create vip_NW3_AERS IPaddr2 \ ip=10.3.1.55 \ --group g-NW3_AERS sudo pcs resource create nc_NW3_AERS azure-lb port=62122 \ --group g-NW3_AERS
請確定叢集狀態良好,且所有資源都已啟動。
接下來,請確定新建立的ERS群組的資源正在叢集節點上執行,與安裝相同 SAP 系統 ASCS 實例的叢集節點相反。 例如,如果已安裝 NW2 ASCS
rhelmsscl1
,請確定 NW2 ERS 群組正在 上執行rhelmsscl2
。 您可以針對群組中的其中一個叢集資源執行下列命令,將 NW2 ERS 群組移轉至rhelmsscl2
:pcs resource move fs_NW2_AERS rhelmsscl2
[2] 安裝 SAP NetWeaver ERS。
使用對應至ERS之負載平衡器前端組態IP位址的虛擬主機名,將SAP NetWeaver ERS安裝為根節點。 例如,針對系統
NW2
,虛擬主機名為msnw2ers
、10.3.1.53
,以及您用於負載平衡器探查的實例編號,例如12
。 針對系統NW3
,虛擬主機名msnw3ers
、10.3.1.55
和您用於負載平衡器探查的實例編號,例如22
。您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
來允許非根用戶連線到 sapinst。 您可以使用 參數SAPINST_USE_HOSTNAME
來安裝 SAP,並使用虛擬主機名。# 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=virtual_hostname
注意
使用 SWPM SP 20 PL 05 或更高版本。 較低版本未正確設定許可權,且安裝失敗。
如果安裝無法在 /usr/sap/NW2/ERS Instance# 中建立子資料夾,請嘗試將擁有者設定為 <sid>adm,並將群組設定為 ERS<Instance#> 資料夾的 sapsys,然後重試。<<>>
如果您需要將新部署 SAP 系統的 ERS 群組移轉至不同的叢集節點,別忘了移除 ERS 群組的位置條件約束。 您可以執行下列命令來移除條件約束。 這個範例會針對 SAP 系統和
NW2
NW3
提供。 請務必移除命令中用來移動 ERS 叢集群組之相同資源的暫存條件約束。pcs resource clear fs_NW2_AERS pcs resource clear fs_NW3_AERS
[1] 針對新安裝的 SAP 系統調整 ASCS/SCS 和 ERS 實例設定檔。 以下顯示的範例適用於
NW2
。 您必須針對新增至叢集的所有 SAP 實例調整 ASCS/SCS 和 ERS 配置檔。ASCS/SCS 設定檔
sudo vi /sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs # Change the restart command to a start command #Restart_Program_01 = local $(_EN) pf=$(_PF) Start_Program_01 = local $(_EN) pf=$(_PF) # Add the keep alive parameter, if using ENSA1 enque/encni/set_so_keepalive = true
針對 ENSA1 和 ENSA2,請確定
keepalive
OS 參數已設定為 SAP 附注 1410736中所述。ERS 配置檔
sudo vi /sapmnt/NW2/profile/NW2_ERS12_msnw2ers # 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) # remove Autostart from ERS profile # Autostart = 1
[A] 更新 /usr/sap/sapservices 檔案。
若要防止 sapinit 啟動腳本啟動實例,Pacemaker 管理的所有實例都必須從 /usr/sap/sapservices 檔案批注化。 以下顯示的範例適用於 SAP 系統與
NW2
NW3
。# Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ASCS instances. You should comment out the line(s). # LD_LIBRARY_PATH=/usr/sap/NW2/ASCS10/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ASCS10/exe/sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs -D -u nw2adm # LD_LIBRARY_PATH=/usr/sap/NW3/ASCS20/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ASCS20/exe/sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs -D -u nw3adm # systemctl --no-ask-password start SAPNW2_10 # sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs # systemctl --no-ask-password start SAPNW3_20 # sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ERS instances. You should comment out the line(s). #LD_LIBRARY_PATH=/usr/sap/NW2/ERS12/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ERS12/exe/sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers -D -u nw2adm #LD_LIBRARY_PATH=/usr/sap/NW3/ERS22/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ERS22/exe/sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers -D -u nw3adm # systemctl --no-ask-password start SAPNW2_12 # sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers # systemctl --no-ask-password start SAPNW3_22 # sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers
重要
使用以系統為基礎的 SAP 啟動架構,SAP 實例現在可以由 systemd 管理。 最低需要的 Red Hat Enterprise Linux (RHEL) 版本是適用於 SAP 的 RHEL 8。 如 SAP 附註 3115048所述,具有整合式系統型 SAP 啟動架構支援的 SAP 核心全新安裝一律會導致系統控制的 SAP 實例。 在將現有 SAP 安裝升級至具有系統型 SAP 啟動架構支援的核心之後,必須依照 SAP 附注 3115048 所述執行一些手動步驟,將現有的 SAP 啟動環境轉換成系統控制環境。
使用 Red Hat HA 服務進行 SAP(叢集組態)來管理 SAP 應用程式伺服器實例,例如 SAP ASCS 和 SAP ERS 時,必須進行其他修改,以確保 SAPInstance 資源代理程式與新的系統型 SAP 啟動架構之間的相容性。 因此,一旦根據 SAP 附註3115048安裝或切換至已啟用系統的 SAP 核心,Red Hat KBA 6884531中所述的步驟必須在所有叢集節點上順利完成。
[1] 為新安裝的 SAP 系統建立 SAP 叢集資源。
視您執行 ENSA1 或 ENSA2 系統而定,選取個別索引標籤來定義 SAP 系統
NW2
的資源,NW3
如下所示。 SAP 在 SAP NetWeaver 7.52 中引進了 ENSA2 的支援,包括複寫。 從 ABAP Platform 1809 開始,預設會安裝 ENSA2。 如需 ENSA2 支援,請參閱 SAP 附注 2630416 ,以取得加入佇列伺服器 2 支援。如果您使用加入佇列伺服器 2 架構 (ENSA2),請安裝資源代理程式 resource-agents-sap-4.1.1-12.el7.x86_64 或更新版本,並定義 SAP 系統
NW2
的資源,NW3
如下所示:sudo pcs property set maintenance-mode=true sudo pcs resource create rsc_sap_NW2_ASCS10 SAPInstance \ InstanceName=NW2_ASCS10_msnw2ascs START_PROFILE="/sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \ op monitor interval=20 on-fail=restart timeout=60 \ op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW2_ASCS sudo pcs resource meta g-NW2_ASCS resource-stickiness=3000 sudo pcs resource create rsc_sap_NW2_ERS12 SAPInstance \ InstanceName=NW2_ERS12_msnw2ers START_PROFILE="/sapmnt/NW2/profile/NW2_ERS12_msnw2ers" \ AUTOMATIC_RECOVER=false IS_ERS=true \ op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW2_AERS sudo pcs constraint colocation add g-NW2_AERS with g-NW2_ASCS -5000 sudo pcs constraint location rsc_sap_NW2_ASCS10 rule score=2000 runs_ers_NW2 eq 1 sudo pcs constraint order start g-NW2_ASCS then stop g-NW2_AERS kind=Optional symmetrical=false sudo pcs resource create rsc_sap_NW3_ASCS20 SAPInstance \ InstanceName=NW3_ASCS20_msnw3ascs START_PROFILE="/sapmnt/NW3/profile/NW3_ASCS20_msnw3ascs" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \ op monitor interval=20 on-fail=restart timeout=60 \ op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW3_ASCS sudo pcs resource meta g-NW3_ASCS resource-stickiness=3000 sudo pcs resource create rsc_sap_NW3_ERS22 SAPInstance \ InstanceName=NW3_ERS22_msnw3ers START_PROFILE="/sapmnt/NW3/profile/NW2_ERS22_msnw3ers" \ AUTOMATIC_RECOVER=false IS_ERS=true \ op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-NW3_AERS sudo pcs constraint colocation add g-NW3_AERS with g-NW3_ASCS -5000 sudo pcs constraint location rsc_sap_NW3_ASCS20 rule score=2000 runs_ers_NW3 eq 1 sudo pcs constraint order start g-NW3_ASCS then stop g-NW3_AERS kind=Optional symmetrical=false sudo pcs property set maintenance-mode=false
如果您要從舊版升級並切換至加入佇列伺服器 2,請參閱 SAP 附注 2641019。
注意
上述組態中的逾時只是範例,可能需要調整為特定的 SAP 設定。
請確定叢集狀態良好,且所有資源都已啟動。 執行資源所在的節點位置並不重要。 下列範例顯示 SAP 系統
NW2
之後的叢集資源狀態,並NW3
新增至叢集。sudo pcs status # Online: [ rhelmsscl1 rhelmsscl2 ] # Full list of resources: # rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW1_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 # rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 # Resource Group: g-NW2_ASCS # fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW2_AERS # fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW3_ASCS # fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 # Resource Group: g-NW3_AERS # fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 # vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 # nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 # rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl1
[A] 在兩個節點上新增 ASCS 和 ERS 的防火牆規則。 下列範例顯示 SAP 系統和
NW2
NW3
的防火牆規則。# NW1 - ASCS sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp # NW2 - ERS sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp # NW3 - ASCS sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp # NW3 - ERS sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp
繼續進行 SAP 安裝
完成 SAP 安裝,方法是:
- 準備 SAP NetWeaver 應用程式伺服器。
- 安裝 DBMS 實例。
- 安裝主要 SAP 應用程式伺服器。
- 安裝一或多個其他 SAP 應用程式實例。
測試多重 SID 叢集設定
下列測試是 Red Hat 最佳做法指南中測試案例的子集。 為了方便起見,其中包括它們。 如需叢集測試的完整清單,請參閱下列檔:
- 如果您使用 Azure NetApp Files NFS 磁碟區,請遵循 RHEL 上的 SAP NetWeaver Azure VM 高可用性與適用於 SAP 應用程式的 Azure NetApp Files
- 如果您使用高可用性
GlusterFS
,請遵循 適用於 SAP 應用程式的 RHEL 上 SAP NetWeaver 的 Azure VM 高可用性。
請一律閱讀 Red Hat 最佳做法指南,並執行可能已新增的所有其他測試。 呈現的測試位於兩個節點、多 SID 叢集中,並已安裝三個 SAP 系統。
手動移轉 ASCS 實例。 此範例顯示移轉 SAP 系統 NW3 的 ASCS 實例。
開始測試之前的資源狀態:
Online: [ rhelmsscl1 rhelmsscl2 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl1
以根目錄身分執行下列命令,以移轉 NW3 ASCS 實例。
pcs resource move rsc_sap_NW3_ASCS200 # Clear temporary migration constraints pcs resource clear rsc_sap_NW3_ASCS20 # Remove failed actions for the ERS that occurred as part of the migration pcs resource cleanup rsc_sap_NW3_ERS22
測試之後的資源狀態:
Online: [ rhelmsscl1 rhelmsscl2 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl2
模擬節點當機。
開始測試之前的資源狀態:
Online: [ rhelmsscl1 rhelmsscl2 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl2
在至少執行一個 ASCS 實例的節點上,以 root 身分執行下列命令。 此範例會在 上
rhelmsscl1
執行 命令,其中、NW2
和NW3
的NW1
ASCS 實例正在執行。echo c > /proc/sysrq-trigger
測試之後和當機的節點再次啟動之後的狀態,看起來應該像下列結果:
Full list of resources: rsc_st_azure (stonith:fence_azure_arm): Started rhelmsscl2 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW1_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW2_ASCS fs_NW2_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW2_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW2_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW2_AERS fs_NW2_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW2_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW2_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW2_ERS12 (ocf::heartbeat:SAPInstance): Started rhelmsscl1 Resource Group: g-NW3_ASCS fs_NW3_ASCS (ocf::heartbeat:Filesystem): Started rhelmsscl2 vip_NW3_ASCS (ocf::heartbeat:IPaddr2): Started rhelmsscl2 nc_NW3_ASCS (ocf::heartbeat:azure-lb): Started rhelmsscl2 rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance): Started rhelmsscl2 Resource Group: g-NW3_AERS fs_NW3_AERS (ocf::heartbeat:Filesystem): Started rhelmsscl1 vip_NW3_AERS (ocf::heartbeat:IPaddr2): Started rhelmsscl1 nc_NW3_AERS (ocf::heartbeat:azure-lb): Started rhelmsscl1 rsc_sap_NW3_ERS22 (ocf::heartbeat:SAPInstance): Started rhelmsscl1
如果有失敗資源的訊息,請清除失敗資源的狀態。 例如:
pcs resource cleanup rsc_sap_NW1_ERS02
下一步
若要瞭解如何建立高可用性,並規劃 Azure VM 上 SAP HANA 的災害復原,請參閱 SAP HANA on Azure 虛擬機器 (VM) 的高可用性。