Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。一个WEB服务至少会有2台服务器运行Keepalived,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

假设两台机器,服务器一 : 10.1.1.10  服务器二: 10.1.1.11 ,虚拟ip为 10.1.1.12 系统为 linux rhel 5.9

keepalived 安装与配置

./configure --prefix=/usr/local/keepalived
make
make install

cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ 
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ 
cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ 
mkdir -p /etc/keepalived 
cd /etc/keepalived/ 
# 配置
vi keepalived.conf #/usr/local/keepalived/etc/keepalived/keepalived copy

在服务器一上:

global_defs {
notification_email {
                # 邮箱配置,略
    }
}

vrrp_instance VI_1 {
    state MASTER #备用服务器上改为 BACKUP
    interface eth0  # 使用 ifconfig 查看ip 属于哪个网卡号
    virtual_router_id 51  #主备必须一直
    priority 100 #备用服务器上改为99 优先级,越大越高
    advert_int 1
    authentication { #主从服务器验证方式主备的keepalived这2个配置要一样。
        auth_type PASS
        auth_pass 1111
    }
virtual_ipaddress {
    10.1.1.12   # 虚拟 IP  主从使用相同的虚拟 ip
    }
}

lvs 相关配置,假设 10 和 11 上有 mysql 服务

  virtual_server 10.1.1.12 3306 {
    delay_loop 6 #每隔6秒检查一次real_server状态
    lb_algo rr
    lb_kind NAT
    nat_mask 255.255.255.0
    persistence_timeout 50 #回话保持时间
    protocol TCP

    real_server 10.1.1.10 3306 {
        weight 1
        notify_down "/usr/local/keepalived/mysql.sh"   #新建这个mysql.sh文件,输入 pkill keepalived

        TCP_CHECK {
            connect_timeout 3
            connect_port 3306
          }
    }
    }

使用:

chkconfig keepalived on
service keepalived start

验证:可以简单的 ping 真实IP和虚拟 ip检查配置是否成功,可以使用虚拟ip 访问真实IP部署的程序

查看虚拟在哪个 ip 上

   ip a

图片描述

参考:Keepalived配置与使用
安装keepalived
Linux下keepalived+mysql实现高可用
【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡


liujs
277 声望5 粉丝

引用和评论

0 条评论