LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最先出现的自由软件项目之一。html
相关术语算法
CIP:客户端IP浏览器
Director:负责调度集群的主机;也简称调度器、分发器服务器
VIP:一般此IP绑定域名,对外公布的IP,即客户请求进来的IP地址网络
DIP:调度器和RealServer的RIP通讯的IP负载均衡
RealServer:也称为真实内部服务器,是真正在提供WEB服务的,简称RScurl
RIP:内部真正提供服务的主机IPide
负载均衡LVS_NAT(地址转换模型)原理:测试
RS1的RIP1、RS2的RIP2在私网内,不能与外界通讯,可是能够和Director的DIP通讯,而Director的VIP是与外界连通的,因此RS1、RS2与外界的通讯必须通过Director转发。url
客户端请求WEB资源,发送请求到director的VIP,Director经过负载均衡算法选择RS1,经过修改数据帧的目标地址,经过DIP转发给RS1的RIP1;RS1将请求的WEB资源封装响应给CIP,不过要先发送到Director进行转发给客户端CIP
模拟过程:
当客户端CIP请求WEB资源时,将请求数据帧发往VIP,此时
源IP |
目标IP |
CIP |
VIP:172.16.58.1 |
Director经过负载均衡算法选定出RS1,并将客户端CIP请求WEB资源的数据帧的目标IP改成RS1的RIP1,此时
源IP |
目标IP |
CIP |
RIP1:192.168.10.8 |
RS1接收数据帧后,将请求的WEB资源从新封装响应给CIP,可是必需要通过Director的转发才能够响应给CIP,此时
源IP |
目标IP |
RIP1:192.168.10.8 |
CIP |
Director接收到来自RS1响应的数据帧后,要修改源IP为VIP来响应客户端的请求,此时
源IP |
目标IP |
VIP:172.16.58.1 |
CIP |
这样就完成了一次客户端访问WEB资源的过程
实验环境准备:
配置一个lvs_nat模型集群,咱们这里须要三个虚拟机,一个为Director,一个RIP1,一个RIP2.
Director:负载均衡调度器 VIP:172.16.58.1 DIP:192.168.10.7 |
RS1:真实WEB服务器1 RIP1:192.168.10.8 |
RS2:真实WEB服务器2 RIP1:192.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
#清除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
#添加真实服务器RS1、RS2
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,不断刷新