LVS+Keepalived DR模式实现web负载均衡高可用
2014-11-21 16:07
806 查看
量了一下4个datanode时候HDFS写操作时每个node分配block的情况,每个datanode是4张disk,写了个脚本处理log后发现平均每个node分配的block数量占写的block总数量的25%,而每个node上的每个disk又分到了25%的block数目。因此,HDFS的写分配算法相对在我这个cluster上还是均匀的。
具体看了一下code,选datanode的算法是chooseTarget,这个是大家熟知的了,比如replication是3的情况,就是选一个local,然后同一个rack的另外一个node,然后是另外一个rack的一个node,这些选择是随机的了。
选disk(或者说选block file的目录),则是round-robin的了。
因此有个疑问就是现在这种算法对现在这样每个node的每个disk的io能力是一样的效果会比较好,那如果不一样呢,比如一些node的某些disk用SD,相对IO处理会快,那么理想中就应该给该node或者该SD分配较多的block写操作,现在的算法就太一视同仁了,能力强的得不到利用,能力差的分配到一样多的任务。
但不可否认,现在的算法是最简洁的,Simple is beauty。如果要namenode选择datanode的时候知晓备选的datanode上当前写任务是否繁重的情况也比较难吧。
当然,也会有人说,如果某datanode能力强,按照你理想中的应该分配较多的写,那么这个device不就很快歇菜了……我也没办法,只能说更看重什么吧。
具体看了一下code,选datanode的算法是chooseTarget,这个是大家熟知的了,比如replication是3的情况,就是选一个local,然后同一个rack的另外一个node,然后是另外一个rack的一个node,这些选择是随机的了。
选disk(或者说选block file的目录),则是round-robin的了。
因此有个疑问就是现在这种算法对现在这样每个node的每个disk的io能力是一样的效果会比较好,那如果不一样呢,比如一些node的某些disk用SD,相对IO处理会快,那么理想中就应该给该node或者该SD分配较多的block写操作,现在的算法就太一视同仁了,能力强的得不到利用,能力差的分配到一样多的任务。
但不可否认,现在的算法是最简洁的,Simple is beauty。如果要namenode选择datanode的时候知晓备选的datanode上当前写任务是否繁重的情况也比较难吧。
当然,也会有人说,如果某datanode能力强,按照你理想中的应该分配较多的写,那么这个device不就很快歇菜了……我也没办法,只能说更看重什么吧。
相关文章推荐
- LVS+Keepalived DR模式实现web负载均衡高可用
- lvs/dr+keepalived实现Web负载均衡Dr高可用
- lvs DR模式 +keepalived 实现directory 高可用、httpd服务负载均衡集群
- LVS-DR+keepalived(——实现WEB站负载均衡和高可用)
- lvs DR模式 +keepalived 实现directory 高可用、httpd服务负载均衡集群
- Lvs+keepalived 实现负载均衡、故障剔除(DR模式)
- Lvs+keepalived实现负载均衡、故障剔除(DR模式)
- Lvs+keepalived实现负载均衡、故障剔除(DR模式)
- Ubuntu10.04.4 Server下基于LVS DR模式+Keepalived的负载均衡高可用
- CentOS6.2下搭建LVS(DR)+Keepalived实现高性能高可用负载均衡服务
- 借助LVS+Keepalived通过DR模式实现负载均衡
- linux集群系列(一):LVS+Keepalived以DR模式实现负载均衡
- 利用LVS+Keepalived 实现高性能高可用负载均衡
- MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_4(Lvs+Keepalived)
- Keepalived + LVS(DR) 虚拟服务器实现高并发负载均衡集群
- 企业级WEB的负载均衡高可用之LVS+Keepalived(1)
- lvs+keepalived实现负载均衡及高可用
- LVS+Keepalived实现负载均衡高可用
- LVS+Keepalived 实现WEB负载均衡和DNS负载均衡
- 企业级WEB的负载均衡高可用之LVS+Keepalived