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地址

相关推荐
淮北4941 小时前
如何在ubuntu调用exe文件
linux·运维·ubuntu
蒋星熠2 小时前
全栈开发实战指南:从架构设计到部署运维
运维·c++·python·系统架构·node.js·devops·c5全栈
HalvmånEver2 小时前
Linux:基础开发工具(一)
linux·运维·服务器·开发语言·学习·进阶学习
real_haha2 小时前
Fabric 学习资料总结 持续更新
运维·fabric
caijingshiye5 小时前
九科信息企业自动化智能体:打破知行割裂,让AI真正动手干活
运维·人工智能·自动化
HIT_Weston6 小时前
26、【Ubuntu】【远程开发】内网穿透:密钥算法介绍(二)
linux·运维·ubuntu
大地的一角9 小时前
(Linux)ELF格式与库的链接原理
linux·运维·服务器
z202305089 小时前
Linux之中断子系统-内核中断注册源码分析(4)
linux·运维·服务器
极小狐10 小时前
比 Cursor 更丝滑的 AI DevOps 编程智能体 - CodeRider-Kilo 正式发布!
运维·人工智能·devops