lvs总结

 LVS 四层结构(最多实现到iso第四层:传输层的功能

 部署NAT模式集群案例

创建3台主机,分别为:lvs 、 webserver1 、 webserver2,其中lvs有两张网卡分别是net网卡为外网和仅主机内网

主机名网卡IP地址网关
 
lvsnet和主机192.168.0.100/24;172.25.250.100/24
server1主机192.168.0.10192.168.0.100
server2主机192.168.0.20192.168.0.100

lvs的集群

[root@lvs ~]# sysctl -a | grep ip_forward  #改成1打开内核路由功能
net.ipv4.ip_forward = 0
net.ipv4.ip_forward_update_priority = 1
net.ipv4.ip_forward_use_pmtu = 0

net.ipv4.ip_forward=0 

[root@lvs ~]# cat /etc/sysctl.conf 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
[root@lvs ~]# vim /etc/sysctl.conf 
-bash: vim: command not found
[root@lvs ~]# vi  /etc/sysctl.conf 
[root@lvs ~]# sysctl -p   #查看命令
net.ipv4.ip_forward = 1

 server2

 server1

 [root@server1 ~]# dnf install httpd -y

[root@server1 ~]# echo " webserver1 - 192.168.0.10" > /var/www/html/index.html
[root@server1 ~]# systemctl restart httpd

[root@server1 ~]# systemctl stop firewalld
[root@server2 ~]# echo " webserver1 - 192.168.0.10" > /var/www/html/index.html  #其他的与server1相同

要添加端口

 [root@lvs ~]# ipvsadm -A -t 172.25.250.100:80 -s rr

[root@lvs ~]# ipvsadm -a -t 172.25.250.100:80  -r 192.168.0.10:80 -m
[root@lvs ~]# ipvsadm -a -t 172.25.250.100:80  -r 192.168.0.20:80 -m
 

 部署DR模式集群案例

 

 

 

[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 

[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
 [root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce   ##rs主机不对外响应 rs主机都要添加

[root@lvs ~]# ip a a 192.168.0.200/32 dev lo #在lvs主机中和rs主机中添加vip

[root@server1 ~]# ip a a 192.168.0.200/32 dev lo  #临时修改ip命令 一定要32

[root@server2 ~]#  ip a a 192.168.0.200/32 dev lo
 

[root@lvs ~]# ipvsadm -A -t 192.168.0.200:80 -s wrr #权重算法
[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g -w 1
[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g -w 2
 

 

[root@lvs ~]# ipvsadm -A -t 192.168.0.200:80 -s rr

[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20:80 -g

[root@lvs ~]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10:80 -g

 FO调度算法:静态;常用作灰度发布

2.OVF调度算法:动态;

以http和https为例,当我们在RS中同时开放80和443端口,那么默认控制是分开轮询的,这样我们就出

现了一个轮询错乱的问题

当我第一次访问80被轮询到RS1后下次访问443仍然可能会被轮询到RS1上

lvs火墙标记:

在webserver1 和 webserver2 上

[root@server1 ~]#  dnf install mod_ssl -y
[root@server1 ~]# echo " webserver1 172.25.250.10" >/var/www/html/index.html
[root@server1 ~]# ip a a 172.25.250.200 dev lo
[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
[root@server1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce 
[root@server1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore 
 

 

 下图是lvs

 在lvs上

[root@haproxy ~]# ipvsadm -A -t 172.25.250.200:80 -s rr
[root@haproxy ~]# ipvsadm -a -t 172.25.250.200:80 -r 172.25.250.10:443 -g
[root@haproxy ~]# ipvsadm -a -t 172.25.250.200:80 -r 172.25.250.20:443 -g
[root@haproxy ~]# ipvsadm -A -t 172.25.250.200:443 -s rr
[root@haproxy ~]# ipvsadm -a -t 172.25.250.200:443 -r 172.25.250.20:443 -g
[root@haproxy ~]# ipvsadm -a -t 172.25.250.200:443 -r 172.25.250.10:443 -g
[root@haproxy ~]# ipvsadm -LN
 

 [root@localhost ~]# curl 172.25.254.200;curl -k https://172.25.254.200
webserver2 - 172.25.254.20
webserver2 - 172.25.254.20
[root@localhost ~]# curl 172.25.254.200;curl -k https://172.25.254.200
webserver1 - 172.25.254.10
webserver1 - 172.25.254.10  俩字访问都是同一个

 在lvs上修改

 [root@haproxy ~]# iptables -t mangle -A PREROUTING -d 172.25.250.200 -p tcp -m multiport --dports  80,443 -j MARK --set-mark 66
[root@haproxy ~]# iptables -t mangle -nL

[root@haproxy ~]# ipvsadm -C
[root@haproxy ~]# ipvsadm -A -f 66 -s rr
[root@haproxy ~]# ipvsadm -a -f 66 -r 172.25.250.10 -g
[root@haproxy ~]# ipvsadm -a -f 66 -r 172.25.250.20 -g
[root@haproxy ~]# ipvsadm -Ln

在client

 总结

一、LVS集群概述

  • 定义:LVS集群是一个基于IP负载均衡技术和基于内容请求分发技术的虚拟服务器集群系统。
  • 目标:提高应用系统的响应能力、可靠性和CPU运算速度,获得高并发、高负载的整体性能。
  • 特点
    • 高效的数据处理能力,工作在网络层,由操作系统内核直接处理流量。
    • 高可用性,通过负载均衡和容错机制确保服务连续性。
    • 可扩展性,支持动态添加或删除后端服务器。
    • 低成本,将多台低性能的服务器组合成一个高性能的服务器集群。

二、LVS集群的组成

  • 负载均衡层(Load Balancer)
    • 一台或多台LVS服务器构成负载调度器,也称为Director Server。
    • 负责接收客户端的请求,并根据调度算法将请求分发给后端的Real Server。
    • 监控Real Server的健康状况,动态地从LVS路由表中添加或剔除不健康的服务器。
  • 后端服务器(Real Server/Backend Server)
    • 一台或多台实际运行的应用服务器。
    • 负责处理LVS分发过来的请求,并将处理结果返回给客户端。
    • Real Server之间可以通过有效网络互连,实现数据的共享和通信。
  • 共享存储(可选)
    • 为后端服务器提供稳定、一致的文件存取服务,确保整个集群的统一性。
    • 可以使用NAS设备或提供NFS共享服务的专用服务器。

三、LVS集群的工作模式

LVS集群支持多种工作模式,每种模式都有其特点和适用场景:

  1. NAT(Network Address Translation)模式
    • 修改请求报文的目标IP地址和端口,将请求转发给后端服务器。
    • 后端服务器的响应报文通过调度器返回给客户端,因此调度器容易成为瓶颈。
    • 支持端口映射,可以修改请求报文的目标端口。
  2. DR(Direct Routing)模式
    • 通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在的接口的MAC,目标MAC是某挑选出的RS的RIP所在接口的MAC地址;源IP/PORT,以及目标IP/PORT均保持不变。
    • 请求报文要经由Director,但响应不能经由Director,而是由RS直接发往Client。
    • 不支持端口映射。
  3. TUN(IP Tunneling)模式
    • 不修改请求报文的IP首部(源IP为CIP,目标IP为VIP),而是在原IP报文之外再封装一个IP首部(源IP是DIP,目标IP是RIP),将报文发往挑选出的目标RS。
    • RS直接响应给客户端(源IP是VIP,目标IP是CIP)。
    • 支持跨网络部署集群节点,但响应报文仍然由RS直接返回给客户端。
    • RS的OS得支持隧道功能。
  4. FULLNAT模式
    • 通过同时修改请求报文的源IP地址和目标IP地址进行转发。
    • 请求和响应报文都经由Director。
    • 支持端口映射。

四、LVS集群的优势

  • 高性能:LVS工作在网络层,由操作系统内核直接处理流量,具有高效的数据处理能力。
  • 高可用性:通过负载均衡和容错机制,确保集群在部分服务器故障时仍能对外提供服务。
  • 可扩展性:支持动态添加或删除后端服务器,以适应业务规模的变化。
  • 低成本:将多台低性能的服务器组合成一个高性能的服务器集群,降低了硬件成本。

五、LVS集群的应用场景

LVS集群广泛应用于需要高并发、高可用性和高性能的互联网服务场景,如Web服务器集群、数据库服务器集群、应用服务器集群等。通过LVS集群,可以实现请求的均衡处理,提高系统的整体响应能力和处理能力,从而满足大规模用户访问的需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值