LVS安装与配置

来源:互联网 发布:淘宝一元秒杀怎么抢购 编辑:程序博客网 时间:2024/05/16 12:57

一、LVS的三种配置模式

1. VS/NAT —— Virtual Server via Network Address Translation (网络地址转换)

2. VS/TUN ——Virtual Server via IP Tunneling (IP隧道)

3. VS/DR——Virtual Server via Direct Routing (直接路由)


二、LVS的安装

yum -y install ipvsadm*

或者源码安装:

下载:http://www.linuxvirtualserver.org/software/

注意对应自己的内核版本

ipvsadm-1.24.tar.gz

tar zxvf ipvsadm-1.24.tar.gz

cd ipvsadm-1.24

./configure

make && make install

#在负载调度服务器上安装即可


三、LVS集群的配置

1. LVS-NAT模式

简要的网络架构如下图:

配置LVS server运行脚本:

#!/bin/sh # description: start LVS of Nat VLAN-IP=202.99.59.110 RIP1=10.1.1.2 RIP2=10.1.1.3 #RIPn=10.1.1.n GW=10.1.1.1 . /etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of NAtServer" echo "1" >/proc/sys/net/ipv4/ip_forward echo "0" >/proc/sys/net/ipv4/conf/all/send_redirects echo "0" >/proc/sys/net/ipv4/conf/default/send_redirects echo "0" >/proc/sys/net/ipv4/conf/eth0/send_redirects echo "0" >/proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的) #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -a -t 202.99.59.110:80 -r 10.1.1.2:80 -m -w 1 /sbin/ipvsadm -a -t 202.99.59.110:80 -r 10.1.1.3:80 -m -w 1 #Run LVS /sbin/ipvsadm #end ;; stop) echo "close LVS Nat server" echo "0" >/proc/sys/net/ipv4/ip_forward echo "1" >/proc/sys/net/ipv4/conf/all/send_redirects echo "1" >/proc/sys/net/ipv4/conf/default/send_redirects echo "1" >/proc/sys/net/ipv4/conf/eth0/send_redirects echo "1" >/proc/sys/net/ipv4/conf/eth1/send_redirects(内网卡上的) /sbin/ipvsadm -C ;; *) echo "Usage: $0 {start|stop}" exit 1 esac 

配置 LVS real-server运行脚本

LVS-Nat 模式的后端机器不需要配置.

2. LVS-TUN模式

简要的网络架构如下:

配置LVS server运行脚本

#!/bin/sh # description: start LVS of Directorserver VIP=192.168.25.41(注意,lvs server那台机器2个ip,一个是vip,一个是本身ip例如192.168.25.42) RIP1=192.168.25.44 RIP2=192.168.25.45 #RIPn=192.168.0.n GW=192.168.25.254 . /etc/rc.d/init.d/functions case "$1" in start) echo " start LVS of DirectorServer" # set the Virtual IP Address /sbin/ifconfig tunl0 $VIP broadcast $VIP netmask 255.255.255.0 up /sbin/route add -host $VIP dev tunl0 #Clear IPVS table /sbin/ipvsadm -C #set LVS /sbin/ipvsadm -A -t $VIP:80 -s rr /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -i /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -i #/sbin/ipvsadm -a -t $VIP:80 -r $RIP3:80 -i #Run LVS /sbin/ipvsadm #end ;; stop) echo "close LVS Directorserver" ifconfig tunl0 down /sbin/ipvsadm -C ;; *) echo "Usage: $0 {start|stop}" exit 1 esac 

配置LVS real-server运行脚本

#!/bin/sh # ghb in 20060812 # description: Config realserver tunl port and apply arp patch VIP=192.168.25.43 . /etc/rc.d/init.d/functions case "$1" in start) echo "Tunl port starting" ifconfig tunl0 $VIP netmask 255.255.255.0 broadcast $VIP up /sbin/route add -host $VIP dev tunl0 echo "1" >/proc/sys/net/ipv4/conf/tunl0/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/tunl0/arp_announce echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce sysctl -p ;; stop) echo "Tunl port closing" ifconfig tunl0 down echo 1 > /proc/sys/net/ipv4/ip_forward echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce ;; *) echo "Usage: $0 {start|stop}" exit 1 esac 

3. LVS-DR模式(调度器与实际服务器都有一块网卡连在同一物理网段上)

简要的网络结构如下所示

配置LVS server运行脚本

#!/bin/sh VIP=192.168.0.210 RIP1=192.168.0.175 RIP2=192.168.0.145 . /etc/rc.d/init.d/functions         case "$1" in         start)         echo "start LVS of DirectorServer"         #Set the Virtual IP Address         /sbin/ifconfig eth0:1 $VIP broadcast $VIP netmask 255.255.255.255 up         /sbin/route add -host $VIP dev eth0:1         #Clear IPVS Table         /sbin/ipvsadm -C         #Set Lvs         /sbin/ipvsadm -A -t $VIP:80 -s rr         /sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g         /sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g         #Run Lvs         /sbin/ipvsadm         ;;         stop)         echo "close LVS Directorserver"         /sbin/ipvsadm -C         /sbin/ifconfig eth0:1 down         ;;         *)         echo "Usage: $0 {start|stop}"         exit 1         esac

配置LVS real-server运行脚本

#!/bin/bash VIP=192.168.0.210 LOCAL_Name=50bang BROADCAST=192.168.0.255  #vip's broadcast . /etc/rc.d/init.d/functions case "$1" in     start)      echo "reparing for Real Server"        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        ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $BROADCAST up         /sbin/route add -host $VIP dev lo:0         ;;     stop)         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         ;;     *)         echo "Usage: lvs {start|stop}"         exit 1 esac 

四、LVS的常用管理命令

ipvsadm -C:清空队列

ipvsadm -A:添加一个TCP类型的转发服务,例如:

ipvsadm -A -t 192.168.1.43:8080 -s lc -p 600

(后面的-p代表persistent,即保持时间)

 

ipvsadm -D:删除一个转发服务,例如:

ipvsadm -D -t 192.168.1.43:8080

(这时,后面不需要跟太多细节参数了)

 

ipvsadm -a:添加一个TCP类型的、NAT方式的、权重为1的转发节点,例如:

ipvsadm -a -t 192.168.1.43:8080 -r 10.1.5.33:8080 -m -w 1

 

ipvsadm -a:添加一个TCP类型的、DR方式的、权重为1的转发节点,例如:

ipvsadm -a -t 192.168.1.43:8080 -r 10.1.5.33:8080 -w 1

 

ipvsadm -d:删除一个TCP类型的转发节点,例如:(不需要跟太多细节参数)

ipvsadm -d -t 192.168.1.43:8080 -r 10.1.5.33:8080

 

ipvsadm -A:添加一个UDP类型的转发服务,例如:

ipvsadm -A -u 192.168.1.43:8080 -s lc -p 600

 

ipvsadm -ln:检查当前运行中的配置

ipvsadm -L -n:同上

ipvsadm -ln --stats:检查当前运行状态信息

ipvsadm -ln --rate:检查当前各RealServer的流量速度

ipvsadm -ln --connection/-c:检查当前回话连接的分配情况

ipvsadm -ln --persistent-conn:检查当前保持中的连接分配情况

四、其它

1. 制作service管理脚本

     A. 创建/etc/sysconfig/ipvsadm文件,或者/etc/ipvsadm.rules文件

  B. 编写管理逻辑代码到文件中

  C. 操作命令 service ipvsadm start|stop管理命令

2. LVS的几种转发方式



-g

LVS-DR

-i

LVS-TUN

-m

LVS-NAT


3. LVS的几种调度算法

-s rr

循环法

-s wrr

带权重的循环法

-s lc

最少连接法

-s wlc

带权重的最少连接法

-s lblc

基于本地的最少连接法

-s dh

目标散列法

-s sh

源散列法

-s sed

最短预期延迟法

-s nq

永不排队法

 




0 0
原创粉丝点击