SAP NetWeaver 在 Red Hat Enterprise Linux 上的 Azure 虛擬機器高可用性
本文說明如何部署虛擬機器 (VM)、設定 VM、安裝叢集架構,以及安裝高可用性的 SAP NetWeaver 7.50 系統。
在範例設定和安裝命令等內容中,會使用 ASCS 執行個體號碼 00、ERS 執行個體號碼 02 和 SAP 系統識別碼 NW1。 範例中資源 (例如 VM 和虛擬網路) 的名稱會假設您已使用 ASCS/SCS 範本與資源前置詞 NW1 來建立資源。
必要條件
請先閱讀下列 SAP Note 和文件:
- SAP Note 1928533,其中包含:
- SAP 軟體部署支援的 Azure VM 大小清單。
- Azure VM 大小的重要容量資訊。
- 支援的 SAP 軟體,以及作業系統 (OS) 與資料庫組合。
- Microsoft Azure 上 Windows 和 Linux 所需的 SAP 核心版本。
- SAP Note 2015553 列出 Azure 中 SAP 支援的 SAP 軟體部署先決條件。
- SAP 附註 2002167 建議適用於 Red Hat Enterprise Linux (RHEL) 的作業系統設定
- 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。
- 適用於 SAP on Linux 的 Azure 虛擬機器規劃和實作
- 在 Linux 上為 SAP 進行 Azure 虛擬機器部署
- 適用於 SAP on Linux 的 Azure 虛擬機器 DBMS 部署
- Red Hat Gluster Storage 產品文件
- Pacemaker 叢集中的 SAP NetWeaver
- 一般 RHEL 文件:
- Azure 專用 RHEL 文件:
概觀
為了實現高可用性,SAP NetWeaver 需要使用共用儲存體。 GlusterFS 會於獨立的叢集中設定,且多個 SAP 系統可使用。
SAP NetWeaver ASCS、SAP NetWeaver SCS、SAP NetWeaver ERS 和 SAP Hana 資料庫會使用虛擬主機名稱和虛擬 IP 位址。 在 Azure 上必須有負載平衡器才能使用虛擬 IP 位址。 建議使用標準 Azure 負載平衡器。 這裡的設定會顯示具備以下條件的負載平衡器:
- 前端 IP 位址: 10.0.0.7 (適用於 ASCS)
- 前端 IP 位址: 10.0.0.8 (適用於 ERS)
- 適用於 ASCS 的探查連接埠 62000
- 適用於 ERS 的探查連接埠 62101
設定 GlusterFS
SAP NetWeaver 需要傳輸和設定檔目錄的共用儲存體。 若要了解如何為 SAP NetWeaver 設定 GlusterFS,請參閱 Red Hat Enterprise Linux for SAP NetWeaveg 中 Azure VM 上的 GlusterFS。
準備基礎結構
Azure Marketplace 包含具有高可用性附加元件的 SAP 適用的映像,可讓您使用各種版本的 Red Hat 部署新的 VM。
透過 Azure 入口網站手動部署 Linux VM
此文件假設您已部署 Azure 虛擬網路、子網路和資源群組。
為 SAP ASCS、ERS 和應用程式伺服器部署 VM。 選擇適用於 SAP 系統的 RHEL 映像。 您可以在任一可用性選項中部署 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 負載平衡器的後端集區時,除非另外設定來允許路由傳送至公用端點,否則不會有輸出網際網路連線能力。 如需更多如何實現輸出連線能力的詳細資訊,請參閱在 SAP 高可用性案例中使用 Azure Standard Load Balancer 實 VM 的公用端點連線能力。
重要
請勿在位於 Azure Load Balancer 後方的 Azure VM 上啟用 TCP 時間戳記。 啟用 TCP 時間戳記會導致健全狀態探查失敗。 將 net.ipv4.tcp_timestamps
參數設定為 0
。 如需詳細資訊,請參閱負載平衡器健全狀態探查。
設定 (A) SCS
接下來,您將準備並安裝 SAP ASCS 和 ERS 執行個體。
建立 Pacemaker 叢集
依照在 Azure 中於 Red Hat Enterprise Linux 上設定 Pacemaker 中的步驟,建立此 (A)SCS 伺服器的基本 Pacemaker 叢集。
準備 SAP NetWeaver 安裝
下列項目前面會加上:
- [A]:適用於所有節點
- [1]:僅適用於節點 1
- [2]:僅適用於節點 2
[A] 設定主機名稱解析。
您可以使用 DNS 伺服器,或修改所有節點上的
/etc/hosts
檔案。 此範例說明如何使用/etc/hosts
檔案。 請取代下列命令中的 IP 位址和主機名稱:sudo vi /etc/hosts
將下列幾行插入至
/etc/hosts
檔案: 變更 IP 位址和主機名稱以符合您的環境。# IP addresses of the GlusterFS nodes 10.0.0.40 glust-0 10.0.0.41 glust-1 10.0.0.42 glust-2 # 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
[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] 安裝 GlusterFS 用戶端和其他必要套件。
sudo yum -y install glusterfs-fuse resource-agents resource-agents-sap
[A] 檢查快取的
resource-agents-sap
版本。請確定已安裝的
resource-agents-sap
套件版本至少為 3.9.5-124.el7。sudo yum info resource-agents-sap # Loaded plugins: langpacks, product-id, search-disabled-repos # Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast # Installed Packages # Name : resource-agents-sap # Arch : x86_64 # Version : 3.9.5 # Release : 124.el7 # Size : 100 k # Repo : installed # From repo : rhel-sap-for-rhel-7-server-rpms # Summary : SAP cluster resource agents and connector script # URL : https://github.com/ClusterLabs/resource-agents # License : GPLv2+ # Description : The SAP resource agents and connector script interface with # : Pacemaker to allow SAP instances to be managed in a cluster # : environment.
[A] 新增掛接項目。
sudo vi /etc/fstab # Add the following lines to fstab, save and exit glust-0:/NW1-sapmnt /sapmnt/NW1 glusterfs backup-volfile-servers=glust-1:glust-2 0 0 glust-0:/NW1-trans /usr/sap/trans glusterfs backup-volfile-servers=glust-1:glust-2 0 0 glust-0:/NW1-sys /usr/sap/NW1/SYS glusterfs backup-volfile-servers=glust-1:glust-2 0 0
裝載新的共用項目。
sudo mount -a
[A] 設定分頁檔。
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
[A] 設定 RHEL。
根據 RHEL 版本,執行在 SAP Note 2002167、SAP Note 2772999 或 SAP Note 3108316 中所述的組態。
安裝 SAP NetWeaver ASCS/ERS
[1] 設定叢集預設屬性。
pcs resource defaults resource-stickiness=1 pcs resource defaults migration-threshold=3
[1] 為 ASCS 執行個體建立虛擬 IP 資源和健康情況探查。
sudo pcs node standby nw1-cl-1 sudo pcs resource create fs_NW1_ASCS Filesystem device='glust-0:/NW1-ascs' \ directory='/usr/sap/NW1/ASCS00' fstype='glusterfs' \ options='backup-volfile-servers=glust-1:glust-2' \ --group g-NW1_ASCS sudo pcs resource create vip_NW1_ASCS IPaddr2 \ ip=10.0.0.7 \ --group g-NW1_ASCS sudo pcs resource create nc_NW1_ASCS azure-lb port=62000 \ --group g-NW1_ASCS
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo pcs status # Node nw1-cl-1: standby # Online: [ nw1-cl-0 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): 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
。# 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
如果安裝作業無法在 /usr/sap/NW1/ASCS00 中建立子資料夾,請嘗試設定 ASCS00 資料夾的擁有者和群組,然後重試。
sudo chown nw1adm /usr/sap/NW1/ASCS00 sudo chgrp sapsys /usr/sap/NW1/ASCS00
[1] 為 ERS 執行個體建立虛擬 IP 資源和健全狀態探查。
sudo pcs node unstandby nw1-cl-1 sudo pcs node standby nw1-cl-0 sudo pcs resource create fs_NW1_AERS Filesystem device='glust-0:/NW1-aers' \ directory='/usr/sap/NW1/ERS02' fstype='glusterfs' \ options='backup-volfile-servers=glust-1:glust-2' \ --group g-NW1_AERS sudo pcs resource create vip_NW1_AERS IPaddr2 \ ip=10.0.0.8 \ --group g-NW1_AERS sudo pcs resource create nc_NW1_AERS azure-lb port=62102 \ --group g-NW1_AERS
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo pcs status # Node nw1-cl-0: standby # Online: [ nw1-cl-1 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): 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_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 # vip_NW1_AERS (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
。# 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
如果安裝作業無法在 /usr/sap/NW1/ERS02 中建立子資料夾,請嘗試設定 ERS02 資料夾的擁有者和群組,然後重試。
sudo chown nw1adm /usr/sap/NW1/ERS02 sudo 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 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) # remove Autostart from ERS profile # Autostart = 1
[A] 設定保持運作。
SAP NetWeaver 應用程式伺服器和 ASCS/SCS 之間的通訊是透過軟體負載平衡器來路由傳送。 在逾時時間 (可設定) 過後,負載平衡器就會將非作用中的連線中斷。 為了防止出現此動作,請在 SAP NetWeaver ASCS/SCS 設定檔中設定參數 (如果您使用 ENSA1)。 針對 ENSA1 和 ENSA2,同時變更所有 SAP 伺服器上的 Linux 系統
keepalive
設定。 如需詳細資訊,請參閱 SAP 附註 1410736。# Change the Linux system configuration sudo sysctl net.ipv4.tcp_keepalive_time=300
[A] 更新
/usr/sap/sapservices
檔案。若要避免
sapinit
啟動指令碼啟動執行個體,Pacemaker 所管理的所有執行個體都必須從/usr/sap/sapservices
檔案加上註解。sudo vi /usr/sap/sapservices # On the node where you installed the ASCS, comment out the following line # LD_LIBRARY_PATH=/usr/sap/NW1/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ASCS00/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_ASCS00_nw1-ascs -D -u nw1adm # On the node where you installed the ERS, comment out the following line # LD_LIBRARY_PATH=/usr/sap/NW1/ERS02/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW1/ERS02/exe/sapstartsrv pf=/usr/sap/NW1/ERS02/profile/NW1_ERS02_nw1-aers -D -u nw1adm
[1] 建立 SAP 叢集資源。
根據您執行的是 ENSA1 還是 ENSA2 系統,選取各自的索引標籤以定義資源。 SAP 在 SAP NetWeaver 7.52 中引進了 ENSA2 的支援,包括複寫。 從 ABAP 平台 1809 開始,預設會安裝 ENSA2。 針對 ENSA2 支援,請參閱 SAP Note 2630416 以加入佇列伺服器 2 支援。
如果使用加入佇列伺服器 2 結構 (ENSA2),請按照以下範例安裝資源代理程式 resource-agents-sap-4.1.1-12.el7.x86_64 或更新版本並定義資源:
sudo pcs property set maintenance-mode=true sudo pcs resource create rsc_sap_NW1_ASCS00 SAPInstance \ InstanceName=NW1_ASCS00_nw1-ascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs" \ 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-NW1_ASCS sudo pcs resource meta g-NW1_ASCS resource-stickiness=3000 sudo pcs resource create rsc_sap_NW1_ERS02 SAPInstance \ InstanceName=NW1_ERS02_nw1-aers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS02_nw1-aers" \ 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-NW1_AERS sudo pcs constraint colocation add g-NW1_AERS with g-NW1_ASCS -5000 sudo pcs constraint location rsc_sap_NW1_ASCS00 rule score=2000 runs_ers_NW1 eq 1 sudo pcs constraint order start g-NW1_ASCS then stop g-NW1_AERS kind=Optional symmetrical=false sudo pcs node unstandby nw1-cl-0 sudo pcs property set maintenance-mode=false
注意
若正在從舊版本升級並切換到加入佇列伺服器 2,請參閱 SAP 附註 2641322。
注意
上述設定中的逾時只是範例,可能需要針對特定的 SAP 安裝來調整。
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo pcs status # Online: [ nw1-cl-0 nw1-cl-1 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): 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_AERS # fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 # nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 # vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 # rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
[A] 在兩個節點上為 ASCS 和 ERS 新增防火牆規則。
# Probe Port of ASCS sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp # Probe Port of ERS sudo firewall-cmd --zone=public --add-port={62102,3202,3302,50213,50214,50216}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62102,3202,3302,50213,50214,50216}/tcp
SAP NetWeaver 應用程式伺服器準備
某些資料庫需要在應用程式伺服器上執行資料庫執行個體安裝。 準備應用程式伺服器 VM,以便在這些情況下使用。
以下步驟假設您將應用程式伺服器安裝在與 ASCS/SCS 和 HANA 伺服器不同的伺服器上。 否則,您就不必進行某些步驟 (例如設定主機名稱解析)。
設定主機名稱解析。
您可以使用 DNS 伺服器,或修改所有節點上的
/etc/hosts
檔案。 此範例說明如何使用/etc/hosts
檔案。 請取代下列命令中的 IP 位址和主機名稱:sudo vi /etc/hosts
將下列幾行插入至
/etc/hosts
。 變更 IP 位址和主機名稱以符合您的環境。# IP addresses of the GlusterFS nodes 10.0.0.40 glust-0 10.0.0.41 glust-1 10.0.0.42 glust-2 # 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
建立
sapmnt
目錄。sudo mkdir -p /sapmnt/NW1 sudo mkdir -p /usr/sap/trans sudo chattr +i /sapmnt/NW1 sudo chattr +i /usr/sap/trans
安裝 GlusterFS 用戶端和其他需求。
sudo yum -y install glusterfs-fuse uuidd
新增裝載項目
sudo vi /etc/fstab # Add the following lines to fstab, save and exit glust-0:/NW1-sapmnt /sapmnt/NW1 glusterfs backup-volfile-servers=glust-1:glust-2 0 0 glust-0:/NW1-trans /usr/sap/trans glusterfs backup-volfile-servers=glust-1:glust-2 0 0
裝載新的共用項目。
sudo mount -a
設定分頁檔。
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 的詳細資訊,請參閱 Red Hat Enterprise Linux 中 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
SAP NetWeaver 應用程式伺服器安裝
請遵循下列步驟來安裝 SAP 應用程式伺服器。
準備應用程式伺服器。
依照上一節 SAP NetWeaver 應用程式伺服器準備中的步驟,準備應用程式伺服器。
安裝 SAP NetWeaver 應用程式伺服器。
安裝主要或其他的 SAP NetWeaver 應用程式伺服器。
您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
允許非根使用者連線至sapinst
。sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
更新 SAP HANA 安全存放區。
將 SAP HANA 安全存放區更新為指向 SAP HANA 系統複寫設定的虛擬名稱。
以 <sapsid>adm 身分執行下列命令以列出項目:
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: NW1
輸出會顯示預設項目的 IP 位址指向 VM,而不是指向負載平衡器的 IP 位址。 這個項目必須變更才能指向負載平衡器的虛擬機器主機名稱。 請務必使用相同的連接埠 (上述輸出中的 30313) 和資料庫名稱 (上述輸出中的 HN1)。
su - nw1adm hdbuserstore SET DEFAULT nw1-db:30313@NW1 SAPABAP1 <password of ABAP schema>
測試叢集設定
手動移轉 ASCS 執行個體。
開始測試之前的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
以 root 身份執行下列命令,來遷移 ASCS 執行個體。
[root@nw1-cl-0 ~]# pcs resource move rsc_sap_NW1_ASCS00 [root@nw1-cl-0 ~]# pcs resource clear rsc_sap_NW1_ASCS00 # Remove failed actions for the ERS that occurred as part of the migration [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
模擬節點當機。
開始測試之前的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
以 root 身份在執行 ASCS 執行個體的節點上執行下列命令。
[root@nw1-cl-1 ~]# echo b > /proc/sysrq-trigger
節點在重新啟動後的狀態看起來應該像以下程式碼:
Online: [ nw1-cl-0 nw1-cl-1 ] Full list of resources: rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (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-0 'not running' (7): call=45, status=complete, exitreason='', last-rc-change='Tue Aug 21 13:52:39 2018', queued=0ms, exec=0ms
注意
如果您使用 SBD 作為 STONITH 機制,則可能會發生下列情況:重新啟動後,當節點嘗試重新加入叢集時,其會收到 /var/log/messages 中的訊息:「據說我們剛被隔離」訊息,並關閉 Pacemaker 和 Corosync 服務。 若要解決此問題,您可以依照 RedHat KB 中描述的因應措施進行節點在隔離並重新啟動 corosync 和 pacemaker 之後會關閉 Pacemaker。 不過,在 Azure 中,請將 Corosync 服務設定為延遲 150 秒再啟動。 請確保這些步驟會套用至所有叢集節點。
使用下列命令來清除失敗的資源。
[root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
封鎖網路通訊。
開始測試之前的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
執行防火牆規則以封鎖其中一個節點上的通訊。
# Execute iptable rule on nw1-cl-0 (10.0.0.7) to block the incoming and outgoing traffic to nw1-cl-1 (10.0.0.8) iptables -A INPUT -s 10.0.0.8 -j DROP; iptables -A OUTPUT -d 10.0.0.8 -j DROP
當叢集節點無法相互通訊時,則可能有發生腦裂情況的風險。 在這種情況下,叢集節點會嘗試同時相互隔離,進而導致隔離競爭。 為了避免這種情況,建議您在叢集組態中設定 priority-fencing-delay 屬性 (僅適用於 pacemaker-2.0.4-6.el8 或更新版本)。
透過啟用
priority-fencing-delay
屬性,叢集將在隔離動作時出現延遲 (特別在裝載 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.8 -j DROP; iptables -D OUTPUT -d 10.0.0.8 -j DROP
終止訊息伺服器流程。
開始測試之前的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
以 root 身份執行下列命令,找出訊息伺服器的處理程序,並將其終止。
[root@nw1-cl-0 ~]# pgrep -f ms.sapNW1 | xargs kill -9
如果您只終止訊息伺服器一次,
sapstart
會將其重新啟動。 如果您終止伺服器的次數足夠,則 Pacemaker 最終會將 ASCS 執行個體移至另一個節點。 以 root 身份執行下列命令,以在測試之後清除 ASCS 和 ERS 執行個體的資源狀態。[root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ASCS00 [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
終止加入佇列伺服器流程。
開始測試之前的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-0 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-0 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-0 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-0
以 root 身份在執行 ASCS 執行個體的節點上執行下列命令,以終止佇列伺服器。
#If using ENSA1 [root@nw1-cl-1 ~]# pgrep -f en.sapNW1 | xargs kill -9 #If using ENSA2 [root@nw1-cl-1 ~]# pgrep -f enq.sapNW1 | xargs kill -9
如果是 ENSA1,ASCS 執行個體應會立即容錯移轉到另一個節點。 在 ASCS 執行個體啟動之後,ERS 執行個體應該也會進行容錯移轉。 以 root 身份執行下列命令,以在測試之後清除 ASCS 和 ERS 執行個體的資源狀態。
[root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ASCS00 [root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
終止加入佇列複寫伺服器流程。
開始測試之前的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
以 root 身份在執行 ERS 執行個體的節點上執行下列命令,以終止佇列複寫伺服器處理程序。
#If using ENSA1 [root@nw1-cl-1 ~]# pgrep -f er.sapNW1 | xargs kill -9 #If using ENSA2 [root@nw1-cl-1 ~]# pgrep -f enqr.sapNW1 | xargs kill -9
如果您只執行命令一次,
sapstart
會重新啟動流程。 若執行該項目的次數足夠,則sapstart
將不會重新啟動處理序,且資源會處於已停止的狀態。 以 root 身份執行下列命令,以在測試之後清除 ERS 執行個體的資源狀態。[root@nw1-cl-0 ~]# pcs resource cleanup rsc_sap_NW1_ERS02
測試完成之後的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
終止加入佇列
sapstartsrv
流程。開始測試之前的資源狀態:
rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
以 root 身份在執行 ASCS 的節點上執行下列命令。
[root@nw1-cl-0 ~]# pgrep -fl ASCS00.*sapstartsrv # 59545 sapstartsrv [root@nw1-cl-0 ~]# kill -9 59545
sapstartsrv
流程應該一律由 Pacemaker 資源代理程式重新啟動,以作為監視的一部分。 測試完成之後的資源狀態:rsc_st_azure (stonith:fence_azure_arm): 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_AERS fs_NW1_AERS (ocf::heartbeat:Filesystem): Started nw1-cl-1 nc_NW1_AERS (ocf::heartbeat:azure-lb): Started nw1-cl-1 vip_NW1_AERS (ocf::heartbeat:IPaddr2): Started nw1-cl-1 rsc_sap_NW1_ERS02 (ocf::heartbeat:SAPInstance): Started nw1-cl-1
下一步
- 若要針對 PAS 和 AAS 執行個體搭配 RHEL 上 SAP NetWeaver HA 叢集進行部署的案例,部署成本最佳化,請參閱搭配 RHEL 上的 SAP ASCS/SCS 高可用性 VM 安裝對話方塊執行個體。
- 請參閱適用於具備多個 SID SAP 應用程式 RHEL 上 Azure VM 中 SAP NW HA 的指南。
- 請參閱適用於 SAP 的 Azure 虛擬機器規劃和實作。
- 請參閱適用於 SAP 的 Azure 虛擬機器部署。
- 請參閱適用於 SAP 的 Azure 虛擬機器 DBMS 部署。
- 若要了解如何建立 HA 並為 Azure 上的 SAP HANA 規劃災害復原,請參閱 Azure 上的 SAP HANA (大型執行個體) 高可用性和災害復原。
- 若要了解如何建立 HA,並為 Azure VM 上的 SAP HANA 規劃災害復原,請參閱 Azure 虛擬機器上 SAP HANA 的高可用性。