SAP NetWeaver 在適用於 SAP 應用程式之 SUSE Linux Enterprise Server 上的 Azure VM 高可用性
本文說明如何部署虛擬機器、設定虛擬機器、安裝叢集架構,以及安裝高可用性的 SAP NetWeaver 或 SAP ABAP 平台型系統。 在範例設定內容中,會使用 ASCS 執行個體號碼 00、ERS 執行個體號碼 02 和 SAP 系統識別碼 NW1。
針對適用於 SAP 應用程式的 SLES 15 新實作,建議在簡單掛接設定中為 SAP ASCS/ERS 部署高可用性。 本文中所述以 SAP 中心服務目錄之叢集控制檔案系統為依據的傳統 Pacemaker 設定,仍然受到支援。
請先閱讀下列 SAP Note 和文件
- SAP Note 1928533,其中包含:
- SAP 軟體部署支援的 Azure VM 大小清單
- Azure VM 大小的重要容量資訊
- 支援的 SAP 軟體,以及作業系統 (OS) 與資料庫組合
- Microsoft Azure 上 Windows 和 Linux 所需的 SAP 核心版本
- SAP Note 2015553 列出 Azure 中 SAP 支援的 SAP 軟體部署先決條件。
- SAP Note 2205917 包含適用於 SUSE Linux Enterprise Server for SAP Applications 的建議 OS 設定
- SAP Note 1944799 包含適用於 SUSE Linux Enterprise Server for SAP Applications 的 SAP HANA 指導方針
- SAP Note 2178632 包含在 Azure 中針對 SAP 回報的所有監視計量詳細資訊。
- SAP Note 2191498 包含 Azure 中 Linux 所需的 SAP Host Agent 版本。
- SAP Note 2243692 包含 Azure 中 Linux 上的 SAP 授權相關資訊。
- SAP Note 1984787 包含 SUSE LINUX Enterprise Server 12 的一般資訊。
- SAP Note 1999351 包含 Azure Enhanced Monitoring Extension for SAP 的其他疑難排解資訊。
- SAP Community WIKI 包含 Linux 所需的所有 SAP Note。
- 適用於 SAP on Linux 的 Azure 虛擬機器規劃和實作
- 在 Linux 上為 SAP 進行 Azure 虛擬機器部署
- 適用於 SAP on Linux 的 Azure 虛擬機器 DBMS 部署
- SUSE SAP HA 最佳做法指南此指南包含設定內部部署 Netweaver HA 和 SAP HANA 系統複寫的所有必要資訊。 請使用這些指南作為一般基準。 它們提供更詳細的資訊。
- SUSE 高可用性延伸模組 12 SP3 版本資訊
概觀
為了實現高可用性,SAP NetWeaver 需要使用 NFS 伺服器。 NFS 伺服器會設定於不同叢集中,並可供多個 SAP 系統使用。
NFS 伺服器、SAP NetWeaver ASCS、SAP NetWeaver SCS、SAP NetWeaver ERS 和 SAP HANA 資料庫會使用虛擬主機名稱和虛擬 IP 位址。 在 Azure 上必須有負載平衡器才能使用虛擬 IP 位址。 我們建議使用 tandard Load Balancer。 顯示的設定會顯示以下條件的負載平衡器:
- 適用於 ASCS 的前端 IP 位址 10.0.0.7
- 適用於 ERS 的前端 IP 位址 10.0.0.8
- 適用於 ASCS 的探查連接埠 62000
- 適用於 ERS 的探查連接埠 62101
設定高可用性的 NFS 伺服器
注意
建議您部署其中一個 Azure 第一方 NFS 服務:Azure 檔案儲存體上的 NFS 或 NFS ANF 磁碟區,以將共用資料儲存在高可用性 SAP 系統中。 請注意,我們會使用 NFS 叢集取消強調 SAP 參考架構。
SAP NW 高可用性 SAP 系統與原生 NFS 服務的 SAP 設定指南如下:
SAP NetWeaver 需要傳輸和設定檔目錄的共用儲存體。 請參閱適用於 SUSE Linux Enterprise Server 之 Azure 虛擬機器上 NFS 的高可用性,以了解如何為 SAP NetWeaver 設定 NFS 伺服器。
準備基礎結構
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 系統設定標準負載平衡器。 在設定負載平衡器期間,請考慮下列幾點。
- 前端 IP 設定:建立兩個前端 IP,一個用於 ASCS,另一個用於 ERS。 選取與您的 ASCS/ERS 虛擬機器相同的虛擬網路和子網路。
- 後端集區:建立後端集區,並新增 ASCS 和 ERS VM。
- 輸入規則:建立兩個負載平衡規則,一個用於 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 CLI 或 PowerShell 命令。
注意
當不具公用 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 - 我需要更新嗎?。
設定 (A)SCS
接下來,您將準備並安裝 SAP ASCS 和 ERS 執行個體。
建立 Pacemaker 叢集
依照在 Azure 中於 SUSE Linux Enterprise Server 上設定 Pacemaker 中的步驟,建立此 (A)SCS 伺服器的基本 Pacemaker 叢集。
安裝
下列項目會加上下列其中一個前置詞:[A] - 適用於所有節點、[1] - 僅適用於節點 1 或 [2] - 僅適用於節點 2。
[A] 安裝 SUSE 連接器
sudo zypper install sap-suse-cluster-connector
注意
在主機名稱中使用虛線的已知問題,已經在 sap-suse-cluster-connector 套件的版本 3.1.1 中修正。 若要在主機名稱中使用虛線,請確認正在使用的 sap-suse-cluster-connector 套件版本至少為 3.1.1。 否則叢集將無法運作。
請確定您已安裝新版的 SAP SUSE 叢集連接器。 舊版連接器稱為 sap_suse_cluster_connector,新版連接器稱為 sap-suse-cluster-connector。
sudo zypper info sap-suse-cluster-connector Information for package sap-suse-cluster-connector: --------------------------------------------------- Repository : SLE-12-SP3-SAP-Updates Name : sap-suse-cluster-connector <b>Version : 3.0.0-2.2</b> Arch : noarch Vendor : SUSE LLC <https://www.suse.com/> Support Level : Level 3 Installed Size : 41.6 KiB <b>Installed : Yes</b> Status : up-to-date Source package : sap-suse-cluster-connector-3.0.0-2.2.src Summary : SUSE High Availability Setup for SAP Products
[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 下載頁面所列出的修補程式。
# example for patch for SLES 12 SP1 sudo zypper in -t patch SUSE-SLE-HA-12-SP1-2017-885=1 # example for patch for SLES 12 SP2 sudo zypper in -t patch SUSE-SLE-HA-12-SP2-2017-886=1
[A] 設定主機名稱解析
您可以使用 DNS 伺服器,或修改所有節點上的 /etc/hosts。 這個範例示範如何使用 /etc/hosts 檔案。 請取代下列命令中的 IP 位址和主機名稱。
sudo vi /etc/hosts # Insert the following lines to /etc/hosts. Change the IP address and hostname to match your environment # IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS 10.0.0.7 nw1-ascs # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS 10.0.0.8 nw1-aers # IP address of the load balancer frontend configuration for database 10.0.0.13 nw1-db
準備進行 SAP NetWeaver 安裝
[A] 建立共用目錄
sudo mkdir -p /sapmnt/NW1 sudo mkdir -p /usr/sap/trans sudo mkdir -p /usr/sap/NW1/SYS sudo mkdir -p /usr/sap/NW1/ASCS00 sudo mkdir -p /usr/sap/NW1/ERS02 sudo chattr +i /sapmnt/NW1 sudo chattr +i /usr/sap/trans sudo chattr +i /usr/sap/NW1/SYS sudo chattr +i /usr/sap/NW1/ASCS00 sudo chattr +i /usr/sap/NW1/ERS02
[A] 設定 autofs
sudo vi /etc/auto.master # Add the following line to the file, save and exit +auto.master /- /etc/auto.direct
使用下列命令建立檔案
sudo vi /etc/auto.direct # Add the following lines to the file, save and exit /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans /usr/sap/NW1/SYS -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sidsys
重新啟動 autofs 來裝載新的共用
sudo systemctl enable autofs sudo service autofs restart
[A] 設定分頁檔
建立交換檔案,如建立 Azure Linux VM 的 SWAP 檔案所定義
#!/bin/sh # Percent of space on the ephemeral disk to dedicate to swap. Here 30% is being used. Modify as appropriate. PCT=0.3 # Location of swap file. Modify as appropriate based on location of ephemeral disk. LOCATION=/mnt if [ ! -f ${LOCATION}/swapfile ] then # Get size of the ephemeral disk and multiply it by the percent of space to allocate size=$(/bin/df -m --output=target,avail | /usr/bin/awk -v percent="$PCT" -v pattern=${LOCATION} '$0 ~ pattern {SIZE=int($2*percent);print SIZE}') echo "$size MB of space allocated to swap file" # Create an empty file first and set correct permissions /bin/dd if=/dev/zero of=${LOCATION}/swapfile bs=1M count=$size /bin/chmod 0600 ${LOCATION}/swapfile # Make the file available to use as swap /sbin/mkswap ${LOCATION}/swapfile fi # Enable swap /sbin/swapon ${LOCATION}/swapfile /sbin/swapon -a # Display current swap status /sbin/swapon -s
讓該檔案成為可執行檔。
chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
停止並啟動 VM。 只有在您建立 SWAP 檔案之後,才需要停止和啟動 VM。
安裝 SAP NetWeaver ASCS/ERS
[1] 為 ASCS 執行個體建立虛擬 IP 資源和健康情況探查
重要
最近測試顯示 netcat 會因待處理項目及其僅處理單一連線的限制,而停止回應要求的狀況。 Netcat 資源會停止接聽 Azure Load Balancer 要求,使浮動 IP 無法使用。
針對現有的 Pacemaker 叢集,我們在過去建議將 netcat 取代成 socat。 目前建議使用 azure-lb 資源代理程式,其為 resource-agents 套件的一部分,並包含下列套件版本需求:- 針對 SLES 12 SP4/SP5,版本必須至少為 resource-agents-4.3.018.a7fb5035-3.30.1。
- 針對 SLES 15/15 SP1,版本必須至少為 resource-agents-4.3.0184.6ee15eb2-4.13.1。
請注意,變更將會需要短暫的停機。
針對現有的 Pacemaker 叢集,若設定已按照 Azure Load Balancer 偵測強化中的描述變更為使用 socat,則沒有立即切換至 azure-lb 資源代理程式的需求。sudo crm node standby nw1-cl-1 sudo crm configure primitive fs_NW1_ASCS Filesystem device='nw1-nfs:/NW1/ASCS' directory='/usr/sap/NW1/ASCS00' fstype='nfs4' \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op monitor interval=20s timeout=40s sudo crm configure primitive vip_NW1_ASCS IPaddr2 \ params ip=10.0.0.7 \ 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 fs_NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \ meta resource-stickiness=3000
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo crm_mon -r # Node nw1-cl-1: standby # Online: [ nw1-cl-0 ] # # Full list of resources: # # stonith-sbd (stonith:external/sbd): Started nw1-cl-0 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-0 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-0 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-0
[1] 安裝 SAP NetWeaver ASCS
以 root 身分使用虛擬主機名稱 (對應至 ASCS 負載平衡器前端組態的 IP 位址,例如 nw1-ascs、10.0.0.7) 和您用於負載平衡器探查的執行個體號碼 (例如 00),在第一個節點上安裝 SAP NetWeaver ASCS。
您可以使用 sapinst 參數 SAPINST_REMOTE_ACCESS_USER 來允許非 root 使用者連線到 sapinst。
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
[1] 為 ERS 執行個體建立虛擬 IP 資源和健康情況探查
sudo crm node online nw1-cl-1 sudo crm node standby nw1-cl-0 sudo crm configure primitive fs_NW1_ERS Filesystem device='nw1-nfs:/NW1/ASCSERS' directory='/usr/sap/NW1/ERS02' fstype='nfs4' \ op start timeout=60s interval=0 \ op stop timeout=60s interval=0 \ op monitor interval=20s timeout=40s sudo crm configure primitive vip_NW1_ERS IPaddr2 \ params ip=10.0.0.8 \ op monitor interval=10 timeout=20 sudo crm configure primitive nc_NW1_ERS azure-lb port=62102 \ op monitor timeout=20s interval=10 sudo crm configure group g-NW1_ERS fs_NW1_ERS nc_NW1_ERS vip_NW1_ERS
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo crm_mon -r # Node nw1-cl-0: standby # Online: [ nw1-cl-1 ] # # Full list of resources: # # stonith-sbd (stonith:external/sbd): Started nw1-cl-1 # Resource Group: g-NW1_ASCS # fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 # nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 # vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 # Resource Group: g-NW1_ERS # fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 # nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 # vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1
[2] 安裝 SAP NetWeaver ERS
以 root 身分使用虛擬主機名稱 (對應至 ERS 負載平衡器前端組態的 IP 位址,例如 nw1-aers、10.0.0.8) 和您用於負載平衡器探查的執行個體號碼 (例如 02),在第二個節點上安裝 SAP NetWeaver ERS。
您可以使用 sapinst 參數 SAPINST_REMOTE_ACCESS_USER 來允許非 root 使用者連線到 sapinst。
sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
注意
請使用 SWPM SP 20 PL 05 或更高版本。 較低版本無法正確設定權限,因而會讓安裝失敗。
如果安裝作業無法在 /usr/sap/NW1/ERS02 中建立子資料夾,請嘗試設定 ERS02 資料夾的擁有者和群組,然後重試。
chown nw1adm /usr/sap/NW1/ERS02 chgrp sapsys /usr/sap/NW1/ERS02
[1] 調整 ASCS/SCS 和 ERS 執行個體設定檔
ASCS/SCS 設定檔
sudo vi /sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs # 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 keep alive parameter, if using ENSA1 enque/encni/set_so_keepalive = TRUE
針對 ENSA1 和 ENSA2,請確定已如 SAP 附註 1410736 中所述設定
keepalive
OS 參數。ERS 設定檔
sudo vi /sapmnt/NW1/profile/NW1_ERS02_nw1-aers # 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 ERS profile # Autostart = 1
[A] 設定保持運作
SAP NetWeaver 應用程式伺服器和 ASCS/SCS 之間的通訊是透過軟體負載平衡器來路由傳送。 在逾時時間 (可設定) 過後,負載平衡器就會將非作用中的連線中斷。 若要避免這種情況,您必須在 SAP NetWeaver ASCS/SCS 設定檔中設定參數 (若使用 ENSA1),並在 ENSA1/ENSA2 的所有 SAP 伺服器上變更 Linux 系統
keepalive
設定。 如需詳細資訊,請閱讀 SAP Note 1410736。# Change the Linux system configuration sudo sysctl net.ipv4.tcp_keepalive_time=300
[A] 在安裝過後設定 SAP 使用者
# Add sidadm to the haclient group sudo usermod -aG haclient nw1adm
[1] 在 sapservice 檔案中新增 ASCS 和 ERS SAP 服務
在第二個節點中新增 ASCS 服務項目,並將 ERS 服務項目複製到第一個節點。
cat /usr/sap/sapservices | grep ASCS00 | sudo ssh nw1-cl-1 "cat >>/usr/sap/sapservices" sudo ssh nw1-cl-1 "cat /usr/sap/sapservices" | grep ERS02 | sudo tee -a /usr/sap/sapservices
[A] 停用
systemd
ASCS 和 ERS SAP 執行個體的服務。 此步驟僅適用於根據 SAP 備註 3115048 由 systemd 受控 SAP 啟動架構的情況注意
使用 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. nw1-cl-0) sudo systemctl disable SAPNW1_00 # Execute below command on VM where you have performed ERS instance installation (e.g. nw1-cl-1) sudo systemctl disable SAPNW1_01
[1] 建立 SAP 叢集資源
根據您執行的是 ENSA1 還是 ENSA2 系統,選取各自的索引標籤以定義資源。 SAP 在 SAP NetWeaver 7.52 中引進了 ENSA2 的支援,包括複寫。 從 ABAP 平台 1809 開始,預設會安裝 ENSA2。 如需 ENSA2 支援,請參閱 SAP 附註 2630416。
sudo crm configure property maintenance-mode="true" sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \ operations \$id=rsc_sap_NW1_ASCS00-operations \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=NW1_ASCS00_nw1-ascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10 sudo crm configure primitive rsc_sap_NW1_ERS02 SAPInstance \ operations \$id=rsc_sap_NW1_ERS02-operations \ op monitor interval=11 timeout=60 on-fail=restart \ params InstanceName=NW1_ERS02_nw1-aers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS02_nw1-aers" AUTOMATIC_RECOVER=false IS_ERS=true \ meta priority=1000 sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00 sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS02 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_ERS02:stop symmetrical=false sudo crm_attribute --delete --name priority-fencing-delay sudo crm node online nw1-cl-0 sudo crm configure property maintenance-mode="false"
若正在從舊版本升級並切換到加入佇列伺服器 2,請參閱 SAP 附註 2641019。
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo crm_mon -r
# Online: [ nw1-cl-0 nw1-cl-1 ]
#
# Full list of resources:
#
# stonith-sbd (stonith:external/sbd): Started nw1-cl-1
# Resource Group: g-NW1_ASCS
# fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1
# nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1
# vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1
# rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
# Resource Group: g-NW1_ERS
# fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0
# nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0
# vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0
# rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
SAP NetWeaver 應用程式伺服器準備
某些資料庫需要在應用程式伺服器上執行資料庫執行個體安裝。 準備應用程式伺服器虛擬機器,以便在這些情況下使用它們。
以下步驟假設您將應用程式伺服器安裝在與 ASCS/SCS 和 HANA 伺服器不同的伺服器上。 否則,您就不必進行以下某些步驟 (例如設定主機名稱解析)。
設定作業系統
縮減已變更的快取大小。 如需詳細資訊,請參閱使用大量 RAM 的 SLES 11/12 伺服器出現低寫入效能 (英文)。
sudo vi /etc/sysctl.conf # Change/set the following settings vm.dirty_bytes = 629145600 vm.dirty_background_bytes = 314572800
設定主機名稱解析
您可以使用 DNS 伺服器,或修改所有節點上的 /etc/hosts。 這個範例示範如何使用 /etc/hosts 檔案。 取代下列命令中的 IP 位址和主機名稱
sudo vi /etc/hosts
將下列幾行插入至 /etc/hosts。 變更 IP 位址和主機名稱以符合您的環境
# IP address of the load balancer frontend configuration for NFS 10.0.0.4 nw1-nfs # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS 10.0.0.7 nw1-ascs # IP address of the load balancer frontend configuration for SAP NetWeaver ERS 10.0.0.8 nw1-aers # IP address of the load balancer frontend configuration for database 10.0.0.13 nw1-db # IP address of all application servers 10.0.0.20 nw1-di-0 10.0.0.21 nw1-di-1
建立 sapmnt 目錄
sudo mkdir -p /sapmnt/NW1 sudo mkdir -p /usr/sap/trans sudo chattr +i /sapmnt/NW1 sudo chattr +i /usr/sap/trans
設定 autofs
sudo vi /etc/auto.master # Add the following line to the file, save and exit +auto.master /- /etc/auto.direct
使用下列命令建立新檔案
sudo vi /etc/auto.direct # Add the following lines to the file, save and exit /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans
重新啟動 autofs 來裝載新的共用
sudo systemctl enable autofs sudo service autofs restart
設定分頁檔
sudo vi /etc/waagent.conf # 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
重新啟動代理程式以啟動變更
sudo service waagent restart
安裝資料庫
在此範例中,SAP NetWeaver 安裝在 SAP Hana 上。 您可以針對此安裝使用每個支援的資料庫。 如需如何在 Azure 上安裝 SAP HANA 的詳細資訊,請參閱 Azure 虛擬機器 (VM) 上 SAP HANA 的高可用性。 如需所支援資料庫的清單,請參閱 SAP Note 1928533。
執行 SAP 資料庫執行個體安裝
以 root 身分使用虛擬主機名稱 (對應至資料庫負載平衡器前端組態的 IP 位址,例如 nw1-db 和 10.0.0.13) 來安裝 SAP NetWeaver 資料庫執行個體。
您可以使用 sapinst 參數 SAPINST_REMOTE_ACCESS_USER 來允許非 root 使用者連線到 sapinst。
sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
SAP NetWeaver 應用程式伺服器安裝
請遵循下列步驟來安裝 SAP 應用程式伺服器。
準備應用程式伺服器
依照上述 SAP NetWeaver 應用程式伺服器準備章節中的步驟,準備應用程式伺服器。
安裝 SAP NetWeaver 應用程式伺服器
安裝主要或其他的 SAP NetWeaver 應用程式伺服器。
您可以使用 sapinst 參數 SAPINST_REMOTE_ACCESS_USER 來允許非 root 使用者連線到 sapinst。
sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
更新 SAP HANA 安全存放區
將 SAP HANA 安全存放區更新為指向 SAP HANA 系統複寫設定的虛擬名稱。
執行下列命令來列出項目
hdbuserstore List
這樣應該會列出所有項目,且看起來應該類似
DATA FILE : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.DAT KEY FILE : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.KEY KEY DEFAULT ENV : 10.0.0.14:30313 USER: SAPABAP1 DATABASE: HN1
輸出會顯示預設項目的 IP 位址指向虛擬機器,而不是指向負載平衡器的 IP 位址。 這個項目必須變更才能指向負載平衡器的虛擬機器主機名稱。 請務必使用相同的連接埠 (上述輸出中的 30313) 和資料庫名稱 (上述輸出中的 HN1)!
su - nw1adm hdbuserstore SET DEFAULT nw1-db:30313@HN1 SAPABAP1 <password of ABAP schema>
測試叢集設定
下列測試是 SUSE 最佳做法指南中的測試案例複本。 為方便起見,我們將案例複製過來。 請同時閱讀最佳做法指南,並執行所有可能已新增的其他測試。
測試 HAGetFailoverConfig、HACheckConfig 和 HACheckFailoverConfig
在目前執行 ASCS 執行個體的節點上,以 <sapsid>adm 身分執行下列命令。 如果命令失敗,並且出現「失敗:記憶體不足」,則可能是因為您的主機名稱中有短破折號。 這是已知問題,SUSE 會透過 sap-suse-cluster-connector 套件提供修正程式。
nw1-cl-0:nw1adm 54> sapcontrol -nr 00 -function HAGetFailoverConfig # 15.08.2018 13:50:36 # HAGetFailoverConfig # OK # HAActive: TRUE # HAProductVersion: Toolchain Module # HASAPInterfaceVersion: Toolchain Module (sap_suse_cluster_connector 3.0.1) # HADocumentation: https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices/ # HAActiveNode: # HANodes: nw1-cl-0, nw1-cl-1 nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -function HACheckConfig # 15.08.2018 14:00:04 # HACheckConfig # OK # state, category, description, comment # SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 2 ABAP instances detected # SUCCESS, SAP CONFIGURATION, Redundant Java instance configuration, 0 Java instances detected # SUCCESS, SAP CONFIGURATION, Enqueue separation, All Enqueue server separated from application server # SUCCESS, SAP CONFIGURATION, MessageServer separation, All MessageServer separated from application server # SUCCESS, SAP CONFIGURATION, ABAP instances on multiple hosts, ABAP instances on multiple hosts detected # SUCCESS, SAP CONFIGURATION, Redundant ABAP SPOOL service configuration, 2 ABAP instances with SPOOL service detected # SUCCESS, SAP STATE, Redundant ABAP SPOOL service state, 2 ABAP instances with active SPOOL service detected # SUCCESS, SAP STATE, ABAP instances with ABAP SPOOL service on multiple hosts, ABAP instances with active ABAP SPOOL service on multiple hosts detected # SUCCESS, SAP CONFIGURATION, Redundant ABAP BATCH service configuration, 2 ABAP instances with BATCH service detected # SUCCESS, SAP STATE, Redundant ABAP BATCH service state, 2 ABAP instances with active BATCH service detected # SUCCESS, SAP STATE, ABAP instances with ABAP BATCH service on multiple hosts, ABAP instances with active ABAP BATCH service on multiple hosts detected # SUCCESS, SAP CONFIGURATION, Redundant ABAP DIALOG service configuration, 2 ABAP instances with DIALOG service detected # SUCCESS, SAP STATE, Redundant ABAP DIALOG service state, 2 ABAP instances with active DIALOG service detected # SUCCESS, SAP STATE, ABAP instances with ABAP DIALOG service on multiple hosts, ABAP instances with active ABAP DIALOG service on multiple hosts detected # SUCCESS, SAP CONFIGURATION, Redundant ABAP UPDATE service configuration, 2 ABAP instances with UPDATE service detected # SUCCESS, SAP STATE, Redundant ABAP UPDATE service state, 2 ABAP instances with active UPDATE service detected # SUCCESS, SAP STATE, ABAP instances with ABAP UPDATE service on multiple hosts, ABAP instances with active ABAP UPDATE service on multiple hosts detected # SUCCESS, SAP STATE, SCS instance running, SCS instance status ok # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (nw1-ascs_NW1_00), SAPInstance includes is-ers patch # SUCCESS, SAP CONFIGURATION, Enqueue replication (nw1-ascs_NW1_00), Enqueue replication enabled # SUCCESS, SAP STATE, Enqueue replication state (nw1-ascs_NW1_00), Enqueue replication active nw1-cl-0:nw1adm 56> sapcontrol -nr 00 -function HACheckFailoverConfig # 15.08.2018 14:04:08 # HACheckFailoverConfig # OK # state, category, description, comment # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version, SAPInstance includes is-ers patch
手動移轉 ASCS 執行個體
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-0 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-0 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
以 root 身份執行下列命令,來遷移 ASCS 執行個體。
nw1-cl-0:~ # crm resource migrate rsc_sap_NW1_ASCS00 force # INFO: Move constraint created for rsc_sap_NW1_ASCS00 nw1-cl-0:~ # crm resource unmigrate rsc_sap_NW1_ASCS00 # INFO: Removed migration constraints for rsc_sap_NW1_ASCS00 # Remove failed actions for the ERS that occurred as part of the migration nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-0 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
測試 HAFailoverToNode
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-0 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
以 <sapsid>adm 身份執行下列命令,來移轉 ASCS 執行個體。
nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -host nw1-ascs -user nw1adm <password> -function HAFailoverToNode "" # run as root # Remove failed actions for the ERS that occurred as part of the migration nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02 # Remove migration constraints nw1-cl-0:~ # crm resource clear rsc_sap_NW1_ASCS00 #INFO: Removed migration constraints for rsc_sap_NW1_ASCS00
測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-0 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-0 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
模擬節點損毀
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-0 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-0 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
以 root 身份在執行 ASCS 執行個體的節點上執行下列命令
nw1-cl-0:~ # echo b > /proc/sysrq-trigger
如果您使用 SBD,Pacemaker 應不會在已終止的節點上自動啟動。 節點在重新啟動後的狀態應該會像下面這樣。
Online: [ nw1-cl-1 ] OFFLINE: [ nw1-cl-0 ] Full list of resources: stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Failed Actions: * rsc_sap_NW1_ERS02_monitor_11000 on nw1-cl-1 'not running' (7): call=219, status=complete, exitreason='none', last-rc-change='Wed Aug 15 14:38:38 2018', queued=0ms, exec=0ms
使用下列命令在已清除的節點上啟動 Pacemaker,並清除 SBD 訊息及失敗的資源。
# run as root # list the SBD device(s) nw1-cl-0:~ # cat /etc/sysconfig/sbd | grep SBD_DEVICE= # SBD_DEVICE="/dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116;/dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1;/dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3" nw1-cl-0:~ # sbd -d /dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116 -d /dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1 -d /dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3 message nw1-cl-0 clear nw1-cl-0:~ # systemctl start pacemaker nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00 nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
封鎖網路通訊
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
執行防火牆規則以封鎖其中一個節點上的通訊。
# Execute iptable rule on nw1-cl-0 (10.0.0.5) to block the incoming and outgoing traffic to nw1-cl-1 (10.0.0.6) iptables -A INPUT -s 10.0.0.6 -j DROP; iptables -A OUTPUT -d 10.0.0.6 -j DROP
當叢集節點無法相互通訊時,就會有發生核心分裂情況的風險。 在這種情況下,叢集節點會嘗試同時相互隔離,進而導致隔離競爭。
設定隔離裝置時,建議您設定
pcmk_delay_max
屬性。 因此,發生核心分裂的情況時,叢集會針對每個節點上的隔離動作導入隨機延遲至pcmk_delay_max
值。 系統會選取具有最短延遲的節點進行隔離。此外,在 ENSA 2 設定中,若要在腦裂情況期間將裝載 ASCS 資源的節點排定在其他節點上的優先順序,建議您在叢集中設定
priority-fencing-delay
屬性。 啟用 priority-fencing-delay 屬性,叢集將在隔離動作時出現額外延遲 (特別在裝載 ASCS 資源的節點上),從而允許 ASCS 節點贏得隔離競爭。執行下方命令來刪除防火牆規則。
# If the iptables rule set on the server gets reset after a reboot, the rules will be cleared out. In case they have not been reset, please proceed to remove the iptables rule using the following command. iptables -D INPUT -s 10.0.0.6 -j DROP; iptables -D OUTPUT -d 10.0.0.6 -j DROP
測試以手動方式重新啟動 ASCS 執行個體
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
例如,透過編輯交易 su01 中的使用者來建立佇列鎖定。 以 <sapsid>adm 身分在執行 ASCS 執行個體的節點上執行下列命令。 這些命令會停止 ASCS 執行個體,並重新啟動它。 若使用加入佇列伺服器 1 架構,則加入佇列鎖定預期會在此測試中遺失。 若使用加入佇列伺服器 2 架構,則將會保留加入佇列。
nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StopWait 600 2
ASCS 執行個體應會立即在 Pacemaker 中停用
rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Stopped (disabled)
在相同節點上再次啟動 ASCS 執行個體。
nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StartWait 600 2
交易 su01 的佇列鎖定應該會遺失,而且後端應已重設。 測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
終止訊息伺服器處理程序
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
以 root 身份執行下列命令,找出訊息伺服器的處理程序,並將其終止。
nw1-cl-1:~ # pgrep -f ms.sapNW1 | xargs kill -9
如果您只終止訊息伺服器一次,sapstart 會將伺服器重新啟動。 在 ENSA1 的情況下,如果您終止伺服器的次數足夠,則 Pacemaker 最終會將 ASCS 執行個體移到另一個節點。 以 root 身份執行下列命令,以在測試之後清除 ASCS 和 ERS 執行個體的資源狀態。
nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00 nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-0 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
終止佇列伺服器處理程序
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-0 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
以 root 身份在執行 ASCS 執行個體的節點上執行下列命令,以終止佇列伺服器。
nw1-cl-0:~ # #If using ENSA1 pgrep -f en.sapNW1 | xargs kill -9 #If using ENSA2 pgrep -f enq.sapNW1 | xargs kill -9
如果是 ENSA1,ASCS 執行個體應會立即容錯移轉到另一個節點。 在 ASCS 執行個體啟動之後,ERS 執行個體應該也會進行容錯移轉。 以 root 身份執行下列命令,以在測試之後清除 ASCS 和 ERS 執行個體的資源狀態。
nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00 nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
終止佇列複寫伺服器處理程序
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
以 root 身份在執行 ERS 執行個體的節點上執行下列命令,以終止佇列複寫伺服器處理程序。
nw1-cl-0:~ # pgrep -f er.sapNW1 | xargs kill -9
如果您只執行此命令一次,sapstart 會重新啟動處理程序。 如果您執行命令的次數足夠,則 sapstart 將不會重新啟動處理程序,而資源會處於停止狀態。 以 root 身份執行下列命令,以在測試之後清除 ERS 執行個體的資源狀態。
nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
終止佇列 sapstartsrv 程序
開始測試之前的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
以 root 身份在執行 ASCS 的節點上執行下列命令。
nw1-cl-1:~ # pgrep -fl ASCS00.*sapstartsrv # 59545 sapstartsrv nw1-cl-1:~ # kill -9 59545
應一律由 Pacemaker 資源代理程式來重新啟動 sapstartsrv 處理程序。 測試完成之後的資源狀態:
stonith-sbd (stonith:external/sbd): Started nw1-cl-1 Resource Group: g-NW1_ASCS fs_NW1_ASCS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_ASCS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_ASCS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance): Started nw1-cl-1 Resource Group: g-NW1_ERS fs_NW1_ERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_ERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_ERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
下一步
- 適用於具備多個 SID SAP 應用程式 SLES 上 Azure VM 中 SAP NW HA 的指南
- 適用於 SAP 的 Azure 虛擬機器規劃和實作
- 適用於 SAP 的 Azure 虛擬機器部署
- 適用於 SAP 的 Azure 虛擬機器 DBMS 部署
- 若要了解如何建立高可用性,並為 Azure VM 上的 SAP HANA 規劃災害復原,請參閱 Azure 虛擬機器 (VM) 上 SAP HANA 的高可用性