LVS-安装

来源:互联网 发布:知乎都是什么人在用 编辑:程序博客网 时间:2024/06/05 10:05

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 keepalivedglobal_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/bashSNS_VIP=192.168.20.100. /etc/rc.d/init.d/functionscase "$1" instart) 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 1esacexit 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 keepalivedglobal_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
原创粉丝点击