LVS集群(负载均衡及NAT部署)

50 篇文章 3 订阅
3 篇文章 0 订阅

一、企业群集应用

1、什么是集群

(1)Cluster,群集,集群
(2)由多台主机构成,但对外,只表现为一个整体,只提供一个访问入口(域名或ip地址),相当于一台大型计算机。

2、集群的用途

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

解决方法

(1)使用价格昂贵的小型机、大型机
(2)使用多台相对廉价的普通服务器构建服务群集(更环保节能)
通过整合多台服务器,使用LVS来达到服务器的高可用和负载均衡,并以同一个ip地址对外提供相同的服务。在企业中常用的一种群集技术——LVS(linux virtual server,linux虚拟服务器)

3、企业集群的分类

根据群集所针对的目标差异进行分类

负载均衡群集
高可用群集
高性能运算群集

(1)负载均衡群集(Load Balance Cluster)

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

LB的负载分配依赖于主节点的分流算法,将来自客户机的访问请求分担给多个服务器节点,从而缓解整个系统的负载压力。例如“DNS轮询” “反向代理”等

(2)高可用群集(High Availability Cluster)

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

• HA的工作方式包括双攻和主从两种模式,双攻即所有节点同时在线;主从则只有主节点在线,但当出现故障时从节点能自动切换为主节点。例如,“故障切换” “双机热备”等

(3)高性能运算群集(High Performance Conputer Cluster)

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

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

二、负载均衡群集架构

1、负载均衡的结构

(1)第一层,负载调度器(Load Balancer)

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

(2)第二层,服务器池(Server Pool)

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

(3)第三层,共享存储(Share Storage)

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

img

2、负载均衡群集工作模式

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

NAT地址转换

IP隧道

DR直接路由

(1)NAT模式

在这里插入图片描述
在这里插入图片描述

地址转换 Network Address Translation,简称NAT模式

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

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

(2)TUN模式

在这里插入图片描述

IP隧道 IP Tunnel,简称TUN模式

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

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

(3)DR直接路由

在这里插入图片描述

直接路由 Direct Routing,简称DR模式

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

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

3、LVS的负载调度算法

算法模式说明
轮询(Round Robin)将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器) ,均等地对待每一台服务器 ,而不管服务器实际的连接数和系统负载
加权轮询 (Weighted Round Robin)根据调度器设置的权重值来分发请求,权重值高的节点优先获得任务,分配的请求数越多保证性能强的服务器承担更多的访问流量
最少连接 (Least Connections)根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点
加权最少连接(Weighted Least Connections)在服务器节点的性能差异较大时,可以为真实服务器自动调整权重性能较高的节点将承担更大比例的活动连接负载

三、ipvsadm

1、调用ip_vs模块

LVS默认编译为ip_vs模块,必要时能够自动调用。在centos7中,可以手动添加ip_vs模块,并查看模块版本信息

modprobe ip_vs
cat /proc/net/ip_vs

2、ip_vs选项说明

选项功能
-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

四、LVS-NAT部署

1、需求

LVS调度器作为Web服务器池的网关,LVS两块网卡,分别连接内外网,是有轮询(rr)调度算法

负载调度器:内网关 ens33:192.168.142.4 外网关 ens36:12.0.0.1

Web节点服务器1:192.168.142.5

Web节点服务器2:192.168.142.6

NFS服务器:192.168.142.10

客户端:12.0.0.12

2、部署NFS服务器:192.168.142.10

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
#安装nfs相关软件包
yum -y install nfs-utils rpcbind
 
#启动服务
systemctl start rpcbind.service
systemctl start nfs.service
 
#创建共享目录
mkdir /opt/111
mkdir /opt/222
 
#给目录最大权限
chmod 777 /opt/111
chmod 777 /opt/222
 
#创建共享权限
vim /etc/exports
/opt/111 192.168.142.0/24(rw,sync)
/opt/222 192.168.142.0/24(rw,sync)
 
#发布共享并查看
exportfs -rv
showmount -e

img

img

img

3、部署Web节点服务器1:192.168.142.5

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
#网关改为调度器IP,注释DNS
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.142.5
NETMASK=255.255.255.0
#DNS1=192.168.142.2
GATEWAY=192.168.142.4
 
systemctl restart network
 
#安装web服务
yum install -y httpd
systemctl start httpd
 
#安装NFS服务,查看共享文件
yum -y install rpcbind nfs-utils
showmount -e 192.168.142.10
 
#开启NFS服务
systemctl start rpcbind
systemctl start nfs
 
#挂载共享目录,写入页面内容
mount 192.168.142.10:/opt/111 /var/www/html
echo '11111111' > /var/www/html/index.html
 
vim /etc/fstab              #配置自动挂载
192.168.142.10:/opt/111 /var/www/html defaults,_netdev 0 0

img

img

img

4、部署Web节点服务器2:192.168.142.6

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
#网关改为调度器IP,注释DNS
vim /etc/sysconfig/network-scripts/ifcfg-ens33
IPADDR=192.168.142.6
NETMASK=255.255.255.0
#DNS1=192.168.142.2
GATEWAY=192.168.142.4
 
systemctl restart network
 
#安装web服务
yum install -y httpd
systemctl start httpd
 
#安装NFS服务,查看共享文件
yum -y install rpcbind nfs-utils
showmount -e 192.168.142.10
 
#开启NFS服务
systemctl start rpcbind
systemctl start nfs
 
#挂载共享目录,写入页面内容
mount 192.168.142.10:/opt/222 /var/www/html
echo '222222' > /var/www/html/index.html
 
vim /etc/fstab              #配置自动挂载
192.168.142.10:/opt/222 /var/www/html defaults,_netdev 0 0

img

img

img

5、配置负载调度器

(1)添加双网卡并修改配置:内网关 ens33:192.168.142.4 外网关 ens36:12.0.0.1

vim /etc/sysconfig/network-scripts/ifcfg-ens33
 
IPADDR=192.168.142.4
NETMASK=255.255.255.0
#DNS1=192.168.142.2
#GATEWAY=192.168.142.2
 
cd /etc/sysconfig/network-scripts
cp -a ifcfg-ens33 ifcfg-ens36
 
vim ifcfg-ens36
NAME=ens36
#UUID=d688016d-b72d-4789-ac48-6721401c22c2  #注释UUID 不能重复,注释系统会自动分配UUID
DEVICE=ens36
ONBOOT=yes
IPADDR=12.0.0.1
NETMASK=255.255.255.0
#DNS1=192.168.80.2
#GATEWARY=192.168.80.2  #注释网关和DNS
 
systemctl restart network

img

img

img

(2)开启路由转发,配置snat转发规则

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
 
yum -y install iptables
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1              #打开路由转发echo '1' > /proc/sys/net/ipv4/ip_forward
sysctl -p
 
iptables -t nat -F                  #清空nat的规则链
iptables -F                         #清空规则链
iptables -t nat -A POSTROUTING -s 192.168.142.0/24 -o ens36 -j SNAT --to-source 12.0.0.1 <br>#添加规则

img

img

img

(3)加载LVS内核模块

modprobe ip_vs  #加载 ip_vs模块
cat /proc/net/ip_vs   #查看 ip_vs版本

img

(4)安装ipvsadm管理工具

yum -y install ipvsadm
 
#启动服务前须保存负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm
或
ipvsadm --save > /etc/sysconfig/ipvsadm
 
systemctl start ipvsadm

img

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

#清除原有配置
ipvsadm -C
 
#添加虚拟服务器、指定VIP地址及端口、指定负载调度算法
ipvsadm -A -t 12.0.0.1:80 -s rr
 
#添加真实节点服务器1,添加nat群集模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.80.12:80 -m
 
#添加真实节点服务器2,添加nat群集模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.80.13:80 -m
 
#启用策略
ipvsadm
 
#查看节点状态,Msaq代表NAT模式
ipvsadm -ln
 
#保存策略
ipvsadm --save > /etc/sysconfig/ipvsadm

img

img

(6)删除并重建策略

#删除群集中某个节点服务器
ipvsadm -d -t 12.0.0.1:80 -r 192.168.80.12:80 
 
#删除整个虚拟服务器
ipvsadm -D -t 12.0.0.1:80                     
 
#停止服务(清除策略)
systemctl stop ipvsadm    
                 
#启动服务(重建规则)
systemctl start ipvsadm   
                    
#恢复LVS策略(提前保存好策略)
ipvsadm-restore < /etc/sysconfig/ipvsadm

img

6、客户机访问测试

img

img

img

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
LVSLinux Virtual Server)是一个开源项目,可以在Linux内核中实现一个高性能、高可用性的服务器集群。其中,NAT模式是LVS集群的一种常见部署方式,可以将外部请求通过LVS集群中的虚拟IP地址映射到后端真实服务器上。 以下是LVS集群搭建NAT模式的步骤: 1. 安装LVS软件包 在LVS集群中,需要安装ipvsadm和keepalived这两个软件包来实现负载均衡和高可用性。可以使用以下命令安装: ``` sudo apt-get install ipvsadm keepalived ``` 2. 配置LVS集群LVS集群中,需要至少有一个Director服务器和多个Real服务器。Director服务器是LVS集群中的核心部分,负责接收外部请求并将它们转发到Real服务器上。Real服务器是LVS集群中的后端服务器,负责处理来自Director服务器的请求。 在Director服务器上,需要进行以下配置: - 配置网络接口,将其绑定到虚拟IP地址上; - 配置ipvsadm规则,将请求映射到Real服务器上; - 配置keepalived,实现高可用性。 在Real服务器上,需要关闭iptables和ARP扫描功能,并配置正确的网络接口。 3. 测试LVS集群 在完成LVS集群的配置后,可以使用curl等工具测试其性能和可用性。例如,可以使用以下命令发送一个HTTP请求: ``` curl http://<虚拟IP地址>/ ``` 如果一切正常,请求应该被转发到Real服务器上,并返回正确的响应。 以上是LVS集群搭建NAT模式的基本步骤,具体的操作细节和配置方法可以参考LVS官方文档或相关的教程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MagnumOvO

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值