如何在SLES for SAP高可用環(huán)境下不停機修改SBD設(shè)備的Timeout設(shè)置
更新時間:
問題描述
阿里云上SAP用戶系統(tǒng)的核心應(yīng)用(如SAP S/4HANA、SAP PO、SAP HANA等)主要是通過操作系統(tǒng)的高可用組件(如SUSE HAE、RHEL HA、Microsoft Windows Cluster等)實現(xiàn)SAP系統(tǒng)高可用架構(gòu),為業(yè)務(wù)連續(xù)性提供保障。
SLES HAE是SUSE linux的高可用組件,它能夠確保關(guān)鍵資源(如SAP HANA、SAP ASCS/SCS等)的高可用性,避免單點故障保持業(yè)務(wù)的連續(xù)性。基于SLES HAE構(gòu)建的SAP系統(tǒng)高可用環(huán)境中,阿里云的共享塊存儲產(chǎn)品承擔SBD(STONITH Block Device)的角色,STONITH是在腦裂場景下關(guān)閉故障節(jié)點的方法。而用來監(jiān)控STONITH進程狀態(tài)的watchdog是在節(jié)點自身的STONITH出現(xiàn)故障時self-fence,以保證集群的正常運行。
優(yōu)化SBD的超時參數(shù)可以避免由于微碼熱升級引起的CPU抖動、網(wǎng)絡(luò)抖動等場景導(dǎo)致的非預(yù)期的ECS重啟故障,進一步提升SAP系統(tǒng)的可用性。
適用于
- SUSE Linux Enterprise High Availability Extension 12
- SUSE Linux Enterprise High Availability Extension 15
影響和限制
- 使用阿里云共享塊存儲作為SBD的SAP高可用環(huán)境。
說明:開發(fā)、測試或生產(chǎn)的單機環(huán)境不涉及SBD的配置,不在本文檔討論的范圍。
- 整體配置變更操作無需停機,可在線完成調(diào)整。
注意:強烈建議選業(yè)務(wù)低峰期進行操作。
- 此配置變更不影響高可用集群的切換時間和資源的管理策略。
- 強烈建議做變更前對ECS的數(shù)據(jù)盤創(chuàng)建快照,您可以參考單塊云盤快照或者多個云盤快照。
解決方案
將SBD的watchdog timeout和msgwait timeout從默認的5s和10s修改成30s和60s,以下操作以SAP PO SCS HA高可用環(huán)境為例描述操作流程。
SAP S/4HANA ASCS HA和SAP HANA HA等高可用環(huán)境的操作過程與其近似,具體如下:
- 登錄服務(wù)器,執(zhí)行以下命令,查看所有資源的狀態(tài)。
說明:未特殊說明的步驟只需要在HA的一個節(jié)點上操作即可。
crm_mon -r
系統(tǒng)顯示類似如下,當前有兩個ECS,POSCS1和POSCS2,集群狀態(tài)和被管理的資源狀態(tài)正常。 - 執(zhí)行以下命令,查找當前SBD的塊設(shè)備名。
cat /etc/sysconfig/sbd | grep SBD_DEVICE
系統(tǒng)顯示類似如下,SBD塊設(shè)備名是/dev/vdd
。 - 執(zhí)行以下命令,查詢當前SBD的設(shè)置。確認當前watchdog timeout是5s,msgwait timeout是10s,這兩個都是默認配置。
sbd -d /dev/vxx dump
說明:
系統(tǒng)顯示類似如下。/dev/vxx
替換成當前應(yīng)用的SBD塊設(shè)備名。 - 執(zhí)行以下命令,將集群設(shè)置為維護模式。
crm configure property maintenance-mode=true
- 設(shè)置成功后,執(zhí)行以下命令,確認所有資源都是unmanaged狀態(tài)。
crm_mon -r
系統(tǒng)顯示類似如下。
提示:可能會出現(xiàn)已經(jīng)存在維護模式資源的提示,輸入Y。
'maintenance' attribute already exists in rsc_sbd. Remove it (y/n)? y
提示:SAP HANA設(shè)置為維護模式時可能會出現(xiàn)以下提示,輸入Y。
'is-managed' conflicts with 'maintenance' in cln_SAPHanaTopology_HDB. Remove it (y/n)? y
說明:如果還有沒被unmanaged的資源,需要手工將其設(shè)置成unmanaged,命令語法如下:
crm resource maintenance <resource name> true
例如,下圖中的SAP HANA的資源沒有被正常設(shè)置為unmanaged,需要手工設(shè)置一下。
執(zhí)行以下命令來完成設(shè)置:crm resource maintenance rsc_SAPHana_HDB true
- 執(zhí)行以下命令,停用STONITH功能,確保接下來的操作不會觸發(fā)fencing(重啟)。
crm configure property stonith-enabled=false
- 系統(tǒng)顯示類似如下。
- 執(zhí)行以下命令,確認設(shè)置已經(jīng)生效。
crm configure show | grep stonith-enabled
系統(tǒng)顯示類似如下。 - 執(zhí)行以下命令,停止pacemaker服務(wù)。
說明:兩個節(jié)點都需要操作。
systemctl stop pacemaker
- 執(zhí)行以下命令,重建SBD設(shè)備的metadata。
注意:請再次確認正確的SBD塊設(shè)備名,錯誤的塊設(shè)備名可能導(dǎo)致生產(chǎn)環(huán)境的數(shù)據(jù)丟失。
sbd -d /dev/vxx -4 60 -1 30 create
說明:
系統(tǒng)顯示類似如下。/dev/vxx
替換成當前應(yīng)用的SBD塊設(shè)備名。 - 執(zhí)行以下命令,啟動pacemaker服務(wù)。
說明:兩個節(jié)點都需要操作。
systemctl start pacemaker
- 執(zhí)行以下命令,檢查SBD設(shè)置是否生效。
sbd -d /dev/vxx dump
說明:
系統(tǒng)顯示類似如下。/dev/vxx
替換成當前應(yīng)用的SBD塊設(shè)備名。 - 執(zhí)行以下命令,確保集群節(jié)點被分配到一個slot。
sbd -d /dev/vxx list
說明:
系統(tǒng)顯示類似如下。/dev/vxx
替換成當前應(yīng)用的SBD塊設(shè)備名。 - 執(zhí)行以下命令,重新啟用STONITH,并驗證配置。
crm configure property stonith-enabled=true
系統(tǒng)顯示類似如下。 - 執(zhí)行以下命令,關(guān)閉集群維護模式。
crm configure property maintenance-mode=false
系統(tǒng)顯示類似如下。
說明:如果在步驟5手動設(shè)置過某個資源的maintenance狀態(tài)為on,最后也需要手動將此資源的maintenance狀態(tài)設(shè)置回off
命令語法如下:
crm resource maintenance <resource name> false
相關(guān)文檔
文檔內(nèi)容是否對您有幫助?