• LVS负载均衡集群 (NAT模式)


    LVS集群

    集群的概念:

    为解决某个特定的问题,将多个计算机组合起来形成一个单个系统

    集群的水平扩展:

    增加设备,并行运行多个服务,通过网路连接和算法来调度服务分配的问题

    集群的类型:

    负载均衡集群(LB loab blance) :多个主机组成,每个主机只承担一部分访问请求,靠负载均衡算法实现

    高可用集群(HA high availiablity) :避免SPOF(singe point of failuer) 单点故障,系统当中有一部分组件出现故障。可以保障整个系统继续运行

    HPC(high-performance computing):快速 转发 快速响应

    集群的可靠性指标:

    MTBF:系统在正常运行期间无故障平均时间,一般用小时或者天数表示,MTBF值越高,系统的可靠性越高,出现的故障也越小

    MTTR:系统从发生故障到恢复正常运行的平均时间,MTTR越小 说明系统的恢复故障的能力越强

    A:系统可靠性指标,A值越高越好

    A=MTBF/(MTBF+MTTR)

    停机时间:

    计划内停机:只的预定时间内的维护或者维修时间,自定义

    计划外停机:运维人主要关注的

    设计集群的需要考虑的一些原则;

    1 可扩展性:要有随时添加删除设备的能力(动态的扩缩容)

    2 集群中:如果有节点发生故障,它可以快速检测并且自动切换,

    3 负载均衡:合理的分配每个服务的负载,避免单个节点的过载影响性能

    4 可维护性:方便的进行部署维护监控,降低成本

    5 安全性 :数据泄密

    6 易用性:相关的工作

    lvs集群:

    linux virtual server 是一个部署在Linux系统通过内核层面实现负载均衡的软件

    作用:

    多个后端服务器组成一个高可用,高新能,负载均衡的高性集群,通过负载均衡的算法将客户请求发送到后端服务器。

    lv集群当中的术语: 

    Vs(virtual server) :lvs服务的逻辑名字,外部访问lvs集群是提供的一个虚拟ip地址和端口

    VIP: virtual ip对外提供访问的统一虚拟IP地址。

    DS(Director server): lvs集群当中的主服务器,也叫调度器,是整个lvs集群的核心,接收客户端的请求转发到后端RS

    DIP: Director ip调度器在Iys内部使用的ip地址。用于和真实服务器进行通信。

    RS(real server lvs ):后端是真时服务器的IP,接收到DS的请求之后,返回响应结果

    RIP:后端真实服务器的jp地址

    CIP: client ip客户端的ip地址

    LVS访问的大致流程

    1 客户端访问都是vip地址

    2 由调度器ds接受到请求,根据调度算法选择好后端服务器 请求发送给rs

    3 RS处理请求并将响应发送到DS

    4 DS把RS 的响应包装成自己响应,发送到客户端

    lvs的负载均衡模式方式:

    NAT DR TUN

    其中NAT和DR最常用的方式

    NAT:地址转发

    配置步骤:

    1:在调度器上配置双网卡。一个指内,一个之外

    2:配置一个可以和公网进行通信的vip

    3: 配置转发策略,如果访问vip就会把请求的数据转发到后台的RS地址,响应给用户。

    192.18.33.0---------调度器---- ---- nat转换-------------12.0.0.1:80-------客户端。

    数据请求进入调度器做的是请求报文中ip地址的修改

    数据响应进入调度器,根据NAT配置进行地址转换

    nat:

    对于客户端来说请求地址始终不变,客户端不需要修改任何配置。转发由调度器通过算法来完成,后端服务器只管接受响应。也不需要修改任何配置。

    DR:

    DR:直接路由模式。请求由调度器完成,但是响应客户端由真实服务器直接响应,不需要通过调度器。

    好处是:性能高,而且可以配置vip地址的高可用。不存在单点故障。

    如何设置lvs:

    Lvs adm工具: 管理ipvs内核模块的命令工具,可用于配置和管理LVS集群

    -A: 添加虚拟服务器

    -D: 删除整个服务器

    -s 指定负载调度的算法

    -a 添加真实服务器

    -d 删除真实服务器

    -t 指定vip地址的端口号

    -r 指定rip的端口号

    -m 表示使用nat 模式

    - g 表示使用DR模式

    - i 表示使用TUN模式

    -w 设置真是服气的权重

    - P 60 :设置连接保持的时间60秒(默认不带)

    -ln 以数字和列表的形式查看lvs的配置信息

    静态调度的写法:

     Rr 轮询

    Wrr加权轮询

    dh 目的地址hash
    根据ip地址查找静态hash表 获取需要真实的rs地址

    动态调度的写法:

    ls最小连接数调度

    wlc:加权最小连接数调度

    权重高的,转发的就多,为了额避免性能瓶颈,在跟上最小连接数分配,可以把请求往连接数量较小的服务器继续转发。

    lblc:基于地址的最小连接数调度。

    将来自同一个目的地址的请求分配给RS,如果这台服务器尚未满负荷,就会把请求分配给连接数最小的RS,而且在下一次转发

    网址访问内容

    #清空原有数据

    所有从233.0网段进来的统统从12.0.0.1出去

    #配置共享策略

    [root@www opt]# vim /etc/exports

    #创建共享目录,哪些网址可以访问,给与权限可以同步

    #把服务发布下

    [root@www opt]# exportfs -rv

    NAT模式

    命令:systemctl stop firewalld

    setenforce 0

    #安装依赖环境

    命令:yum -y install nfs-utils rpcbind

    #开启服务

    命令:systemctl start rpcbind

    systemctl start nfs

    #创建共享目录

    命令:mkdir /opt/[名字]  /opt/[名字]

    给目录文件赋权

    命令:chmod 777 /opt/名称  /opt/名称

    设置共享配置文件

    命令:vim /etc/exports

    发布共享目录并查看

    命令:exportfs -rv

    showmount -e

    配置第二台虚拟机

    安装HTTP服务

    命令:yum -y install httpd

    开启HTTP服务

    命令:systemctl start httpd

    systemctl enable httpd

    安装共享依赖环境

    命令:yum -y install rpcbind nfs-utils

    按顺序开启服务

    命令:systemctl start nfs

    systemctl enable nfs

    systemctl start rpcbind

    systemctl enable rpcbind

    测试查看共享地址

    命令:showmount -e 192.168.8.100

    创建网页执行文件

    命令:echo “内容” > /var/www/html/index.html

    创建永久挂载

    命令:vim /etc/fstab

    查看挂载是否成功

    命令:mount -a    #先刷新挂载

    df -h

    部署第三台虚拟机

    安装相同的服务

    命令:yum -y install nfs-utils rpcbind httpd

    创建网页执行文件

    命令:echo "内容" > /var/www/html/index.html

    创建永久挂载

    命令:vim /etc/fstab

     查看挂载

    命令:mount -a   #刷新挂载

    df -h

    查看指定地址共享

    命令:showmount -e [IP地址]

    部署第四台虚拟机

    配置SNAT转发规则

    命令:vim /etc/sysctl.conf

    测试配置内容

    命令:sysctl -p

    清除防火墙策略

    命令:iptables -F

    检查一下防火墙策略

    命令:iptables -t nat -nL

     设置防火墙策略

    命令:iptables -t nat -A POSTROUTING -s [IP地址] -o ens36 -j SNAT --to--source 10.0.0.1

    加载IP_VS模块

    命令:modprobe ip_vs

    安装ipvsadm工具

    命令:yum -y install ipvsadm

    修改虚拟机设置

    修改网络编辑器

    ​​​​​​​

    创建网卡

    命令:cp ifcfg-ens33 ifcfg-ens36

    修改网卡配置文件

    vim /etc/sysconfig/network-scripts/ifcfg-ens36

    查看网卡信

    命令:ifconfig

    设置ipvsadm策略

    命令:ipvsadm -C

    ipvsadm -A -t 10.0.0.1:80 -s rr

    ipvsadm -a -t 10.0.0.1:80 -r 192.168.8.200:80 -m -w 1

    ipvsadm -a -t 10.0.0.1:80 -r 192.168.8.130:80 -m -w 1

    保存分配策略

    命令:ipvsadm-save

    启动策略

    命令:ipvsadm

     修改Win系统的IPv4地址协议

    修改Web节点服务器的网关指向

    网关指向调度器的RIP地址

    两台Web服务重启网卡

    命令:systemctl restart network

    修改Win系统虚拟机的网络适配器

    用浏览器进行访问测试

  • 相关阅读:
    【VUE】elementUI table表格 列表错位
    Linux - Django + Nginx + uWSGI 部署项目 - 安装 Python3.x -(2)
    Python 万能代码模版:爬虫代码篇
    SpringBoot自动配置及自定义starter
    产业园区迭代升级历经的四个发展阶段
    字节首席架构师整合面试痛点,成就399页Java框架核心宝典
    网络、HTTP、HTTPS、Session、Cookie、UDP、TCP
    大势智慧为武大学子开展《数字摄影测量》精彩课程演示教学
    题解:P9426 [蓝桥杯 2023 国 B] 抓娃娃
    协程和 C++ Boost库的Coroutine2
  • 原文地址:https://blog.csdn.net/Lachewuxian/article/details/133960830