利用keepalived 实现HA&LB

简介:

利用keepalived 实现HA&LB
实验环境RHEL5U3

需要软件包 keepalived ipvsadm

VIP :192.168.0.16

realserver 1 :192.168.0.3

realserver 2 :192.168.0.4

装包
下载地址 wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz
./configure --prefix=/ --mandir=/usr/local/share/man 
--with-kernel-dir=/usr/src/kernels/2.6.18-128.el5-i686/
以上这步是 设定安装路径以及帮助文件的路径 可以自行定义 后面那段with-kernel-dir 这个参数很重要,这个参数并不表示我们要把keepalived编进内核,
而是指使用内核源码里面的头文件,也就是include目录 (如果需要用到LVS才需要这么做,
否则是不需要的,而且如果要使用netlink,还需要link_watch.cz这个文件)

上面这段我一直没弄清楚,希望高人指点下,因为我没有选这项的时候依然可以使用LVS
make
make install

然后修改 keepalived 的配置文件vim /etc/keepalived/keepalived.conf 
 
global_defs {  
 notification_email {
 storysky@sina.com.cn
                     }
 notification_email_from storysky@sina.com.cn

#指定 keepalived 在发生事件(如切换)时,需要发送email到你定义的邮箱,可以填多个,每行一个

   smtp_server 192.168.10.1    #这两项是邮件服务器的配置 
   smtp_connect_timeout 30
   router_id LVS_DEVEL        # 运行keepalived的机器的一个标识
}
#下面是VRRPD 配置
vrrp_sync_group VG1 {
 group {
  VI_1                                         #VRRP实例名
             }
                                         }

#VRRP 实例配置
vrrp_instance VI_1 {  
    state BACKUP        # 无论主与备都设置为BACKUP是为了不抢占director, #通过priority来确认谁先起作用,主的优先级至少高于从50
    interface eth0      # (inside_network)实例绑定的网卡
    macast_src_ip       #发送多播包的地址,如果不设置,默认使用绑定网 卡的#primary IP
#建议使用专门网卡并使用这项,问题:如果这块儿网卡出了问题如何处理?
 
    virtual_router_id 51       #VRID 标记 (0-255)主备服务器必须一致
    priority 101               #优先级
    advert_int 1               #检查间隔,默认为1秒
    nopreempt                  # 不抢占 这个配置只能设置在 state为 BACKUP的主机 上,而且这台主机的priority必须比另一台要高
    authentication {                  #这是认证的相关设置
        auth_type PASS             #认证方式 PASS | AH
        auth_pass 33210             #认证密码 
    }
    virtual_ipaddress {
        192.168.0.16                      # VIP 地址
    }
}

virtual_server 192.168.0.16 80 {
    delay_loop 6                        # 每六秒查询realserver状态
    lb_algo rr                              #lvs采用轮询算法 rr|wrr|lc|wlc|lblc|sh|dh
    lb_kind DR                           #lvs使用Direct Route NAT|DR|TUN
    protocol TCP                        #使用TCP 协议来检查
    persistence_timeout 600     # 会话保持时间,就是同一个ip在600秒内会被分到同一个realserver上
  
    real_server 192.168.0.3 80 {
        weight 1                            #权重
 inhibit_on_failure # 在检查失败的时候 将权重设为0 并继续监控 而不是直接把他踢掉,注意这个别加在TCP_CHECK下面
        TCP_CHECK {                #以什么方式来检查 健康状况 HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
            
            connect_timeout 3      #连接超时时间
            nb_get_retry 3             #重试连接次数
            delay_before_retry 3  #每次重试连接间隔 (单位秒)
       #    bindto 192.168.0.16   #以此地址来 向服务器发送请求来检查其健康状态
            connect_port 80   #tcp去检查80端口状态来判断realserver是否健康, 这个和上面那个bindto 不要一起用
            #注意:HTTP_GET|SSL_GET|SMTP_CHECK|MISC_CHECK 这几种检查方式请参考 《keepalived权威指南》第十四页   
                                 }
                                                    }
    real_server 192.168.0.4 80 {
        weight 1
        inhibit_on_failure
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
                                 }
                                                   }

    # 如果有更多的realserver 请按照需要自行添加
}


realservice 配置脚本
ifconfig lo:1 192.168.0.16 netmask 255.255.255.255
echo 2 > /proc/sys/net/ipv4/conf/eth1/arp_announce
echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_ignore

安装Apache 服务并检查其是否可以正常工作

这个是我自己机器上的网卡,根据自己实际情况而定

启动 /etc/init.d/keepalived start
测试:

通过停止 服务 和拔网线 测试 ipvsadm都成功的切换到了备服务器

实验结果 成功

 

参考文档 《keepalived权威指南》

本文出自 “story的天空” 博客,请务必保留此出处http://storysky.blog.51cto.com/628458/189845

   



本文转自 wdy198622 51CTO博客,原文链接:http://blog.51cto.com/weimouren/1716382

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
负载均衡 网络安全
|
负载均衡 Linux 调度
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
160 1
使用keepalived(HA)+LVS实现高可用负载均衡群集,调度器的双机热备
|
负载均衡 数据安全/隐私保护 网络协议
|
负载均衡 开发工具 域名解析
|
负载均衡 算法 关系型数据库