使用 SIOS LifeKeeper 對非集群感知應用程式進行集群化
並非所有應用程式都是用這種方法建構的。聚類牢記這一點。事實上,大多數人並沒有。但這並不意味著他們無法從中受益。高可用性由…提供的保護SIOS LifeKeeper如果你的應用程式可以停止、啟動並在另一台伺服器上運行,那麼很有可能可以對其進行叢集部署。
在著手實施之前,有一些關鍵的考慮因素,這些因素將決定集群實施是成功還是令人沮喪的反覆試驗。
-
將動態資料遷移到共用或複製存儲
應用程式通常將日誌、資料庫、快取和其他應用程式資料等動態資料儲存在本機儲存中。但在叢集環境中,這種方式行不通。故障轉移備用節點必須能夠存取相同的數據,以便應用程式可以從上次中斷的地方繼續運行。
解決方案是將所有動態資料遷移到 SAN 環境中的共用磁碟或使用時的複製磁碟區。SIOS 資料保管器靜態檔案(例如可執行檔)可以保留在本地,但任何在運行時發生變化的內容都應該儲存在所有叢集節點都可以存取的儲存位置。
-
更新叢集環境中的應用程式主機引用
許多應用程式透過名稱、FQDN 或 IP 位址來引用本機系統。這在獨立配置中沒有問題,但在叢集中,應用程式需要綁定到叢集的虛擬 IP (VIP) 或透過其進行通訊。
如果應用程式或其設定檔引用了:
- 本機
- 節點的主機名稱或完全限定域名
- 節點的靜態 IP 位址
您可能需要變更 VIP 或解析到 VIP 的主機名稱的參考。通常需要檢查的位置包括註冊表項、設定檔以及應用程式用於連接自身或其他服務的任何連接字串。
-
編寫自訂啟動、停止和監控腳本
叢集感知應用程式包含指示叢集如何啟動、停止和監控服務的邏輯。非集群感知型應用程式則不包含。這就是 SIOS LifeKeeper 應用程式復原工具包 (ARK) 的用武之地。
如果你的應用程式沒有現成的腳本,你可以建立自訂腳本:
- 開始服務或流程
- 停止切換前將其清理乾淨
- 監視器例如,透過檢查連接埠、日誌檔案或進程來評估其健康狀況。
在某些情況下,保護應用程式就像啟動和停止服務一樣簡單。針對這種情況,LifeKeeper 提供了快速服務保護 (QSP) 復原工具包。使用 QSP,您只需選擇要保護的服務,無需編寫任何程式碼。 LifeKeeper 將自動處理該服務的啟動、停止和監控操作。
這些選項使得保護各種應用程式變得輕鬆便捷,從簡單的應用程式到複雜的應用程式。視窗或者Linux在同一群集框架內,為複雜的多組件系統提供服務。
-
在所有叢集節點上正確處理加密金鑰
如果您的應用程式對靜態資料進行加密,則叢集中的每個節點都必須能夠解密這些資料。這意味著加密金鑰必須在所有節點上都可存取且保持一致。根據您的設置,這可能需要同步本機金鑰庫或使用集中式金鑰管理解決方案。
關鍵在於,每個節點在啟動時都必須能夠安全且持續地存取加密金鑰。否則,應用程式可能會啟動,但在故障轉移後卻無法存取其資料。
-
考慮故障轉移後客戶端如何重新連接
當應用程式從一個節點故障轉移到另一個節點時,會有一個短暫的中斷,因為新的活動節點需要接管 IP 位址並啟動應用程式。對於連接到該服務的用戶端,其行為完全取決於它們如何處理連線遺失。
如果客戶端內建了重試邏輯,使用者可能根本不會注意到中斷。一旦VIP和服務恢復可用,客戶端將自動重新連線。
如果用戶端沒有包含重試邏輯,使用者在故障轉移後可能需要手動刷新或重新啟動連線。
了解客戶端的行為方式並測試其在故障轉移期間的回應至關重要。有時,只需添加簡單的連接重試循環或調整連接逾時設置,即可實現流暢的用戶體驗。
-
驗證叢集部署的應用程式授權要求
一個常被忽略的步驟是許可。當應用程式叢集化時,它會安裝在叢集中的每個節點上,但一次只能執行一個實例,即活動實例。有些供應商提供專門的活動/被動叢集許可,而有些供應商則要求每個已安裝的執行個體都需要一個許可。
部署前務必先諮詢應用程式供應商。事先進行簡短溝通可以避免日後花費大量時間處理許可問題。
-
對所有應用程式和叢集元件進行全面測試
測試是任何叢集專案中最重要但又最容易被忽略的環節之一。
不要只測試故障轉移。在應用程式受到保護的情況下,測試其所有功能。這包括:
- 啟動和關閉順序
- 所有必需的服務和後台任務
- 任何讀取、寫入或快取資料的元件
- 任何依賴服務依賴項的進程
- 故障轉移前、故障轉移期間和故障轉移後的客戶行為
如果應用程式使用自訂腳本或快速服務流程 (QSP),請確保每個步驟在負載下都能正常運作。這不僅能及早發現問題,還能確保解決方案在實際事件中能正確運作。
為非叢集感知應用實現高可用性
使用 SIOS LifeKeeper 對非叢集感知應用程式進行叢集化並不難,但確實需要一些規劃。將資料遷移到共用或複製存儲,將所有節點指向叢集的虛擬 IP 位址 (VIP),編寫啟動、停止和監控邏輯腳本(或在適當情況下使用 QSP),確保所有節點上都可用加密金鑰,並確認許可要求。
不要忘記測試您的用戶端對故障轉移的回應情況,因為真正的高可用性意味著您的伺服器和使用者始終保持連線。
按照這些步驟操作,您會發現即使是最「獨立」的應用程式也能實現企業級高可用性。立即申請演示了解 SIOS LifeKeeper 如何為非叢集感知應用程式帶來可靠的高可用性。
作者:David Bermingham,SIOS 資深技術推廣專家
經許可轉載SIOS




