SAP S/4HANA 同可用性區域高可用部署
版本管理
版本 | 修訂日期 | 變更說明 | 生效日期 |
1.0 | 2019.05.07 | ||
1.1 | 2019.07.04 | 1.最佳化NAS參數 | 2019.07.04 |
1.2 | 2021.06.01 | 1.Pacemaker SBD逾時時間最佳化 | 2021.06.01 |
1.3 | 2022.1.25 | 1.更新fence agent方案 2.排版最佳化等 | 2022.1.25 |
1.4 | 2022.12.5 | 1.更新了fence_aliyun組件依賴包針對不同作業系統版本的說明 | 2022.12.5 |
1.概述
本文檔描述了如何在阿里雲同可用性區域環境中,基於SUSE HAE進行S/4 HANA 1809及更高版本的高可用性安裝部署。
隨著Netweaver 7.51之後standalone enqueue server 2(ENSA2)的啟用,ENSA2已經是S/4 HANA ABAP PLATFORM 1809高可用部署的預設安裝選項。
本文檔主旨描述了SAP S/4HANA 1809及更高版本如何進行高可用部署,並不能完全取代SAP官方的安裝配置文檔以及具體的系統sizing,建議在部署之前閱讀SAP官方的安裝配置文檔以及其中建議的SAP Notes。
1).在Old Standalone Enqueue Server(ENSA1)架構中central services instance(ASCS)遭遇故障後必須切換到啟用且運行著的ERS(ASCS對端)的server中並重啟,通過訪問共用記憶體從而接管enqueue replication table中的鎖。
2).在新的ENSA2架構中ASCS遭遇故障後不再限制必須切換到運行著ERS的對端server中,ASCS可以切換到單獨的server中並重啟,通過網路而不是共用記憶體從Enqueue Replicator 2中接管鎖。
3).對於ENSA1的架構在pacemaker中支援兩個節點的cluster,ASCS必須“跟隨”ERS;對於ENSA2的新架構中在pacemaker中可以不僅支援兩個節點的cluster同時也支援多節點的cluster。
本次部署依然採用兩個節點的cluster作為最佳實務,只包括S/4 HANA 1809 server的安裝並未包括Fiori front-end server,同時本次部署並未安裝SAP liveCache Intergration。
2.架構總覽
本次部署的架構設計如下:
3.資源規劃
3.1 網路規劃
網路 | 位置 | 分配網段 | 交換器 | VPC |
業務網 | 華北2可用性區域G | 10.0.10.0/24 | SAP_Business_Vswitch | S4_1809_VPC |
心跳網 | 華北2可用性區域G | 10.0.20.0/24 | SAP_Heartbeat_Vswitch | S4_1809_VPC |
3.2 SAP及主機規劃
SAP應用SID:S4T
SAP HANA SID:S4T
應用與HANA的SID也可使用不同的SID。
主機名稱 | IP 地址 | 類型 | 執行個體編號 | 備忘 |
s4app1 | 10.0.10.10/10.0.20.10 | PAS Instance | 01 | 安裝在本地 |
s4app2 | 10.0.10.11/10.0.20.11 | AAS Instance | 02 | 安裝在本地 |
VASCSS4T | 10.0.10.12 | ASCS Instance | 00 | 安裝在虛擬機器主機名 |
VERSS4T | 10.0.10.13 | ERS Instance | 10 | 安裝在虛擬機器主機名 |
VDBS4T | 10.0.10.9 | DB Instance | 安裝在虛擬機器主機名 | |
hana01 | 10.0.10.7/10.0.20.7 | DB(Primary) | 00 | 安裝在本地 |
hana02 | 10.0.10.8/10.0.20.8 | DB (Secondary) | 00 | 安裝在本地 |
3.3 使用者及組規劃
高可用叢集中的兩個節點中的SAP以及HANA使用者和組ID要保持一致。
使用者ID:<sid>adm統一設定為2000,sapadm統一為2001。
組ID:sapsys統一設定為2000。
3.4 SWAP規劃
SAP應用的安裝都需要建立SWAP空間,推薦在建立ECS執行個體的時候單獨建立SSD/ESSD雲端硬碟作為SWAP盤,關於SWAP空間的推薦請參見 SAP Note:1597355 - Swap-space recommendation for Linux。
3.5檔案系統規劃
對於SAP應用的global檔案系統推薦使用autofs的方式掛載。關於檔案系統大小的sizing,請參照SAP官方安裝配置文檔或實施商的規劃,本例僅供參考。
檔案系統 | 類型 | LV | VG |
/usr/sap | xfs | usrsaplv | sapvg |
/sapmnt | NAS | ||
/usr/sap/trans | NAS | ||
/hana/data | xfs | datalv | hanavg |
/hana/log | xfs | loglv | hanavg |
/hana/shared | xfs | sharedlv | hanavg |
4.前期準備
4.1 阿里雲帳號
如果您還沒有阿里雲帳號,您可以在阿里雲官網或阿里雲 App 上,使用手機號碼註冊阿里雲帳號和完成帳號實名認證。並且,後續您還可以在阿里雲 App 上,管理雲資源、監控資源狀態、進行身分識別驗證、及上雲棲社區諮詢、瞭解雲知識等。
4.2 VPC
Virtual Private Cloud(Virtual Private Cloud)是基於阿里雲構建的一個隔離的網路環境,專用網路之間邏輯上徹底隔離。專用網路是您自己的雲上私人網路。您可以完全掌控自己的專用網路,例如選擇IP位址範圍、配置路由表和網關等。具體詳細資料和文檔請參考產品文檔.按照規劃建立VPC以及對應的業務網交換器和心跳網交換器。
4.3 ECS執行個體
雲端服務器Elastic Compute Service(ECS)是阿里雲提供的一種基礎雲端運算服務您可以通過雲端服務器管理主控台配置您的ECS資源。
關於阿里雲認證的Netweaver相關資訊請參見sap note: 1380654 - SAP support in public cloud environments.
[1].建立ECS執行個體
在控制台選擇建立ECS執行個體,選擇付費方式和可用性區域(本例華北2可用性區域G)從鏡像市場選擇,使用“ SUSE Linux Enterprise Server for SAP Applications 12 SP3”鏡像。
根據規劃選擇建立磁碟的數量和大小(本例以資料盤300G,SWAP盤50G作為示意),推薦系統硬碟使用高效雲端硬碟或SSD雲端硬碟,資料盤使用ESSD雲端硬碟或SSD雲端硬碟,推薦單獨建立SSD或ESSD雲端硬碟作為SWAP盤,關於雲端硬碟的相關產品文檔和效能請參見Block Storage效能。
選擇專用網路和安全性群組,需要填寫之前建立或者已有的VPC和安全性群組資訊(本例以hanasg安全性群組示意),關於安全性群組的設定和資訊請參考安全性群組使用FAQ。
根據規劃和需求選擇RAM role(可選),檢查所有的選項後建立ECS執行個體,根據本次部署的規劃需要在華北2可用性區域G建立4台ECS執行個體,建立完成後根據規劃通過修改資訊選項來修改主機名稱或私人IP地址。
[2].配置彈性網卡
需要為高可用叢集的每個ECS都建立彈性網卡,來設定心跳網路。
控制台->Elastic Compute Service->網路與安全->彈性網卡,建立彈性網卡。
本例中按規劃需要建立4個彈性網卡。
[3].ECS Metrics Collector的安裝
ECS Metrics Collector監控代理程式,用於雲平台上SAP系統收集需要的虛擬機器設定資訊和底層實體資源使用相關的資訊。當SAP系統運行在彈性計算服務器ECS上時,SAP Host Agent通過metadata服務和openAPI擷取需要的資訊,用於收集SAP系統監控所需資訊(包括作業系統、網路、儲存方面以及SAP架構方面等),並將其提供給SAP應用程式,用於事物分析和系統效能分析。對於運行SAP系統的每個ECS執行個體(包括資料庫和應用),都需要安裝Metrics Collector for SAP監控代理程式。
關於ECS Metrics Collector的部署請參考 ECS Metrics Collector for SAP部署指南。
4.4 配置Fence功能
阿里雲提供兩個方案用於實現SAP系統高可用部署中的Fence的功能,推薦您選擇雲原生的《方案二:Fence_aliyun》。
方案一:共用Block Storage實現SBD fence功能(方案已下線)
共用Block Storage是一種支援多台ECS執行個體並發讀寫訪問的資料區塊級存放裝置,具備多並發、高效能、高可靠等特性,單塊共用Block Storage最多支援同時掛載到16台ECS執行個體掛載共用Block Storage的操作。
共用Block Storage作為高可用叢集的SBD裝置,選擇與ECS同地區可用性區域,並掛載在高可用叢集中的ECS執行個體中。
請聯絡您的阿里雲解決方案架構師(SA)協助你完成產品使用申請。
[1] 建立共用Block Storage
登入控制台->Elastic Compute Service->儲存與快照,點擊“共用Block Storage”,在ECS同地區同可用性區域建立共用Block Storage。
建立成功後,返回共用Block Storage控制台,將剛才建立的共用Block Storage裝置掛載到高可用叢集中的兩台ECS執行個體上。
[2] 配置共用Block Storage
登入作業系統,使用lsblk
命令查看磁碟資訊
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 100G 0 disk
└─vda1 253:1 0 100G 0 part /
vdb 253:16 0 500G 0 disk
vdc 253:32 0 500G 0 disk
vdd 253:48 0 500G 0 disk
vde 253:64 0 64G 0 disk
vdf 253:80 0 20G 0 disk
當前樣本中,雲端硬碟/dev/vdf 為共用Block Storage裝置標識。
[3] 配置watchdog(叢集的兩個節點)
echo "modprobe softdog" > /etc/init.d/boot.local
echo "softdog" > /etc/modules-load.d/watchdog.conf
modprobe softdog
# watchdog配置檢查
ls -l /dev/watchdog
crw------- 1 root root 10, 130 Apr 23 12:09 /dev/watchdog
lsmod | grep -e wdt -e dog
softdog 16384 0
grep -e wdt -e dog /etc/modules-load.d/watchdog.conf
softdog
[4] 配置SBD(叢集的兩個節點)
sbd -d /dev/vdf -4 60 -1 30 create
# 配置SBD參數
vim /etc/sysconfig/sbd
# 修改以下參數,將SBD_DEVICE的值替換成共用Block Storage的裝置標識
SBD_DEVICE="/dev/vdf"
SBD_STARTMODE="clean"
SBD_OPTS="-W"
[5] 檢查SBD狀態
在兩個節點上,分別檢查SBD狀態。
sbd -d /dev/vdf list
確保兩個節點的SBD狀態均是clear:
sbd -d /dev/vdf list
0 s4app1 clear
1 s4app2 clear
[6] 驗證SBD配置
請確保被fence節點的應用程式已關閉,此操作將觸發節點重啟動作。
本樣本,登入主節點s4app1。
sbd -d /dev/vdf message s4app2 reset
如果備節點正常重啟,說明配置成功。
備節點重啟後,還需要手動將其重設為clear狀態。
sbd -d /dev/vdf list
0 s4app1 clear
1 s4app2 reset s4app1
sbd -d /dev/vdf message s4app2 clear
sbd -d /dev/vdf list
0 s4app1 clear
1 s4app2 clear s4app1
方案二:Fence_aliyun實現fence功能
fence_aliyun,它是針對阿里雲雲平台開發的,用於隔離SAP系統高可用環境故障節點的fence代理程式。通過調用阿里雲Open API實現對阿里雲雲資源的靈活調度和管理,支援同可用性區域的SAP系統高可用部署,滿足企業對SAP核心應用的高可用部署的需求。
fence_aliyun是針對阿里雲環境開發的,用於隔離SAP系統高可用環境故障節點的開源的fence agent。
SUSE Enterprise Server for SAP Applications 12 SP4及之後的版本已經原生整合了fence_aliyun組件,只需簡單配置就能用於阿里雲公用雲端環境的SAP系統高可用環境部署。
[1] 環境準備
本樣本使用的是阿里雲SUSE CSP付費鏡像,可以直連阿里雲SUSE SMT更新源下載或更新SUSE組件。
如果您使用的是自訂鏡像,請參考 How to register SLES using the SUSEConnect command line tool串連SUSE官方更新源。
安裝python等開源軟體需要串連公網,請確保已經為ECS配置了EIP公網地址或NAT Gateway。
[2] python和pip安裝和檢查
fence_aliyun僅支援python3.6及以上版本,請確保滿足最低版本要求。
# 檢查Python3的版本
python3 -V
Python 3.6.15
# 檢查Python包管理工具pip版本
pip -V
pip 21.2.4 from /usr/lib/python3.6/site-packages/pip (python 3.6)
如果還沒有安裝python3或者低於python3.6,需要單獨安裝。
以下以安裝python 3.6.15版本為樣本參考。
# 安裝python3.6
wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
tar -xf Python-3.6.15.tgz
./configure
make && make install
# 安裝驗證
python3 -V
# 安裝pip
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
python3 get-pip.py
# 安裝驗證
pip3 -V
[3] 安裝aliyun SDK和依賴包
請確保aliyun-python-sdk-core的版本不低於2.13.35,aliyun-python-sdk-ecs的版本不低於4.24.8。
python3 -m pip install --upgrade pip
pip3 install --upgrade aliyun-python-sdk-core
pip3 install --upgrade aliyun-python-sdk-ecs
# 安裝依賴包
### 使用自訂鏡像的使用者,需要手工啟用相關的模組後才能正常執行後面的安裝步驟
## SLES 12 SP1、SP2、SP3、SP5,使用如下命令(其中x表示SP小版本號碼)
SUSEConnect -p sle-sdk/12.x/x86_64
SUSEConnect -p SLES_SAP/12.x/x86_64
## SLES 12 SP4的環境,使用如下命令
SUSEConnect -p sle-sdk/12.4/x86_64
SUSEConnect -p sle-ha/12.4/x86_64
## SLES 15 SP1的環境,使用如下命令
SUSEConnect -p SLES_SAP/15.1/x86_64
SUSEConnect -p sle-ha/15.1/x86_64
## SLES 15 SP2、SP3的環境,使用如下命令(其中x表示SP小版本號碼)
SUSEConnect -p sle-module-basesystem/15.x/x86_64
SUSEConnect -p sle-ha/15.x/x86_64
###
zypper install libcurl-devel
pip3 install pycurl pexpect
zypper install fence-agents
# 安裝驗證類似如下
pip3 list | grep aliyun-python
aliyun-python-sdk-core 2.13.35
aliyun-python-sdk-core-v3 2.13.32
aliyun-python-sdk-ecs 4.24.8
[4] 配置RAM Role
fence_aliyun通過RAM role以實現對雲資源(如ECS)的狀態擷取和執行個體啟停等操作。
登入阿里雲控制台->存取控制->許可權管理->權限原則,點擊“建立權限原則”。
本樣本策略名稱是SAP-HA-ROLE-POLICY,策略內容樣本如下:
{
"Version": "1",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ecs:StartInstance",
"ecs:StopInstance",
"ecs:RebootInstance",
"ecs:DescribeInstances"
],
"Resource": [
"acs:ecs:*:*:instance/*"
]
}
]
}
將權限原則授權給角色
返回存取控制控制台->角色,找到AliyunECSAccessingHBRRole。點擊“添加許可權”->自訂策略,添加權限原則SAP-HA-ROLE-POLICY給AliyunECSAccessingHBRRole角色。
RAM Role授權給ECS執行個體
控制台->雲端服務ECS->更多->授予/收回RAM角色,選擇或者建立“AliyunECSAccessingHBRRole”角色。
[5] fence_aliyun安裝和配置
下載最新版fence_aliyun
下載fence_aliyun需要訪問github,請確保ECS執行個體的網路環境可以正常訪問github網站。
開啟瀏覽器訪問github fence_aliyun源碼,建立並複製源碼到 /usr/sbin/fence_aliyun
檔案
# 配置許可權
chmod 755 /usr/sbin/fence_aliyun
chown root:root /usr/sbin/fence_aliyun
適配使用者環境
# 指定解譯器為python3
sed -i "1s|@PYTHON@|$(which python3 2>/dev/null || which python 2>/dev/null)|" /usr/sbin/fence_aliyun
# 指定Fence agent lib 目錄
sed -i "s|@FENCEAGENTSLIBDIR@|/usr/share/fence|" /usr/sbin/fence_aliyun
驗證安裝
# 文法樣本:
# fence_aliyun --[region ID] --ram-role [RAM role] --action status --plug '[ECS執行個體ID]'
# 樣本如下:
fence_aliyun --region cn-beijing --ram-role AliyunECSAccessingHBRRole --action status --plug 'i-xxxxxxxxxxxxxxxxxxxx'
# 配置正常會返回此執行個體的狀態,樣本如下:
Status: ON
阿里雲地區和Region ID對照關係,請參考地區和可用性區域。
請確保當前地區下的所有ECS執行個體的名稱沒有中文字元。
4.5 高可用虛擬IP
高可用虛擬IP(Private High-Availability Virtual IP Address,簡稱HAViP),是一種可以獨立建立和釋放的私網IP資源。這種私網IP的特殊之處在於,使用者可以在ECS上使用ARP協議進行該IP的宣告。本次部署使用高可用虛擬IP作為叢集中的虛擬IP掛載在叢集中的每一個節點。
本例以建立ASCS instance所在的高可用虛擬IP為例。高可用虛擬IP作為ASCS instance安裝的對應虛擬IP,選擇建立在業務網段。(同理建立ERS instance的高可用虛擬IP)。
[1] 建立高可用虛擬IP(HAVIP)
登入控制台->VPC專用網路->高可用虛擬IP,建立高可用虛擬IP。
請聯絡您的阿里雲解決方案架構師(SA)協助你完成產品使用申請。
[2] 綁定高可用虛擬IP
點擊綁定高可用叢集的ECS執行個體,確保綁定了叢集中的兩個ECS執行個體。
[3] 配置臨時高可用虛擬IP
高可用虛擬IP需要被叢集軟體如pacemaker作為資源接管後才會生效,為了部署需要先手工臨時建立高可用虛擬IP。
登入第一個節點,將申請的ASCS以及ERS instance的高可用虛擬IP臨時配置到additional addresses中以保證安裝時高可用虛擬IP的連通。
#yast2 network
配置ASCS和ERS的高可用虛擬IP:
同理配置ERS的高可用虛擬IP。
檢測ASCS的高可用虛擬IP的連通性:
檢測ERS的高可用虛擬IP的連通性:
4.6 Apsara File Storage NAS
阿里雲檔案儲存體(Network Attached Storage,簡稱 NAS)是面向阿里雲 ECS 執行個體、E-HPC 和 Docker 等計算節點的檔案儲存體服務,提供標準的檔案訪問協議,使用者無需對現有應用做任何修改,即可使用具備無限容量及效能擴充、單一命名空間、多共用、高可靠和高可用等特性的Distributed File System。阿里雲上部署SAP應用推薦Global主機與trans主機的檔案系統採用Apsara File Storage NAS。
[1] 建立NAS
選擇地區和類型。本次部署採用容量型,關於NAS的效能請參考儲存類型介紹。點擊添加掛載點,選擇之前建立的VPC和業務網段交換器。
[2] 記錄NAS地址
點擊系統ID/名稱進入NAS配置,根據規劃為/sapmnt與/usr/sap/trans建立2個NAS檔案儲存體。
5.SAP HANA安裝
SAP HANA的安裝和配置請參見 SAP HANA Platform。
SAP HANA System Replication的配置請參見 How To Perform System Replication for SAP HANA。
SAP HANA HA的安裝和配置請參見 SAP HANA同可用性區域高可用部署。
6.配置高可用叢集
6.1 維護主機名
SAP應用與SAP HANA所有節點維護主機名按照規劃維護/etc/hosts檔案添加如下資訊:
###S4 application business###
10.0.10.10 s4app1 s4app1.alibaba.com
10.0.10.11 s4app2 s4app2.alibaba.com
10.0.10.12 VASCSS4T VASCSS4T.alibaba.com
10.0.10.13 VERSS4T VERSS4T.alibaba.com
###S4 application heatbeat###
10.0.20.10 s4app1-ha
10.0.20.11 s4app2-ha
###S4 HANA datebase####
10.0.10.7 hana01 hana01.alibaba.com
10.0.10.8 hana02 hana02.alibaba.com
10.0.10.9 VDBS4T VDBS4T.alibaba.com
###S4 HANA datebase heartbeat####
10.0.20.7 hana01-ha
10.0.20.8 hana02-ha
6.2 建立檔案系統
本樣本中
/sapmnt與/usr/sap/trans檔案系統採用NAS;
/usr/sap檔案系統為本地xfs類型檔案系統。
[1] /usr/sap檔案系統
1).首先檢查磁碟
2).建立pv
3).建立sapvg
4).建立usrsaplv
5).建立檔案系統
6).建立mount點並加入開機自動掛載
#fdisk -l
#pvcreate /dev/vdb
#vgcreate sapvg /dev/vdb
#lvcreate -L 100G -n usrsaplv sapvg
#mkfs.xfs /dev/sapvg/usrsaplv
#mkdir -p /usr/sap
vi編輯 /etc/fstab檔案添加樣本如下:
/dev/sapvg/usrsaplv /usr/sap xfs defaults 0 0
將所有的檔案系統掛載:
#mount -a
#mount -a
[2] 建立SWAP
1).檢查SWAP盤
#fdisk -l
檢查可以看出/dev/vdd為單獨建立的SWAP盤
2).配置SWAP
mkswap /dev/vdc
swapon /dev/vdc
swapon -s
vi編輯/etc/fstab檔案添加如下:
/dev/vdc swap swap defaults 0 0
[3] Global檔案系統與Trans主機檔案系統
推薦/sapmnt與/usr/sap/trans均採用autofs,所以不需要建立目錄配置autofs如下:
1).編輯auto.master檔案
#vim /etc/auto.master
末尾空白行處添加 /- /etc/auto.nfs
2).建立並編輯/etc/auto.nfs檔案如下:
請替換為上面申請的NAS地址
/sapmnt -vers=3,noacl,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport xxxxxxxx-beijing.nas.aliyuncs.com:/
/usr/sap/trans -vers=3,noacl,nolock,proto=tcp,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport xxxxxxxx-beijing.nas.aliyuncs.com:/
3).啟動autofs服務
#systemctl start autofs
4).添加到開機自啟動
#systemctl enable autofs
此時cd到這2個檔案系統進行訪問即可看到檔案系統掛載情況
6.3 準備OS以及安裝包
下面的配置過程都需要在參與HA的雙機中操作,本樣本只描述在其中一個節點的操作。
[1] 安裝HA配置以及最佳化所需的包
# SLES 12 for SAP版本的組件
zypper in -y patterns-ha-ha_sles sap-suse-cluster-connector fence-agents
# SLES 15 for SAP版本的組件
zypper in -y patterns-ha-ha_sles sap-suse-cluster-connector corosync-qdevice saptune fence-agents
[2] 檢查ntp服務
#ntpq -p
使用阿里雲提供的ECS伺服器自動開啟NTP服務,如果時區設定不是“Asia/Shanghai”,請確保所有的機器開啟NTP服務並在相同的時區。
[3] 安裝saptune
saptune是SLES12 SP2之後進化升級版的sapconf工具,用來協助您調優OS與DB的參數,從而使您的Netweaver或HANA更最佳化的運行。使用文法如下:
SAP Note
Tune system according to SAP and SUSE notes:
saptune note [ list | verify ]
saptune note [ apply | simulate | verify | customise | revert ] NoteID
SAP Solution
Tune system for all notes applicable to your SAP solution:
saptune solution [ list | verify ]
saptune solution [ apply | simulate | verify | revert ] SolutionName
由於本例安裝NETWEAVER所以安裝結果如下:
啟用daemon進程
saptune daemon start
systemctl enable tuned
關於saptune更多資訊請參考《Prepare your Linux for your SAP solution with saptune》或SLES官方文檔。
6.4 配置叢集
[1] 配置corosync
1).啟動cluster圖形介面在第一個節點啟動yast2,選擇cluster
2).配置Communication Channels
選擇transport方式為Unicast輸入Channel的bind地址:10.0.20.0(心跳IP網段)輸入Redundant channel的bind地址:10.0.10.0(業務IP網段)添加HA的兩個節點的心跳IP地址和業務IP(冗餘),輸入Expected votes投票數為2(節點數量)
3).配置Security
勾選“Enable Security Auth”,點擊Generate Auth Key File,產生Auth key檔案。
4)配置Csync2
csysnc2是一個同步複製的工具,用來複製設定檔到cluster中的各個節點添加主機,然後選擇add Suggested files點擊Turn csync2 ON點擊Generate Pre-shared-Keys拷貝產生的/etc/csync2/key_hagroup檔案到第二節點對應的目錄
5).配置service
選擇開機啟動後是否自動啟動pacemaker,預設是關閉狀態,本例選擇手動控制,選擇關閉
6).拷貝檔案:將第一節點的/etc/corosync目錄下corosync設定檔和authkey檔案拷貝至第二節點對應目錄:
#scp -pr corosync.conf authkey root@s4app2:/etc/corosync
[2] 啟動pacemaker兩個節點分別啟動pacemaker
#systemctl start pacemaker
檢查並確保兩個節點處於online狀態
#crm_mon -r
7.S/4HANA 1809 安裝
7.1 安裝ASCS Instance
第一個節點啟動SWPM安裝,選擇安裝ASCS到虛擬機器主機名VASCSS4T
# ./sapinst SAPINST_USE_HOSTNAME=VASCSS4T
windows跳轉機瀏覽器中輸入訪問地址:
https://VASCSS4T:4237/sapinst/docs/index.html
使用root使用者以及密碼登入(確保主機名稱解析和連接埠可訪問)按照規劃輸入SID和sapmnt路徑。設定FQDN。設定密碼。按照規劃輸入使用者ID和組ID。輸入kernel所在路徑。按照規劃輸入ASCS Instance number和虛擬機器主機名。整合webdispather與gateway。配置webdispather(後續可根據情況更改參數)。安全原因SAP推薦將sidadm使用者從sapinst組清除。參數回顧,此時可返回修改之前定義的參數。檢查message server和enqueue server的進程
7.2 安裝ERS Instance
在第一個節點再次啟動SWPM安裝,選擇安裝ERS到虛擬機器主機名VERS4T
# ./sapinst SAPINST_USE_HOSTNAME=VERSS4T
windows跳轉機瀏覽器中輸入訪問地址:
https://VERSS4T:4237/sapinst/docs/index.html
使用root使用者以及密碼登入(確保主機名稱解析和連接埠可訪問)根據規劃輸入使用者ID根據規劃輸入ERS instance number以及虛擬機器主機名根據規劃輸入使用者ID檢查Enqueue replication server進程
7.3備節點配置ASCS/ERS
1.建立使用者和組在第二節點使用SWPM建立相同的使用者和組
#./sapinst
建立sidadm和sapadm使用者輸入SID,勾選ABAP stack。按照規劃輸入使用者ID和組ID,保持與第一節點一致。
2.拷貝檔案登入第一個節點
1).拷貝/etc/中services檔案到第二個節點
#scp -pr services root@s4app2:/etc/
2).拷貝/usr/sap中的sapservices檔案到第二節點
#scp -pr sapservices root@s4app2:/usr/sap/
3).拷貝ASCS00,ERS10,SYS目錄到第二節點
#cd /usr/sap/S4T
#tar -cvf ASCSERSSYS.tar *
登入第二節點/usr/sap下建立許可權相同的S4T目錄,拷貝並解壓
#scp -pr ASCSERSSYS.tar root@s4app2:/usr/sap/S4T
#tar -xvf ASCSERSSYS.tar
4).檢查SYS中的soft link是否正確
7.4 安裝DB Instance
登入第一個節點,啟動SWPM安裝,選擇安裝DB instance到虛擬機器主機名VDBS4T
# ./sapinst SAPINST_USE_HOSTNAME=VDBS4T
windows跳轉機瀏覽器中輸入訪問地址:
https://VDBS4T:4237/sapinst/docs/index.html
使用root使用者以及密碼登入(確保主機名稱解析和連接埠可訪問)按照規劃輸入DB SID,Instance number,虛擬機器主機名。指定Export路徑。輸入密碼。
7.5整合SAP Instance
7.5.1 添加使用者到haclint組
在兩個節點都將sidadm使用者添加到haclient組。
#usermod -a -G haclient s4tadm
7.5.2 修改ASCS參數檔案
1).配置與sap-suse-cluster-connector的整合
2).通知SAP start framework在enqueue server的進程失敗時不要重啟。
####added for sap-suse-cluster-connector####
#-----------------------------------
#SUSE HAE sap_suse_cluster_connector
#-----------------------------------
service/halib = $(DIR_CT_RUN)/saphascriptco.so
service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
####chanegd for not to self-restart the enqueue process####
# Start SAP enqueue server
_EN = en.sap$(SAPSYSTEMNAME)_$(INSTANCE_NAME)
Execute_04 = local rm -f $(_EN)
Execute_05 = local ln -s -f $(DIR_EXECUTABLE)/enserver$(FT_EXE) $(_EN)
#Restart_Program_01 = local $(_EN) pf=$(_PF)
Start_Program_01 = local $(_EN) pf=$(_PF)
##################################
7.5.3 修改ERS參數檔案
1).配置與sap-suse-cluster-connector的整合
2).通知SAP start framework在Enqueue replication server(Enqueue Replicator 2)的進程失敗時不要重啟。
####added for sap-suse-cluster-connector####
#-----------------------------------
#SUSE HAE sap_suse_cluster_connector
#-----------------------------------
service/halib = $(DIR_CT_RUN)/saphascriptco.so
service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
###############################################################
#####changed by dongchen_201804###
#Restart_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID)
Start_Program_00 = local $(_ENQR) pf=$(_PF) NR=$(SCSID)
##################################
7.5.4 配置resource Agent
本樣本介紹了兩種Fence方案的配置,請根據您前面選擇的fence的方案,選擇對應的配置指令碼。
方案一:共用Block Storage實現SBD fence功能(方案已下線)
登入叢集任意節點建立文字檔,將指令碼中的”SID、InstanceNumber、和params ip” 三個參數值替換成實際部署的SAP系統的值。
HA_script.txt的內容如下:
#Cluster settings
property cib-bootstrap-options: \
have-watchdog=true \
cluster-infrastructure=corosync \
cluster-name=hacluster \
stonith-enabled=true \
placement-strategy=balanced \
maintenance-mode=false
rsc_defaults rsc-options: \
resource-stickiness=1 \
migration-threshold=3
op_defaults op-options: \
timeout=600 \
record-pending=true
#STONITH resource setting
primitive stonith-sbd stonith:external/sbd \
params pcmk_delay_max=30s
#ASCS resource setting
primitive rsc_ip_S4T_ASCS00 IPaddr2 \
params ip=10.0.10.12 \
op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ASCS00 SAPInstance \
operations $id=rsc_sap_S4T_ASCS00-operations \
op monitor interval=11 timeout=60 on_fail=restart \
params InstanceName=S4T_ASCS00_VASCSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ASCS00_VASCSS4T" AUTOMATIC_RECOVER=false \
meta resource-stickiness=5000 target-role=Started
#ERS resource setting
primitive rsc_ip_S4T_ERS10 IPaddr2 \
params ip=10.0.10.13 \
op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ERS10 SAPInstance \
operations $id=rsc_sap_S4T_ERS10-operations \
op monitor interval=11 timeout=60 on_fail=restart \
params InstanceName=S4T_ERS10_VERSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ERS10_VERSS4T" AUTOMATIC_RECOVER=false IS_ERS=true \
meta target-role=Started maintenance=false
#Groups and colocations
group grp_S4T_ASCS00 rsc_ip_S4T_ASCS00 rsc_sap_S4T_ASCS00 \
meta resource-stickiness=3000
group grp_S4T_ERS10 rsc_ip_S4T_ERS10 rsc_sap_S4T_ERS10 \
meta target-role=Started
colocation col_sap_S4T_no_both -5000: grp_S4T_ERS10 grp_S4T_ASCS00
order ord_sap_S4T_first_start_ascs Optional: rsc_sap_S4T_ASCS00:start rsc_sap_S4T_ERS10:stop symmetrical=false
檢查HA狀態,確保所有的resource啟動
crm_mon -r
方案二:Fence_aliyun實現fence功能
登入叢集任意節點建立文字檔,拷貝樣本中的指令碼按SAP ASCS的實際部署的情況修改。
plug的值替換成S/4 ASCS叢集的兩台ECS的執行個體ID
ram_role的值替換成上面配置的ram role
region的值替換成ECS執行個體所在的地區ID
ip的值替換成S/4 ASCS和ERS的高可用虛擬IP地址
InstanceName和START_PROFILE替換成S/4 ASCS和ERS的參數名和路徑
group、colocation和order的值要跟前面定義的資源名保持一致
location後面的參數中替換成S/4 ASCS和ERS執行個體的主機名稱
阿里雲地區和Region ID對照關係,請訪問 地區和可用性區域。
本樣本中的指令檔名HA_script.txt
#Fence agent setting
primitive res_ALIYUN_STONITH_1 stonith:fence_aliyun \
op monitor interval=120 timeout=60 \
params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=AliyunECSAccessingHBRRole region=cn-beijing
primitive res_ALIYUN_STONITH_2 stonith:fence_aliyun \
op monitor interval=120 timeout=60 \
params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=AliyunECSAccessingHBRRole region=cn-beijing
#ASCS/ERS resource setting
primitive rsc_ip_S4T_ASCS00 IPaddr2 \
params ip=10.0.10.12 \
op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ASCS00 SAPInstance \
operations $id=rsc_sap_S4T_ASCS00-operations \
op monitor interval=11 timeout=60 \
op_params on_fail=restart \
params InstanceName=S4T_ASCS00_VASCSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ASCS00_VASCSS4T" AUTOMATIC_RECOVER=false \
meta resource-stickiness=5000
primitive rsc_ip_S4T_ERS10 IPaddr2 \
params ip=10.0.10.13 \
op monitor interval=10s timeout=20s
primitive rsc_sap_S4T_ERS10 SAPInstance \
operations $id=rsc_sap_S4T_ERS10-operations \
op monitor interval=11 timeout=60 \
op_params on_fail=restart \
params InstanceName=S4T_ERS10_VERSS4T START_PROFILE="/sapmnt/S4T/profile/S4T_ERS10_VERSS4T" AUTOMATIC_RECOVER=false IS_ERS=true
#Groups
group grp_S4T_ASCS00 rsc_ip_S4T_ASCS00 rsc_sap_S4T_ASCS00 \
meta target-role=Started resource-stickiness=3000
group grp_S4T_ERS10 rsc_ip_S4T_ERS10 rsc_sap_S4T_ERS10 \
meta target-role=Started
#Colocations
colocation col_sap_S4T_no_both -5000: grp_S4T_ERS10 grp_S4T_ASCS00
#Stonith 1 should not run on primary node because it is controling primary node
location loc_s4app1_stonith_not_on_s4app1 res_ALIYUN_STONITH_1 -inf: s4app1
location loc_s4app2_stonith_not_on_s4app2 res_ALIYUN_STONITH_2 -inf: s4app2
#Order
order ord_sap_S4T_first_start_ascs Optional: rsc_sap_S4T_ASCS00:start rsc_sap_S4T_ERS10:stop symmetrical=false
#cluster setting
property cib-bootstrap-options: \
have-watchdog=false \
cluster-name=hacluster \
stonith-enabled=true \
stonith-timeout=150s
rsc_defaults rsc-options: \
migration-threshold=5000 \
resource-stickiness=1000
op_defaults op-options: \
timeout=600
用root使用者運行如下命令,讓SAP ASCS的資源被SUSE HAE接管。
crm configure load update HA_script.txt
檢查HA狀態,確保所有的resource啟動
crm_mon -r
7.5.5 去掉臨時HAVIP綁定
#yast2 network
將之前臨時綁定的ASCS和ERS的HAVIP綁定刪除
7.5.6 ASCS/ERS的起停
啟動ASCS/ERS instance
su - s4tadm
#啟動ASCS
sapcontrol -nr 00 -function StartService S4T
sapcontrol -nr 00 -function Start
#啟動ERS
sapcontrol -nr 10 -function StartService S4T
sapcontrol -nr 10 -function Start
停止ASCS/ERS instance
su - s4tadm
#停止ASCS
sapcontrol -nr 00 -function Stop
sapcontrol -nr 00 -function StopService S4T
#停止ERS
sapcontrol -nr 10 -function Stop
sapcontrol -nr 10 -function StopService S4T
7.5.7 HA叢集檢查
檢查FailoverConfig
sapcontrol -nr 00 -function HAGetFailoverConfig
檢查HACheckConfig
sapcontrol -nr 00 -function HACheckConfig
檢查HACheckFailoverConfig
sapcontrol -nr 00 -function HACheckFailoverConfig
7.6 安裝PAS Instance
PAS本身不參與HA的切換,安裝在本地。啟動SWPM安裝,選擇安裝PAS到本地
# ./sapinst
windows跳轉機瀏覽器中輸入訪問地址:
https://s4app1:4237/sapinst/docs/index.html
使用root使用者以及密碼登入(確保主機名稱解析和連接埠可訪問)按照規劃輸入Instance number不註冊sld,後續可以註冊根據需求選擇是否建立message server的ACL,本次部署不建立,後續可以建立
安裝AAS在s4app2本地與安裝PAS過程大致,過程略
7.7 配置hdbuserstore
PAS/AAS安裝完成之後需要配置hdbuserstore以確保PAS與AAS串連的是HANA的高可用虛擬IP對應的虛擬機器主機名。
su - s4tadm
hdbuserstore set default VDBS4T:30015 SAPHANADB "pasword"
hdbuserstore list
8.切換測試
關於高可用環境維護指南請參考SAP系統高可用環境維護指南。關於Suse HAE的日常管理工作及命令請參考Suse官方文檔《Administration Guide》