LVS+keepalived(主从模式)安装

来源:互联网 发布:vb编程实例 编辑:程序博客网 时间:2024/06/07 16:54

LVS+keepalived(主从模式)安装

lb-01:172.21.3.186 LVS+keepalived-master

lb-02:172.21.3.187 LVS+keepalived-backup

web-01:172:21.3.185 Server1

web-02:172.21.3.195 Server2

VIP:172.21.3.194 

1.安装keepalived

  • 172.21.3.186 172.21.3.187安装依赖
# yum -y install gcc* pcre-devel zlib-devel openssl-devel  popt-devel
  • 下载安装keepalived
# wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz# tar -zxvf ./keepalived-1.1.17.tar.gz# cd ./keepalived-1.1.17# ./configure --prefix=/usr/local/keepalived# make && make install# mkdir /etc/keepalived# cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/# cp /usr/local/keepalived/sbin/keepalived /usr/sbin/# chkconfig --level 2345 keepalived on
  • 修改配置文件
# vim   /etc/keepalived/keepalived.conf   #修改配置文件
  • 172.21.3.186master主机中的配置文件
 global_defs {   router_id LVS_DEVEL  # 设置lvs的id,在一个网络内应该是唯一的}vrrp_instance VI_1 {    state MASTER   #指定Keepalived的角色,MASTER为主,BACKUP为备    interface eth0  #指定网卡    virtual_router_id 51  #虚拟路由编号,主备要一致    priority 103  #定义优先级,数字越大,优先级越高,主DR必须大于备用DR    advert_int 1  #检查间隔,默认为1s    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        172.21.3.194  #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个    }}# 定义对外提供服务的LVS的VIP以及portvirtual_server 172.21.3.194 80 {    delay_loop 6 # 设置健康检查时间,单位是秒    lb_algo rr # 设置负载调度的算法为rr    lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式    nat_mask 255.255.255.0    persistence_timeout 0 #保持该时间内请求的是同一个服务器。为了测试效果改为0    protocol TCP    real_server 172.21.3.195 80 {  # 指定real server1的IP地址        weight 3   # 配置节点权值,数字越大权重越高        TCP_CHECK {        connect_timeout 10        nb_get_retry 3        delay_before_retry 3        connect_port 80      }    }    real_server 172.21.3.185 80 {  # 指定real server2的IP地址        weight 3  # 配置节点权值,数字越大权重越高        TCP_CHECK {        connect_timeout 10        nb_get_retry 3        delay_before_retry 3        connect_port 80        }     }}
  • 172.21.3.187backup主机中的配置文件(只需要修改master主机中如下2项)
  state BACKU   #指定Keepalived的角色,MASTER为主,BACKUP为备  priority 102  #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
  • 完成后启动服务
# service  keepalived   start

2.安装LVS

  • 172.21.3.185 172.21.3.195下载安装依赖
# yum install -y libnl* popt*
  • 查看是否加载lvs模块
# modprobe -l |grep ipvskernel/net/netfilter/ipvs/ip_vs.kokernel/net/netfilter/ipvs/ip_vs_rr.kokernel/net/netfilter/ipvs/ip_vs_wrr.kokernel/net/netfilter/ipvs/ip_vs_lc.kokernel/net/netfilter/ipvs/ip_vs_wlc.kokernel/net/netfilter/ipvs/ip_vs_lblc.kokernel/net/netfilter/ipvs/ip_vs_lblcr.kokernel/net/netfilter/ipvs/ip_vs_dh.kokernel/net/netfilter/ipvs/ip_vs_sh.kokernel/net/netfilter/ipvs/ip_vs_sed.kokernel/net/netfilter/ipvs/ip_vs_nq.kokernel/net/netfilter/ipvs/ip_vs_ftp.kokernel/net/netfilter/ipvs/ip_vs_pe_sip.ko
  • 下载并安装LVS
# cd /usr/local/src/# wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz# tar -zxvf ipvsadm-1.26.tar.gz# cd ipvsadm-1.26# make && make install
  • 安装完成,查看当前LVS集群
# ipvsadm -L -nIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

3.172.21.3.185 172.21.3.195绑定回环地址

  • 编写脚本 /etc/init.d/realserver
# vim /etc/init.d/realserver#!/bin/shVIP=172.21.3.194. /etc/rc.d/init.d/functionscase "$1" in# 禁用本地的ARP请求、绑定本地回环地址start)    /sbin/ifconfig lo down    /sbin/ifconfig lo up    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce    /sbin/sysctl -p >/dev/null 2>&1    /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP up     #在回环地址上绑定VIP,    /sbin/route add -host $VIP dev lo:0    echo "LVS-DR real server starts successfully.\n"    ;;stop)    /sbin/ifconfig lo:0 down    /sbin/route del $VIP >/dev/null 2>&1    echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore    echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce    echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore    echo "2" >/proc/sys/net/ipv4/conf/all/arp_announceecho "LVS-DR real server stopped.\n"    ;;status)    isLoOn=`/sbin/ifconfig lo:0 | grep "$VIP"`    isRoOn=`/bin/netstat -rn | grep "$VIP"`    if [ "$isLoON" == "" -a "$isRoOn" == "" ]; then        echo "LVS-DR real server has run yet."    else        echo "LVS-DR real server is running."    fi    exit 3    ;;*)    echo "Usage: $0 {start|stop|status}"    exit 1esacexit 0
  • realserver脚本加入开机自启动
# chmod +x /etc/init.d/realserver# echo "/etc/init.d/realserver" >> /etc/rc.d/rc.local
  • 启动realserver脚本
[root@Real_Server1 ~]# service realserver startLVS-DR real server starts successfully.\n

4.测试

  • 172.21.3.185 172.21.3.195上查看
# ipvsadm -lIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  172.21.3.194:http rr  -> 172.21.3.185:http            Route   3      0          0           -> 172.21.3.195:http            Route   3      0          0  
  • 访问网址

原创粉丝点击