HA test 总结
目前HA master切换功能如下
环境:A 机器, B机器
切换逻辑:
1. 当A 机器上的master进程作为主节点时候, B机器在启动Master进场时候 动作如下
1.1. 发送心跳,主节点上的master收到后返回1001 确认链接
1.2. 同步fsimage 从主节点到备份节点,注意:只在master进程启动时候做一次以后不再同步fsimage
1.3. 定时同步 fslog 文件,在备份节点地方这个文件是一个递增的方式接受fslog
1.4. 每隔3秒发一起心跳 ,如果超过5秒没响应,抛 timeout 错误
2. 当 A 机器上的master进程被杀掉,A机器上的control进程会重新启master进程, 联系多次被杀掉后(超过重试次数)将在设置该机器上的
master 进程为Error (在crm_mon 可以查看该master 确认为error状态),
3. 主节点的HA control 进程认本地的master进程error后,启动备份机器上的master进场作为主节点(切换时间在20秒以内)进行切换。
4. 备份节点(B)切换成主节点后master进程,处理fslog文件 ,使得数据同步完成。
5. 如果启动A 机器上的 master进程, 但是HA没有更新他的状态,HA仍然认为他是Error状态,所以当B节点master进场down
A 机器上的master进场不会被切换成主节点 这时候就没有master出去对外提供工作状态。 除非重启B机器上的 HA 使得master状态获得更新。
6. 接5. 如果启动A机器上的Master 机场后,他可以继续被作为主节点工作。但是 crm_mon 查询状态还是 Error。
测试点:
1. A 主节点 和 B 备份节点 ,通过杀 master 进程切换 ok
2. A 主节点 和 B 备份节点 ,通过restart /etc/init.d/heartbeat 进程切换 ok (bug fix)
3. 大fsimage切换 ok (bug fix)
4. 大fslog切换 ok
5. 执行put过程时候的切换,错误处理 数据传输失败,错误数据块继续保留在系统中,需要手工删除
6. 执行rmfs过程时候的切换,错误处理 只记录删除动作很快,具体删除交给dataserver做,所以切换不影响。
7. 循环切换,需要手工干预 restart beartbeat . ok
8. 在put大文件(3G)时候, 出现fslog报错,master重启现象, 不知道是否和HA相关。