LVS-安装

1.环境需求
LVS负载均衡器:192.168.20.150 VIP地址:192.168.20.100
http服务器1:192.168.20.152
http服务器2:192.168.20.153
2.安装IPVSADM:
IPVS管理工具,LVS的核心就是IPVS(IP Virtual Server),从Linux内核2.6开始,IPVS模块已经编译进了Linux内核
使用yum命令进行安装:

yum -y install ipvsadm 

3.关闭防火墙:
在实际使用中开启需要的端口即可,测试中直接关闭

service iptables stop

4.安装keepalived:
keepalived是一个路由软件,通过简单配置,实现高可用的负载均衡.keepalived 不仅会检测负载均衡服务器池中每台机器的健康状况,并通知ipvs将非健康机器从池中移除掉;同时还能对负载调度器本身的健康状态检查,当主LB出现问题时,备用LB项替主进行工作

cd /usr/src  
yum -y install openssl-devel  
wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz  
wget http://mirror.centos.org/centos/6/os/x86_64/Packages/popt-static-1.13-7.el6.x86_64.rpm  
yum -y install popt-static-1.13-7.el6.x86_64.rpm  
yum -y install kernel-devel make gcc openssl-devel libnl* popt*  
ln -s /usr/src/kernels/2.6.32-220.13.1.el6.x86_64/ /usr/src/linux  
tar zxvf keepalived-1.2.7.tar.gz  
cd keepalived-1.2.7  
./configure --with-kernel-dir=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64/

执行完最后一条,终端应该显示为下图:
这里写图片描述
继续执行如下命令

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 /etc/keepalived  
cp /usr/local/etc/keepalived/keepalived.conf /etc/keepalived/  
cp /usr/local/sbin/keepalived /usr/sbin/  

keepAlived安装完毕
5.配置keepalived
<1>打开ip forward功能

vi /etc/syctl.conf

修改里面的“net.ipv4.ip_forward = 1”,如下图所示:
这里写图片描述
修改好保存退出,执行如下命令使设置立即生效

sysctl -p

<2>配置keepalived:
配置文件位置:/etc/keepalived/keepalived.conf
启动keepalived时,会自动到/etc/keepalived下面查找该配置文件

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server  127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_Master
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.20.100
    }
}

virtual_server 192.168.20.100 8080 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.20.152 8080 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

以上完成了keepalived的配置
6.启动keepalived

chkconfig keepalived on  
service keepalived start 

查看进程:

ps aux | grep keepalived 

启动正常的话会看到如下图所示进程
这里写图片描述
如上图所示,共启动3个进程,一个进程是父进程,负责监控其子进程;一个是vrrp子进程,另外一个是checkers子进程
查看下虚拟ip是否已加上(重要)

ip a

如下图所示:
这里写图片描述
说明虚拟ip已经自动配置上
7.配置WEB服务器WEB1_RealServer
<1>打开虚拟机WEB1_RealServer
<2>配置虚拟ip启动脚本

vi /etc/init.d/realserver.sh  
在文件输入如下内容:
#!/bin/bash
SNS_VIP=192.168.20.100
. /etc/rc.d/init.d/functions
case "$1" in
start)
 ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
 /sbin/route add -host $SNS_VIP dev lo:0
 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
 sysctl -p >/dev/null 2>&1
 echo "RealServer Start OK"
 ;;
stop)
 ifconfig lo:0 down
 route del $SNS_VIP >/dev/null 2>&1
 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
 echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
 echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
 echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
 echo "RealServer Stoped"
 ;;
 *)
 echo "Usage: $0 {start|stop}"
 exit 1
esac
exit 0
<3>安装tomcat
<4>启动虚拟ip的脚本
sh /etc/init.d/realserver.sh start  
ifconfig 
运行后会看到网络有一个虚拟ip, 如下图

这里写图片描述
<5>去LVS_MASTER服务器终端查看下ipvsadm,查看已经连接上了WEB1服务器,运行命令

ipvsadm -ln  

结果如下图
这里写图片描述
通过上图可以看到已经有服务器加入进来
<6>使用命令行测试转发情况如下

ipvsadm -lcn | grep 192.168.20.100  

8.克隆服务器LVS_MASTER,起名为LVS_BACKUP,修改其中的参数,MASTER与BACKUP配置仅三处不同:
global_defs中的route_id,vrrp_instance中的state,priority
配置如下文:

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server  127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_Backup
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.20.100
    }
}

virtual_server 192.168.20.100 8080 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
    persistence_timeout 50
    protocol TCP

    real_server 192.168.20.152 8080 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

9.从WEB1_RealServer克隆一个WEB2_RealServer,将安装tomcat,启动realserver.sh
至此全部配置完成,配置出两个lvs主从服务器,2个web服务器
10.负载和可用性测试
测试LVS层
1)首先执行ip a命令,主服务器会存在一个虚拟IP,从服务器不会存在这个虚拟IP。现在浏览网页显示正常。虚拟IP如图所示:
显示集群中服务器ip信息:ipvsadm -ln
查看日志:tail -f /var/log/messages
查看请求转发情况:ipvsadm -lcn | grep 虚拟IP
LVS_MASTER中的ip信息:
这里写图片描述
LVS_BACKUP中的ip信息:
这里写图片描述
2)现在停掉LVS_MASTER的keepAlived服务,看LVS_BACKUP是否可以自动加上虚拟IP地址,并且开始转发请求。
这里写图片描述
LVS_BACKUP服务器截图:
这里写图片描述
3)、恢复主服务器的keepAlived服务后,主服务器立刻接替了从服务器的工作,就不做截图了。和第1)个正常效果是一样的。
4)、测试WEB服务器,看能否正常提供服务。先断掉WEB1,看下效果。
ipvsadm中的服务器列表,已经去掉了WEB1服务器,访问网页也只能访问到WEB2服务器了。
这里写图片描述
5)开启WEB1,关掉WEB2。测试正常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值