Date: 14 1 月, 2024
使用 SIOS LifeKeeper 在 AWS 中透過 HANA 3 節點 HSR 叢集建置高可用性
簡介:如何確保資料庫的 HA 和 DR
在 AWS 中建立高度可用的 SAP HANA 環境是許多企業的關鍵任務。本指南提供了使用以下命令設定 3 節點 HANA 系統複製 (HSR) 叢集的詳細演練:SIOS 生命守護者在AWS中,確保資料庫彈性和高可用性。
先決條件
- 能夠部署 EC2 執行個體的 AWS 帳戶。
- SIOS LifeKeeper 軟體
- SIOS LifeKeeper 評估或永久許可證
- SAP HANA 軟體
- 熟悉 AWS 服務和 SAP HANA。
步驟 1:準備您的 AWS 環境
EC2執行個體部署
在 AWS 中部署三個 EC2 執行個體。這些實例將充當 HANA 叢集的主節點、輔助節點和第三節點。確保它們符合 SAP HANA 和 SIOS LifeKeeper 的硬體和軟體要求。確保在建置實例時遵循 SAP HANA 大小調整指南。
網路設定
配置您的 VPC、子網路和安全群組,以允許節點之間進行通訊並允許存取必要的服務。
在不同區域配置 HANA 節點時,您可以使用 SIOS LifeKeeper for Linux Route53 應用程式復原套件或 ARK 保護 DNS 名稱。以下是 AWS 中 3 節點 HANA 資料庫的架構:
設定儲存時,請為 /usr/sap、/hana/data、/hana/log 和 /hana/shared 使用單獨的 EBS 磁碟區。
我們有 2 個 VPC,每個區域一個。我們需要在 VPC 之間設定對等互連,並將路由新增至路由表中,以確保伺服器可以相互通訊。我們還需要修改安全群組以允許伺服器之間的流量。
最後,我們需要建立一個包含兩個 VPC 的託管區域,並新增用於與活動 HANA 節點通訊的網域和主機名稱的記錄。
步驟 2:安裝並設定 SAP HANA
每個節點上的安裝
在每個 EC2 執行個體上安裝 SAP HANA。確保所有節點的版本一致,以避免相容性問題。這是迄今為止最具挑戰性的過程。
首先確定您的安裝設定。對於我來說,我使用以下內容:
SID:D11
- HANA實例數量:11
- Route53 中的 HANA 資料庫 FQDN:saphana.sapdemo
- Node1 主機名稱:sapdemohana1
- 節點2主機名稱:sapdemohana2
- Node3 主機名稱:sapdemohana3
- 例型:r5.4xlarge
本地實例儲存:
- 30GB /(根卷)
- 15GB/usr/sap
- 60GB /hana/共享*
- 200GB /hana/數據
- 200GB /hana/日誌
*對於此安裝,這些 HANA 資料庫伺服器之間未共用儲存。如果您嘗試使用共用存儲,您將無法建立相同的伺服器,因為 hdblcm 將阻止安裝並出現有關 SID 和實例已存在的錯誤。
在每個節點上獨立安裝 HANA 伺服器軟體,就好像它是一個獨立系統一樣。確保安裝了所有必需的庫,對於 RHEL 8,它們位於 SAP note 2772999 中。您需要確保在安裝 compact-sap-c++-9-9.1.1-2.3.el7_6.x86_64.rpm 後創建符號鏈接通過運行: ln -s /opt/rh/SAP/lib64/compat-sap-++-10.so /usr/sap/lib/libstdc++.so.6
- yum install xorg-x11-server-Xorg xorg-x11-xauth -y #for LifeKeeper GUI
- yum 安裝 nfs-utils
建立分割區、格式化儲存並附加它。建立您的交換文件。
我在所有主機上建立 RSA 金鑰,然後透過將公鑰新增至 .ssh/authorized_keys 檔案來允許 root ssh 在 hana 節點之間登入。這將使安裝變得更加容易。
裝載 HANA 安裝媒體磁碟區。
- yum localinstall compat-sap-c++-10-10.2.1-11.el7_9.x86_64.rpm
- yum localinstall compat-sap-c++-9-9.1.1-2.3.el7_6.x86_64.rpm
- mkdir /usr/sap/lib
- ln -s /opt/rh/SAP/lib64/compat-sap-++-10.so /usr/sap/lib/libstdc++.so.6
- 百勝安裝 compat-sap-c++-10 libatomic -y
從正確的 hana 安裝媒體目錄運行 hdblcm。在所有節點上成功安裝 HANA 後,您就可以開始下一步了。
系統複製設定
您需要在啟用 HSR 之前進行備份:
- su – <SID>adm [即。蘇-d11adm]
- hdbsql -i <實例編號>adm -u system -p <密碼> [即。hdbsql -i 11 -u系統-p「密碼123」]
- 使用檔案備份資料(‘/usr/sap/<SID>/HDB<實例編號>’) [即。使用檔案備份資料(‘/usr/sap/D11/HDB11’)
在所有節點上重複上述備份過程。
在每個節點上配置 HANA 系統複製:
在主 HANA 系統上啟動 HDB 實例(如果尚未執行): sapcontrol -nr <實例編號> -function StartSystem HDB [即:sapcontrol -nr 11 -function StartSystem HDB]
在主站啟動 HSR: hdbnsutil -sr_enable –name=<主站台名稱> [即。hdbnsutil -sr_enable –name=sapdemohana1
停止輔助 HANA 系統上的 HDB 實例: sapcontrol -nr <實例編號> -function StopSystem HDB [即。sapcontrol -nr 11 -function StopSystem HDB]
在其他 HANA 系統中,備份 KEY 和 DAT 檔案並將主 KEY 和 DAT 檔案複製到所需位置:
- mv /usr/sap/<SID>/SYS/global/security/rsecssfs/data/SSFS_<SID>.DAT /usr/sap/<SID>/SYS/global/security/rsecssfs/data/SSFS_<SID>。 DAT.BAK [即。mv /usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT /usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT.BAK]
- mv /usr/sap/<SID>/SYS/global/security/rsecssfs/key/SSFS_<SID>.KEY /usr/sap/<SID>/SYS/global/security/rsecssfs/key/SSFS_<SID>. KEY.BAK [即。mv /usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY /usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY.BAK]
- scp root@<主節點>:/usr/sap/<SID>/SYS/global/security/rsecssfs/data/SSFS_<SID>.DAT /usr/sap/<SID>/SYS/global/security/rsecssfs/資料/SSFS_<SID>.DAT [即。scp root@sapdemohana1:/usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT /usr/sap/D11/SYS/global/security/rsecssfs/data/SSFS_D11.DAT]
- scp root@<主節點>:/usr/sap/<SID>/SYS/global/security/rsecssfs/key/SSFS_<SID>.KEY /usr/sap/<SID>/SYS/global/security/rsecssfs/ key/SSFS_<SID>.KEY [即。scp root@sapdemohana1:/usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY /usr/sap/D11/SYS/global/security/rsecssfs/key/SSFS_D11.KEY]
確保金鑰和 dat 檔案的擁有者是 <SID>adm sapsys:
- [root@sapdemohana2 ~]# ls -l /usr/sap/D11/SYS/global/security/rsecssfs/data/
- 總計 12
- -rw-r–r– 1 d11adm sapsys 2960 年 1 月 3 日 22:19 SSFS_D11.DAT
- -rw-r–r– 1 d11adm sapsys 2960 年 1 月 3 日 22:15 SSFS_D11.DAT.BAK
將附加 HANA 系統註冊到主 HANA 系統 – 必須以管理員使用者身分完成:
- hdbnsutil -sr_register –name=<輔助 HSR 名稱> –remoteHost=<SAP HANA 系統的主主機名稱> –remoteInstance=<遠端實例編號> –operationMode=<delta_datashipping | 日誌重播 | logreplay_readaccess> –replicationMode=<同步 | 同步記憶體 | 異步>
[IE。hdbnsutil -sr_register –name=sapdemohana2 –remoteHost=sapdemohana1 –remoteInstance=11 –operationMode=logreplay –replicationMode=sync]
檢查所有系統上的 HSR 狀態,以管理員使用者身分執行以下命令: d11adm@sapdemohana4:/usr/sap/D11/HDB11>hdbnsutil -sr_state
一旦所有系統都在線,您就可以進入下一步。
步驟 3:安裝 SIOS LifeKeeper
AWS CLI 安裝
安裝 AWS CLI 並使用具有以下權限的金鑰對其進行配置:
路由表(後端)配置:
- ec2:描述路由表
- ec2:替換路由
- ec2:描述網路介面屬性
- ec2:修改網路介面屬性
- 彈性IP(前端)配置:
- ec2:描述地址
- ec2:關聯地址
- ec2:解除關聯位址
LifeKeeper安裝
在每個節點上安裝 SIOS LifeKeeper。這涉及運行安裝腳本並遵循安裝嚮導,該嚮導將指導您完成必要的步驟。對於此安裝,我使用網路、Route53 ARK 和資料庫、SAP HANA ARK 以及見證功能。
編輯 /etc/selinux/config 檔案並停用 selinux:
我還更改了主機名稱並編輯了 /etc/hosts 檔案。最後編輯 /etc/default/LifeKeeper 檔案並將 /usr/local/bin 加入到 PATH 中:
更改 NOBCASTPING=1:
我還將 QUORUM_LOSS_ACTION 更改為 osu:
確保 Xwindows 可以工作。我從.bashrc 中刪除cp 別名,並將/opt/LifeKeeper/bin 和/usr/local/bin 加入到我的.bash_profile 中,並將ec2-users .Xauthority 檔案複製到root 和<SID>adm 主目錄,以便Xwindows將工作:
我更改 root 密碼並重新啟動。在啟動 LifeKeeper GUI 之前。確保 HSR 在所有節點上都在線並且所有節點都已註冊:
配置
啟動 LifeKeeper GUI:lkGUIapp 並使用 root 使用者和密碼登入:
點選連線按鈕登入叢集中的其他節點:
登入所有節點後,按一下「建立通訊路徑」按鈕:
當它要求本地伺服器時點擊下一步,然後按住 Shift 並選擇所有節點:
點擊“接受預設值”並在完成後點擊“完成”。再次點擊「建立通訊路徑」按鈕,這次更改為第二個節點:
點擊下一步並選擇第三個節點:
按一下“下一步”按鈕,直到您可以按一下“接受預設值”按鈕。當完成擊中完成。現在點選「建立資源層次結構」按鈕:
選擇 IP 套件並點擊下一步:
點擊下一步,直到到達 IP 資源頁面。這裡輸入 0.0.0.0 並點選下一步:
點擊下一步,直到到達“創建”按鈕。點擊建立按鈕:
完成後點選下一步:點選接受預設值,目標伺服器顯示第二個節點:
完成後點擊下一個伺服器:
點擊“接受預設值”,顯示第三個節點,完成後點擊“完成”:
命中完成:
現在我們有了一個 IP 資源,我們可以新增 Route53 資源,這將更改 dns 條目以將 FQDN 解析為活動節點 IP 位址。在這種情況下,saphana.sapdemo 將解析為 sapdemohana1 的 IP 位址 (172.31.0.25)。點擊「建立資源層次結構」按鈕開始這個過程:
選擇 Route53 並點選下一步:
繼續點擊下一步,直到到達網域。它應該預先填入活動託管區域名稱。點擊下一步。
輸入所有內容將用於連接 HANA 資料庫的主機名,然後點擊下一步:
點擊下一步,直到到達建立按鈕,然後點擊建立按鈕。完成後點選下一步:
在預擴展精靈中點選接受預設值:
完成後點擊下一個伺服器:
目標伺服器將顯示第三個節點。點擊接受預設值:
完成後點選“完成”。然後點選“完成”。然後您可以展開樹。開啟與第二個節點的終端會話並 ping HANA 資料庫的 FQDN [即。ping -c3 saphana.sapdemo]
右鍵單擊 sapdemohana3 下的頂部 Standby,然後選擇 In Service:
在下一個畫面上點選“服務中”,然後在完成後點選“完成”:
轉到終端機視窗並重複 ping 測試:
您可以看到主機名稱現在解析為 sapdemohana3。在繼續下一步之前,將 sapdemohana1 重新投入使用。
步驟 4:將 SAP HANA 與 SIOS LifeKeeper 集成
資源層次結構創建
使用 LifeKeeper GUI,在每個節點上為 SAP HANA 建立資源層次結構。此設定對於管理故障轉移和復原過程至關重要。確保 HSR 在節點 1 上處於活動狀態並且其他節點已註冊:
點選建立資源按鈕:
選擇 SAP HANA 復原工具包並點選下一步,直到到達 IP 位址畫面:
選擇無並點選下一步:
點擊下一步,直到到達「建立」畫面並點擊「建立」:
建立後點選下一步,然後接受節點2的預設值:
當node2完成後,再次點選「Next Server」並接受預設值:
完成後點選“完成”,然後點選“完成”:
右鍵點選 Hana Hierarchy 並選擇 Create Dependency:
對於子資源標籤,從下拉清單中選擇route53資源,然後點選下一步:
按一下建立依賴項:
按一下“完成”。然後選擇查看展開樹:
如果一切都是綠色的,我們就準備好測試了。
第 5 步:測試和驗證
故障轉移/切換測試
進行徹底的故障切換測試,確保在主節點發生故障時系統能夠正確切換到輔助或第三節點。此測試應包括網路故障、硬體問題和軟體崩潰等場景。
我們將執行的第一個測試是切換,用於執行維護活動或計劃停機。右鍵點選第二個節點並選擇 In Service – Takeover with Handshake…
點選執行接管:
此測試將切換到第二個節點,以最大限度地減少使用者的停機時間。當第二個節點啟動並運行時,點擊完成:
一段時間後,節點 1 將恢復待機狀態 – 同步。
現在我們可以執行故障轉移測試。開啟節點 2 的終端並輸入 echo c > /proc/sysrq-trigger 以模擬系統崩潰。您將看到節點 1 接管,因為它具有最高優先權 1:
最終,一切都會恢復正常:
您可能想要測試許多其他類型的故障場景。只需在開始測試之前確保備用節點同步即可。
資料同步驗證
驗證資料是否在所有節點之間正確複製。節點間資料的一致性對於 HSR 設定的完整性至關重要。
效能監控
定期監控 SAP HANA 實例和 LifeKeeper 設定的效能。檢查是否有任何可能表明潛在問題的異常或問題。檢查 /var/log/lifekeeper.log 檔案以確保一切都按預期執行。您可能需要根據網路效能調整心跳定時器和心跳失去次數。這些可以在 /etc/default/LifeKeeper 檔案中配置。可調參數為 LCMHBEATTIME 和 LCMNUMHBEATS。您也可以使用指令 lcdstatus -q 從命令列檢查 Lifekeeper 的狀態。
結論
使用 SIOS LifeKeeper 在 AWS 中設定 3 節點 HANA HSR 叢集涉及詳細的規劃和執行。透過仔細遵循這些步驟,您可以在雲端建立強大、有彈性且高度可用的 SAP HANA 環境,確保您的關鍵資料保持可存取且安全。適用於 Linux 的 SIOS LifeKeeper 讓 SAP HANA 的管理、監控和維護變得快速、輕鬆。
經許可轉載安全作業系統