LVS负载均衡群集(NAT地址转换模式)

LVS简介

LVS: 是Linux Virtual Server的简写,也就是Linux 虚拟服务器,是一个虚拟的服务器集群系统,
使用 LVS 可以达到的技术目标是:通过 LVS 达到的负载均衡技术和 Linux 操作系统实现一个高性能高可用的 Linux 服务器集群,具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的性能。LVS 是一个实现负载均衡集群的开源软件项目,LVS 架构从逻辑上可分为调度层、Server 集群层和共享存储层。

LVS 负载均衡集群的类型

1、负载均衡群集:Load Balance
Cluster,以提高应用系统的响应能力,尽可能处理更多的访问请求、减少延迟为目标,从而获得高并发、高负载的整体性能。

2、高可用群集:High Availability
Cluster,以提高应用系统的可靠性,尽可能的减少终端时间为目标、确保服务的连续性,达到高可用的容错效果。

3、高性能运算群集:High Performance Computer Cluster,以提高应用系统的 CPU
运算速度、扩展硬件资源和分析能力为目标、从而获得相当于大型、超级计算机的高性能计算能力。

LVS 集群的通用体系结构

第一层:负载调度器:Load Balancer,它是访问整个群集系统的唯一入口,对外使用所有服务器共有的虚拟 IP 地址,也成为群集 IP
地址。

第二层:服务器池:Server Pool,群集所提供的应用服务,比如:HTTP、FTP服务器池来承担,每个节点具有独立的真实 IP
地址,只处理调度器分发过来的客户机请求。

第三层:共享存储:Shared Storage,为服务器池中的所有节点提供稳定、一致的文件存储服务,确保整个群集的统一性,可使用 NAS
设备或提供 NFS (Network File System)网络文件系统共享服务的专用服务器。

LVS的工作模式

1)NAT模式
NAT模式的工作原理类似于防火墙。将外网地址映射为内网地址,也是信息资源的出入口。同时也承担着调度的作用。所以这种工作方式非常的安全外网不会看到内网的IP,但同时由于承担着多种角色调度器的压力非常大。

2)IP隧道模式
采用的是开放式的网络结构,当请求先发送到调度器中调度器再通过IP隧道也叫作VPN发送到地理位置不同的工作服务器中进行计算,最终计算服务器将结果直接发送回客户机上。整个过程都在公网上实现。
3)直接路由模式
与IP隧道模式类似但不同点在于其工作模式是在内网中进行的。请求通过路由器发送到调度器中,再通过算法将请求分配到所有的服务器上,计算后的结果直接发送给客户机。

LVS的调度算法

1)轮询算法(RR):将请求按照顺序平均分给每台服务器。如群集中有两台服务器,这时来了4个请求。调度器就会将1和3请求分给1号服务器。2和4请求分配给2号服务器。

2)加权轮询算法(WRR):根据设定好的权重,调度器会将更多的请求分配给权重高的服务器进行处理。

3)最少连接数进行分配(LC):顾名思义如果当前服务器处理的请求数最小,调度器就会将任务分配给这台服务器让他工作。

4)加权最少连接进行分配(WLC):也就是说在最少连接数相同的情况下,权重越高的服务器分配到的请求也会越多。

LVS负载均衡群集NAT模式的搭建

在这里插入图片描述

项目环境

在这里插入图片描述

配置步骤

LVS调度器

环境准备:2张网卡,一张用于内网,另一张用于外网

[root@server3 ~]# systemctl stop firewalld     ##关闭防火墙
[root@server3 ~]# setenforce 0
[root@server3 ~]# hostnamectl set-hostname lvs  ##重命名
[root@server3 ~]# bash 
[root@lvs ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf  ##下发路由
[root@lvs ~]# sysctl -p
net.ipv4.ip_forward = 1
[root@lvs ~]# modprobe ip_vs                 ##加载LVS内核模块 
[root@lvs ~]# cat /proc/net/ip_vs            ##查看版本信息
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@lvs ~]# yum -y install ipvsadm.x86_64     ##安装管理软件ipvsadm,不需要启动
[root@lvs ~]# vi nat.sh                        ##编辑调度服务器脚本

#!/bin/bash
ipvsadm -C                                      ##清除内核虚拟服务器表中的所有记录
ipvsadm -A -t 192.168.100.10:80 -s rr           ##创建虚拟服务器
ipvsadm -a -t 192.168.100.10:80 -r 192.168.200.20:80 -m ###添加服务器节点
ipvsadm -a -t 192.168.100.10:80 -r 192.168.200.30:80 -m ###添加服务器节点
ipvsadm -Ln                                     ##查看节点状态,“-n”以数字形式显示显示地址,端口信息



[root@lvs ~]# sh nat.sh 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.100.10:80 rr
  -> 192.168.200.20:80            Masq    1      0          0         
  -> 192.168.200.30:80            Masq    1      0          0         
     

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

ipvsadm命令选项解析:

-C:清除内核虚拟服务器表中的所有记录
-A:增加一台新的虚拟服务器
-t:说明虚拟服务器提供的是tcp的服务
-s rr:启用轮询算法
-a:在一个虚拟服务器中增加一台新的真实服务器
-r:指定真实服务器
-m:指定LVS的工作模式为NAT模式
ipvsadm:启用LVS功能

NFS共享目录配置

[root@nfs ~]# systemctl stop firewalld     ##关闭防火墙
[root@nfs ~]# setenforce 0
[root@nfs ~]# mkdir /opt/web1             ##创建web1目录
[root@nfs ~]# mkdir /opt/web2             ##创建web2目录
[root@nfs ~]# echo "<h1>hello<h1>" > /opt/web1/index.html   ## 编辑主页
[root@nfs ~]# echo "<h1>hi<h1>" > /opt/web2/index.html
[root@nfs ~]# vi /etc/exports

添加:
/opt/web1 192.168.200.20/24(ro)
/opt/web2 192.168.200.30/24(ro)


[root@nfs ~]# systemctl restart nfs              ##重启服务
[root@nfs ~]# systemctl restart rpcbind
[root@nfs ~]# showmount -e
Export list for nfs:
/opt/web2 192.168.200.30/24
/opt/web1 192.168.200.20/24

在这里插入图片描述

Web1服务配置

[root@web1 ~]# systemctl stop firewalld     ##关闭防火墙
[root@web1 ~]# setenforce 0
[root@web1 ~]# route -n                ##查看是否有默认路由生成
Kernel IP routing table 
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.200.10  0.0.0.0         UG    100    0        0 ens33
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.200.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33

[root@web1 ~]# yum -y install httpd
[root@web1 ~]# showmount -e 192.168.200.40
Export list for 192.168.200.40:
/opt/web2 192.168.200.30/24
/opt/web1 192.168.200.20/24
[root@web1 ~]# mount 192.168.200.40:/opt/web1 /var/www/html
[root@web1 ~]#  systemctl start httpd

在这里插入图片描述

Web2服务配置

[root@web2 ~]# systemctl stop firewalld     ##关闭防火墙
[root@web2 ~]# setenforce 0
[root@web2 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.200.10  0.0.0.0         UG    100    0        0 ens33
0.0.0.0         192.168.6.2     0.0.0.0         UG    101    0        0 ens36
192.168.6.0     0.0.0.0         255.255.255.0   U     100    0        0 ens36
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
192.168.200.0   0.0.0.0         255.255.255.0   U     100    0        0 ens33


[root@web2 ~]# yum -y install httpd
[root@web2 ~]# showmount -e 192.168.200.40
Export list for 192.168.200.40:
/opt/web2 192.168.200.30/24
/opt/web2 192.168.200.20/24
[root@web2 ~]# mount 192.168.200.40:/opt/web2 /var/www/html
[root@web2 ~]#  systemctl start httpd

在这里插入图片描述

访问测试

在浏览器输入http://192.168.100.10地址验证是否为轮询调度。
首次访问节点1的网页内容,刷新浏览器,第二次是访问节点2的网页内容。

在这里插入图片描述
刷新浏览器
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值