lvs+keepalived 实现高可用

一系统环境

  centos6.5

  lvs+keepalived(master)

  lvs+keepalived(slave)

  nginx(real-server)

  nginx(real-server)


二、lvs介绍

   LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。虚拟服务器最主要的功能是提供包转发和负载均衡,这个功能可以通过ipvsadm 具体实现。ip负载均衡技术包括:VS/NAT、VS/DR、VS/TUN。本文介绍DR方式。


三、keepalive介绍

   keepalived是一款实现高可用的开源软件,所谓高可用即保持在线,可以防止服务的单点故障。它是基于vrrp(虚拟路由冗余协议)来实现高可用功能的。

   VRRP协议是为消除在静态缺省路由环境下的缺省路由器单点故障引起的网络失效而设计的主备模式的协议,使得在发生故障而进行设备功能切换时可以不影响内外数据通信,不需要再修改内部网络的网络参数。VRRP协议需要具有IP地址备份,优先路由。选择,减少不必要的路由器间通信等功能。  

   VRRP协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话就是MASTER,或者是通过算法选举产生,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等;其他设备不拥有该IP,状态是BACKUP,除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能。当主机失效时,BACKUP将接管原先MASTER的网络功能。


四、安装

  1安装lvs

  从Linux内核版本2.6起,ip_vs code已经被整合进了内核中,因此,只要在编译内核的时候选择了ipvs的功能,您的Linux即能支持LVS。Linux 2.4.23以后的内核版本也整合了ip_vs code,但如果是更旧的内核版本,您得自己手动将ip_vs code整合进内核原码中,并重新编译内核方可使用lvs。

  #yum install -y ipvsadm

  2安装keepalived

  #tar zxf keepalived-1.1.17.tar.gz

  #cd keepalived-1.1.17

  #./configure 

  #make&make install

  #cp /usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

  #cp /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

  #mkdir -p /etc/keepalived

  #cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

  #cp /usr/local/sbin/keepalived /usr/sbin/

  #/etc/init.d/keepalived start

  keepalived启动有三个进程

 

五、配置文件

! Configuration File for keepalived
global_defs {
   notification_email {
   root@localhost
   }
   notification_email_from [email protected]
   smtp_server localhost
   smtp_connect_timeout 30
   router_id LVS_DEVEL
}
vrrp_sync_group VG1 {
    group {
    VI_1
    VI_2
    VI_3
    VI_4
    }
}
vrrp_instance VI_1 {
    state MASTER    #状态,slave为BACKUP
    interface eth0
    virtual_router_id 71
    priority 102    # 102 on master, 100 on backup
    advert_int 3
    smtp_alert
    authentication {
        auth_type PASS
        auth_pass PASSWORD
    }
    virtual_ipaddress {
        192.168.1.30
    }
}
## nginx VIP
virtual_server 192.168.1.30 80 {
    delay_loop 6    #健康检查时间间隔
    lb_algo wlc     #负载均衡算法,加权最少连接
    lb_kind DR      #负载均衡技术DR
    persistence_timeout 7  #session保持时间7s
    protocol TCP    #转发协议
    real_server 192.168.1.40 80 {
    weight 1        #权重
    TCP_CHECK {
    connect_timeout 7 #连接超时时间
     }
    }
    real_server 192.168.1.41 80 {
    weight 4
    TCP_CHECK {
    connect_timeout 7
    }
    }
}


六、realserver VIP设置

  #vim /etc/sysctl.conf  

   net.ipv4.conf.lo.arp_ignore = 1

   net.ipv4.conf.lo.arp_announce = 2

   net.ipv4.conf.all.arp_ignore = 1

   net.ipv4.conf.all.arp_announce = 2

  #vim /etc/sysconfig/network-scripts/ifcfg-lo:1  

   DEVICE=lo:1

   NAME=loopback1

   IPADDR=192.168.1.30     #VIP

   NETMASK=255.255.255.255

   ONBOOT=yes

~ #service network restart

  #ifconfig 验证查看  


本文出自 “不莱梅乐队” 博客,谢绝转载!

你可能感兴趣的:(keepalived,高可用,LVS)