Heartbeat Score的計算-
上一篇,我們講了在一個資源組只配置一個資源的簡單環境中SCORE的計算.
(在看這篇之前建議大家先看: http://steven1981.itpub.net/post/7967/494028)
(在看這篇之前建議大家先看: http://steven1981.itpub.net/post/7967/494028)
在這裡我們繼續研究,在一個資源組裡配置了N個資源(N>=2)的情況中,SCORE的計算:
注:以下所有得出的結論是基於<2resource2group4score>的配置環境測試的。
(1個資源組只配置1個資源,簡稱其cib.xml原文見 http://steven1981.itpub.net/post/7967/494030)
0.資源要切換不再以單個資源的分數來比較. 而是以該資源組的N個資源SCORE之和,我們下面稱它為
NodeX.all.score=mysqlX.resource1.score+ .... + mysqlX.resourceN.score
1.當HB發現NodeX上的資源失敗或發生切換時,會減去之前賦給該NODE的"成功分:N*default-resource-stickiness",
NodeX.resourceY.score -= N * default-resource-stickiness
NodeX.all.score = NodeX.resource1.score + ...... + NodeX.resource2.score
2.當HB發生NodeX資源失敗時,會給該NODE加上"失敗分:default-resource-failure-stickiness"
NodeX.resourceY.score += default-resource-failure-stickiness
NodeX.all.score = NodeX.resource1.score + ...... + NodeX.resource2.score
3.當HB的資源成功在NODE上START,那麼會給該NodeX加上"成功分:N*default-resource-stickiness"
NodeX.resourceY.score += N * default-resource-stickiness
NodeX.all.score = NodeX.resource1.score + ...... + NodeX.resource2.score
4.其他演算法同配置<2resource2group4score>. 見:http://steven1981.itpub.net/post/7967/494028
下面我們以一些例子來說明這複雜的計算方法:
例1: default-resource-stickiness=100 default-resource-failure-stickiness=-100 mysql4.ipaddr.score=150 mysql3.ipaddr.score=200 mysql4.mysql.score=350 mysql3.mysql.score=400 | |||||||||
SCORE | Resource Status | Action | MEMO | ||||||
mysql3.ipaddr | mysql4.ipaddr | mysql3.mysql | mysql4.mysql | mysql3.all | mysql4.all | mysql3.status | mysql4.status | ||
400 | 150 | 600 | 350 | 1000 | 500 | Ipaddr/mysql | Start | ||
400 | 150 | 500 | 350 | 900 | 500 | Ipaddr/mysql | mysql stop | ||
400 | 150 | 400 | 350 | 800 | 500 | Ipaddr/mysql | mysql stop | ||
400 | 150 | 300 | 350 | 700 | 500 | Ipaddr/mysql | mysql stop | ||
400 | 150 | 200 | 350 | 600 | 500 | Ipaddr/mysql | mysql stop | mysql4.mysql.score > mysql3.mysql.score ,但未發生切換. 因為綜合分還相等. | |
400 | 150 | 100 | 350 | 500 | 500 | Ipaddr/mysql | mysql stop | ||
400 | 150 | 0 | 350 | 400 | 500 | 這段是過渡的計算,mysql3.all < mysql4.all ,需要切換 | |||
200 | 350 | -200 | 550 | -100000 | 900 | Ipaddr/mysql | mysql3兩個資源都切換了,所以都減200 |
例2: default-resource-stickiness=0 default-resource-failure-stickiness=-100 mysql4.ipaddr.score=375 mysql3.ipaddr.score=400 mysql4.mysql.score=775 mysql3.mysql.score=800 | |||||||||
這樣配,只要任何一個資源DOWN,那麼資源就往對方切換。可以一直回來切換.直到分數為負數. 但是,如果一臺機器重啟了,那麼重啟後會接管資源,因為他的SCORE比較高。 | |||||||||
SCORE | Resource Status | Action | MEMO | ||||||
mysql3.ipaddr | mysql4.ipaddr | mysql3.mysql | mysql4.mysql | mysql3.all | mysql4.all | mysql3.status | mysql4.status | ||
400 | 375 | 800 | 775 | 1200 | 1150 | Ipaddr/mysql | Start | ||
400 | 375 | 700 | 775 | 1100 | 1150 | Ipaddr/mysql | mysql down | ||
400 | 275 | 700 | 775 | 1100 | 1050 | Ipaddr/mysql | ipaddr down | ||
300 | 275 | 700 | 775 | 1000 | 1050 | Ipaddr/mysql | ipaddr down | 在這裡看到,mysql3.ipaddr>mysql4.ipaddr,但發生了切換. 因為mysql3.all | |
400 | 275 | 800 | 775 | 1200 | 1050 | Ipaddr/mysql | mysql3.HB stop_start | 自動切換回來.mysql3.all.score> mysql4.all.score |
例3:default-resource-stickiness=5 default-resource-failure-stickiness=-23 mysql4.ipaddr.score=99 mysql3.ipaddr.score=100 mysql4.mysql.score=99 mysql3.mysql.score=100 這樣的配置,如果每次在切換後,把失敗NODE的HB重啟,或者分數置到CIB.SET. 那麼,可以一直來回切換. 不然: 第一次,只要有任何一個資源失敗,就發生切換. 第二次,需要有兩次資源失敗,才會發生切換. | |||||||||
SCORE | Resource Status | Action | MEMO | ||||||
mysql3.ipaddr | mysql4.ipaddr | mysql3.mysql | mysql4.mysql | mysql3.all | mysql4.all | mysql3.status | mysql4.status | ||
110 | 99 | 110 | 99 | 220 | 198 | Ipaddr/mysql | Start | ||
87 | 99 | 110 | 99 | 197 | 198 | mysql3.ipaddr down | 中間計算,HB認為需要切換 | ||
77 | 109 | 100 | 109 | 177 | 218 | Ipaddr/mysql | |||
77 | 86 | 100 | 109 | 177 | 195 | mysql4.ipaddr down | 中間計算,HB認為不需要切換.因為mysql4.all.score > mysql3.all.score | ||
77 | 86 | 100 | 109 | 177 | 195 | Ipaddr/mysql | |||
77 | 86 | 100 | 86 | 177 | 172 | mysql4.mysql stop | 中間計算,HB認為需要切換.因為mysql4.all.score < mysql3.all.score | ||
87 | 76 | 110 | 76 | 197 | 152 | Ipaddr/mysql |
例4: default-resource-stickiness=5 default-resource-failure-stickiness=-10 mysql4.ipaddr.score=100 mysql3.ipaddr.score=100 mysql4.mysql.score=100 mysql3.mysql.score=100 | |||||||||
SCORE | Resource Status | Action | MEMO | ||||||
mysql3.ipaddr | mysql4.ipaddr | mysql3.mysql | mysql4.mysql | mysql3.all | mysql4.all | mysql3.status | mysql4.status | ||
110 | 100 | 110 | 100 | 220 | 200 | Ipaddr/mysql | Start | ||
100 | 100 | 110 | 100 |
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/703656/viewspace-1028999/,如需轉載,請註明出處,否則將追究法律責任。
請登入後發表評論
登入
全部評論
|
相關文章
- Heartbeat Score的計算(轉)
- Heartbeat Score的計算-+colocation
- 分類模型的F1-score、Precision和Recall 計算過程模型
- ES 筆記二十五:綜合排序 Function Score Query 優化算分筆記排序Function優化
- Oracle Heartbeat研究Oracle
- heartbeat錯誤排查
- linux heartbeat mysqlLinuxMySql
- heartbeat下載地址
- Heartbeat3.x應用全攻略之: 測試Heartbeat的HA功能薦
- 機器學習中的 precision、recall、accuracy、F1 Score機器學習
- 深入理解F1-score
- SAP Hybris Helps NHL Score with Fans
- 雲端計算,網格計算,分散式計算,叢集計算的區別?分散式
- DB2 HADR的heartbeat檢測DB2
- 基於heartbeat的NFS HA實現(轉)NFS
- 基於heartbeat的NFS HA實現 (轉)NFS
- HA叢集heartbeat配置--NginxNginx
- heartbeat安裝配置實驗
- linux-ha heartbeat 搭建Linux
- MySQL + Heartbeat + DRBD架構部署MySql架構
- Elasticsearch複合查詢—constant score queryElasticsearch
- Heartbeat實現LVS的故障轉移
- 計算機計算小數除法的陷阱計算機
- heartbeat+drbd+nfs安裝配置NFS
- Mysql 雙主 + heartbeat + Mon 部署文件MySql
- 冪的計算
- 音量的計算
- 邊緣計算與雲端計算的未來
- seconds_behind_master的陷阱和pt-heartbeatAST
- mysql 的一個監控指令碼,監控heartbeatMySql指令碼
- 威爾遜得分 Wilson Score 排序演算法排序演算法
- mysql GROUP_CONCAT(test_score) 很好的拼字元的函式MySql字元函式
- 本地計算、雲端計算、霧計算、邊緣計算有什麼區別?
- word公式怎麼計算 word公式計算的方法公式
- 圖計算 on nLive:Nebula 的圖計算實踐
- Tableau的計算欄位、粒度、聚合、比率、表計算
- 雲端計算與網格計算的深入比較
- 【計算機組成原理】第6章 計算機的運算方法計算機