LVS服务器简单搭建

LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。可以在UNIX/linux平台下实现负载均衡集群功能。该项目在1998年5月由章文嵩博士组织成立,是中国国内最早出现的自由软件项目之一。

LVS一般分为三个模式,DR模式也就是路由模式,这样是用的最多的一种模式。NAT模式,tunnel模式也就是隧道模式。 也有说四种的,就是多了FULL NAT模式。

我们这里的实验也是一个简单实验,显示一个路由模式,也就是1台LVS带动两台nginx服务器。

 

大概就是这样一个简单拓扑。

先安装LVS吧

安全装备命令。

     lsmod |grep ip_vs
     uname -rm

     ls /usr/src/kernels/`uname -r`
     ln -s /usr/src/kernels/`uname -r` /usr/src/linux
因为LVS是基于内核的,所以要建立这么一个连接,注意最后的链接应该是蓝色显示

 

 如果显示不出内核,就要安装一个包

yum  install  kernel-devel -y

开始源码安装LVS

yum  install libnl* libpopt*
yum install    popt-static

yum install gcc
yum install gcc+

先提前把这些包给装了。然后下载软件

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
ls
tar zxf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26/
mkdir /application
cd /application/
mv /software/ipvsadm-1.26/ .
cd ipvsadm-1.26/
make
echo $?
make install

 

 

 

这样就安装好了。

然后要设置VIP

ip addr add 192.168.19.44/24  dev  ens192

 

 添加路由表

 

 

在LVS先清空。

 

 用ipvsadm -C 命令

然后开始配置两台主机上去

ipvsadm --set 30 5 60
ipvsadm -A -t 192.168.19.44:80 -s rr -p 20
ipvsadm -a -t 192.168.19.44:80 -r 192.168.19.39 -g -w 1
ipvsadm -a -t 192.168.19.44:80 -r 192.168.19.38 -g -w 1
ipvsadm -L -n

 

 

 

然后就是要在RIP上做ARP的抑制和绑定VIP。

ip addr show
ip addr add 192.168.19.44/32 dev lo:0
route add -host 192.168.19.44 dev lo
route -n

下面是做ARP抑制
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

 

可以开始测试效果了。

 

 

 

 

同一个地址访问出不同的效果。

证明负载均衡有在作用了。

 

 

 

这样最简单的两台WEB的负载均衡就可以了。当然我们最佳的方式,是搭配keepalived来实现高可用是最好的。

但我这里没有列出来,高可用又分了单实例和多实例。

这个后面还要好好学习一下。

监测命令 watch -n 1 ipvsadm -L -n

 

ARP抑制的选项说明。

 

 

 

这里写一个非常简单的IPVS启动和停止的脚本。

#!/bin/bash

. /etc/init.d/functions

VIP=192.168.19.44
PORT=80
RIP=(
192.168.19.38
192.168.19.39
)
start(){
    ifconfig ens192:0 $VIP/24 up
    route add -host $VIP dev ens192
ipvsadm -C
ipvsadm --set 30 5 60
ipvsadm -A -t $VIP:$PORT -s rr -p 20
for (( i=0;i<${#RIP[*]};i++))
do
ipvsadm -a -t $VIP:$PORT -r ${RIP[$i]} -g -w 1
done

}
stop(){
    ipvsadm -C
    ifconfig ens192:0 down
    route del -host $VIP dev ens192

}

case "$1" in
    start)
      start
      echo -e "\e[32m ipvs is started \e[0m"
      ;;
    stop)
      stop
      echo -e "\e[31m ipvs is stoped \e[0m"
      ;;
    restart)
      stop
      echo -e "\e[31m ipvs is stop \e[0m"
      start
      echo -e "\e[32m ipvs is start \e[0m"
      ;;
     *)
     echo -e "\e[42m USAGE:$0 {start|stop|restart} \e[0m"
esac

 

posted @ 2022-07-06 17:28  逍遥姐夫  阅读(1204)  评论(0编辑  收藏  举报