Hypertable的Failover(故障迁移)
来源:互联网 发布:python 获取文件大小 编辑:程序博客网 时间:2024/05/21 09:00
Master的Failover
多master配置:
1.在需要启动master进程的机器上都安装gcc gcc-c++ make cmake 、zlib zlib-devel openssl openssl-devel 、yaml 、ruby 、gems 、rrdtool
2.配置capfile,增加master机器
role :master, "cent1", "cent2", "cent3"
测试:启动集群以后,在配置master的机器上运行:ps -ef | grep "hyper" | grep "Mast"
都可以看到master进程如下:
root 2721 2719 0 11:40 ? 00:00:01 /opt/hypertable/current/bin/Hypertable.Master
启动客户端,杀掉一个master进程后,可以从客户端看到master切换:
1351741463 INFO hypertable : (/root/src/hypertable/src/cc/Hypertable/Lib/MasterClient.cc:972) Connecting to new Master (old=192.168.56.101:38050, new=192.168.56.103:38050)
1351741603 INFO hypertable : (/root/src/hypertable/src/cc/Hypertable/Lib/MasterClient.cc:972) Connecting to new Master (old=192.168.56.103:38050, new=192.168.56.102:38050)
当切换后可以通过切换后的ip,连接Hypertable Monitoring 页面, Monitoring 页面只能在主Master机器进行查看,如果在其它机器上查看,将看不到用户表和集群变化情况。当一台机器获得主Master身份后,其余机器的Master日志中可能会看到:
Couldn't obtain lock on '/hypertable/master' due to conflict, entering retry loop ...
RangeServer的Failover
手动Failover
如果RangeServer服务挂掉,只要重启该服务即可。
如果RangeServer机器挂掉,重启机器后再重启服务(dfsbroker、rangeserver、thriftbroker)即可。
如果机器不能启动,则需要一台集群中空闲的机器,将其proxy name改为挂掉机器的proxy name,然后启动服务(dfsbroker、rangeserver、thriftbroker)即可。此种情况下,空闲机器无需将IP改为挂掉机器的IP。
自动Failover
Hypertable自从0.9.7.0推出了RangeServer的自动failover,直到目前版本0.9.7.7,该功能虽然可用,但不是非常可靠,起码我经过多轮测试这么认为。。。要实现自动failover很是简单,只需配置项Hypertable.Failover.Quorum.Percentage设置为合理的值即可,默认为90,即只要90%的RangeServer机器活着,就可进行自动Failover。
Commit Log文件的大小会影响自动failover的速度,甚至成败。虽说Hypertable.RangeServer.CommitLog.PruneThreshold.Max配置项可以限制Commit Log的上限,但是实践发现,当写入负载持续高时,该限制会失效。所以建议集群不要进行持续的高写入负载。
目前版本0.9.7.7的自动Failover速度已经不错了,在6个RangeServer的集群里,2T数据时,10-15分钟即可完成一台RangeServer的自动Failover。但是目前发现当第三次测试时,会频繁出现“request timeout”的问题,并且都提示连接不到最后一台RangeServer,即第二次测试之后带回集群的那台机器。
官方说Failover时对读写没有影响,但是测试发现还是有的。手动时写入根本无法进行,直到Failover成功后才可以继续写入。自动时虽然可以写入,但是写入速度严重下降。读取倒是可以,但是如果读到的数据属于挂掉那台RangeServer上的range的话,则会提示“request timeout”。
Hyperspace的Failover
官方建议Hyperspace选用一台高性能的服务器即可,即一般不需要考虑Failover。如果非要的话,请准备三台机器都作为Hypersapce,如果一台挂掉,则停止集群后再重启即可。官方目前不支持Hyperspace的自动Failover。
- Hypertable的Failover(故障迁移)
- Hypertable中Hyperspace的Failover
- Failover Cluster(故障转移群集)
- Zookeeper的一次迁移故障
- keepalived+redis 实现高可用的自动故障转移failover
- Nginx+Tomcat集群的故障迁移实验
- Hypertable的automatic Counter
- Hypertable的升级安装
- hypertable的cellcache
- 使用sentinel进行redis主从切换的操作步骤(failOver故障转移)(何志雄)
- Hypertable
- Hypertable
- DataGuard之DG 故障切换(switchover和failover)以及利用flashback 进行恢复
- DataGuard之DG FSFO(fast start failover 快速启动故障)配置
- pgpool流复制&failover故障切换
- Keepalived实现Redis Failover自动故障切换
- The Failover Transport(失败故障转移传输)
- 使用阿里云配置管理ACM实现zookeeper依赖服务的透明Failover迁移
- 如何在多个LinearLayout中添加分隔线?
- UVA 10079 Pizza Cutting
- 黑马程序员:解决Android SDK 开发文档(英文版)打开缓慢的问题!
- DedeCMs系统加入优酷视频_让视屏全屏的方法
- gnu工具链简介
- Hypertable的Failover(故障迁移)
- 《两个大的整数的运算——Java第九周》
- STL源码剖析---红黑树原理详解
- 预编译头技术
- 将二叉排序树BST转换成排序的双向链表
- oracle 11g 学习笔记 11_4
- python客户端访问WebService
- Awstats显示国家地区插件GeoIP安装
- 单词串联记忆 - 故事 - Party上的浪漫事