SAP S/4HANA 同可用區高可用部署指南
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
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
專有網絡VPC(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盤,關于云盤的相關產品文檔和性能請參見塊存儲性能。
選擇專有網絡和安全組,需要填寫之前創建或者已有的VPC和安全組信息(本例以hanasg安全組示意),關于安全組的設置和信息請參考安全組使用FAQ。
根據規劃和需求選擇RAM role(可選),檢查所有的選項后創建ECS實例,根據本次部署的規劃需要在華北2可用區G創建4臺ECS實例,創建完成后根據規劃通過修改信息選項來修改主機名或私有IP地址。
[2].配置彈性網卡
需要為高可用集群的每個ECS都創建彈性網卡,來設置心跳網絡。
控制臺->云服務器ECS->網絡與安全->彈性網卡,創建彈性網卡。
本例中按規劃需要創建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》。
方案一:共享塊存儲實現SBD fence功能(方案已下線)
共享塊存儲是一種支持多臺ECS實例并發讀寫訪問的數據塊級存儲設備,具備多并發、高性能、高可靠等特性,單塊共享塊存儲最多支持同時掛載到16臺ECS實例掛載共享塊存儲的操作。
共享塊存儲作為高可用集群的SBD設備,選擇與ECS同地域可用區,并掛載在高可用集群中的ECS實例中。
請聯系您的阿里云解決方案架構師(SA)協助你完成產品使用申請。
[1] 創建共享塊存儲
登錄控制臺->云服務器ECS->存儲與快照,點擊“共享塊存儲”,在ECS同地域同可用區創建共享塊存儲。
創建成功后,返回共享塊存儲控制臺,將剛才創建的共享塊存儲設備掛載到高可用集群中的兩臺ECS實例上。
[2] 配置共享塊存儲
登錄操作系統,使用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 為共享塊存儲設備標識。
[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的值替換成共享塊存儲的設備標識
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網關。
[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 文件存儲NAS
阿里云文件存儲(Network Attached Storage,簡稱 NAS)是面向阿里云 ECS 實例、E-HPC 和 Docker 等計算節點的文件存儲服務,提供標準的文件訪問協議,用戶無需對現有應用做任何修改,即可使用具備無限容量及性能擴展、單一命名空間、多共享、高可靠和高可用等特性的分布式文件系統。阿里云上部署SAP應用推薦Global主機與trans主機的文件系統采用文件存儲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的方案,選擇對應的配置腳本。
方案一:共享塊存儲實現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》