原文出處:http://www.ixpub.net/thread-2754263-1-1.html
雙機備份原理:在2個主機節點上分别安裝叢集軟體(如:HP ServiceGuard),對用戶端配置一個浮動IP,浮動意思是該IP位址适時綁定在2個節點中的某一個上,但該IP對用戶端是固定的。每個節點配置3塊網卡,分别是資料網卡,心跳信号網卡,以及一塊對資料和心跳備份的網卡。資料和心跳網卡需要配置IP位址,備份網卡不配,當資料或心跳網卡失效,備份網卡自動接管資料或心跳網卡IP位址。當ServieGuard啟動後,一旦主節點發生異常,如主節點停機、應用的關鍵程序退出、網絡中斷等情況發生,備節點立即啟動預設的應用程式,同時将浮動IP綁定到備節點上,整個主備機切換時間大概在2分鐘内完成,切換後,用戶端通過浮動IP透明地連接配接到備機上。當主節點故障排除後,是否要将備節點重新切換到主節點有2個政策,一是手工切換,二是自動切換,預設是手工切換。
ServiceGuard軟體的組成:
軟體元件
Package Manager 運作包管理器
Cluster Manager 叢集管理器
Network Manager 網絡管理器
主要背景程序
cmcld:節點守護程序,負責發送心跳信号、管理本地網絡、以及負責運作包的管理
cmlogd:負責在系統日志(syslog)中記錄資訊
cmlvmd:監控所有屬于叢集控制的卷組(VG)的狀态
cmsrvassistd:負責包啟動、停止腳本以及服務程式的運作
叢集的結構組成
1、節點:構成叢集的主機。一個叢集中允許的節點數量是2—16個
2、 運作包:運作包裡面包含使用者的應用程式,以及為該應用程式所配置設定的資源。報運作在某個運作的節點上,并且可以在節點間進行切換。
有關包(package)的一些概念
1、包含應用程式
2、 配置設定相應資源:①卷組、邏輯卷和檔案系統 ②浮動IP位址 ③應用程式的啟動和停止腳本 ④服務程式
規則是:配置設定給一個包的資源不能再配置設定給其他包;同一時間一個包隻能運作在一個節點上
浮動IP的概念
浮動IP是配置設定給每個應用程式(運作包)的。如果要通路一個應用程式,則需要連接配接浮動IP位址。隻需連結這個位址,而不管它實際上是在哪台主機或那塊網卡上。
浮動IP必須加載在具有同網段靜态IP位址的網卡上,當發生本機網卡切換時,浮動IP會和靜态IP一起被加載到備用網卡上。
構成叢集的硬體條件
1、主機:多台主機構成叢集,每台主機必須擁有自己獨立的根盤,強烈建議鏡像。
2、資料磁盤:由于MC/SG不能對資料磁盤故障作出響應,需要使用高可用性的磁盤陣列或對資料盤進行鏡像。
3、網絡:MC/SG中的network manager可以對網絡故障作出響應。需要配置備援的網絡裝置(網線、交換機、網卡等)。
叢集配置—相關檔案
1、/etc/cmcluster/cluster.ascii
叢集配置檔案,包含節點組成、卷組指定和相關參數設定等
2、/etc/cmcluster/cmclconfig
叢集二進制檔案,由配置檔案編譯而成,包含叢集的全部資訊
3、/etc/cmcluster/mscppkg/mscppkg.conf
包配置檔案,指定包所在的節點、監控網段、切換模式等參數資訊
4、/etc/cmcluster/mscppkg/control.sh
包控制檔案,指定包所擁有的各種資源
5、/etc/cmcluster/mscppkg/control.sh.log
包運作時記錄的日志
6、/etc/cmcluster/mscppkg/start_mscp.sh
包啟動時用于啟動應用程式的腳本
7、/etc/cmcluster/mscppkg/stop_mscp.sh
包停止時用于停止應用程式的腳本
8、/etc/cmcluster/mscppkg/mscp_service.sh
包服務腳本,執行程序監控及其它客戶化的功能
MC/SG運作過程---啟動過程
啟動叢集
1、 在每個節點上啟動守護程序cmcld
2、 所有cmcld運作正常的節點組成叢集
啟動包
1、 激活卷組,加載浮動IP,挂起檔案系統
2、 執行應用程式啟動程式(start_mscp.sh)
3、 運作服務(mscp_service.sh)
MC/SG運作過程---停止過程
停止包
1、 停止服務(mscp_service.sh)
2、 執行應用程式停止腳本(stop_mscp.sh)
3、 卸下檔案系統,解除安裝浮動IP去激活卷組
停止叢集
1、 在每個節點上停止守護程序cmcld
叢集相關指令
啟動叢集:cmruncl –v 停止叢集:cmhaltcl –v(若有包運作,加-f參數) 隻在一個節點上啟動叢集:cmruncl –n 節點名 觀察整個叢集狀态:cmviewcl –v
運作包相關指令
啟動包:cmrunpkg –v –n 節點名 包名 停止包:cmhaltpkg –v 包名
設定包的自動切換屬性:cmmodpkg –e 包名(允許包在節點之間自動切換)
cmmodpkg –e –n 節點名 包名(允許包在該節點上啟動)
運作包管理---手工切換包執行個體
将包scppkg從mscp1切換到mscp2:
步驟一:在任意主機上執行
cmhaltpkg –v scppkg
步驟二:在任意主機上執行
cmrunpkg –v –n scp2 scppkg
步驟三:在任意主機上執行
cmmodpkg –e scppkg
日志檢查---系統日志
/var/adm/syslog/syslog.log 系統日志
日志檢查---包日志
/etc/cmcluster/mscppkg/control.sh.log 包運作日志
應急處理方案
如果出現緊急情況,需要脫離雙機軟體直接啟動應用程式
1、 執行vgchange –c n vgdata,讓vg脫離MC的控制
2、 執行vgchange –a y vdata 激活vg
3、 執行ifconfig lan 1:1 inet 129.9.168.120 netmask 255.255.255.0手動将浮動IP綁定在網卡上
4、 執行/etc/cmcluster/pkg/裡的包啟動腳本或直接執行相關指令啟動應用及資料庫
雙機配置恢複後
1、停止資料庫和應用
2、執行ifconfig lan 1:1 0.0.0.0,删除浮動IP
3、執行vgchange –a n vgdata去激活vg
4、執行cmruncl –v啟動叢集,第一次啟動會由于vg不能被MC控制使得包無法啟動
5、在叢集處于running狀态時,執行vgchange –c y vgdata将vg加入MC控制
6、執行cmrunpkg –v pkg,啟動包