再次研究COLOCATION,希望其能在<2resource2group4score>的配置环境中起作用,(限制两个资源跑到一起)。
1,配置:在<2resource2group4score>CIB.XML中,
...
...
加完以后,请用crm_verify -V -x cib.xml 检查是否有配置错误.
[@more@]
2,积分的查看计算
2.1 积分的查看
[root@MYSQL4 crm]# 2>&1 /usr/heartbeat/sbin/ptest -LVVVVVVVV|grep -E "dump_node_scores"
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: group_1 allocation score on mysql4: 0
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: group_1 allocation score on mysql3: 5
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: IPaddr_10_2_225_225 allocation score on mysql4: 100
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: IPaddr_10_2_225_225 allocation score on mysql3: 105
ptest[5808]: 2009/11/25_17:33:10 debug: debug3: dump_node_scores: Pre-allloc: IPaddr_10_2_225_225 allocation score on mysql4: 100
ptest[5808]: 2009/11/25_17:33:10 debug: debug3: dump_node_scores: Pre-allloc: IPaddr_10_2_225_225 allocation score on mysql3: 105
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: group_mysql allocation score on mysql4: 0
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: group_mysql allocation score on mysql3: 5
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: mysql allocation score on mysql4: 100
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: group_color: mysql allocation score on mysql3: 105
ptest[5808]: 2009/11/25_17:33:10 debug: debug3: dump_node_scores: Pre-allloc: mysql allocation score on mysql4: 100
ptest[5808]: 2009/11/25_17:33:10 debug: debug3: dump_node_scores: Pre-allloc: mysql allocation score on mysql3: 105
ptest[5808]: 2009/11/25_17:33:10 debug: debug3: dump_node_scores: Post-coloc: mysql allocation score on mysql4: 100
ptest[5808]: 2009/11/25_17:33:10 debug: debug3: dump_node_scores: Post-coloc: mysql allocation score on mysql3: 105
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: native_color: mysql allocation score on mysql4: 400
ptest[5808]: 2009/11/25_17:33:10 debug: debug2: dump_node_scores: native_color: mysql allocation score on mysql3: 420
IPaddr.SCORE = Pre-allloc: IPaddr_10_2_225_225
Mysql.SCORE = Pre-allloc: mysql
综合all.SCORE = native_color: mysql 用来判决是否切换
0)资源要切换不再以单个资源的分数来比较. 而是以该NODE的N个资源SCORE之和,再乘N,我们下面称它为
NodeX.all.score= (mysqlX.resource1.score+ .... + mysqlX.resourceN.score) *N
1)当HB发生NodeX资源失败时,会给该NODE
NodeX.resourceN.score += default-resource-failure-stickiness
NodeX.resourceN.score -= default-resource-stickiness
NodeX.resourceN.score += default-resource-stickiness
NodeX.all.score = (NodeX.resource1.score + ...... + NodeX.resourceN.score)* N
然后多个NODE之间比较NodeX.all.score
2)当HB发现NodeX上资源发生切换到"NodeY" 时,会减去之前赋给该NODE的"成功分:default-resource-stickiness",
NodeX.resource[1..N].score -= default-resource-stickiness
NodeY.resource[1..N].score += default-resource-stickiness
NodeX.all.score = NodeX.resource1.score + ...... + NodeX.resourceN.score
NodeY.all.score = NodeY.resource1.score + ...... + NodeY.resourceN.score
3)其他算法同配置<2resource2group4score>.
3,例子以及测试数据。
例1: default-resource-stickiness=5 default-resource-failure-stickiness=-15 mysql4.ipaddr.score=100 mysql3.ipaddr.score=100 mysql4.mysql.score=100 mysql3.mysql.score=101 |
| SCORE | Resource Status | Action | | MEMO |
| mysql3.ipaddr | mysql4.ipaddr | mysql3.mysql | mysql4.mysql | mysql3.all | mysql4.all | mysql3.status | mysql4.status | seq | operation | |
| 105 | 100 | 106 | 100 | 422 | 400 | | Ipaddr/mysql | 1 | Start | |
| 90 | 100 | 106 | 100 | 392 | 400 | | | 2 | mysql3.ipaddr down | 中间计算,HB认为需要切换 |
| 85 | 105 | 101 | 105 | 372 | 420 | Ipaddr/mysql | | | | 这时可以mysql3.HB restart,以置回初值 |
| 100 | 105 | 101 | 105 | 402 | 420 | | | 3 | mysql3.HB restart | |
| | | | | | | | | | | |
| | | | | | | | | | | |
下面不演示也去了。与前面的计算也很类似。
有兴趣的同学,可以先把分数计算好,然后再看看HB的结果。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/703656/viewspace-1029075/
,如需转载,请注明出处,否则将追究法律责任。