目录
前言
LVS(Linux Virtual Server)是一个基于Linux操作系统的高性能、可扩展的服务器集群技术。它通过将多台服务器组织成一个逻辑集群,提供负载均衡、高可用性和扩展性等功能。
提示:以下是本篇文章正文内容,下面案例可供参考
一、集群概述
1. 负载均衡技术类型
          四层负载均衡器 也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;
         七层负载均衡器 也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。
2. 负载均衡实现方式
        硬件负载均衡产品:F5 、深信服 、Radware
         软件负载均衡产品: LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)
二、LVS结构
     三层结构
         负载调度器
         服务器池
         共享存储
     架构对象
         VS:Virtual Server,也称为 Director,负载均衡服务器
         RS:Real Server,真正的服务器,集群中各节点
         VIP:Director 向外部提供服务的 IP
         DIP:Director 向内部与 RS 通信的 IP
         RIP:真实服务器的 IP
         CIP:客户端的 IP
三、LVS工作模式
    LVS-NAT(NAT模式)
     LVS-DR(直接路由模式)(应用最广泛)
     LVS-TUN(IP隧道(Tunnel)模式,不常用)
     FULL-NAT模式(双向转换模式,不常用)
四、LVS负载均衡算法
1. 静态负载均衡
             rr(round robin,轮询 )
             wrr(weight round robin,加权轮询)
             sh(source hashing,源地址散列算法(HASH))
             dh(destination hashing,目标地址 HASH)
2. 动态负载均衡
        lc(leash-connection,最少连接 )
             简单算法:active * 256 + inactive (谁的小选谁)
         wlc(加权最少连接)
             简单算法:(active * 256 + inactive) / weight(谁的小选谁)
         sed(最少期望延迟)
             简单算法:(active + 1) * 256 / weight (谁的小选谁)
         nq(never queue,永不排队)
         LBLC(基于局部性的最少连接 )
         LBLCR(基于局部性的带复制功能的最少连接)
五、ipvsadm命令详解
| -A | 添加虚拟服务节点 | 
| -D | 删除虚拟服务节点 | 
| -L | 查看虚拟服务节点列表 | 
| -a | 添加真实服务节点 | 
| -d | 删除真实服务节点 | 
| -l | 查看真实服务节点列表 | 
| -t | 指定虚拟服务器IP地址 | 
| -s | 指定调度算法 | 
| -r | 指定真实服务器节点IP地址 | 
| -w | 指定权重值 | 
| -g | 直接路由模式(默认) | 
| -i | 隧道模式(不常用) | 
| -m | NAT模式 | 
六、LVS配置案例
1. 基础配置
    修改主机名
     关闭防火墙
     关闭Selinux
     关闭Networkmanager
     配置IP地址
2. 实现NAT模型搭建
2.1 负载调度器配置
     配置IP地址
             增加一块网卡

             cd /etc/sysconfig/network-scripts/
 cp ifcfg-ens33 ifcfg-ens37
             vim ifcfg-ens37 
            删除UUID
      NAME=ens37
      DEVICE=ens37

        
配置本地yum源
    安装ipvsadm
         yum  install -y ipvsadm 

     开启路由转发功能
         vim /etc/sysctl.conf
         net.ipv4.ip_forward = 1  


         sysctl -p

     加载ip_vs模块
         modprobe ip_vs
         lsmod |grep ip_vs

     启动ipvsadm服务
         systemctl start ipvsadm

    配置负载分配策略
         ipvsadm -A -t 192.168.142.100:80 -s rr
        ipvsadm -a -t 192.168.142.100:80 -r 192.168.115.4:80 -m
         ipvsadm -a -t 192.168.142.100:80 -r 192.168.115.5:80 -m

     保存策略
         ipvsadm-save > /etc/sysconfig/ipvsadm 
![]()
2.2 web节点配置
     配置网关
         route add -net 0/0 gw 192.168.115.3
![]()


 测试访问:192.168.23.100 
 
3. 实现DR模型搭建
原理图
 
3.1 负载调度器配置
调整ARP参数
     vim /etc/sysctl.conf
     net.ipv4.conf.all.send_redirects = 0 
 net.ipv4.conf.default.send_redirects=0
 net.ipv4.conf.ens33.send_redirects = 0
![]()

     sysctl -p
配置虚拟IP地址
     cd /etc/sysconfig/network-scripts/
     cp ifcfg-ens33 ifcfg-ens33:0
![]()
![]()

 安装ipvsadm
     yum  install -y ipvsadm

加载ip_vs模块
     modprobe ip_vs
     lsmod |grep ip_vs

启动ipvsadm服务
     systemctl start ipvsadm
![]()
配置负载分配策略
     ipvsadm -A -t 192.168.115.200:80 -s rr
     ipvsadm -a -t 192.168.115.200:80 -r 192.168.156.4:80 -g
     ipvsadm -a -t 192.168.115.200:80 -r 192.168.156.5:80 -g

3.2 web节点配置(两台一样的配置)
调整ARP参数
     vim /etc/sysctl.conf
     net.ipv4.conf.all.arp_ignore=1 
 net.ipv4.conf.all.arp_announce=2 
 net.ipv4.conf.default.arp_ignore=1 
 net.ipv4.conf.default.arp_announce = 2 
 net.ipv4.conf.lo.arp_ignore = 1 
 net.ipv4.conf.lo.arp_announce=2
     sysctl -p ![]()


配置虚拟IP地址
     cd /etc/sysconfig/network-scripts/
     cp ifcfg-lo ifcfg-lo:0
     vim ifcfg-lo:0

![]()
 添加回环路由
     route add -host 192.168.156.200/32 dev lo:0

测试

 
总结
LVS集群具有以下优点:
高可用性:通过使用多个服务器节点,当某个节点故障时,其他节点可以继续提供服务,保证系统的可用性。
负载均衡:将客户端请求分发给集群中的多个服务器节点,使得各个节点的负载相对均衡,提高系统的性能和吞吐量。
扩展性:可以根据需求方便地添加或移除服务器节点,实现集群的横向扩展。
总的来说,LVS集群是一种成熟的、可靠的服务器集群技术,广泛应用于大规模的互联网服务、电子商务等领域。










