針對 SAP 應用程式多重 SID 在 Red Hat Enterprise Linux 上的 Azure VM 達到 SAP NetWeaver 高可用性
本文說明如何使用 Red Hat Enterprise Linux for SAP 應用程式,在 Azure VM 上的雙節點叢集中部署多個 SAP NetWeaver 高可用性系統 (多重 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 執行個體,針對叢集資源使用下列檔案路徑:
- volume sapMSID (nfs://10.42.0.4/sapmntNW1)
- volume sapMSID (nfs://10.42.0.4/usrsapNW1ascs)
- volume sapMSID (nfs://10.42.0.4/usrsapNW1sys)
- volume sapMSID (nfs://10.42.0.4/usrsapNW1ers)
- volume sapMSID (nfs://10.42.0.4/sapmntNW2)
- volume sapMSID (nfs://10.42.0.4/usrsapNW2ascs)
- volume sapMSID (nfs://10.42.0.4/usrsapNW2sys)
- volume sapMSID (nfs://10.42.0.4/usrsapNW2ers)
- volume sapMSID (nfs://10.42.0.4/sapmntNW3)
- volume sapMSID (nfs://10.42.0.4/usrsapNW3ascs)
- volume sapMSID (nfs://10.42.0.4/usrsapNW3sys)
- volume sapMSID (nfs://10.42.0.4/usrsapNW3ers)
開始之前,請先參閱下列 SAP 附註和文件:
- SAP Note 1928533,其中包含:
- SAP 軟體部署支援的 Azure VM 大小清單。
- Azure VM 大小的重要容量資訊。
- 支援的 SAP 軟體,以及作業系統 (OS) 與資料庫組合。
- Microsoft Azure 上 Windows 和 Linux 所需的 SAP 核心版本。
- Azure NetApp Files 文件。
- SAP Note 2015553 包含 Azure 中 SAP 支援的 SAP 軟體部署必要條件。
- SAP 附註 2002167 建議適用於 Red Hat Enterprise Linux 的作業系統設定。
- SAP 附註 2009879 提供適用於 Red Hat Enterprise Linux 的 SAP HANA 方針。
- SAP Note 2178632 包含在 Azure 中針對 SAP 回報的所有監視計量詳細資訊。
- SAP Note 2191498 包含 Azure 中 Linux 所需的 SAP Host Agent 版本。
- SAP Note 2243692 包含 Azure 中 Linux 上的 SAP 授權相關資訊。
- SAP 附註 1999351 包含適用於 SAP 的 Azure 增強型監視延伸模組的其他疑難排解資訊。
- SAP Community WIKI 包含 Linux 所需的所有 SAP Note。
- Linux 上的 SAP 的 Azure 虛擬機器規劃和實作。
- Linux 上的 SAP 的 Azure 虛擬機器部署。
- Linux 上的 SAP 的 Azure 虛擬機器 DBMS 部署。
- Pacemaker 叢集中的 SAP Netweaver。
- 一般 RHEL 文件:
- Azure 專用 RHEL 文件:
- 使用 Azure NetApp Files 在 Microsoft Azure 上的 NetApp SAP 應用程式
概觀
參與叢集的虛擬機器必須夠大,能夠在容錯移轉發生時執行所有資源。 在多重 SID 高可用性叢集,每個 SAP SID 都可以彼此獨立容錯移轉。
為了實現高可用性,SAP NetWeaver 需要高可用性共用。 此文件顯示將 SAP 共用部署在 Azure NetApp Files NFS 磁碟區上的範例。 您也可將共用裝載於高可用性的 GlusterFS 叢集上,供多個 SAP 系統使用。
重要
對於 Azure VM 中以 Red Hat Linux 為客體作業系統的 SAP ASCS/ERS,多重 SID 叢集支援相同叢集上最多五個 SAP SID。 每增加一個 SID 就越複雜。 不支援在相同叢集中混用 SAP 加入佇列複寫伺服器 1 和加入佇列複寫伺服器 2。 多重 SID 叢集是指在一個 Pacemaker 叢集上安裝多個 SAP ASCS/ERS 執行個體,各有不同的 SID。 目前只有 ASCS/ERS 支援多重 SID 叢集。
提示
SAP ASCS/ERS 的多重 SID 叢集是很複雜的解決方案。 實作時比較複雜。 執行維護活動時 (例如 OS 修補),在管理上也很費力。 實際開始實作之前,請花時間仔細規劃部署及所有相關元件,例如 VM、NFS 掛接、VIP、負載平衡器設定等。
SAP NetWeaver ASCS、SAP NetWeaver SCS 和 SAP NetWeaver ERS 會使用虛擬主機名稱和虛擬 IP 位址。 在 Azure 上必須有負載平衡器才能使用虛擬 IP 位址。 我們建議使用 tandard Load Balancer。
- 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
注意
當不具公用 IP 位址的 VM 放在內部 (沒有公用 IP 位址) Standard Azure Load Balancer 的後端集區時,除非另外設定來允許路由傳送至公用端點,否則不會有輸出網際網路連線能力。 如需如何實現輸出連線能力的詳細資料,請參閱在 SAP 高可用性案例中使用 Azure Standard Load Balancer 實現虛擬機器的公用端點連線能力。
重要
請勿在位於 Azure Load Balancer 後方的 Azure VM 上啟用 TCP 時間戳記。 啟用 TCP 時間戳記會導致健全狀態探查失敗。 將參數 net.ipv4.tcp_timestamps
設為 0。 如需詳細資訊,請參閱負載平衡器健全狀態探查。
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 磁碟區,請遵循針對 SAP 應用程式使用 Azure NetApp Files 在 Red Hat Enterprise Linux 上的 Azure VM 達到 SAP NetWeaver 高可用性。
- 如果您使用 GlusterFS 叢集,請遵循 Red Hat Enterprise Linux for SAP NetWeaver 上適用於 Azure VM 的 GlusterFS。
這些文章逐步引導您準備必要的基礎結構、建立叢集、準備 OS,以執行 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] 針對要額外部署至叢集的
NW2
和NW3
SAP 系統,建立共用目錄。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
。使用您要部署至叢集的其他 SAP 系統的檔案系統,來更新檔案
/etc/fstab
。- 如果使用 Azure NetApp Files,請遵循使用 Azure NetApp Files 在 RHEL 上的 Azure VM 達到 SAP NW 高可用性中的指示。
- 如果使用 GlusterFS 叢集,請遵循在 RHEL 上的 Azure VM 達到 SAP NW 高可用性中的指示。
安裝 ASCS/ERS
針對您要部署至叢集的其他 SAP 系統的 ASCS 執行個體,建立虛擬 IP 和健全狀態探查叢集資源。 此範例在 Azure NetApp Files 磁碟區上使用 NFSv3 通訊協定執行 NFS 的
NW2
和NW3
ASCS。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。
以 root 身分安裝 SAP NetWeaver ASCS,並使用虛擬主機名稱對應至 ASCS 的負載平衡器前端設定的 IP 位址。 以系統
NW2
為例,虛擬主機名稱是msnw2ascs
、10.3.1.52
,以及您用於負載平衡器探查的執行個體號碼,例如10
。 以系統NW3
為例,虛擬主機名稱是msnw3ascs
、10.3.1.54
,以及您用於負載平衡器探查的執行個體號碼,例如20
。 記下您為每個 SAP SID 安裝 ASCS 的叢集節點。您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
來允許非 root 使用者連線到 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<Instance#> 中建立子資料夾,請嘗試將 ASCS<Instance#> 的擁有者設定為 <sid>adm,並將群組設定為 sapsys,然後重試。
[1] 針對您要部署至叢集的其他 SAP 系統的 ERS 執行個體,建立虛擬 IP 和健全狀態探查叢集資源。 以下範例適用於在 Azure NetApp Files 磁碟區上使用 NFSv3 通訊協定執行 NFS 的
NW2
和NW3
ERS。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。
以 root 身分將 SAP NetWeaver ERS 安裝在另一個節點,並使用虛擬主機名稱對應至 ERS 的負載平衡器前端設定的 IP 位址。 以系統
NW2
為例,虛擬主機名稱是msnw2ers
、10.3.1.53
,以及您用於負載平衡器探查的執行個體號碼,例如12
。 以系統NW3
為例,虛擬主機名稱是msnw3ers
、10.3.1.55
,以及您用於負載平衡器探查的執行個體號碼,例如22
。您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
來允許非 root 使用者連線到 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#> 中建立子資料夾,請嘗試將 ERS<Instance#> 資料夾的擁有者設定為 <sid>adm,並將群組設定為 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,請確定已如 SAP 附註 1410736 中所述設定
keepalive
OS 參數。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
重要
透過以 systemd 為基礎的 Service Advertising Protocol 啟動架構,Service Advertising Protocol 執行個體現在可由 systemd 管理。 針對 Service Advertising Protocol,最低需求 Red Hat Enterprise Linux (RHEL) 版本為 RHEL 8。 如 Service Advertising Protocol 附註 3115048 所述,使用整合式基於 systemd 之 Service Advertising Protocol 啟動架構支援的 Service Advertising Protocol 核心全新安裝,一律會產生 systemd 控制的 Service Advertising Protocol 執行個體。 然而,將現有 Service Advertising Protocol 安裝的 Service Advertising Protocol 核心升級至具有基於 systemd 之 Service Advertising Protocol 啟動架構支援的核心後,必須執行一些手動步驟,如 Service Advertising Protocol 附註 3115048 所述,以將現有的 Service Advertising Protocol 啟動環境轉換成受 systemd 控制的環境。
使用 Service Advertising Protocol 的 Red Hat HA 服務 (叢集設定) 管理 Service Advertising Protocol 應用程式伺服器執行個體 (例如 SAP ASCS 和 SAP ERS) 時,必須進行其他修改,以確保 SAPInstance 資源代理程式與新的基於 systemd 的 Service Advertising Protocol 啟動架構之間的相容性。 因此,一旦根據 Service Advertising Protocol 附註 3115048 安裝 Service Advertising Protocol 應用程式伺服器,或切換至已啟用 systemd 的 Service Advertising Protocol 核心,必須在所有叢集節點上順利完成 Red Hat KBA 6884531 中所述的步驟。
[1] 為新安裝的 SAP 系統建立 SAP 叢集資源。
視您是執行 ENSA1 或 ENSA2 系統而定,選取個別索引標籤來定義 Service Advertising Protocol 系統
NW2
和NW3
的資源,方法如下所示。 SAP 在 SAP NetWeaver 7.52 中引進了 ENSA2 的支援,包括複寫。 從 ABAP 平台 1809 開始,預設會安裝 ENSA2。 針對 ENSA2 支援,請參閱 Service Advertising Protocol Note 2630416 以將伺服器 2 支援加入佇列。如果使用加入佇列伺服器 2 結構 (ENSA2),請安裝資源代理程式 resource-agents-sap-4.1.1-12.el7.x86_64 或更新版本,以及定義 Service Advertising Protocol 系統
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 磁碟區,請遵循針對 SAP 應用程式使用 Azure NetApp Files 在 RHEL 上的 Azure VM 達到 SAP NetWeaver 高可用性
- 如果您使用高可用性
GlusterFS
,請遵循針對 SAP 應用程式在 RHEL 上的 Azure VM 達到 SAP NetWeaver 高可用性。
務必閱讀 Red Hat 最佳做法指南,並執行其他所有可能新增的測試。 提供的測試是在已安裝三個 SAP 系統的雙節點、多重 SID 叢集上。
手動移轉 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
以 root 身分執行下列命令,來移轉 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
上執行命令,其中NW1
、NW2
和NW3
的 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 規劃災害復原,請參閱 Azure 虛擬機器 (VM) 上 SAP HANA 的高可用性。