當運轉一個對于你的IT環境具有重要意義的服務時,有必要保證它使用高可用性(high-availability,HA)技術,包含配置軟硬件。本文會教你如何使用Corosync和Pacemaker,為Linux的環境配置高可用性。
Linux HA 軟件
Corosync和Pacemaker是Linux HA的實際執行標準。Corosync核對群集中所有的節點,確保其可用,Pacemaker負責群集中資源的位置。
你可以把兩個軟件都安裝到所有的Linux發行套件中去,來創建一個可以保護重要服務的HA stack。本篇技巧中,我們將以OpenSUSE作為Linux套件的例子,因為它可以做一個免費的test drive。決定讓OpenSUSE來保障服務之后,你可以為你的企業Linux套件買一個支持版的。SUSE和紅帽都有HA版本的Linux,可用額外的企業級支持。
我們來學習一下如何安裝,并觀察其中一些功能。
安裝軟件
輸入以下命令,可以為OpenSUSE安裝Pacemaker和Corosync:
zypper install pacemaker pacemaker-mgmt
這條命令會在你服務器上安裝所有運行Linux HA環境必要的Pacemaker軟件,一般來說,這條命令覆蓋所有在HA群集上使用的節點,但是對于安裝測試環境來說,最好只在一個節點上使用該命令。完成之后,你就可以開始配置軟件,構建節點。
群集的更低層面有Corosync進程服務,這需要一個在/etc/corosync/corosync.conf的主配置文件。這個文件用來指定群集中的節點如何互相保持關聯。安裝過程,會給你一個名字類似corosync.conf.example的文件,包含了你需要用來啟動群集的所有東西。只有一項需要調整,那就是界面設置,這在配置文件的totem section之中。使用命令ip address show來確定群集中每個系統的IP地址,還要確保網絡設置與使用中的實際網絡地址相一致:
totem { ... interface { ringnumber: 0 bindnetaddr: 192.168.1.0 mcastaddr: 226.94.1.1 mcastport: 5405 } }
第一點:確保改變界面設置,以反映你的當前網絡設置。
創建corosync.conf文件之后,就得開始openais service,這負責在OpenSUSE上啟動Corosync。使用service openais start命令:
service openais start
啟動了openais service之后,可以啟動crm_mon命令。這個命令能顯示你的群集stack是否可用,告訴你群集中現有節點的數量。如果你在output中看到其他東西,那也不妨,即使群集中的節點被標記為offline。
圖1:確保Corosync layer在繼續工作之前已經可用。
為服務配置Linux HA
一旦Corosync layer能行了,你就可以繼續創建HA的下一步。為了便于理解,我先告訴你如何創建高可用性IP地址。首先為用戶hacluster(在群集環境中的默認用戶賬號)創建密碼,使用passwd hacluster命令,輸入你要設的密碼。
這時,你可以使用crm_gui命令,啟動Pacemaker 圖形化管理客戶端。在圖形界面上選擇Connection login,激活為hacluster用戶。你現在可以看到群集中的內容了,表現為你在群集上加的節點。點擊Configuration然后點擊Resources,再點擊Add,你就可以添加HA IP地址。在Add窗口中選擇Primitive來增加一個標準服務作為資源,然后點擊OK。現在你就可以看見Add Primitive窗口,可以用ID來進入。然后,使用以下命令確定接下來的參數:
ID: testip Class: ocf Provider: heartbeat Type: IPaddr2
也要確保資源的初始狀態被設置為Started,然后點擊Forward,跳轉到一個界面把剛剛創建的屬性添加給資源。在該界面點擊ip,選擇Edit來進入你要加的新的唯一IP地址,作為高可用性IP地址。一般這得是你的服務能夠達到的IP地址。現在選擇OK來添加IP地址,然后選擇Apply將其寫入群集。
一般情況下你還需要安裝STONITH,來保證群集中節點的完整,本文下一部分會提到這一點,現在你可以先跳過,選擇Configuration,然后是CRM Configure,取消選擇Stonith Enabled。點擊Apply來保存改變,這就會給你一個高可用的IP地址。你可以通過選擇Configuration¬——Management來確定。
圖2:配置完HA的資源,你可以通過crm_gui命令的管理部分確定它是否成功。
現在可以做最終測試了:IP地址已經配置好了,可以被群集管理了,這意味著群集在停止運轉后,啟動了IP地址。你可以手動停止IP地址,來測試運行情況。比如說,如果你使用了192.168.1.169作為地址,與界面eth0相關聯,使用ip addr del dev eth0 192.168.1.169命令。幾秒鐘后,使用ip addr show檢查IP地址是否存在。群集正常情況下應該在那段IP地址重啟節點。
原文:http://www.searchdatacenter.com.cn/showcontent_52100.htm?lg=t