Chinaunix首页 | 论坛 | 博客
  • 博客访问: 262821
  • 博文数量: 36
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1162
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-22 12:50
文章分类

全部博文(36)

文章存档

2016年(2)

2015年(2)

2014年(32)

分类: LINUX

2014-08-08 20:23:05

1.keepalived简介

        是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。使用多台节点安装keepalived。其他的节点用来提供真实的服务,同样的,他们对外表现一个虚拟的IP。主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。
 
        keepalived的原理图如下所示:
       
       
        最左边是客户机,它访问我们的虚拟IP。然后我们有master(主控制节点)和backup(备用控制节点)。最右边的就是我们提供服务的真机了。

2.搭建keepalived服务
       
        我们使用四个节点来做这个实验,两个充当控制节点,另外两个提供服务。然后用真机的浏览器访问虚拟IP。

        注意事项:
            1.所有节点要做好解析。
            2.时间同步
            3.yum源设置好(除了基本的源,高可用等也要添加)
          
      
        如图是我们的操作控制台:
       
       
        keepalived的安装包为:
        keepalived-1.2.13.tar.gz
       
        两个控制节点分别解压和编译、安装keepalived:
       

        在编译keepalived之前我们需要安装一些相关的包:
       
       
       
       
      
       编译keepalived源码包:
      
      
       这个是我们的 编译结果:
      
      
       然后我们进行安装:
     
     
       上述的步骤在两个控制节点上都要进行,最后在配置文件中我们再设定主副节点。
       建立软链接,把keepalived的配置文件和服务启动文件链接到指定位置:
      
     
       设置配置文件:
     
      
       我们设置了邮件的发送地址和ip,MASTER制定为主控制节点,虚拟id两个节点必须相同。delay_loop 指定6秒检测服务状态。
     

       设置虚拟ip,这是我们客户机访问的IP。
     
       
       这个是剩余的配置文件内容,我们设置连接方式为直连方式DR,负载策略为轮叫方式rr,协议威TCP。然后我们设置了两个提供服务节点的IP和端口。分别为192.168.2.108和192.168.2.109的80端口。也就是网页访问服务。

      
    
       然后我们设置备机的配置文件,模式设置为BACKUP,权重修改为50。这样才可以优先让主控制节点接管。

       然后我们打开keepalived服务,并查看日志,发现已经识别了192.168.2.110虚拟IP:
            
      
        在两个提供真机的服务节点上安装arptable_jf软件:
        
      
        设置arptables的策略:
       

       
         
        然后我们要在两个控制节点上安装ipvsadm软件来监控服务的状态:
       
 
      
       
        如果无法安装的话,查看yum源,设置成如下所示:
       
      
        在两个提供服务的真机上安装httpd,设置完默认发布内容后启动服务:
        
        
         然后我们在主控制节点上查看当前的监控信息:
        
        
         在真机的浏览器上查看192.168.2.110的信息。因为是轮叫策略,所以会轮换显示192.168.2.108和192.168.2.109的默认发布内容:
        
        
3小结:
         这样我们就搭建了keepalived下的高可用集群。这个的复杂程度要低于heartbeat,在生产环境中也是非常常见的。
       
       
       

阅读(5001) | 评论(2) | 转发(2) |
给主人留下些什么吧!~~

linux_player_c2016-05-05 17:09:11

jonelaw:你好!看了你的文章很受启发,我想问一个问题:这两台节点服务器的抗压性如何面对大访问量的时候?

你好,这个是我之前学习时的实验。谈谈现在我的感受。面对大访问量,建议不要先用集群去抗压力。可以采用以下几个思路:

1.先把容量进行分流,采用负载均衡的算法(负载均衡的机制有很多:1.nginx反向代理上游服务器集群(过段时间想写一篇介绍),DNS负载均衡);
2.把同步操作变换为异步操作(使用开源的消息队列),也就是用户发送请求,服务器处理请求的操作分开,不会相互阻塞。
3.最最关键的思想是要减少用户直接访问服务器,尽量让他们访问CDN或者其他缓存。达到最优解。

这些思路源于阅读了一本书《大型网站技术架构》,建议可以去阅读一下,会对网站的架构有更深刻的理解。

回复 | 举报

jonelaw2016-04-08 10:14:49

你好!看了你的文章很受启发,我想问一个问题:这两台节点服务器的抗压性如何面对大访问量的时候?