lvs 配置小记

来源:互联网 发布:电影票房数据 编辑:程序博客网 时间:2024/06/10 01:39

1、服务器IP分配

服务器
IPVIP系统Director10.0.0.1210.0.0.88CentOS 6.x   X64Realserver110.0.0.910.0.0.88CentOS 6.x   X64Realserver210.0.0.2010.0.0.88
CentOS 6.x   X64Realserver310.0.0.2110.0.0.88CentOS 6.x   X64

2、在Director Serve上安装IPVS管理软件

1
yum install ipvsadm -y

然后执行:

1
ipvsadm --help

如果看到帮助提示,表明IPVS已经成功安装。


lvsdirector配置

这里提供一个Director的lvs脚本,大家直接运行此脚本即可配置好LVS,非常简单。

# cat /etc/init.c/lvs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
#
# LVS script for VS/DR
# chkconfig: - 90 10
# description: LVS DR director
/etc/rc.d/init.d/functions
#
VIP=10.0.0.88
DIP=10.0.0.12
RIP1=10.0.0.9
RIP2=10.0.0.20
RIP3=10.0.0.21
PORT=80
RSWEIGHT1=2
RSWEIGHT2=5
RSWEIGHT3=5
#
case "$1" in
start)           
  /sbin/ifconfig eth0:0 $VIP up
  /sbin/route add -host $VIP dev eth0:0
# Since this is the Director we must be able to forward packets
  echo 1 > /proc/sys/net/ipv4/ip_forward
# Clear all iptables rules.
  /sbin/iptables -F
# Reset iptables counters.
  /sbin/iptables -Z
# Clear all ipvsadm rules/services.
  /sbin/ipvsadm -C
# Add an IP virtual service for VIP 192.168.0.219 port 80
# In this recipe, we will use the round-robin scheduling method. 
# In production, however, you should use a weighted, dynamic scheduling method. 
  /sbin/ipvsadm -A -t $VIP:80 -s wrr
# Now direct packets for this VIP to
# the real server IP (RIP) inside the cluster
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP1 -g -w $RSWEIGHT1
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP2 -g -w $RSWEIGHT2
  /sbin/ipvsadm -a -t $VIP:80 -r $RIP3 -g -w $RSWEIGHT3
  /sbin/ipvsadm --set 11 15 300
  /bin/touch /var/lock/subsys/ipvsadm &> /dev/null
;; 
stop)
# Stop forwarding packets
  echo 0 > /proc/sys/net/ipv4/ip_forward
# Reset ipvsadm
  /sbin/ipvsadm -C
# Bring down the VIP interface
  /sbin/ifconfig eth0:0 down
  /sbin/route del $VIP  
  /bin/rm -f /var/lock/subsys/ipvsadm  
  echo "ipvs is stopped..."
;;
status)
  if [ ! -e /var/lock/subsys/ipvsadm ]; then
    echo "ipvsadm is stopped ..."
  else
    echo "ipvs is running ..."
    ipvsadm -L -n
  fi
;;
*)
  echo "Usage: $0 {start|stop|status}"
;;
esac

RealServer脚本:

# cat /etc/init.d/lvs-rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#!/bin/bash
#
# Script to start LVS DR real server.
# chkconfig: - 90 10
# description: LVS DR real server
#
.  /etc/rc.d/init.d/functions
VIP=10.0.0.88
host=`/bin/hostname`
case "$1" in
start)
       # Start LVS-DR real server on this machine.
        /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/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
        /sbin/route add -host $VIP dev lo:0
;;
stop)
        # Stop LVS-DR real server loopback device(s).
        /sbin/ifconfig lo:0 down
        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
;;
status)
        # Status of LVS-DR real server.
        islothere=`/sbin/ifconfig lo:0 | grep $VIP`
        isrothere=`netstat -rn | grep "lo:0" grep $VIP`
        if [ ! "$islothere" -o ! "isrothere" ];then
            # Either the route or the lo:0 device
            # not found.
            echo "LVS-DR real server Stopped."
        else
            echo "LVS-DR real server Running."
        fi
;;
*)
            # Invalid entry.
            echo "$0: Usage: $0 {start|status|stop}"
            exit 1
;;
esac

在director和realserver各启动好上面的脚本服务,然后在director查看lvs状态

# ipvsadm -ln

wKioL1ZYI33DpkvOAABbegqR0II407.jpg


# ipvsadm -Ln --stats    //显示统计信息

wKioL1ZYI46Q_KdgAABm0N8cU6o568.jpg


# ipvsadm -L  --rate       //显示速率信息

wKiom1ZYI4jQrSiOAABaMZ709GU448.jpg

LVS状态讲解

我们通过ipvsadm -ln可以查看到lvs的状态情况如下

1
2
3
4
5
6
7
8
9
[root@lvs1 ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.0.0.88:80 wrr
  -> 10.0.0.9:80                  Route   2      3162       387       
  -> 10.0.0.10:80                 Route   1      3906       28        
  -> 10.0.0.20:80                 Route   5      8010       1011      
  -> 10.0.0.21:80                 Route   6      9492       1215

     ActiveConn是活动连接数,也就是tcp连接状态的ESTABLISHED。

     InActConn是指除了ESTABLISHED以外所有的其它状态的tcp连接。

原创粉丝点击