全部產品
Search
文件中心

SAP:SAP HANA 同可用性區域高可用部署指南

更新時間:Oct 25, 2024

SAP HANA 同可用性區域高可用部署指南

版本管理

版本

修訂日期

變更類型

生效日期

1.0

2018/9/7

2.0

2019/4/23

1.最佳化了部署過程和文檔結構

2.更新了全部截圖

3.增加了SAP HANA檔案系統LVM配置過程

2019/4/23

2.1

2019/7/4

1.部署架構圖更新

2.NAS參數最佳化

2019/7/4

2.2

2020/10/27

1.更新了SAP HANA認證執行個體規格等

2020/10/27

2.3

2020/12/10

1.增加作業系統和儲存配置內容,如時鐘源設定、關閉主機名稱自動更新等

2.SAP HANA認證執行個體規格更新等

2020/12/10

2.4

2021/05/28

1.Pacemaker SBD逾時時間最佳化

2021/05/28

2.5

2021/06/08

1.最佳化檔案系統規劃和配置部分

2021/06/08

2.6

2021/11/11

1.更新了基於fence_aliyun的fence方案

2.最佳化了雲產品的部署說明

2021/11/11

2.7

2022/12/5

1.更新了fence_aliyun組件依賴包針對不同作業系統版本的說明

2022/12/5

1、概述

本文檔描述了如何在阿里雲的同可用性區域內部署SAP HANA的高可用環境。

重要

本文檔無法代替SAP標準文檔,文檔中出現的安裝部署方式僅供參考,建議在部署之前閱讀SAP官方的安裝配置文檔以及其中建議的SAP Notes。

2、SAP HANA高可用架構

本次部署的架構設計如下:

mc-01

3、安裝前準備

3.1 SAP系統安裝介質

訪問方式

訪問原理

備忘

直接上傳

通過公網直接上傳到ECS

OSS + ossutil

上傳到OSS再下載到ECS

ossutil工具使用

3.2 VPC網路規劃

網路

位置

用途

分配網段

業務網

華東2 可用性區域F

For Business/SR

192.168.10.0/24

心跳網

華東2 可用性區域F

For HA

192.168.20.0/24

3.3 主機規劃

主機名稱

角色

心跳地址

業務地址

高可用虛擬IP(HAVIP)

saphana-01

SAP HANA主節點

192.168.20.19

192.168.10.168

192.168.10.12

saphana-02

SAP HANA備節點

192.168.20.20

192.168.10.169

192.168.10.12

3.4 檔案系統規劃

本樣本中的檔案系統劃分如下:

屬性

檔案系統大小

雲端硬碟容量*數量

雲端硬碟類型

檔案系統

VG

LVM條帶化

掛載點

資料盤

900G

300G*3

SSD或ESSD

XFS

datavg

/hana/data

資料盤

400G

400G*1

SSD或ESSD

XFS

logvg

/hana/log

資料盤

300G

300G*1

SSD或ESSD

XFS

sharedvg

/hana/shared

資料盤

50G

50G*1

高效雲端硬碟

XFS

sapvg

/usr/sap

3.5 VPC網路建立

Virtual Private Cloud(Virtual Private Cloud)是基於阿里雲構建的一個隔離的網路環境,專用網路之間邏輯上徹底隔離。專用網路是您自己專屬的雲上私人網路。您可以完全掌控自己的專用網路,例如選擇IP位址範圍、配置路由表和網關等。具體詳細資料和文檔請參考 產品文檔

登入控制台->專用網路,點擊“建立專用網路”。按規劃建立專用網路及SAP業務子網和心跳子網。

4、建立SAP HANA ECS執行個體

4.1 建立SAP HANA主節點執行個體

4.1.1 ECS 產品購買頁面

訪問 ECS購買頁面,在SAP HANA下選擇執行個體類型,點擊立即購買。

4.1.2 選擇付費方式

選擇 付費方式:訂用帳戶 或者 隨用隨付

4.1.3選擇對應地區和可用性區域

選擇地區和可用性區域。系統預設隨機分配可用性區域,您可以選擇適用的可用性區域。如何選擇地區和可用性區域,請參見 地區和可用性區域

本執行個體選擇華東2可用性區域A。

4.1.4 選擇執行個體規格

目前通過SAP HANA認證的執行個體規格請訪問SAP官網 Certified and Supported SAP HANA Hardware

4.1.5 選擇鏡像

您可以選擇公用鏡像、自訂鏡像、共用鏡像或從鏡像市場選擇鏡像。

SAP HANA的鏡像,可按實際需求選擇對應的鏡像類型和版本。

單擊“從鏡像市場選擇”,進入鏡像市場,輸入“sap”關鍵字查詢,本樣本使用的是“SUSE linux Enterprise Server for SAP 12 SP3”鏡像。

4.1.6 配置儲存

系統硬碟:必選項,用於安裝作業系統。指定系統硬碟的雲端硬碟類型和容量。

資料盤:可選項。如果在此時建立雲端硬碟作為資料盤,必須選擇雲端硬碟類型、容量、數量,並設定是否加密。您可以建立空雲端硬碟,也可以使用快照建立雲端硬碟。最多可以添加16塊雲端硬碟作資料盤。

資料盤的大小需要根據HANA執行個體的需求做相應的調整。

本樣本中, /hana/data 使用三塊同等容量的SSD或ESSD雲端硬碟用LVM做條帶化以滿足HANA的效能要求,/hana/log,/hana/shared 使用單塊SSD或ESSD雲端硬碟,檔案系統均為XFS。

有關SAP HANA儲存需求請參考 Sizing SAP HANA

4.1.7 選擇網路類型

單擊 下一步:網路和安全性群組,完成網路和安全性群組設定。

1、選擇網路類型

按規劃並選擇專用網路和業務網段交換器。

2、設定公網頻寬

按需設定合適的公網頻寬。

4.1.8 選擇安全性群組

選擇安全性群組。如果您自己沒有建立安全性群組,需要手工建立安全性群組用於管理ECS出和入的網路存取原則。預設建立安全性群組的規則,請參見預設安全性群組規則

4.1.9 網卡配置

先不增加第二張彈性網卡,ECS建立成功之後再添加第二張網卡。

4.1.10 設定部署集

在指定部署集中建立 ECS 執行個體時,會和處於同一部署集中的其他 ECS 執行個體嚴格按物理伺服器打散,保障在硬體故障等異常情況下的服務高可用性。

關於部署集的更多說明,請參考 使用部署集

在本樣本中,高可用架構的兩台SAP HANA執行個體將被放入部署集“S4HANA_HA”中,SAP的ASCS/SCS的高可用部署也建議使用這種方式來管理ECS。

選擇一個已經建立好的部署集,如果還沒有部署集,可以存取控制台->Elastic Compute Service->部署與彈性->部署集進行建立。

部署集建立完成後,返回剛才的頁面,選擇這個部署集,完成系統配置、分組設定。

4.2 建立SAP HANA備節點執行個體

參考上述步驟按需求和規劃建立SAP HANA備節點ECS執行個體。

說明

SAP HANA主備節點的ECS執行個體需要放在一個部署集中。

5、部署雲資源

5.1 配置彈性網卡

彈性網卡(ENI)是一種可以附加到Virtual Private Cloud類型ECS執行個體上的虛擬網卡,通過彈性網卡,您可以實現高可用叢集搭建、低成本容錯移轉和精細化的網路管理。所有地區均支援彈性網卡。具體說明請參見 彈性網卡

建立彈性網卡

本樣本,按規劃每台ECS各建立一塊額外的ENI,用於心跳網卡。

[1] 登入控制台->Elastic Compute Service->網路和安全->彈性網卡。確認跟ECS是同地區,點擊“建立彈性網卡”。

[2] 按規劃選擇對應的VPC網路、交換器等參數。ENI建立完成後,綁定對應的ECS執行個體。

[3] 登入作業系統配置網卡。

登入SUSE圖形視窗進入網路設定或者通過終端運行yast2 network,按規劃配置建立的ENI網卡的靜態IP地址和子網路遮罩,並確保網卡處於啟用狀態。可以通過以下命令來查詢網卡的配置和狀態:

ip addr sh
說明

如果需要修改主網卡內網IP地址,請參考 修改私人IP地址

5.2 配置高可用虛擬IP

高可用虛擬IP(Private High-Availability Virtual IP Address,簡稱HAVIP),是一種可以獨立建立和釋放的私網IP資源。這種私網IP的特殊之處在於,使用者可以在ECS上使用ARP協議進行該IP的宣告。本次部署使用高可用虛擬IP作為叢集中的虛擬IP掛載在叢集中的每一個節點。

5.2.1 建立高可用虛擬IP

高可用虛擬IP作為HANA instance提供服務的虛擬IP,選擇建立在業務網段(主網卡)。

登入控制台->Virtual Private Cloud->高可用虛擬IP,點擊建立“高可用虛擬IP”,這裡請選擇業務網段的交換器(主網卡),按需要選擇自動或手工分配IP地址。

說明

請聯絡您的阿里雲解決方案架構師(SA)協助你完成產品使用申請。

5.2.2 關聯SAP HANA主、備節點

進入已建立的高可用虛擬IP執行個體的管理介面,分別綁定叢集中的兩台ECS執行個體。

重要

初始綁定後,兩台ECS執行個體的狀態均為“備”。通過SUSE HAE的叢集軟體接管被管理資源後,才會顯示正確的狀態。

5.3 配置Fence

阿里雲提供兩個方案用於實現SAP系統高可用部署中的Fence的功能,推薦您選擇雲原生的《方案二:Fence_aliyun實現Stonith功能》。

5.3.1 方案一:共用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
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裝置標識。

配置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

配置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"

檢查SBD狀態

在兩個節點上,分別檢查SBD狀態:

sbd -d /dev/vdf list

確保SAP HANA兩個節點的SBD狀態均是clear:

sbd -d /dev/vdf list
0       saphana-01      clear
1       saphana-02      clear

驗證SBD配置

警告

請確保被fence節點的應用程式已關閉,此操作將觸發節點重啟動作。

本樣本,登入主節點saphana01。

sbd -d /dev/vdf message saphana-02 reset

如果備節點saphana-02正常重啟,說明配置成功。

備節點重啟後,還需要手動將其重設為clear狀態。

sbd -d /dev/vdf list
0       saphana-01      clear
1       saphana-02      reset   saphana-01
sbd -d /dev/vdf message saphana-02 clear
sbd -d /dev/vdf list
0       saphana-01      clear
1       saphana-02      clear   saphana-01

5.3.2 方案二:Fence_aliyun實現Fence功能

重要

為方便實現Fence功能,此處提供了參考方案,但部署方案並非標準產品交付的一部份,本方案僅供參考。使用者可根據實際情況自行實現Fence功能。

fence_aliyun是針對阿里雲環境開發的,用於隔離SAP系統高可用環境故障節點的fence代理程式。通過調用阿里雲Open API實現對阿里雲雲資源的靈活調度和管理,支援同可用性區域的SAP系統高可用部署,滿足企業對SAP核心應用的高可用部署的需求。

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。

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
wget https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz
tar -xf Python-3.6.15.tgz
cd Python-3.6.15/
./configure
make && make install
# 重啟ECS並安裝驗證
python3 -V

# 安裝pip3
curl https://bootstrap.pypa.io/pip/3.6/get-pip.py -o get-pip.py
python3 get-pip.py
# 安裝驗證
pip3 -V

[2] 安裝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

[3] 配置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”角色。

[4] fence_aliyun安裝和配置

下載最新版fence_aliyun

重要

下載fence_aliyun需要訪問github,請確保ECS執行個體的網路環境可以正常訪問github網站。

開啟瀏覽器訪問github fence_aliyun源碼,建立並複製源碼到 /usr/sbin/fence_aliyun檔案中。

說明

如果已經存在/usr/sbin/fence_aliyun,請先用命令清空該檔案

cat /dev/null > /usr/sbin/fence_aliyun

# 配置許可權
chmod 755 /usr/sbin/fence_aliyun
chown root:root /usr/sbin/fence_aliyun

適配使用者環境

# 指定解譯器為python3
sed -i "s|@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擷取ECS執行個體的運行狀態
# 文法樣本:
# 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執行個體的名稱沒有中文字元。

6、作業系統配置

6.1 維護主機名

分別在高可用叢集的兩台SAP HANA ECS執行個體上,配置兩台 HANA 伺服器之間的主機名稱解析。

本樣本的 /etc/hosts 檔案內容如下:

127.0.0.1       localhost
#業務網
192.168.10.168  saphana-01      saphana-01
192.168.10.169  saphana-02      saphana-02

#心跳網
192.168.20.19   hana-ha01 hana-ha01
192.168.20.20   hana-ha02 hana-ha02

6.2 ECS SSH互信配置

高可用叢集的兩台SAP HANA ECS執行個體需要配置 SSH互信,配置樣本如下。

6.2.1 配置認證公開金鑰

在SAP HANA主節點執行如下命令:

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.169

在SAP HANA備節點上執行如下命令:

ssh-keygen -t rsa
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.168

6.2.2 驗證配置結果

分別在兩個節點上,使用 SSH 登入另外一個節點,如果不要求輸入密碼登入,則說明互信已經建立。

6.3 關閉DHCP自動化佈建主機名稱

分別在主備節點ECS上執行以下命令:

sed -i '/DHCLIENT_SET_HOSTNAME/ c\DHCLIENT_SET_HOSTNAME="no"' /etc/sysconfig/network/dhcp

6.4 關閉/etc/hosts自動更新主機名稱

sed -i "s/^ - update_etc_hosts/#- update_etc_hosts/" /etc/cloud/cloud.cfg

6.5 設定時鐘源為tsc

說明

不正確的時鐘源設定可能會使SAP HANA出現潛在的效能問題。

[1] 先確認目前時間源配置

cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

[2] 查詢可用的時鐘源

cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock tsc acpi_pm

[3] 將時鐘源設定為tsc

sudo bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'

設定成功的話,核心訊息裡會顯示以下資訊

dmesg | less
clocksource: Switched to clocksource tsc

[4] 設定系統啟動時的時鐘源為tsc

備份並編輯 /etc/default/grub,為GRUB_CMDLINE_LINUX 選項添加 clocksource=tsc tsc=reliable。

GRUB_CMDLINE_LINUX=" net.ifnames=0 console=tty0 console=ttyS0,115200n8 clocksource=tsc tsc=reliable"

產生grub.cfg檔案
grub2-mkconfig -o /boot/grub2/grub.cfg

登入阿里雲ECS控制台,重啟ECS使變更生效。

7、ECS Metrics Collector for SAP監控代理

ECS Metrics Collector監控代理程式,用於雲平台上SAP系統收集需要的虛擬機器設定資訊和底層實體資源使用相關的資訊,供日後做效能統計和問題分析使用。

每台SAP應用和資料庫都需要安裝Metrics Collector,監控代理的部署請參考 ECS Metrics Collector for SAP部署指南

8、HANA檔案系統劃分

按前面的檔案系統規劃,用LVM來管理和配置雲端硬碟。

有關LVM更詳細的介紹,請參考 LVM HOWTO

  • 建立PV和VG

pvcreate /dev/vdb /dev/vdc /dev/vdd /dev/vde /dev/vdf /dev/vdg
vgcreate datavg /dev/vdb /dev/vdc /dev/vdd
vgcreate logvg /dev/vde
vgcreate sharedvg /dev/vdf
vgcreate sapvg /dev/vdg
  • 建立LV

'將datavg的三塊300G的SSD雲端硬碟製作條帶化'
 lvcreate -l 100%FREE -n datalv -i 3 -I 256 datavg
 lvcreate -l 100%FREE -n loglv logvg
 lvcreate -l 100%FREE -n sharedlv sharedvg
 lvcreate -l 100%FREE -n usrsaplv sapvg
  • 建立掛載點並格式檔案系統

mkdir -p /usr/sap /hana/data /hana/log /hana/shared
mkfs.xfs /dev/sapvg/usrsaplv
mkfs.xfs /dev/datavg/datalv
mkfs.xfs /dev/logvg/loglv
mkfs.xfs /dev/sharedvg/sharedlv
  • 掛載檔案系統並加到開機自啟動項

vim /etc/fstab
# 添加下列項:
/dev/mapper/datavg-datalv  /hana/data  xfs defaults    0   0
/dev/mapper/logvg-loglv   /hana/log   xfs defaults    0   0
/dev/mapper/sharedvg-sharedlv    /hana/shared    xfs defaults    0   0
/dev/mapper/sapvg-usrsaplv /usr/sap    xfs defaults    0   0

# 掛載檔案系統
mount -a

9、SAP HANA的安裝和配置

9.1 安裝SAP HANA

說明

SAP HANA的主、備節點的System ID和Instance ID要相同。本樣本的SAP HANA的System ID為H01,Instance ID為00。

SAP HANA的安裝和配置請參考 SAP HANA Platform

9.2 配置HANA System Replication

SAP HANA System Replication的配置請參考 How To Perform System Replication for SAP HANA

10、SLES Cluster HA安裝配置

10.1 安裝SUSE HAE軟體

有關SUSE HAE操作手冊請參考:SUSE Product Documentation

在SAP HANA主、備節點上,檢查是否已經安裝SUSE HAE組件和SAPHanaSR等必要組件。

說明

本樣本使用的是SUSE CSP(Cloud Service Provider)付費鏡像,此鏡像已經預置了阿里雲SUSE SMT Server配置,可直接進行組件檢查和安裝。如果是自訂鏡像或其他鏡像,請自行購買SUSE授權並註冊到SUSE官方的SMT Server或者手工配置Zypper repository源。

請確保已經正確安裝了以下組件:

# 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

10.2 配置叢集

在SAP HANA執行個體上通過VNC圖形介面配置Corosync

# 進入叢集配置
yast2 cluster

[1] 配置communication channel

  • Channel選擇心跳網段,Redundant Channel選擇業務網段。

  • 按正確的順序依次添加Member address(Redundant Channel輸入業務地址)。

  • Excepted Votes: 2

  • Transport: Unicast

[2] 配置Security

勾選”Enable Security Auth”,並點擊 Generate Auth Key File。

[3] 配置Csync2

  • 添加Sync host。

  • 點擊Add Suggested Files。

  • 點擊Generate Pre-Shared-Keys。

  • 點擊Turn csync2 ON。

Configure conntrackd預設,直接下一步。

[4] 配置Service

  • 確認Cluster服務不要設成開機自啟動。

配置完成後儲存退出,將Corosync設定檔複製到SAP HANA的備節點。

# scp -pr /etc/corosync/authkey /etc/corosync/corosync.conf root@saphana-02:/etc/corosync/

[5] 啟動叢集

在兩個節點裡執行如下命令:

# systemctl start pacemaker

[6] 查看叢集狀態

現在兩個node都已經online了,被管理的資源後面做配置。

crm_mon -r
Stack: corosync
Current DC: saphana-02 (version 1.1.16-4.8-77ea74d) - partition with quorum
Last updated: Tue Apr 23 11:22:38 2019
Last change: Tue Apr 23 11:22:36 2019 by hacluster via crmd on saphana-02

2 nodes configured
0 resources configured

Online: [ saphana-01 saphana-02 ]

No resources

[7] 啟動Web網頁圖形化配置

(1)啟用兩台ECS的Hawk2服務

# 設定hacluster使用者的密碼
passwd hacluster

# 重啟服務,使設定生效
systemctl restart hawk

(2)訪問Hawk2

開啟瀏覽器訪問hawk的Web控制台。

https://[ECS執行個體IP地址]:7630

輸入使用者名稱 hacluster和密碼登入。

11、SAP HANA與SUSE HAE整合

本樣本介紹了兩種Fence裝置的配置,請根據您選擇的Fence的方案,選擇對應的配置指令碼。

11.1 方案一:共用Block Storage實現SBD fence功能(方案已下線)

登入叢集任意節點建立文字檔,將指令碼中的”SID、InstanceNumber、和params ip” 三個參數值替換成實際部署的SAP系統的值。

本樣本中,SID:H01,InstanceNumber:00,params ip:192.168.10.12,指令檔名HANA_HA_script.txt。

###SAP HANA Topology is a resource agent that monitors and analyze the HANA landscape and communicate the status between two nodes##
primitive rsc_SAPHanaTopology_HDB ocf:suse:SAPHanaTopology \
        operations $id=rsc_SAPHanaTopology_HDB-operations \
        op monitor interval=10 timeout=600 \
        op start interval=0 timeout=600 \
        op stop interval=0 timeout=300 \
        params SID=H01 InstanceNumber=00
###This file defines the resources in the cluster together with the Virtual IP###
primitive rsc_SAPHana_HDB ocf:suse:SAPHana \
        operations $id=rsc_SAPHana_HDB-operations \
        op start interval=0 timeout=3600 \
        op stop interval=0 timeout=3600 \
        op promote interval=0 timeout=3600 \
        op monitor interval=60 role=Master timeout=700 \
        op monitor interval=61 role=Slave timeout=700 \
        params SID=H01 InstanceNumber=00 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false
#This is for sbd setting##
primitive rsc_sbd stonith:external/sbd \
        op monitor interval=20 timeout=15 \
        meta target-role=Started maintenance=false
#This is for VIP resource setting##
primitive rsc_vip IPaddr2 \
        operations $id=rsc_vip-operations \
        op monitor interval=10s timeout=20s \
        params ip=192.168.10.12
ms msl_SAPHana_HDB rsc_SAPHana_HDB \
        meta is-managed=true notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true maintenance=false
clone cln_SAPHanaTopology_HDB rsc_SAPHanaTopology_HDB \
        meta is-managed=true clone-node-max=1 target-role=Started interleave=true maintenance=false
colocation col_saphana_ip_HDB 2000: rsc_vip:Started msl_SAPHana_HDB:Master
order ord_SAPHana_HDB Optional: cln_SAPHanaTopology_HDB msl_SAPHana_HDB
property cib-bootstrap-options: \
        have-watchdog=true \
        cluster-infrastructure=corosync \
        cluster-name=cluster \
        no-quorum-policy=ignore \
        stonith-enabled=true \
        stonith-action=reboot \
        stonith-timeout=150s
rsc_defaults rsc-options: \
        migration-threshold=5000 \
        resource-stickiness=1000
op_defaults op-options: \
        timeout=600 \
        record-pending=true

11.2 方案二:Fence_aliyun實現Fence功能

登入叢集任意節點建立文字檔,拷貝樣本中的指令碼按SAP HANA的實際部署的情況,修改如下參數:

  • plug的值替換成SAP HANA叢集的兩台ECS的執行個體ID。

  • ram_role的值替換成上面配置的ram role。

  • region的值替換成ECS執行個體所在的地區ID。

  • ip的值替換成叢集的高可用虛擬IP地址。

  • SID和InstanceNumber的值替換成SAP HANA執行個體的SID和執行個體編號。

  • location後面的參數中替換成SAP HANA執行個體的主機名稱。

說明

阿里雲地區和Region ID對照關係,請訪問 地區和可用性區域

本樣本中的指令檔名HANA_HA_script.txt。

primitive res_ALIYUN_STONITH_1 stonith:fence_aliyun \
    op monitor interval=120 timeout=60 \
    params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=xxxxxxxxxxxxxxxxxxxx region=cn-xxxx \
    meta target-role=Started
primitive res_ALIYUN_STONITH_2 stonith:fence_aliyun \
    op monitor interval=120 timeout=60 \
    params plug=i-xxxxxxxxxxxxxxxxxxxx ram_role=xxxxxxxxxxxxxxxxxxxx region=cn-xxxx \
    meta target-role=Started
# havip resources   
primitive rsc_vip IPaddr2 \
        operations $id=rsc_vip-operations \
        op monitor interval=10s timeout=20s \
        params ip=x.x.x.x
###SAP HANA Topology is a resource agent that monitors and analyze the HANA landscape and communicate the status between two nodes##
primitive rsc_SAPHanaTopology_HDB ocf:suse:SAPHanaTopology \
        operations $id=rsc_SAPHanaTopology_HDB-operations \
        op monitor interval=10 timeout=600 \
        op start interval=0 timeout=600 \
        op stop interval=0 timeout=300 \
        params SID=XXX InstanceNumber=XX
###This file defines the resources in the cluster together with the Virtual IP###
primitive rsc_SAPHana_HDB ocf:suse:SAPHana \
        operations $id=rsc_SAPHana_HDB-operations \
        op start interval=0 timeout=3600 \
        op stop interval=0 timeout=3600 \
        op promote interval=0 timeout=3600 \
        op monitor interval=60 role=Master timeout=700 \
        op monitor interval=61 role=Slave timeout=700 \
        params SID=XXX InstanceNumber=XX PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false

ms msl_SAPHana_HDB rsc_SAPHana_HDB \
        meta is-managed=true notify=true clone-max=2 clone-node-max=1 target-role=Started interleave=true maintenance=false
clone cln_SAPHanaTopology_HDB rsc_SAPHanaTopology_HDB \
        meta is-managed=true clone-node-max=1 target-role=Started interleave=true maintenance=false
colocation col_saphana_ip_HDB 2000: rsc_vip:Started msl_SAPHana_HDB:Master
location loc_saphana-01_stonith_not_on_saphana-01 res_ALIYUN_STONITH_1 -inf: saphana-01
#Stonith 1 should not run on primary node because it is controling primary node
location loc_saphana-02_stonith_not_on_saphana-02 res_ALIYUN_STONITH_2 -inf: saphana-02
order ord_SAPHana_HDB Optional: cln_SAPHanaTopology_HDB msl_SAPHana_HDB

property cib-bootstrap-options: \
        have-watchdog=false \
        cluster-infrastructure=corosync \
        cluster-name=cluster \
        stonith-enabled=true \
        stonith-action=off \
        stonith-timeout=150s
rsc_defaults rsc-options: \
        migration-threshold=5000 \
        resource-stickiness=1000
op_defaults op-options: \
        timeout=600

用root使用者運行如下命令,讓SAP HANA資源被SUSE HAE接管起來。

crm configure load update HANA_HA_script.txt

11.3 驗證叢集狀態

登入Hawk2 web控制台,訪問地址 https://[ECS執行個體的IP地址]:7630。

方案一共用Block StorageHAE Cluster的Status和Dashboard如下:

hanasr_05

hanasr_06

也可以登入任意一個節點,使用crmsh檢查當前叢集狀態。

crm_mon -r
Stack: corosync
Current DC: saphana-01 (version 1.1.16-4.8-77ea74d) - partition with quorum
Last updated: Wed Apr 24 11:48:38 2019
Last change: Wed Apr 24 11:48:35 2019 by root via crm_attribute on saphana-01

2 nodes configured
6 resources configured

Online: [ saphana-01 saphana-02 ]

Full list of resources:

rsc_sbd (stonith:external/sbd): Started saphana-01
rsc_vip (ocf::heartbeat:IPaddr2):       Started saphana-01
 Master/Slave Set: msl_SAPHana_HDB [rsc_SAPHana_HDB]
     Masters: [ saphana-01 ]
     Slaves: [ saphana-02 ]
 Clone Set: cln_SAPHanaTopology_HDB [rsc_SAPHanaTopology_HDB]
     Started: [ saphana-01 saphana-02 ]

方案Fence agnet中HAE Cluster的Status和Dashboard如下:

0102

也可以登入任意一個節點,使用crmsh檢查當前叢集狀態。

crm_mon -r
Stack: corosync
Current DC: hana02 (version 2.0.1+20190417.13d370ca9-3.21.1-2.0.1+20190417.13d370ca9) - partition with quorum
Last updated: Sat Jan 29 13:14:47 2022
Last change: Sat Jan 29 13:13:44 2022 by root via crm_attribute on hana01

2 nodes configured
7 resources configured

Online: [ hana01 hana02 ]

Full list of resources:

res_ALIYUN_STONITH_1    (stonith:fence_aliyun): Started hana02
res_ALIYUN_STONITH_2    (stonith:fence_aliyun): Started hana01
rsc_vip (ocf::heartbeat:IPaddr2):       Started hana01
 Clone Set: msl_SAPHana_HDB [rsc_SAPHana_HDB] (promotable)
     Masters: [ hana01 ]
     Slaves: [ hana02 ]
 Clone Set: cln_SAPHanaTopology_HDB [rsc_SAPHanaTopology_HDB]
     Started: [ hana01 hana02 ]

12、相關參考