• LVS负载均衡群集


    目录

    一、 群集技术的概述

    1、群集的类型

    2、负载均衡的分层结构

    3、负载均衡的工作模式

    二、LVS虚拟服务器

    1、Linux Virtual Server

    2、LVS负载均衡算法

    2.1 轮询(Round Robin)RR

    2.2 加权轮询(Weighted Round Robin) WRR

    2.3 最少连接(Least Connect ionsI)

    2.4加权最少连接(Weighted Least Connections)

    3、使用ipvsadm管理工具


    一、 群集技术的概述

    1、群集的类型

    无论是哪种群集,都至少存在两台节点服务器,而对外表现为一个整体,只提供一个访问入口

    ①负载均衡群集

    ②高可用群集

    ③高性能运算群集

    2、负载均衡的分层结构

    第一层:负载调度器

    访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份。当主调度器失效以后能够平滑替换至备用调度器,确保高可用性。

    第二层:服务器池

    群集所提供的应用服务、由服务器池承担,其中每个节点具有独立的RIP地址(真实IP),只处理调度器分发过来的客户机请求。当某个节点暂时失效时。负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。

    第三层:共享存储

    为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性共享存储可以使用NAS设备,或者提供NFS共享服务的专用服务器。

    3、负载均衡的工作模式

    ①地址转换 (NAT模式)

    1、Network Address Translation,简称NAT模式
    2、类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机
    的访问入口,也是各节点回应客户机的访问出口
    3、服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式

    ②IP隧道技术(TUN模式)

    1、IP Tunnel,简称TUN模式

    2、采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器

    3、服务器节点分散在互联网中的不同位置,具有独立的公网P地址,通过传用IP隧道与负载调度器相互通信

    ③直接路由(DR模式)

    1、Direct Routing,简称DR模式

    2、采用半开放式的网络结构,与TUN模式的结构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络

    3、负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道

    二、LVS虚拟服务器

    1、Linux Virtual Server

    LVS现在已成为Lfnux内核的一部分,默认编译为ip_vs模块, 必要时能够自动调用

    查看当前系统中ip_vs 模块的版本信息

    1. [root@zwb ~]# modprobe ip_vs
    2. [root@zwb ~]# cat /proc/net/ip_vs
    3. IP Virtual Server version 1.2.1 (size=4096)
    4. Prot LocalAddress:Port Scheduler Flags
    5. -> RemoteAddress:Port Forward Weight ActiveConn InActConn

    2、LVS负载均衡算法

    2.1 轮询(Round Robin)RR

    将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器),均等地对待每一台服务器, 而不管服务器实际的连接数和系统负载

    2.2 加权轮询(Weighted Round Robin) WRR

    根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多
    保证性能强的服务器承担更多的访问流量

    2.3 最少连接(Least Connect ionsI)

    根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点

    2.4加权最少连接(Weighted Least Connections)

    服务器节点的性能差异较大时,可以为真实服务器自动调整权重
    性能较高的节点将承担更大比例的活动连接负载

    3、使用ipvsadm管理工具

    1. [root@zwb ~]# yum -y install ipvsadm.x86_64
    2. [root@zwb ~]# ipvsadm -v
    3. ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)

    ipvsadm [选项]

    常用选项:

    -A/--add-service添加一条新的虚拟服务
    -E/--edit-service编辑虚拟服务
    -D/--delete-service删除虚拟服务
    -C/--clear清除所有的虚拟服务规则
    -R/--restore恢复虚拟服务规则
    -S/--save保存虚拟服务器规则
    -a/--add-server在一个虚拟服务中添加一个新的真实服务器
    -e/--edit-server编辑某个真实服务器
    -d/--delete-server删除某个真实服务器
    -L/-l/--list显示内核中的虚拟服务规则
    -Z/--zero将转发消息的统计清零
    --set tcp/tcpfin/udp配置三个超时时间(tcp/tcpfin/udp)
    --start-daemon启动同步守护进程。
    --stop-daemon停止同步守护进程 
    -h/--help显示帮助信息
    -t/--tcp-service service-address指定VIP地址和tcp端口
    -u/--udp-service service-addressUDP协议的虚拟服务
    -f/--fwmark-service fwmark说明是经过iptables 标记过的服务类型。
    -s/--scheduler scheduler使用的调度算法,有这样几个选项rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,默认的调度算法是: wlc.
    -p/--persistent [timeout]持久稳固的服务。
    -M/--netmask指定客户地址的子网掩码
    -r/--real-serverserver-address真实的服务器
    -g/--gatewaying指定LVS 的工作模式为直接路由模式
    -i/--ipip指定LVS 的工作模式为隧道模式 
    -m/--masquerading指定LVS 的工作模式为NAT 模式 
    -w/--weightweight设置权重 
    --mcast-interface interface指定组播的同步接口 
    -c/--connection显示ipvs中目前存在的连接
    -6:如果fwmark用的是ipv6地址需要指定此选项。

    ①创建虚拟服务器

    [root@zwb ~]# ipvsadm -A -t 192.168.159.68:80 -s rr
    

    -A:添加一条新的虚拟服务

    -t:指定VIP地址和tcp端口

    -s:使用的调度算法 

    ②添加服务器节点

    1. [root@zwb ~]# ipvsadm -a -t 192.168.159.68:80 -r 172.168.159.68 -m -w 1
    2. [root@zwb ~]# ipvsadm -ln ###########查看
    3. IP Virtual Server version 1.2.1 (size=4096)
    4. Prot LocalAddress:Port Scheduler Flags
    5. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    6. TCP 192.168.159.68:80 rr
    7. -> 172.168.159.68:80 Masq 1 0 0

    -a : 表示添加真实服务器

    -t :指定VIP地址和tcp端口

    -r :指定真实服务器ip地址(RIP)及tcp 端口

    -m:使用的群集模式

    -w: 设置权重

    ③ 删除

    1、需要从服务器池中删除某一个节点使用-d

    1. [root@zwb ~]# ipvsadm -d -r 172.168.159.68:80 -t 192.168.159.68:80
    2. -删除 -RIP:端口 -VIP:端口
    3. [root@zwb ~]# ipvsadm -ln
    4. IP Virtual Server version 1.2.1 (size=4096)
    5. Prot LocalAddress:Port Scheduler Flags
    6. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
    7. TCP 192.168.159.68:80 rr

    2、需要删除整个虚拟服务时

    1. [root@zwb ~]# ipvsadm -D -t 192.168.159.68:80
    2. -删除 -vip:端口
    3. [root@zwb ~]# ipvsadm -ln
    4. IP Virtual Server version 1.2.1 (size=4096)
    5. Prot LocalAddress:Port Scheduler Flags
    6. -> RemoteAddress:Port Forward Weight ActiveConn InActConn

    ④保存负载分配策略

    1. [root@zwb ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
    2. [root@zwb ~]# systemctl stop ipvsadm ####关闭
    3. [root@zwb ~]# systemctl status ipvsadm
    4. ● ipvsadm.service - Initialise the Linux Virtual Server
    5. Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
    6. Active: inactive (dead)
    7. [root@zwb ~]# systemctl start ipvsadm ####开启
    8. [root@zwb ~]# systemctl status ipvsadm
    9. ● ipvsadm.service - Initialise the Linux Virtual Server
    10. Loaded: loaded (/usr/lib/systemd/system/ipvsadm.service; disabled; vendor preset: disabled)
    11. Active: active (exited) since 四 2022-09-08 00:53:40 CST; 2s ago

  • 相关阅读:
    RocketMQ 基于时间轮算法实现指定时间点的定时消息原理解析
    工业智能网关BL110应用之七十六: 实现西门子S7-400 PLC接入Modbus TCP Server云平台
    Vue的项目准备
    minio拉取的时候报错了
    数据分析相关暂存
    Docker build报错总结,版本过新大避雷!
    C#语法糖系列 —— 第二篇:聊聊 ref,in 修饰符底层玩法
    makefile 中命令包及eval的使用
    笔记(四)传统图机器学习的特征工程-连接
    java字符集(编码与解码)--计算机翻译官
  • 原文地址:https://blog.csdn.net/m0_62948770/article/details/126755962