針對 SAP 應用程式使用 Azure NetApp Files 在 RHEL 上的 Azure 虛擬機器達到 SAP NetWeaver 高可用性
本文說明如何使用Azure NetApp Files 部署虛擬機器 (VM)、設定 VM、安裝叢集架構,以及安裝高可用性的 SAP NetWeaver 7.50 系統。 在範例設定和安裝命令中,ASCS 執行個體為數字 00,ERS 執行個體為數字 01,主要應用程式執行個體 (PAS) 為數字 02,應用程式執行個體 (AAS) 則為 03。 其中會使用 SAP 系統識別碼 QAS。
本文不會詳細描述資料庫層。
必要條件
請先閱讀下列 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 的作業系統設定。
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。
一般 Red Hat Enterprise Linux (RHEL) 文件:
Azure 專用 RHEL 文件:
概觀
SAP NetWeaver 中央服務的高可用性 (HA) 需要共用儲存體。 到目前為止,若要在 Red Hat Linux 上達到高可用性,必須建置個別的高可用性 GlusterFS 叢集。
現在,您可以使用在 Azure NetApp Files 上部署的共用儲存體來達到 SAP NetWeaver 高可用性。 將 Azure NetApp Files 用於共用儲存體,即無需更多 GlusterFS 叢集。 SAP NetWeaver 中央服務 (ASCS/SCS) 的高可用性仍然需要 Pacemaker。
SAP NetWeaver ASCS、SAP NetWeaver SCS、SAP NetWeaver ERS 和 SAP Hana 資料庫會使用虛擬主機名稱和虛擬 IP 位址。 在 Azure 上必須有負載平衡器才能使用虛擬 IP 位址。 建議使用 Azure Load Balancer 標準。 這裡的設定會顯示具備以下條件的負載平衡器:
- 前端 IP 位址:192.168.14.9 (適用於 ASCS)。
- 前端 IP 位址:192.168.14.10 (適用於 ERS)。
- 適用於 ASCS 的探查連接埠 62000。
- 適用於 ERS 的探查連接埠 62101。
設定 Azure NetApp Files 基礎結構
SAP NetWeaver 需要傳輸和設定檔目錄的共用儲存體。 在繼續設定 Azure NetApp 檔案基礎結構之前,請先熟悉 Azure NetApp Files 文件。 檢查選取的 Azure 區域是否提供 Azure NetApp 檔案。 如需各 Azure 區域的 Azure NetApp Files 可用性資訊,請參閱依據 Azure 區域顯示 Azure NetApp Files 的可用性。
Azure NetApp Files 可在數個 Azure 區域中使用。
部署 Azure NetApp Files 資源
這些步驟假設您已部署 Azure 虛擬網路。 Azure NetApp Files 資源和 VM,其中將掛接的 Azure NetApp Files 資源必須部署到相同的 Azure 虛擬網路,或部署到對等互連的 Azure 虛擬網路。
依照建立 Azure NetApp Files 帳戶的指示,在選取的 Azure 區域中建立 Azure NetApp Files 帳戶。
依照如何設定 Azure NetApp Files 容量集區的指示,設定 Azure NetApp Files 容量集區。 本文中呈現的 SAP NetWeaver 架構使用單一 Azure NetApp Files 容量集區,以及進階 SKU。 我們建議對 Azure 上的 SAP NetWeaver 應用程式工作負載使用 Azure NetApp Files 進階 SKU。
依照如何將子網路委派給 Azure NetApp Files ,將子網路委派給 Azure NetApp Files。
依照建立 Azure NetApp Files 磁碟區的指示,部署 Azure NetApp Files 磁碟區。 在指定的 Azure NetApp Files 子網路中部署磁碟區。 Azure NetApp 磁碟區的 IP 位址會自動指派。 Azure NetApp Files 資源和 Azure VM 必須位於相同的 Azure 虛擬網路,或位於對等互連的 Azure 虛擬網路中。 在此範例中,我們使用兩個 Azure NetApp Files 磁碟區:sapQAS 和 transSAP。 掛接到對應掛接點的檔案路徑為 /usrsapqas/sapmntQAS 和 /usrsapqas/usrsapQASsys。
- 磁碟區 sapQAS (nfs://192.168.24.5/usrsapqas/sapmntQAS)
- 磁碟區 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASascs)
- 磁碟區 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASsys)
- 磁碟區 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASers)
- 磁碟區 transSAP (nfs://192.168.24.4/transSAP)
- 磁碟區 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASpas)
- 磁碟區 sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASaas)
在此範例中,我們對所有 SAP NetWeaver 檔案系統使用 Azure NetApp Files,以示範使用 Azure NetApp Files 的方式。 不需要透過 NFS 掛接的 SAP 檔案系統也可作為 Azure 磁碟儲存體來部署。 在此範例中,a-e 必須位於 Azure NetApp Files 上,f-g (即 /usr/sap/QAS/D02 和 /usr/sapQAS/D03) 可以作為 Azure 磁碟儲存體部署。
重要考量
考慮在 RHEL HA 架構上將 Azure NetApp Files 用於 SAP NetWeaver 時,請注意下列重要考量:
- 最小容量集區為 4 TiB。 您可以增加容量集區大小,以 1 TiB 為增量單位。
- 最小磁碟區為 100 GiB。
- Azure NetApp Files 和所有 VM 將掛接 Azure NetApp Files 磁碟區,必須位於相同 Azure 虛擬網路中,或位於相同區域的對等互連虛擬網路中。 Azure NetApp Files 現在支援透過相同區域內的虛擬網路對等互連進行存取。 尚不支援透過全域對等互連來存取 Azure NetApp Files。
- 選取虛擬網路必須具備委派給 Azure NetApp Files 的子網路。
- Azure NetApp Files 磁碟區的輸送量和效能特性取決於磁碟區配額和服務等級。 如需詳細資料,請參閱 Azure NetApp Files 的服務等級。 調整 SAP Azure NetApp 磁碟區的大小時,請確定產生的輸送量符合應用程式需求。
- Azure NetApp Files 提供匯出原則。 您可以控制允許的用戶端和存取類型 (例如,讀取/寫入或唯讀)。
- Azure NetApp Files 功能尚無法感知區域。 Azure NetApp Files 功能目前未部署在 Azure 區域中的所有可用性區域。 請注意部分 Azure 區域中的潛在延遲影響。
- 您可以將 Azure NetApp Files 磁碟區部署為 NFSv3 或 NFSv4.1 磁碟區。 SAP 應用程式層 (ASCS/ERS、SAP 應用程式伺服器) 支援這兩個通訊協定。
準備基礎結構
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 位址) 標準負載平衡器的後端集區時,除非另外設定為允許路由傳送至公用端點,否則不會有輸出網際網路連線能力。 如需關於如何實現輸出連線能力的詳細資訊,請參閱在 SAP 高可用性案例中使用 Azure Standard Load Balancer 實現 VM 的公用端點連線能力。
重要
請勿在位於 Azure Load Balancer 後方的 Azure VM 上啟用 TCP 時間戳記。 啟用 TCP 時間戳記將導致健全狀態探查失敗。 將參數 net.ipv4.tcp_timestamps 設定為 0。 如需詳細資訊,請參閱負載平衡器健全狀態探查。
停用識別碼對應 (如果您使用 NFSv4.1)
只有在搭配使用 Azure NetApp Files 磁碟區與 NFSv4.1 通訊協定時,才適用本節中的指示。 在所有將掛接 Azure NetApp Files NFSv4.1 磁碟區的 VM 上執行設定。
驗證 NFS 網域設定。 確定網域已設為預設 Azure NetApp Files 網域 (即
defaultv4iddomain.com
),且對應設為 nobody。重要
確認在 VM 上的
/etc/idmapd.conf
內設定 NFS 網域,使其與 Azure NetApp Files 上的預設網域設定相符:defaultv4iddomain.com
。 如果 NFS 用戶端 (即 VM) 上的網域設定與 NFS 伺服器的網域設定 (即 Azure NetApp 設定) 不相符,則掛接在 VM 上的 Azure NetApp 磁碟區所含檔案的權限將會顯示為nobody
。sudo cat /etc/idmapd.conf # Example [General] Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
下列 [A] 前置詞對 PAS 和 AAS 均適用。
[A] 驗證
nfs4_disable_idmapping
。 其應設為 Y。若要建立nfs4_disable_idmapping
所在的目錄結構,請執行掛接命令。 您將無法在/sys/modules
下手動建立目錄,因為其存取已保留給核心和驅動程式。# Check nfs4_disable_idmapping cat /sys/module/nfs/parameters/nfs4_disable_idmapping # If you need to set nfs4_disable_idmapping to Y mkdir /mnt/tmp mount 192.168.24.5:/sapQAS umount /mnt/tmp echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping # Make the configuration permanent echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
設定 (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 address of cluster node 1 192.168.14.5 anftstsapcl1 # IP address of cluster node 2 192.168.14.6 anftstsapcl2 # IP address of the load balancer frontend configuration for SAP Netweaver ASCS 192.168.14.9 anftstsapvh # IP address of the load balancer frontend configuration for SAP Netweaver ERS 192.168.14.10 anftstsapers
[1] 在 Azure NetApp Files 磁碟區中建立 SAP 目錄。 將 Azure NetApp Files 磁碟區暫時掛接在其中一個 VM 上,然後建立 SAP 目錄 (檔案路徑)。
# mount temporarily the volume sudo mkdir -p /saptmp # If using NFSv3 sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 192.168.24.5:/sapQAS /saptmp # If using NFSv4.1 sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 192.168.24.5:/sapQAS /saptmp # create the SAP directories sudo cd /saptmp sudo mkdir -p sapmntQAS sudo mkdir -p usrsapQASascs sudo mkdir -p usrsapQASers sudo mkdir -p usrsapQASsys sudo mkdir -p usrsapQASpas sudo mkdir -p usrsapQASaas # unmount the volume and delete the temporary directory sudo cd .. sudo umount /saptmp sudo rmdir /saptmp
[A] 建立共用目錄。
sudo mkdir -p /sapmnt/QAS sudo mkdir -p /usr/sap/trans sudo mkdir -p /usr/sap/QAS/SYS sudo mkdir -p /usr/sap/QAS/ASCS00 sudo mkdir -p /usr/sap/QAS/ERS01 sudo chattr +i /sapmnt/QAS sudo chattr +i /usr/sap/trans sudo chattr +i /usr/sap/QAS/SYS sudo chattr +i /usr/sap/QAS/ASCS00 sudo chattr +i /usr/sap/QAS/ERS01
[A] 安裝 NFS 用戶端和其他需求。
sudo yum -y install nfs-utils 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] 新增掛接項目。
如果您使用 NFSv3:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
如果您使用 NFSv4.1:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys 192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
注意
在掛接磁碟區時,請務必比對 Azure NetApp Files 磁碟區的 NFS 通訊協定版本。 若 Azure NetApp Files 磁碟區是使用 NFSv3 磁碟區建立的,請使用對應的 NFSv3 設定。 若 Azure NetApp Files 磁碟區是使用 NFSv4.1 磁碟區建立的,請遵循指示來停用識別碼對應,並確認使用對應的 NFSv4.1 設定。 在此範例中,Azure NetApp Files 磁碟區是使用 NFSv3 磁碟區建立的。
掛接新的共用。
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 VM 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 OS 設定。
安裝 SAP NetWeaver ASCS/ERS
[1] 設定叢集預設屬性。
pcs resource defaults resource-stickiness=1 pcs resource defaults migration-threshold=3
[1] 為 ASCS 執行個體建立虛擬 IP 資源和健康情況探查。
sudo pcs node standby anftstsapcl2 # If using NFSv3 sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \ directory='/usr/sap/QAS/ASCS00' 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-QAS_ASCS # If using NFSv4.1 sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \ directory='/usr/sap/QAS/ASCS00' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \ --group g-QAS_ASCS sudo pcs resource create vip_QAS_ASCS IPaddr2 \ ip=192.168.14.9 \ --group g-QAS_ASCS sudo pcs resource create nc_QAS_ASCS azure-lb port=62000 \ --group g-QAS_ASCS
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo pcs status # Node anftstsapcl2: standby # Online: [ anftstsapcl1 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started anftstsapcl1 # Resource Group: g-QAS_ASCS # fs_QAS_ASCS (ocf::heartbeat:Filesystem): Started anftstsapcl1 # nc_QAS_ASCS (ocf::heartbeat:azure-lb): Started anftstsapcl1 # vip_QAS_ASCS (ocf::heartbeat:IPaddr2): Started anftstsapcl1
[1] 安裝 SAP NetWeaver ASCS。
以 root 身分使用虛擬主機名稱 (對應至 ASCS 負載平衡器前端設定的 IP 位址,例如 anftstsapvh、192.168.14.9) 和用於負載平衡器探查的執行個體號碼 (例如 00),在第一個節點上安裝 SAP NetWeaver ASCS。
您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
允許非根使用者連線至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 SAPINST_USE_HOSTNAME=<virtual_hostname>
如果安裝無法在 /usr/sap/QAS/ASCS00 中建立子資料夾,請嘗試設定 ASCS00 資料夾的擁有者和群組,並進行重試。
sudo chown qasadm /usr/sap/QAS/ASCS00 sudo chgrp sapsys /usr/sap/QAS/ASCS00
[1] 為 ERS 執行個體建立虛擬 IP 資源和健全狀態探查。
sudo pcs node unstandby anftstsapcl2 sudo pcs node standby anftstsapcl1 # If using NFSv3 sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \ directory='/usr/sap/QAS/ERS01' 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-QAS_AERS # If using NFSv4.1 sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \ directory='/usr/sap/QAS/ERS01' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \ op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \ --group g-QAS_AERS sudo pcs resource create vip_QAS_AERS IPaddr2 \ ip=192.168.14.10 \ --group g-QAS_AERS sudo pcs resource create nc_QAS_AERS azure-lb port=62101 \ --group g-QAS_AERS
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo pcs status # Node anftstsapcl1: standby # Online: [ anftstsapcl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started anftstsapcl2 # Resource Group: g-QAS_ASCS # fs_QAS_ASCS (ocf::heartbeat:Filesystem): Started anftstsapcl2 # nc_QAS_ASCS (ocf::heartbeat:azure-lb): Started anftstsapcl2< # vip_QAS_ASCS (ocf::heartbeat:IPaddr2): Started anftstsapcl2 # Resource Group: g-QAS_AERS # fs_QAS_AERS (ocf::heartbeat:Filesystem): Started anftstsapcl2 # nc_QAS_AERS (ocf::heartbeat:azure-lb): Started anftstsapcl2 # vip_QAS_AERS (ocf::heartbeat:IPaddr2): Started anftstsapcl2
[2] 安裝 SAP NetWeaver ERS。
以 root 身分使用虛擬主機名稱 (對應至 ERS 負載平衡器前端設定的 IP 位址,例如 anftstsapers、192.168.14.10) 和用於負載平衡器探查的執行個體號碼 (例如 01),在第二個節點上安裝 SAP NetWeaver ERS。
您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
允許非根使用者連線至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 SAPINST_USE_HOSTNAME=<virtual_hostname>
如果安裝無法在 /usr/sap/QAS/ERS01 中建立子資料夾,請嘗試設定 ERS01 資料夾的擁有者和群組,並進行重試。
sudo chown qaadm /usr/sap/QAS/ERS01 sudo chgrp sapsys /usr/sap/QAS/ERS01
[1] 調整 ASCS/SCS 和 ERS 執行個體設定檔。
ASCS/SCS 設定檔
sudo vi /sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh # 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/QAS/profile/QAS_ERS01_anftstsapers # 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 # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). # LD_LIBRARY_PATH=/usr/sap/QAS/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ASCS00/exe/sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh -D -u qasadm # systemctl --no-ask-password start SAPQAS_00 # sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). # LD_LIBRARY_PATH=/usr/sap/QAS/ERS01/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ERS01/exe/sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers -D -u qasadm # systemctl --no-ask-password start SAPQAS_01 # sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers
重要
透過 systemd 型 SAP 啟動架構,SAP 執行個體現在可由 systemd 管理。 SAP 所需的最低 Red Hat Enterprise Linux (RHEL) 版本為 RHEL 8。 如 SAP 附註 3115048 所述,全新安裝支援整合式 systemd 型 SAP 啟動架構的 SAP 核心時,一律會產生 systemd 控制的 SAP 執行個體。 然而,將現有 SAP 安裝的 SAP 核心升級至支援 systemd 型 SAP 啟動架構的核心後,必須執行一些手動步驟 (如 SAP 附註 3115048 所述),以將現有的 SAP 啟動環境轉換成由 systemd 控制的環境。
使用適用於 SAP 的 Red Hat HA 服務 (叢集設定) 來管理 SAP 應用程式伺服器執行個體 (例如 SAP ASCS 和 SAP ERS) 時,必須進行額外的修改,以確保 SAPInstance 資源代理程式與新的 systemd 型 SAP 啟動架構之間的相容性。 因此,一旦根據 SAP 附註 3115048 將 SAP 應用程式伺服器安裝或切換至已啟用 systemd 的 SAP 核心,就必須在所有叢集節點上順利完成 Red Hat KBA 6884531 中所述的步驟。
[1] 建立 SAP 叢集資源。
根據您執行的是 ENSA1 還是 ENSA2 系統,選取各自的索引標籤以定義資源。 SAP 在 SAP NetWeaver 7.52 中引進了 ENSA2 的支援,包括複寫。 從 ABAP 平台 1809 開始,預設會安裝 ENSA2。 針對 ENSA2 支援, 請參閱 SAP 附註 2630416 以了解加入佇列伺服器 2 的支援。
如果您使用加入佇列伺服器 2 結構 (ENSA2),請依照下列方式安裝資源代理程式 resource-agents-sap-4.1.1-12.el7.x86_64 或更新版本,並定義資源:
sudo pcs property set maintenance-mode=true # If using NFSv3 sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \ InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \ 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-QAS_ASCS # If using NFSv4.1 sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \ InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \ AUTOMATIC_RECOVER=false \ meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \ op monitor interval=20 on-fail=restart timeout=105 \ op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-QAS_ASCS sudo pcs resource meta g-QAS_ASCS resource-stickiness=3000 # If using NFSv3 sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \ InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \ 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-QAS_AERS # If using NFSv4.1 sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \ InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \ AUTOMATIC_RECOVER=false IS_ERS=true \ op monitor interval=20 on-fail=restart timeout=105 op start interval=0 timeout=600 op stop interval=0 timeout=600 \ --group g-QAS_AERS sudo pcs constraint colocation add g-QAS_AERS with g-QAS_ASCS -5000 sudo pcs constraint location rsc_sap_QAS_ASCS00 rule score=2000 runs_ers_QAS eq 1 sudo pcs constraint order start g-QAS_ASCS then stop g-QAS_AERS kind=Optional symmetrical=false sudo pcs node unstandby anftstsapcl1 sudo pcs property set maintenance-mode=false
若正在從舊版本升級並切換到加入佇列伺服器 2,請參閱 SAP 附註 2641322。
注意
由於通訊協定特定的暫停 (與 NFSv4.1 租用更新相關),使用 NFSv 4.1 時須建議較高的逾時。 如需詳細資訊,請參閱 NetApp 中的 NFS 最佳做法。 上述設定中的逾時只是範例,可能需要針對特定的 SAP 安裝來調整。
請確定叢集狀態正常,且所有資源皆已啟動。 資源在哪個節點上執行並不重要。
sudo pcs status # Online: [ anftstsapcl1 anftstsapcl2 ] # # Full list of resources: # # rsc_st_azure (stonith:fence_azure_arm): Started anftstsapcl2 # Resource Group: g-QAS_ASCS # fs_QAS_ASCS (ocf::heartbeat:Filesystem): Started anftstsapcl2 # nc_QAS_ASCS (ocf::heartbeat:azure-lb): Started anftstsapcl2 # vip_QAS_ASCS (ocf::heartbeat:IPaddr2): Started anftstsapcl2 # rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance): Started anftstsapcl2 # Resource Group: g-QAS_AERS # fs_QAS_AERS (ocf::heartbeat:Filesystem): Started anftstsapcl1 # nc_QAS_AERS (ocf::heartbeat:azure-lb): Started anftstsapcl1 # vip_QAS_AERS (ocf::heartbeat:IPaddr2): Started anftstsapcl1 # rsc_sap_QAS_ERS01 (ocf::heartbeat:SAPInstance): Started anftstsapcl1
[1] 執行下列步驟來設定
priority-fencing-delay
(僅適用於 pacemaker-2.0.4-6.el8 或更高版本)。注意
如果您有兩個節點的叢集,您可以設定
priority-fencing-delay
叢集屬性。 若發生核心分裂 (split-brain) 的情況,此屬性會在隔離總資源優先順序較高的節點時導致更高的延遲。 如需詳細資訊,請參閱 Pacemaker 是否可以使用最少的執行資源來隔離叢集節點?。屬性
priority-fencing-delay
適用於 pacemaker-2.0.4-6.el8 版本或更高版本。 如果您要在現有的叢集上設定priority-fencing-delay
,請務必清除隔離裝置中的pcmk_delay_max
設定。sudo pcs resource defaults update priority=1 sudo pcs resource update rsc_sap_QAS_ASCS00 meta priority=10 sudo pcs property set priority-fencing-delay=15s
[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={62101,3201,3301,50113,50114,50116}/tcp --permanent sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp
SAP NetWeaver 應用程式伺服器準備
某些資料庫需要在應用程式伺服器上執行資料庫執行個體安裝。 準備應用程式伺服器 VM,以便在這些情況下使用。
以下步驟假設您將應用程式伺服器安裝在與 ASCS/SCS 和 HANA 伺服器不同的伺服器上。 否則,就無須進行某些步驟 (例如設定主機名稱解析)。
下列項目前面會加上:
- [A]:同時適用於 PAS 和 AAS
- [P]:僅適用於 PAS
- [S]:僅適用於 AAS
[A] 設定主機名稱解析。
您可以使用 DNS 伺服器,或修改所有節點上的
/etc/hosts
檔案。 此範例說明如何使用/etc/hosts
檔案。 請取代下列命令中的 IP 位址和主機名稱:sudo vi /etc/hosts
將下列幾行插入至
/etc/hosts
。 變更 IP 位址和主機名稱以符合您的環境。# IP address of the load balancer frontend configuration for SAP NetWeaver ASCS 192.168.14.9 anftstsapvh # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS 192.168.14.10 anftstsapers 192.168.14.7 anftstsapa01 192.168.14.8 anftstsapa02
[A] 建立
sapmnt
目錄。sudo mkdir -p /sapmnt/QAS sudo mkdir -p /usr/sap/trans sudo chattr +i /sapmnt/QAS sudo chattr +i /usr/sap/trans
[A] 安裝 NFS 用戶端和其他需求。
sudo yum -y install nfs-utils uuidd
[A] 新增掛接項目。
如果您使用 NFSv3:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
如果您使用 NFSv4.1:
sudo vi /etc/fstab # Add the following lines to fstab, save and exit 192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys 192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
掛接新的共用。
sudo mount -a
[P] 建立並掛接 PAS 目錄。
如果您使用 NFSv3:
sudo mkdir -p /usr/sap/QAS/D02 sudo chattr +i /usr/sap/QAS/D02 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 # Mount sudo mount -a
如果您使用 NFSv4.1:
sudo mkdir -p /usr/sap/QAS/D02 sudo chattr +i /usr/sap/QAS/D02 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys # Mount sudo mount -a
[P] 建立並掛接 AAS 目錄。
如果您使用 NFSv3:
sudo mkdir -p /usr/sap/QAS/D03 sudo chattr +i /usr/sap/QAS/D03 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3 # Mount sudo mount -a
如果您使用 NFSv4.1:
sudo mkdir -p /usr/sap/QAS/D03 sudo chattr +i /usr/sap/QAS/D03 sudo vi /etc/fstab # Add the following line to fstab 92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys # Mount 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 VM 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 資料庫執行個體安裝。
使用與資料庫負載平衡器前端設定的 IP 位址相對應的虛擬主機名稱,以 root 身分安裝 SAP NetWeaver 資料庫執行個體。
您可以使用
sapinst
參數SAPINST_REMOTE_ACCESS_USER
允許非根使用者連線至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/qasadm/.hdb/anftstsapa01/SSFS_HDB.DAT KEY FILE : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.KEY KEY DEFAULT ENV : 192.168.14.4:30313 USER: SAPABAP1 DATABASE: QAS
輸出會顯示預設項目的 IP 位址指向 VM,而不是指向負載平衡器的 IP 位址。 您必須變更此進入點,以指向負載平衡器的虛擬機器主機名稱。 請務必使用相同的連接埠 (上述輸出中的 30313) 和資料庫名稱 (上述輸出中的 QAS)。
su - qasadm hdbuserstore SET DEFAULT qasdb:30313@QAS SAPABAP1 <password of ABAP schema>
測試叢集設定
徹底測試 Pacemaker 叢集。 如需詳細資訊,請參閱執行一般容錯移轉測試。
下一步
- 若要部署使用 RHEL 上的 SAP NetWeaver HA 叢集來部署 PAS 和 AAS 執行個體的成本最佳化案例,請參閱使用 RHEL 上的 SAP ASCS/SCS 高可用性 VM 安裝 SAP 對話方塊執行個體。
- 請參閱針對具備多個 SID 的 SAP 應用程式在 RHEL 上 Azure VM 達到 SAP NW 高可用性的指南。
- 請參閱適用於 SAP 的 Azure 虛擬機器規劃和實作。
- 請參閱適用於 SAP 的 Azure 虛擬機器部署。
- 請參閱適用於 SAP 的 Azure 虛擬機器 DBMS 部署。
- 若要了解如何為 Azure 上的 SAP HANA (大型執行個體) 建立 HA 並規劃災害復原,請參閱 Azure 上的 SAP HANA (大型執行個體) 高可用性和災害復原。
- 若要了解如何為 Azure 虛擬機器上的 SAP HANA 建立 HA 並規劃災害復原,請參閱 Azure 虛擬機器上 SAP HANA 的高可用性。