High Availability手冊(2): 架構
最底層是通訊層corosync/openais
負責cluster中node之間的通訊
上一層是Resource Allocation Layer,包含下面的元件:
CRM Cluster Resouce Manager
是總管,對於resource做的任何操作都是透過它。每個機器上都有一個CRM。
CIB Cluster Information Base
CIB由CRM管理,是在記憶體中的XML資料庫,儲存了cluster的配置和狀態。我們查詢出來的configuration都是儲存在CIB裡面的。nodes, resources, constraints, relationship.
DC Designated Coordinator
每個node都有CRM,會有一個被選為DC,是整個Cluster的大腦,這個DC控制的CIB是master CIB,其他的CIB都是副本。
PE Policy Engine
當DC需要進行一些全域性配置的時候,首先由PE根據當前的狀態和配置,計算出將來的狀態,並生成一系列的action,使得cluster從初始狀態變為結果狀態。PE僅僅在DC上執行。
LRM Local Resource Manager
本地的resource管理,呼叫resource agent完成操作,啟停resource,將結果返回給CRM
再上一層是Resource Layer
包含多個resource agent。resource agent往往是一些shell script,用來啟動,停止,監控resource的狀態。
root@pacemaker01:~# ps aux | grep pace
root 3363 0.0 0.1 81812 3748 ? Ss Jul28 0:06 /usr/lib/pacemaker/lrmd
haclust+ 3365 0.0 1.1 114428 23808 ? Ss Jul28 0:03 /usr/lib/pacemaker/pengine
root 20103 0.0 0.2 107496 4532 pts/2 S 10:06 0:00 pacemakerd
haclust+ 20105 0.0 0.6 110244 12560 ? Ss 10:06 0:00 /usr/lib/pacemaker/cib
root 20106 0.0 0.3 107248 6680 ? Ss 10:06 0:00 /usr/lib/pacemaker/stonithd
haclust+ 20107 0.0 0.2 96640 4148 ? Ss 10:06 0:00 /usr/lib/pacemaker/attrd
haclust+ 20108 0.0 0.4 166536 9172 ? Ss 10:06 0:00 /usr/lib/pacemaker/crmd
流程
比如要新增一個Cluster IP
- 命令列將Cluster IP加入CIB
- DC將CIB的修改同步到所有的crmd
- DC上的PE計算如何部署這個Cluster IP,在哪個node上,做什麼操作
- DC將操作列表同步到所有的crmd
- 每個crmd呼叫本地的lrmd做真正的部署
- lrmd呼叫resource agent來啟動或者停止一些操作
- lrmd操作完,將結果返回給DC
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/18796236/viewspace-1840129/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- High Availability手冊(1): 環境AI
- MySQL-HA MHA(Master High Availability manager)搭建手冊MySqlASTAI
- Performance and High-Availability OptionsORMAI
- High Availability (HA) in SQL ServerAISQLServer
- ES操作RestHighLevelClient手冊RESTclient
- HDFS High Availability(HA)高可用配置AI
- Some Oracle high-availability technologiesOracleAI
- DG vs Storage in High Availability -- From OracleAIOracle
- Kafka設計解析(二)- Kafka High AvailabilityKafkaAI
- HDFS High Availability Using the Quorum Journal ManagerAI
- Redis安裝及HA(High Availability)配置RedisAI
- Oracle Database High Availability Solutions for Unplanned DowntimeOracleDatabaseAI
- Serverless 架構開發手冊 — “人人都是 Serverless 架構師”先導篇Server架構
- Kafka設計解析(二)- Kafka High Availability (上)KafkaAI
- Data Guard Broker High Availability (Doc ID 275977.1)AI
- CRS-4639: Could not contact Oracle High Availability ServicesOracleAI
- CRS-4124: Oracle High Availability Services startup failed.OracleAI
- Implementing Oracle9i Data Guard for Higher AvailabilityOracleAI
- springBoot探索(2)——構建手腳架Spring Boot
- 阿里新產架構進階手冊,Github已星標71.6k阿里架構Github
- CRS-4124: Oracle High Availability Services startup failed. CRS-4000OracleAI
- 黑猴子的家:Hadoop NameNode 高可用 (High Availability) 實現解析HadoopAI
- CRS-4639: Could not contact Oracle High Availability Services解決方案集OracleAI
- DB2維護手冊DB2
- FFMpeg SDK 開發手冊(2)
- 架構之路(2):效能架構
- hadoop官網翻譯之HDFS High Availability Using the Quorum Journal ManagerHadoopAI
- CRS-0184:CRS-4639: Could not contact Oracle High Availability ServicesOracleAI
- 微服務架構之「 服務註冊 」微服務架構
- Redis資料結構&命令手冊Redis資料結構
- 阿里面試技術手冊(二):大型網站架構演化發展歷程阿里面試網站架構
- 2_指令集、體系架構、微架構架構
- 11g ASM 重啟 HAC 報錯 CRS-4124: Oracle High AvailabilityASMOracleAI
- 深入 HBase 架構解析(2)架構
- React V16入門手冊(2)React
- 2-如何檢視技術手冊
- 【細品架構2/100】架構之概念認知架構
- 大型網站架構系列:電商網站架構案例(2)網站架構