LVC入门

Lvc

--------------------------

简介

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

宗旨:

使用集群技术和Linux操作系统实现一个高性能、高可用的服务器.
  很好的可伸缩性(Scalability)
  很好的可靠性(Reliability)
  很好的可管理性(Manageability)。

优点:

1、开源,免费
  2、在网上能找到一些相关技术资源
  3、具有软件负载均衡的一些优点

缺点

1、最核心的就是没有可靠的支持服务,没有人对其结果负责;
  2、功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等;
  3、开启隧道方式需重编译内核;
  4、配置复杂;
  5、主要应用于LINUX,目前没有专门用于WINDOWS的版本,不过可以通过配置,使windows成为LVS集群中的real server(win2003、win2008中)。

安装LVC

LVS现在已成为Linux内核的一部分,默认编译为ip_vs模块,必要时能够自动调用。以下操作可以手动加载ip_vs模块,并查看当前系统中ip_vs模块的版本信息

1、加载LVS内核模块

modprobe ip_vs //加载ip_vs模块

cat /proc/net/ip_vs //查看ip_vs版本信息

2、安装LVS管理工具

rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm 或者 yum install
ipvsadm -y

ipvsadm -v //查看版本

以上这些操作在调度服务器上做一下就好了,节点服务器不用安装这些的
——————————————————————————

常用命令的解释如下:

1、创建虚拟服务器(注意:NAT模式要两块网卡,调度器的地址是外网口地址)

群集的VIP地址为192.168.80.11,针对TCP 80端口提供负载分流服务,使用的轮询调度算法。对于负载均衡调度器来说,VIP必须是本机实际已启用的IP地址

VIP(virtual ip)

ipvsadm -A -t 192.168.80.11:80 -s rr

注:

"-A"表示添加虚拟服务器
"-t"用来指定VIP地址及TCP端口
"-s"用来指定负载调度算法——rr、wrr、lc、wlc

2、添加服务器节点

ipvsadm -a -t 192.168.80.11:80 -r 192.168.80.33:80 -m ipvsadm -a -t
192.168.80.11:80 -r 192.168.80.44:80 -m

注:

"-a"表示添加真实服务器
"-t"用来指定VIP地址及TCP端口
"-r"用来指定RIP地址及TCP端口
"-m"表示使用NAT群集模式
"-g"是DR模式
"-i"是TUN模式

3、删除服务器节点

ipvsadm -d -r 192.168.80.33:80 -t 192.168.80.11:80

需要从服务器池中删除某一个节点时,使用选项"-d"。执行删除操作必须指定目标对象,包括节点地址、虚拟IP地址

删除

LVS群集192.168.80.11中的节点192.168.80.33

若需要删除整个虚拟服务器时,使用选项-D并指定虚拟IP地址即可,无需要指定节点:

ipvsadm -D -t 192.168.80.11:80

4、查看节点状态

ipvsadm -L 加个"-n"将以数字形式显示地址、端口信息

5、保存策略

ipvsadm-save > /etc/sysconfig/ipvsadm service ipvsadm save

6、恢复策略

ipvsadm-restore < /etc/sysconfig/ipvsadm

注意:真实服务器需要指网关

永久开启路由转发功能

vi /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p //生效

注意:如果不配置iptables规则会导致内网主机无法主动上网,其它不受影响

LVS调度器——NAT模式
LVS负载均衡群集—地址转换模式(LVS-NAT)
环境:
调度服务器一台:Linux—CentOS7.4
IP地址:192.168.80.100(内网)
192.168.90.100(外网)
Web服务器两台:Linux—CentOS7.4
IP地址:192.168.80.101(SERVER AA)
IP地址:192.168.80.102(SERVER BB)
客户端一台:以win7为例,用于测试验证
IP地址:192.168.90.10(外网)

第一步:配置调度服务器

加载LVS内核模块

modprobe ip_vs

cat /proc/net/ip_vs

yum install ipvsadm -y

vi nat.sh

#!/bin/bash

echo “1” > /proc/sys/net/ipv4/ip_forward

ipvsadm -C

ipvsadm -A -t 192.168.90.100:80 -s rr

ipvsadm -a -t 192.168.90.100:80 -r 192.168.80.101:80 -m

ipvsadm -a -t 192.168.90.100:80 -r 192.168.80.102:80 -m

ipvsadm -Ln

chmod +x nat.sh

./nat.sh

注:

第一行:开启路由地址转换
第二行:清除内核虚拟服务器表中的所有记录
第三行:创建虚拟服务器
第四行和第五行:添加服务器节点
第六行:查看节点状态

第二步:配置Web服务器(两台相同配置)

yum install -y httpd vi /etc/httpd/conf/httpd.conf ServerName
localhost //将“#”号去掉,修改主机名 cd

/var/www/html/  echo "<h1>
 SERVER
 AA </h1>" > index.html

systemctl start httpd

vi /etc/sysconfig/network-scripts/ifcfg-ens32 GATEWAY=192.168.80.100

测试:

Win7访问http://192.168.90.100

LVS调度器——DR模式

调度器与各服务器在同个网段内

环境:

调度服务器一台:Linux—CentOS7.4
IP地址:192.168.80.100
Web服务器两台:Linux—CentOS7.4
IP地址:192.168.80.101(SERVER AA)
IP地址:192.168.80.102(SERVER BB)
客户端一台:以win7为例,用于测试验证
IP地址:192.168.80.2

modprobe ip_vs

cat /proc/net/ip_vs

yum install ipvsadm -y

vi dr.sh
#!/bin/bash
#ifconfig ens33:0 192.168.80.188 broadcast 192.168.80.188

netmask 255.255.255.255 up

route add -host 192.168.80.188 dev ens33:0

ipvsadm -C

ipvsadm -A -t 192.168.80.188:80 -s rr

ipvsadm -a -t 192.168.80.188:80 -r 192.168.80.101:80 -g

ipvsadm -a -t 192.168.80.188:80 -r 192.168.80.102:80 -g

ipvsadm -Ln

注:192.168.80.188是调度器和各真实服务器要共同虚拟出的一个地址

第一行:添加虚拟地址的虚接口,此虚接口的ip地址为虚拟ip地址。
第二行:给ens33:0添加路由
以下跟nat模式一样

chmod +x dr.sh

./dr.sh

配置Web服务器:

vi web.sh
#!/bin/bash
#haha ifconfig lo:0 192.168.80.188 broadcast 192.168.80.188 netmask 255.255.255.255 up route add -host 192.168.80.188 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

注:

arp_ignore:控制系统在收到外部的arp请求时,是否要返回arp响应。
1:只响应目的IP地址为接收网卡上的本地地址的arp请求。
2:只响应目的IP地址为接收网卡上的本地地址的arp请求,并且arp请求的源IP必须和接收网卡同网段。

arp_announce:控制系统在对外发送arp请求时,如何选择arp请求数据包的源IP地址。
1:尽量避免使用不属于该发送网卡子网的本地地址作为发送arp请求的源IP地址。
2:忽略IP数据包的源IP地址,选择该发送网卡上最合适的本地地址作为arp请求的源IP地址。

chmod +x web.sh

./web.sh

测试:win7浏览器中输入http://192.168.80.188

LVS调度器之IP隧道模式

在调度器上

vi tun.sh ifconfig tunl0 192.168.80.188 broadcast 192.168.80.188
netmask 255.255.255.255 up route add -host 192.168.80.188 dev tunl0
ipvsadm -C ipvsadm -A -t 192.168.80.188:80 -s rr ipvsadm -a -t
192.168.80.188:80 -r 192.168.80.101:80 -g ipvsadm -a -t 192.168.80.188:80 -r 192.168.80.102:80 -g ipvsadm -Ln

在Web服务器上:

vi web.sh ifconfig tunl0 192.168.80.188 broadcast 192.168.80.188
netmask 255.255.255.255 up route add -host 192.168.80.188 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
/dev/null

猜你喜欢

转载自blog.csdn.net/weixin_44366330/article/details/85715145