LVS负载均衡群集+NAT部署

目录

1.企业群集应用概述

[1.1 群集的含义](#1.1 群集的含义)

[1.2 企业群集分类](#1.2 企业群集分类)

2.LVS负载均衡群集运用理论

[2.1 负载均衡的架构](#2.1 负载均衡的架构)

[2.2 LVS负载均衡群集工作的三种模式](#2.2 LVS负载均衡群集工作的三种模式)

[3.LVS虚拟服务器(Linux Virtual Server)](#3.LVS虚拟服务器(Linux Virtual Server))

[3.1 ip_vs通用模块](#3.1 ip_vs通用模块)

[3.2 LVS调度器用的调度方法](#3.2 LVS调度器用的调度方法)

[4.ipvsadm 工具选项说明](#4.ipvsadm 工具选项说明)

5.LVS负载均衡-NAT模式的部署

[5.1 准备虚拟机](#5.1 准备虚拟机)

[5.2 配置NFS共享存储](#5.2 配置NFS共享存储)

[5.3 nginx服务器部署](#5.3 nginx服务器部署)

[5.4 修改网卡配置](#5.4 修改网卡配置)

[5.5 修改LVS服务器](#5.5 修改LVS服务器)

[5.6 windows测试](#5.6 windows测试)


1.企业群集应用概述

1.1 群集的含义

  • Cluster,集群(也称群集)
  • 由多台主机构成,都做相同的一件事,但对外只表现为一一个整体,只提供一个访问入口(域名或IP地址), 相当于一台大型计算机

对于企业服务的的性能提升两种方式:

  • 纵向扩展 :对服务器的CPU 内存 硬盘 等硬件进行升级或者扩容来实现的,性能上限会有瓶颈,成本昂贵,收效比不高等问题
  • 横向扩展 :通过增加服务器主机数量来应该高并发的场景

1.2 企业群集分类

  • 负载均衡群集(LB):提高应用系统的响应能力,处理更多的访问请求,减少延迟,实现高并发、高负载的能力,同时也是如今企业运用最多的群集类型。
  • 高可用群集(HA): 提高应用系统的可靠性,减少服务中断时间标,确保服务的连续性,达到高可用(HA)的容错效果。(通常使用n个9来代表高可用的指标)
  • 高性能运算群集(HPC):将多台服务器的硬件资源整合成资源池以获取高性能的CPU、内存等资源,来提高整体运算能力

2.LVS负载均衡群集运用理论

2.1 负载均衡的架构

第一层:负载调度器:

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

第二层:服务器池:

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

第三层:共享存储 :

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

2.2 LVS负载均衡群集工作的三种模式

群集的负载调度技术有三种工作模式:地址转换(NAT模式) ,直接路由(DR模式),IP隧道(IP-TUN)。对于商用来说,最常用是NAT模式和DR模式

NAT模式总结:
调度器会作为所有节点服务器的默认网关,也是客户端的访间入口和节点服务器返回响应消息的出口,所以调度器会承载双向流量的负载压力,可能会成为整个群集的件能低颈。由于节点服务器都会处于内网环境并使用私网IP,所以NAT模式具有一定的安全性。


TUN模式总结:
调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过调度器。由于节点服务器需要部署在不同的互联网环境中,所以需要有独立的公网IP。调度器与节点服务器是通过专用的IP隧道相五通信因此IP隧道模式的成本较高、网络安全性较低密,且数据在IP隧道传输的过程中需要额外的封装和解封装过程,性能也会受到一定的影响

DR模式总结:
调度器也是仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不需要经过调度器。(与NBT模式的区别)节点服务器与调度器是部署在同一个物理网络中,因此不需要专用的IP隧道(JIP隧道模式的区别)DR模式是企业首选的IVs模式。

3.LVS虚拟服务器(Linux Virtual Server

  • 针对Linux内核开发的负载均衡
  • 1998年5月,由我国的章文嵩博士创建
  • 官方网站:www.linuxvirtualserver.org/
  • LVS实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出来一种高效的解决方法

3.1 ip_vs通用模块

ls /usr/lib/modules/3.10.0-693.el7.x86_64/kernel/net/netfilter/ipvs

LVS所有相关的调度算法模块

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

在CentOS 7 系统中,手动加载 ip_vs 模块的命令如下:

 modprobe ip_vs     //手动加载 ip_vs 模块
 ​
 cat /proc/net/ip_vs    //查看当前系统中ip_vs模块的版本信息

3.2 LVS调度器用的调度方法

固定调度算法:rr,wrr,dh,sh
rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS。

动态调度算法:wlc,lc,lblc
wlc:加权最小连接数调度,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS。
lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

4.ipvsadm 工具选项说明

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

5.LVS负载均衡-NAT模式的部署

5.1 准备虚拟机

192.168.9.140LVS调度器
192.168.9.210和192.168.9.120做nginx web服务器(yum安装nginx)
192.168.9.150NFS共享存储

systemctl disable --now firewalld
setenforce 0
所有虚拟机做初始化操作

5.2 配置NFS共享存储


5.3 nginx服务器部署

通过yum给两台虚拟机安装nginx

NFS虚拟机准备测试界面



将测试界面分别挂载到两台nginx虚拟机

192.168.9.210



192.168.9.120



5.4 修改网卡配置

192.168.9.140

首先新添加一张网卡

修改网卡配置


192.168.9.210


192.168.9.120


5.5 修改LVS服务器

192.168.9.140

开启路由转发功能

设置SNAT规则

加载模块

使用ipvsadm配置LVS-NAT模式转发规则


5.6 windows测试


网页测试


相关推荐
快乐非自愿19 分钟前
Nginx负载配置
运维·nginx
henan程序媛1 小时前
LVS+Keepalived群集
linux·服务器·lvs·keepalived·双机热备份
会讲英语的码农1 小时前
【计算机网络】第一章 概要
运维·服务器·网络协议
podoor2 小时前
在WordPress中获取10天之内的文章更新数
运维·wordpress
张火火isgudi3 小时前
CentOS搭建KMS服务器
运维·服务器·centos
yueyingshaqiu013 小时前
指定版本ceph-common安装
运维·ceph
fen_fen3 小时前
Shell Expect自动化交互(示例)
运维·ssh
没耳朵的Rabbit4 小时前
RedHat运维-Ansible自动化运维基础7-管理变量与模块结果
linux·运维·自动化·ansible
啊取名真困难4 小时前
Meta自动化脚本机器人:构建高效社交平台工具
运维·机器人·自动化
明明跟你说过4 小时前
【云原生】服务网格(Istio)如何简化微服务通信
运维·微服务·云原生·容器·kubernetes·k8s·istio