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

关术语

CIP:客户端IP

Director:负责调度集群的主机;也简称调度器、分发器

VIP:通常此IP绑定域名,对外公布的IP,即客户请求进来的IP地址

DIP:调度器和RealServerRIP通信的IP

RealServer:也称为真实内部服务器,是真正在提供WEB服务的,简称RS

RIP:内部真正提供服务的主机IP

负载均衡LVS_NAT(地址转换模型)原理:

RS1RIP1RS2RIP2在私网内,不能与外界通信,但是可以和DirectorDIP通信,而DirectorVIP是与外界连通的,所以RS1RS2与外界的通信必须经过Director转发。

客户端请求WEB资源,发送请求到directorVIPDirector通过负载均衡算法选择RS1,通过修改数据帧的目标地址,通过DIP转发给RS1RIP1RS1将请求的WEB资源封装响应给CIP,不过要先发送到Director进行转发给客户端CIP

模拟过程:

当客户端CIP请求WEB资源时,将请求数据帧发往VIP,此时

IP

目标IP

CIP

VIP172.16.58.1

 

Director通过负载均衡算法选定出RS1,并将客户端CIP请求WEB资源的数据帧的目标IP改为RS1RIP1,此时

IP

目标IP

CIP

RIP1192.168.10.8

 

RS1接收数据帧后,将请求的WEB资源重新封装响应给CIP,但是必须要经过Director的转发才可以响应给CIP,此时

IP

目标IP

RIP1192.168.10.8

CIP

 

Director接收到来自RS1响应的数据帧后,要修改源IPVIP来响应客户端的请求,此时

IP

目标IP

VIP172.16.58.1

CIP

这样就完成了一次客户端访问WEB资源的过程

 

实验环境准备:

配置一个lvs_nat模型集群,我们这里需要三个虚拟机,一个为Director,一个RIP1,一个RIP2.

Director:负载均衡调度器

         VIP172.16.58.1

         DIP192.168.10.7

RS1:真实WEB服务器1

         RIP1192.168.10.8

RS2:真实WEB服务器2

         RIP1192.168.10.9

 

作为Director的虚拟机先关机添加一块网卡,设备为eth1

DIP RIP1 RIP2在同一私网内,这三台虚拟机网卡都选择同一网络连接方式

实战配置:

以下均为临时设置,想要永久有效需要修改配置文件/etc/sysconfig/network-scripts/INTERFACE

RS1的配置:

#设置RIP1

ifconfig eth0 192.168.10.8up

#查看

ifconfig

#启动httpd

service httpd start

#查看httpd启动是否成功,80端口是否启用

ss –tnl | grep :80

#添加index.html首页用于测试

echo “RS1” > /var/www/html/index.html

#查看测试页

curl http://192.168.10.8

#从服务器上同步时间

ntpdate 172.16.0.1

 

RS2的配置:

#设置RIP2

ifconfig eth0 192.168.10.9up

#查看

ifconfig

#启动httpd

service httpd start

#查看httpd启动是否成功,80端口是否启用

ss –tnl | grep :80

#添加index.html首页用于测试

echo “RS1” > /var/www/html/index.html

#查看测试页

curl http://192.168.10.8

#从服务器上同步时间

ntpdate 172.16.0.1

 

Director的配置:

#设置VIP

ifconfig eth0 172.16.58.1 up

#设置DIP

ifconfig eth0 192.168.10.7 up

#查看

ifconfig

#清除iptables规则

iptales -F

service iptales save

#开启转发功能

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

或者修改配置文件/etc/sysctl.conf

net.ipv4.ip_forward = 1

 sysctl–p 使配置生效

#添加集群服务

ipvsadm –A –t 172.16.58.1:80 –s rr

#添加真实服务器RS1RS2

ipvsadm –a –t 172.16.58.1:80–r 192.168.10.8 –m

ipvsadm –a –t 172.16.58.1:80–r 192.168.10.9 –m

#从服务器上同步时间

ntpdate 172.16.0.1

#访问测试效果

浏览器访问172.16.58.1,不断刷新