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

一、企业群集应用概述

1、群集的含义

Cluster,集群、群集

由多台主机(至少3台)构成,但对外只表现为一个整体,只提供一个访问入口(域名与IP地址),相当于一台大型计算机。

2、问题

互联网应用中,随着站点对硬件性能、响应速度、服务稳定性、数据可靠性等要求越来越高,单台服务器已经无法满足负载均衡及高可用的要求

3、解决方法

1、使用价格昂贵的小型机、大型机

2、使用普通服务器构建服务群集

通过整合多台服务器,使用LVS来达到服务器的高可用(HA)负载均衡(LB),并以同一个IP地址对外提供相同的服务。

  • HA:高可用 ------》关键词:冗余、容灾(缓解单点故障)
  • LD:负载均衡 ------》后端压力能够均衡

在企业中常用的一种群集技术------LVS (Linux Virtual Server,Linux虚拟服务器)

二、企业群集分类

1、根据群集所针对的目标差异,可分为三种类型

负载均衡群集 LB

高可用群集 HA

高性能运算群集

2、负载均衡群集(Load Balance Cluster)

提高应用系统的响应能力、尽可能处理更多的访问请求减少延迟为目标,获得抗高并发、高负载(LB)的整体性能;

LB的负载分配依赖于主节点的分流算法。

3、高可用群集(High(Availability)Cluster)

提高应用系统的可靠性、尽可能地减少中断时间为目标,确保服务的连续性,达到高可用(HA)的容错效果;

HA的工作方式包括双工主从两种模式。

4、高性能运算群集(High Performance Computer Cluster)

提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算(HPC)能力;

高性能依赖于"分布式运算"、"并行计算",通过专用硬件和软件将多个服务器的CPU、内存等资源整合在一起,实现只有大型、超级计算机才具备的计算能力。

三、负载均衡群集工作模式分析

1、负载均衡群集是目前企业用得最多的群集类型

2、群集的负载调度技术有三种工作模式

地址转换、IP隧道、直接路由

1、地址转换

Network Address Translation,简称NAT模式

类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口;

服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式。

2、IP隧道

IP Tunnel,简称TUN模式

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

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

3、直接路由

Direct Routing,简称DR模式

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

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

四、关于LVS虚拟服务器

(一)环境准备

3台服务器 LVS *1 后端服务器 *2 windows主机 *1

(二)拓扑结构

(三)实验环境

步骤一:LVS 服务器,需要开启防火墙、其他两台web服务器关闭防火墙
查看自己VMnet1的IP地址段是什么区间
步骤二:LVS服务器配置

cd /etc/sysconfig/network-scripts/

vi ifcfg-ens33

① LVS服务器 1台 2张网卡

ens33 网卡: 192.168.255.131/24 (充当外网)

ens36 网卡(选择VMnet1 仅主机模式):192.168.84.128/24 (充当内网网关,不需要gateway )

vi ifcgf-ens36

systemctl restart network

ping www.baidu.com(看是否能ping通)

步骤三:Windows宿主机配置
步骤四:内网2台后端(web)服务器环境准备

2台服务器的网卡全部改成 VMnet1 仅主机模式

HTTPD-01

ens33_ip 192.168.84.129/24 gateway 192.168.84.128 VMnet1

cd /etc/sysconfig/network-scripts/

vi ifcfg-ens33

systemctl restart network

HTTPD-02

ens33_ip 192.168.84.130/24 gateway 192.168.84.128 VMnet1

步骤五:LVS服务环境配置

(1)开启防火墙:systemctl start firewalld

(2)清除防火墙规则:

iptables -t nat -F

iptables -F

(3)配置SNAT转发规则

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1 #开启路由转发的功能(内核的)

(4)刷新生效: sysctl -p

或 echo '1' > /proc/sys/net/ipv4/ip_forward

#自定义路由转发规则,将所有192.168.84.0/24(内网网段)网段的流量全部映射为192.168.255.131(外网IP)的地址

iptables -t nat -A POSTROUTING -s 192.168.84.0/24 -o ens33 -j SNAT --to-source 192.168.255.131

步骤六:LVS服务准备

安装yum仓库

(1)安装ipvsadm管理工具

yum -y install ipvsadm

(2)启动服务前须保存负载分配策略+

ipvsadm-save > /etc/sysconfig/ipvsadm

或者 ipvsadm --save > /etc/sysconfig/ipvsadm

(3)开启LVS的管理工具

systemctl start ipvsadm.service

(4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)

ipvsadm -C #清空规则

ipvsadm -A -t 192.168.255.131:80 -s rr #重新建立规则(申明外网网卡是192.168.255.131:80负载均衡是RR轮循)

#定义LVS服务器的后端地址池

ipvsadm -a -t 192.168.255.131:80 -r 192.168.84.129:80 -m

ipvsadm -a -t 192.168.255.131:80 -r 192.168.84.130:80 -m

ipvsadm #启用策略

ipvsadm -ln #查看节点状态,Masq代表 NAT模式

ipvsadm-save > /etc/sysconfig/ipvsadm #保存策略

步骤七:修改2台服务器的网页文件

cd /var/www/html

vim index.html

步骤八:验证

使用宿主机WINDOWS 访问LVS的ens33网卡IP ,查看页面

PS:注意,要相隔至少20秒再重复访问LVS服务器

然后回到LVS服务端使用ipvsadm -ln 观测流量

五、总结

1、LVS是什么?

负载均衡器LB(不提供网页)

负载均衡器:为后端分担压力(根据不同算法:RR WRR LC IP_HASH)

2、干什么的?

为后端分流、让后端压力可以均衡

3、怎么用的?

实验: LVS 做前端服务器(配置内外网网卡,内网-网关 外网是访问入口)

4、搭建/部署

#基础环境

3台服务器 LVS *1 后端服务器 *2 windows主机 *1

① LVS服务器 1台 2张网卡

ens33 网卡: 192.168.255.131/24 NAT(充当外网)

ens36 网卡(选择VMnet1 仅主机模式):192.168.84.128/24 VMnet1(充当内网网关 )

② 后端服务器 2台 1张网卡 均内网环境 (网关指向LVS内网网卡)

ens33 网卡(选择VMnet1 仅主机模式)

IP 分别为: web01 (httpd服务) : 192.168.84.129/24 VMnet1

​ web02 (httpd服务) : 192.168.84.130/24 VMnet1

③ Windows主机:网关指向LVS外网网卡

#LVS环境

① LVS 服务器环境

需要开启防火墙,清空规则

开启net转发功能(/etc/sysctl.conf net.ipv4.ip_forward)

② 后端服务器环境

关闭防火墙、核心防护、配置本地仓库然后下载httpd,或先下载httpd再

修改为内网IP;

设置内网IP信息,要求能ping通windows 的ip

#搭建LVS服务器:

① 安装外网并开启lvs 管理工具 ipvsadm

② 设置防火墙nat 地址映射功能,把内网网段的数据报转为外网的IP

ipvsadm 清理规则(ipvsadm -C)

ipvsadm 设置外网访问入口与负载策略

ipvsadm 定义后端地址池位置

ipvsadm 直接启动

③ HTTPD 服务器:

下载、开启httpd 后,修改网页,方便验证时分辨lvs的轮循规则

④ 验证

验证1:在LVS服务器上可以curl访问到后端的2台服务器网页

本地仓库然后下载httpd,或先下载httpd再

修改为内网IP;

设置内网IP信息,要求能ping通windows 的ip

#搭建LVS服务器:

① 安装外网并开启lvs 管理工具 ipvsadm

② 设置防火墙nat 地址映射功能,把内网网段的数据报转为外网的IP

ipvsadm 清理规则(ipvsadm -C)

ipvsadm 设置外网访问入口与负载策略

ipvsadm 定义后端地址池位置

ipvsadm 直接启动

③ HTTPD 服务器:

下载、开启httpd 后,修改网页,方便验证时分辨lvs的轮循规则

④ 验证

验证1:在LVS服务器上可以curl访问到后端的2台服务器网页

验证2:在windows的浏览器可以通过访问LVS地址,观测到内网的2台httpd地址

相关推荐
LilySesy5 分钟前
【案例总结】震撼巨作——SAP连接钉钉WEBHOOK
运维·人工智能·ai·钉钉·sap·abap·webhook
仰泳之鹅6 分钟前
【MQTT】详解MQTT协议
运维·服务器·网络
wanhengidc37 分钟前
BGP服务器网络安全如何
运维·服务器·web安全
云飞云共享云桌面1 小时前
精密机械制造工厂10个SolidWorks研发共享一台服务器设计办公
运维·服务器·网络·云计算·电脑
babytiger1 小时前
Windows 11 下格式化 Linux 分区 TF 卡(DiskPart 完整教程)
linux·运维·windows
renhongxia11 小时前
生产线数智化质量可靠性管控与安全风险感知
运维·人工智能·安全·机器学习·架构·自动化
智能运维指南1 小时前
信创改造 “二次开发陷阱”:国产DevOps 平台选型的原生功能完整性评估要点
运维·devops
yuweiade2 小时前
如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器
运维·服务器·ssh
秦渝兴2 小时前
用 Docker Compose 一键部署高可用集群(MySQL + Tomcat + Nginx)
运维·mysql·nginx·docker·容器·tomcat
吾诺2 小时前
如何在Linux中找到MySQL的安装目录
linux·运维·mysql