Rhel

使用 pcs 的 RHEL 高可用性集群,將服務配置為資源

  • October 2, 2017

我在 RHEL 6.9 上有一個 2 節點集群。一切都已配置,除了我在通過創建到服務 (in /etc/init.d/myApplication) 中的 shell 腳本啟動應用程序時遇到困難,我將稱之為*“myApp”*。從那個應用程序,我做了一個pcs resource create myApp lsb:myApp op monitor interval=30s op start on-fail=standby. 我是使用這套軟體的新手,但它是為了工作。我需要的是讓這個應用程序同時在兩個節點上啟動,因為它必須手動啟動,所以如果第一個節點發生故障,如果它在被動節點上尚未啟動,則需要干預。

我還有另外兩個服務:

-VirtIP (ocf:heartbeat:IPaddr2)為應用程序伺服器提供服務 IP

-Cron (lsb:crond)同步應用程序文件(我們不使用共享儲存)

我通過託管到 myApp 將 VirtIP 和 Cron 作為依賴項。

我已經嘗試過主/從以及複製,但我必須遺漏一些關於他們的配置的東西。如果我使應用程序離線,則起搏器不會檢測到服務已關閉並pcs status輸出 myApp 仍在節點上執行(或節點取決於我的配置)。我有時也會遇到執行應用程序的服務被被動節點上的起搏器停止的問題。

我需要哪種方式來配置它?我已經瀏覽了 RHEL 文件,但我仍然卡住了。如果 myApp 服務出現故障,我如何讓起搏器啟動故障轉移?我不知道為什麼在某些情況下它沒有檢測到服務已停止。

編輯:因此出於測試目的,我刪除了啟動/重新啟動的密碼要求,並且服務按預期啟動/重新啟動,並且託管依賴資源按預期停止/啟動。但是停止 myApp 服務並不會反映為已停止的資源,而只是停留在 Started node1。同樣,通過將 node1 置於備用狀態來模擬故障轉移只會停止 node1 上的所有資源。

我的猜測是你的 shell/init 腳本沒有返回正確的返回碼。為了讓起搏器與初始化腳本很好地配合,初始化腳本需要完全符合 LSB。通過此處的兼容性檢查執行初始化腳本:http ://www.linux-ha.org/wiki/LSB_Resource_Agents

我懷疑您的腳本在不應該返回的狀態上返回 0。

引用自:https://unix.stackexchange.com/questions/395111