RHEL5.5上搭建LVS+keepalived负载均衡

搭建lvs集群,需要安装两个软件:   

lvs,即为Linux Virtual Server,意即Linux虚拟服务器,常见的软件负载均衡器。

keepalived,这里用作realserver健康检查以及负载均衡器的故障转移。

架构拓扑图如下:

这里两台机器做负载均衡器

master:192.168.0.201

backup:192.168.0.202

一共有两台真实的Apache服务器

apache01:192.168.0.203

apache02:192.168.0.204

虚拟访问ip为:192.168.0.10

下面开始LVS/DR负载均衡安装部署

1、安装软件

在lvs_master,lvs_backup机器上,都按照lvs和keepalived软件

安装lvs

tar zxvf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

ln -s /usr/src/kernels/2.6.18-194.el5-i686  /usr/src/linux

这里需要把系统内核库文件链接到/usr/src/linux,否则下面编译lvs会找不到库文件

make

make install

安装keepalived

tar zxvf keepalived-1.1.17.tar.gz

cd keepalived-1.1.17

./configure

make

make install

安装完成后将keepalived做成系统启动服务

cp /usr/local/etc/rc.d/init.d/keepalived /etc/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/

到处,lvs和keepalived安装完成。

2、配置keepalived

lvs_master配置如下:

cat /etc/keepalived/keepalived.conf

  
  
  
  
  1. ! Configuration File for keepalived 
  2.  
  3. global_defs { 
  4.    notification_email { 
  5.      [email protected] 
  6.      [email protected] 
  7.      [email protected] 
  8.    } 
  9.    notification_email_from [email protected] 
  10.    smtp_server 192.168.200.1 
  11.    smtp_connect_timeout 30 
  12.    router_id LVS_DEVEL 
  13.  
  14. vrrp_instance VI_1 { 
  15.     state MASTER  ##这里为主,即MASTER,如果在backup机器上配置,则为BACKUP
  16.     interface eth0  ##HA监视的网络接口,这里为eth0
  17.     virtual_router_id 51 
  18.     priority 100  ##定义优先级,数字越大,优先级越高,MASTER必须比BACKUP高,BACKUP设置为90.
  19.     advert_int 1 
  20.     authentication { 
  21.         auth_type PASS  ##设置验证类型,主要有PASS和AH两种,这里为PASS
  22.         auth_pass 1111  ##设置密码,主从必须一致
  23.     } 
  24.     virtual_ipaddress { 
  25.         192.168.0.10  ##vip的地址
  26.     } 
  27.  
  28. virtual_server 192.168.0.10 80 {  ##虚拟服务器和端口
  29.     delay_loop 6 
  30.     lb_algo rr  ##负载均衡算法,这里为rr轮询机制
  31.     lb_kind DR  ##负载均衡实现机制,这里为DR模式
  32.     nat_mask 255.255.255.0 
  33.     persistence_timeout 50 
  34.     protocol TCP  ##转发协议为tcp
  35.  
  36.     real_server 192.168.0.203 80 {  ##第一个真实节点
  37.         weight 1  ##设置权重,值越大,权值越高
  38.  
  39.             TCP_CHECK { 
  40.                     connect_timeout 10 
  41.                     nb_get_retry 3 
  42.                     delay_before_retry 3 
  43.                     connect_port 80 
  44.             } 
  45.     } 
  46.  
  47.     real_server 192.168.0.204 80 {  ##第二台真实节点
  48.             weight 1 
  49.  
  50.             TCP_CHECK { 
  51.                     connect_timeout 10 
  52.                     nb_get_retry 3 
  53.                     delay_before_retry 3 
  54.                     connect_port 80 
  55.             } 
  56.     } 

 backup的机器配置参照master,只需把主从模式设为BACKUP,优先级比100小即可

下面绑定web服务器的虚拟回环接口ip,抑制arp广播,这里用脚本实现:

 

  
  
  
  
  1. #!/bin/bash 
  2. # description: Config realserver 
  3.  
  4. VIP=192.168.0.10 
  5.   
  6. /etc/rc.d/init.d/functions 
  7.   
  8. case "$1" in 
  9. start) 
  10.        /sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP 
  11.        /sbin/route add -host $VIP dev lo:0 
  12.        echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  13.        echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  14.        echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  15.        echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce 
  16.        sysctl -p >/dev/null 2>&1 
  17.        echo "RealServer Start OK" 
  18.   
  19.        ;; 
  20. stop) 
  21.        /sbin/ifconfig lo:0 down 
  22.        /sbin/route del $VIP >/dev/null 2>&1 
  23.        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore 
  24.        echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce 
  25.        echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore 
  26.        echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce 
  27.        echo "RealServer Stoped" 
  28.        ;; 
  29. *) 
  30.        echo "Usage: $0 {start|stop}" 
  31.        exit 1 
  32. esac 
  33.   
  34. exit 0 

分别在两台真实web服务器上执行该脚本,然后启动httpd服务。

chmod +x lvs_real.sh

./lvs_real.sh

/etc/init.d/httpd start

最后在两台lvs服务器上启动keepalived服务,即可

/etc/init.d/keepalived start

在lvs服务器上观察realserver运行状态

[root@testdomain src]# ipvsadm -L

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn

TCP  192.168.0.10:http rr persistent 50

  -> 192.168.0.203:http           Route   1      0          0         

  -> 192.168.0.204:http           Route   1      0          10        

浏览器访问http://192.168.0.10即可访问web服务

关闭其中一台web服务器:192.168.0.203,仍然可以访问web服务,另一台web服务照常工作。

关闭master机器的keepalived服务,这时候backup机器会立刻变为master角色接管虚拟ip资源,web服务器照常访问。

 

你可能感兴趣的:(负载均衡,LVS,keepalived)