SAP HANA 同可用區高可用部署指南
本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
SAP HANA 同可用區高可用部署指南
6.2 SSH互信配置
6.4 關閉/etc/hosts自動更新設置
8、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高可用架構
本次部署的架構設計如下:
3、安裝前準備
3.1 SAP系統安裝介質
訪問方式 | 訪問原理 | 備注 |
直接上傳 | 通過公網直接上傳到ECS | |
OSS + ossutil | 上傳到OSS再下載到ECS |
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網絡創建
專有網絡VPC(Virtual Private Cloud)是基于阿里云構建的一個隔離的網絡環境,專有網絡之間邏輯上徹底隔離。專有網絡是您自己獨有的云上私有網絡。您可以完全掌控自己的專有網絡,例如選擇IP地址范圍、配置路由表和網關等。具體詳細信息和文檔請參考 產品文檔。
登錄控制臺->專有網絡,點擊“創建專有網絡”。按規劃創建專有網絡及SAP業務子網和心跳子網。
4、創建SAP HANA ECS實例
4.1 創建SAP HANA主節點實例
4.1.1 ECS 產品購買頁面
訪問 https://www.aliyun.com/product/ecs購買頁面,在SAP HANA下選擇實例類型,點擊立即購買。
4.1.2 選擇付費方式
選擇 付費方式:包年包月 或者 按量付費。
4.1.3選擇對應區域和可用區
選擇地域和可用區。系統默認隨機分配可用區,您可以選擇適用的可用區。如何選擇地域和可用區,請參見 地域和可用區。
本實例選擇華東2可用區A。
4.1.4 選擇實例規格
目前通過SAP HANA認證的實例規格請參考 認證ECS實例(SAP HANA)或者訪問SAP官網 Certified and Supported SAP HANA Hardware。
4.1.5 選擇鏡像
您可以選擇公共鏡像、自定義鏡像、共享鏡像或從鏡像市場選擇鏡像。
SAP HANA的鏡像,可按實際需求選擇對應的鏡像類型和版本。
單擊“從鏡像市場選擇”,進入鏡像市場,輸入“sap”關鍵字查詢,本示例使用的是“SUSE linux Enterprise Server for SAP 12 SP3”鏡像。
更多信息,請參考FAQ:SUSE Linux Enterprise for SAP
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。
選擇一個已經創建好的部署集,如果還沒有部署集,可以訪問控制臺->云服務器ECS->部署與彈性->部署集進行創建。
部署集創建完成后,返回剛才的頁面,選擇這個部署集,完成系統配置、分組設置。
4.2 創建SAP HANA備節點實例
參考上述步驟按需求和規劃創建SAP HANA備節點ECS實例。
SAP HANA主備節點的ECS實例需要放在一個部署集中。
5、部署云資源
5.1 配置彈性網卡
彈性網卡(ENI)是一種可以附加到專有網絡VPC類型ECS實例上的虛擬網卡,通過彈性網卡,您可以實現高可用集群搭建、低成本故障轉移和精細化的網絡管理。所有地域均支持彈性網卡。具體說明請參見 彈性網卡。
創建彈性網卡
本示例,按規劃每臺ECS各創建一塊額外的ENI,用于心跳網卡。
[1] 登錄控制臺->云服務器ECS->網絡和安全->彈性網卡。確認跟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,選擇創建在業務網段(主網卡)。
登錄控制臺->專有網絡VPC->高可用虛擬IP,點擊創建“高可用虛擬IP”,這里請選擇業務網段的交換機(主網卡),按需要選擇自動或手工分配IP地址。
請聯系您的阿里云解決方案架構師(SA)協助你完成產品使用申請。
5.2.2 關聯SAP HANA主、備節點
進入已創建的高可用虛擬IP實例的管理界面,分別綁定集群中的兩臺ECS實例。
初始綁定后,兩臺ECS實例的狀態均為“備”。通過SUSE HAE的集群軟件接管被管理資源后,才會顯示正確的狀態。
5.3 配置Fence
阿里云提供兩個方案用于實現SAP系統高可用部署中的Fence的功能,推薦您選擇云原生的《方案二:Fence_aliyun實現Stonith功能》。
如果您希望了解,如何將已經部署在阿里云上SAP HANA高可用環境(基于共享塊存儲方案)切換到云原生的Fence_aliyun方案,請參閱如何從SBD fence方案遷移到Fence aliyun方案?
5.3.1 方案一:共享塊存儲實現SBD fence功能(方案已下線)
共享塊存儲是一種支持多臺ECS實例并發讀寫訪問的數據塊級存儲設備,具備多并發、高性能、高可靠等特性,單塊共享塊存儲最多支持同時掛載到16臺ECS實例掛載共享塊存儲的操作。
共享塊存儲作為高可用集群的SBD設備,選擇與ECS同地域可用區,并掛載在高可用集群中的ECS實例中。
請聯系您的阿里云解決方案架構師(SA)協助你完成產品使用申請。
[1] 創建共享塊存儲
登錄控制臺->云服務器ECS->存儲與快照,點擊“共享塊存儲”,在ECS同地域同可用區創建共享塊存儲。
創建成功后,返回共享塊存儲控制臺,將剛才創建的共享塊存儲設備掛載到高可用集群中的兩臺ECS實例上。
[2] 配置共享塊存儲
登錄操作系統,查看磁盤信息
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 為共享塊存儲設備標識。
配置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的值替換成共享塊存儲的設備標識
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組件。關于SUSE CSP鏡像的更多信息請參考FAQ:SUSE Linux Enterprise for SAP。
如果您使用的是自定義鏡像,請參考 How to register SLES using the SUSEConnect command line tool連接SUSE官方更新源。
安裝python等開源軟件需要連接公網,請確保已經為ECS配置了EIP公網地址或NAT網關。
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出現潛在的性能問題,詳情請參考 HANA Alert “Alert Timer fallback”。
[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源。有關阿里云SUSE CSP鏡像的更多信息,請參考FAQ:SUSE Linux Enterprise for SAP。
請確保已經正確安裝了以下組件:
# 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 方案一:共享塊存儲實現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。
方案一共享塊存儲HAE Cluster的Status和Dashboard如下:
也可以登錄任意一個節點,使用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如下:
也可以登錄任意一個節點,使用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、相關參考
SUSE Linux Enterprise High Availability Extension SUSE Linux Enterprise High Availability Extension。
有關SAP系統高可用環境維護請參考 SAP系統高可用環境維護指南。