• LVS NAT模式负载均衡群集部署


    目录

    1 群集(集群) cluster

    1.1 群集的类型

    2 LVS的工作模式及其工作过程

    2.1 NAT模式(VS-NAT)

    2.2 直接路由模式(VS-DR)

    2.3 IP隧道模式(VS-TUN)

    3 LVS-NAt 模式配置步骤

    3.1 部署共享存储

    3.2 配置节点服务器

    3.3 配置负载调度器

    3.3.1 加ens36 网卡并进行相关配置

    3.3.2 配置SNAT转发规则

    3.3.3 加载LVS内核模块

    3.3.4 安装ipvsadm 管理工具

    3.3.5 配置负载分配策略

    3.4 测试 LVS 群集


    1 群集(集群) cluster

    集群就是将多台主机作为一个整体,对外提供相同的服务

    特点:由多个主机构成,都干同样的一件事,对外界展现为一个整体

    场景:高并发,并发量过大时候加服务器的方式就是向外扩展(横向扩展),就是集群

    1.1 群集的类型

    1)负载均衡群集 LB
    提高系统响应效率,处理更多的访问请求,减少延迟,实现高并发、高负载的能力
    典型代表:软件类:LVS、 Nginx、HAProxy 等  硬件类:F5  绿盟

    2)高可用群集 HA
    提高系统可靠性,减少中断时间,确保服务的连续性(通常使用N个9来代表可用的指标)
    典型代表:Keepalived  heartbeat

    3)高性能运输群集 HPC
    通过云计算或分布式计算来获取高性能的CPU、内存等资源,来提高整体运算能力

    2 LVS的工作模式及其工作过程

    LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)VS/DR(路由模式)VS/TUN(隧道模式)

    2.1 NAT模式(VS-NAT)

    调节器会作为所有以节点服务器的默认网关,也是客户端的访问入口和节点服务器返回响应消息的出口,也就是说调节器会承受双向数据流量的负载压力,可能会成为整个集群的性能瓶颈。由于节点服务器都处于内网环境,使用私网IP地址,所以具有一定安全性。

    原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

    • 优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
    • 缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

    2.2 直接路由模式(VS-DR)

    DR 直接路由Direct Routing
    调节器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调节器。(与NAT模式的区别)节点服务器与调节器是部署在同一物理网络内,因此不需要建立专用的IP隧道。(与TUN模式的区别)

    DR 模式是企业首选的LVS模式。

    原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

    • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
    • 缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

    2.3 IP隧道模式(VS-TUN)

    TUN IP隧道 IP Tunnel
    调节器仅作为客户端的访问入口,节点服务器的响应消息是直接返回客户端的,不需要经过调节器。但是由于节点服务器需要部署在不同位置的公网环境中,需要具有独立的公网IP,调节器与节点服务器是通过专用的IP隧道实现相互通信的。因此IP隧道模式的成本较高、安全性较低,且IP隧道需要额外的封装和解封装,性能会受到一定的影响。

    原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

    • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
    • 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”。

    3 LVS-NAt 模式配置步骤

    1. 配置NFS共享存储
    2. 节点服务器安装web服务,注意:默认网关要指向调节器的IP地址,测试的时候关闭连接保持
    3. 调节器服务器要开启IP路由转发功能和设置SNAT等iptables 规则,安装ipvsadm工具,配置虚拟服务器和真实节点服务器相关配置
    4. 客户端测试的时候网关要指向 调节器的IP地址
       

    负载调度器:内网关 ens33:192.168.30.105,外网关 ens36:12.0.0.1

    Web节点服务器1:192.168.30.107

    Web节点服务器2:192.168.30.108

    NFS服务器:192.168.30.106

    客户端:12.0.0.12

    3.1 部署共享存储

    NFS服务器:192.168.30.106

    1. systemctl stop firewalld.service
    2. systemctl disable firewalld.service
    3. setenforce 0
    4. yum install nfs-utils rpcbind -y
    5. systemctl start rpcbind.service
    6. systemctl start nfs.service
    7. systemctl enable nfs.service
    8. systemctl enable rpcbind.service
    9. mkdir /opt/cyw /opt/cww
    10. chmod 777 /opt/cyw /opt/cww
    11. echo 'Cao yu wang is a bood boy !' > /opt/cyw/index.html
    12. echo 'FBI open the door !' > /opt/cww/index.html
    13. vim /etc/exports
    14. /usr/share *(ro,sync)
    15. /opt/cyw 192.168.30.0/24(rw,sync)
    16. /opt/cww 192.168.30.0/24(rw,sync)
    17. --发布共享---
    18. exportfs -rv

    安装所需软件 nfs、rpcbind并启动

    配置静态网页

    NFS(Network File System)共享的目录和权限

    发布共享

    3.2 配置节点服务器

    192.168.30.107、192.168.30.108

    1. systemctl stop firewalld.service
    2. systemctl disable firewalld.service
    3. setenforce 0
    4. yum install httpd -y
    5. systemctl start httpd.service
    6. systemctl enable httpd.service
    7. yum install nfs-utils rpcbind -y
    8. showmount -e 192.168.80.13
    9. systemctl start rpcbind
    10. systemctl enable rpcbind
    11. --192.168.80.100---
    12. mount.nfs 192.168.80.13:/opt/kgc /var/www/html
    13. vim /etc/fstab
    14. 192.168.80.13:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
    15. --192.168.80.101---
    16. mount.nfs 192.168.80.13:/opt/benet /var/www/html
    17. echo 'this is benet web!' > /var/www/html/index.html
    18. vim /etc/fstab
    19. 192.168.80.13:/opt/benet /var/www/html nfs defaults,_netdev 0 0

    关闭防火墙及selinux

    两台服务器安装httpd服务并开启

    安装所需软件 nfs、rpcbind并启动

                                                        ---192.168.30.107---

    挂载

                                                         ---192.168.30.108---  

    挂载

    3.3 配置负载调度器

    内网关 ens33:192.168.30.105,外网关 ens36:12.0.0.1

    3.3.1 加ens36 网卡并进行相关配置

    配置ens36

    重启并网络联通测试

    3.3.2 配置SNAT转发规则

    1. vim /etc/sysctl.conf
    2. net.ipv4.ip_forward = 1
    3. 或 echo '1' > /proc/sys/net/ipv4/ip_forward
    4. sysctl -p
    5. iptables -t nat -F
    6. iptables -F
    7. iptables -t nat -A POSTROUTING -s 192.168.30.0/24 -o ens36 -j SNAT --to-source 12.0.0.1

    3.3.3 加载LVS内核模块

    1. for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");
    2. do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;
    3. done

    3.3.4 安装ipvsadm 管理工具

    ipvsadm 工具选项说明:

    选项
    -A添加虚拟服务器
    -D删除整个虚拟服务器
    -s指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
    -a表示添加真实服务器(节点服务器)
    -d删除某一个节点
    -t指定 RIP地址及 TCP端口
    -m表示使用 NAT群集模式
    -g表示使用 DR模式
    -i表示使用 TUN模式
    -w设置权重(权重为 0 时表示暂停节点)
    -p 60表示保持长连接60秒(默认关闭连接保持)
    -l列表查看 LVS 虚拟服务器(默认为查看所有)
    -n以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln

    启动服务前须保存负载分配策略

    1. ipvsadm-save > /etc/sysconfig/ipvsadm
    2. 或者 ipvsadm --save > /etc/sysconfig/ipvsadm

    3.3.5 配置负载分配策略

    (NAT模式只要在服务器上配置,节点服务器不需要特殊配置)

    1. ipvsadm -C #清除原有策略
    2. ipvsadm -A -t 12.0.0.1:80 -s rr
    3. ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.107:80 -m -w 1
    4. ipvsadm -a -t 12.0.0.1:80 -r 192.168.30.108:80 -m -w 1
    5. -A 添加虚拟服务器
    6. -s 指定负载调度算法 (轮询:rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc )
    7. -a 表示添加真实服务器 (后端节点服务器)
    8. -t 指定 VIP地址及 TCP端口
    9. -m 表示使用 NAT群集模式.
    10. -w 设置权重 (权重为 0 时表示暂停节点)
    11. ipvsadm #启动策略
    12. ipvsadm -ln #查看节点状态,Masq代表 NAT模式
    13. ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略

    删除时候使用

    1. ipvsadm -d -t 12.0.0.1:80 -r 192.168.30.107:80 -m -w 1 #删除群集中某一节点服务器
    2. ipvsadm -D -t 12.0.0.1:80 #删除整个虚拟服务器
    3. systemctl stop ipvsadm #停止服务(清除策略)
    4. systemctl start ipvsadm #启动服务(重建规则)
    5. ipvsadm-restore > /etc/sysconfig/ipvsadm #恢复LVS策略

    配置调度器的网关

    1. web01
    2. vim /etc/sysconfig/network-scripts/ifcfg-ens33
    3. 注释掉DNS,将lns(lb负载调度器)的ip配置成web01的网关
    4. 同理web02一致
    5. systemctl restart network 重启网络

    web1

    web2

    3.4 测试 LVS 群集

    在一台IP为12.0.0.20 的客户机使用浏览器访问 http://12.0.0.1/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点(或者关闭Web服务的连接保持)。

  • 相关阅读:
    【编译原理】机测笔记
    【GPGPU编程模型与架构原理】第一章1.2 GPGPU 发展概述
    历时一年,论文终于被国际顶会接收了
    虚拟局域网VLAN
    Google Analytics优缺点分析
    手写简易Spring
    铝合金氩弧焊接工艺个人总结
    ZeroTier CentOS7 网关机配置
    1024程序员节特辑 | Spring Boot实战 之 MongoDB分片或复制集操作
    制作一个简单HTML旅游网站(HTML+CSS+JS)无锡旅游网页设计与实现8个页面
  • 原文地址:https://blog.csdn.net/2302_78835233/article/details/132790199