hp-unix下的高可用叢集設定
雙機備份原理:在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,啟動包
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29551564/viewspace-2212523/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何設定一個生產級別的高可用etcd叢集
- PostgreSQL repmgr高可用叢集+keepalived高可用SQL
- zookeeper 高可用叢集搭建
- MongoDB高可用叢集搭建MongoDB
- 搭建 Kubernetes 高可用叢集
- Redis叢集與高可用Redis
- PostgreSQL patroni高可用叢集SQL
- RabbitMQ從零到叢集高可用(.NetCore5.0) -高可用叢集構建落地MQNetCore
- WEB叢集- 高可用服務Web
- 高可用mongodb叢集(分片+副本)MongoDB
- 10、redis哨兵叢集高可用Redis
- mysql高可用叢集之MMMMySql
- Redis快取高可用叢集Redis快取
- Oracle的三種高可用叢集方案Oracle
- RabbitMQ和Kafka的高可用叢集原理MQKafka
- Redis高可用-主從,哨兵,叢集Redis
- 高可用叢集之corosync+pacemakerROS
- 使用Kubeadm搭建高可用Kubernetes叢集
- 構建生產環境可用的高可用kubernetes叢集
- redis通訊與高可用叢集原理Redis
- 高可用叢集環境搭建-留檔
- 搭建高可用kubernetes叢集(keepalived+haproxy)
- 高可用Flink on YARN叢集快速配置Yarn
- 使用Keepalived構建LVS高可用叢集
- 基於 ZooKeeper 搭建 Spark 高可用叢集Spark
- 基於 ZooKeeper 搭建 Hadoop 高可用叢集Hadoop
- Kubernetes-高可用叢集證書更新
- Keepalived高可用叢集工作原理示意圖
- 部署Kubernetes v1.22.10高可用叢集
- 在Rainbond上部署高可用Apollo叢集AI
- 基於 Rainbond 部署 DolphinScheduler 高可用叢集AI
- 搭建 MySQL 高可用高效能叢集MySql
- 4 種高可用 RocketMQ 叢集搭建方案!MQ
- 快速掌握RabbitMQ(五)——搭建高可用的RabbitMQ叢集MQ
- Kubernetes實戰:高可用叢集的搭建和部署
- MySQL叢集搭建(6)-雙主+keepalived高可用MySql
- 基於 HAProxy + KeepAlived 搭建 RabbitMQ 高可用叢集MQ
- Keepalived+Nginx高可用叢集搭建筆記Nginx筆記