LVS负载均衡之NAT模式
一、负载均衡介绍
负载均衡(Load Balance)指将负载(工作任务)进行平衡、分摊到多个操作单元上进行运行,例如FTP服务器、Web服务器、企业核心应用服务器和其它主要任务服务器等,从而协同完成工作任务。
负载均衡构建在原有网络结构之上,它提供了一种透明且廉价有效的方法扩展服务器和网络设备的带宽、加强网络数据处理能力、增加吞吐量、提高网络的可用性和灵活性。
【1】负载均衡的分类
(1)软/硬件负载均衡
软件负载均衡解决方案是指在一台或多台服务器相应的操作系统上安装一个或多个附加软件来实现负载均衡,如DNS Load Balance,CheckPoint Firewall-1 ConnectControl等,它的优点是基于特定环境,配置简单,使用灵活,成本低廉,可以满足一般的负载均衡需求。
硬件负载均衡解决方案是直接在服务器和外部网络间安装负载均衡设备,这种设备通常称之为负载均衡器,由于专门的设备完成专门的任务,独立于操作系统,整体性能得到大量提高,加上多样化的负载均衡策略,智能化的流量管理,可达到最佳的负载均衡需求。
(2)本地/全局负载均衡
本地负载均衡针对本地范围的服务器群做负载均衡,全局负载均衡针对不同地理位置、不同网络结构的服务器群做负载均衡。
本地负载均衡不需要花费高额成本购置高性能服务器,只需利用现有设备资源,就可有效避免服务器单点故障造成数据流量的损失,通常用来解决数据流量过大、网络负荷过重的问题。同时它拥有形式多样的均衡策略把数据流量合理均衡的分配到各台服务器。如果需要在现在服务器上升级扩充,不需改变现有网络结构、停止现有服务,仅需要在服务群中简单地添加一台新服务器。
全局负载均衡主要解决全球用户只需一个域名或IP地址就能访问到离自己距离最近的服务器获得最快的访问速度,它在多区域都拥有自己的服务器站点,同时也适用于那些子公司站点分布广的大型公司通过企业内部网(Intranet)达到资源合理分配的需求。
全局负载均衡具备的特点:
1、提高服务器响应速度,解决网络拥塞问题,达到高质量的网络访问效果。
2、能够远距离为用户提供完全的透明服务,真正实现与地理位置无关性
3、能够避免各种单点失效,既包括数据中心、服务器等的单点失效,也包括专线故障引起的单点失效。
【2】负载均衡的部署方式
负载均衡有三种部署方式:路由模式、IP隧道模式、路由直连模式。路由模式部署灵活,约60%的用户采用这种方式部署;IP隧道模式不改变现有的网络架构;DR模式比较适合吞吐量大特别是内容分发的网络应用,约30%的用户采用这种模式。NAT模式的请求分发服务器会成为这个模式的瓶颈所在,因为所有请求与响应走要经过他转发。那么IP隧道模式与DR模式的区别在于,DR模式与IP隧道模式相比,DR模式没有IP封装的开销,但由于采用物理层(修改MAC地址)技术,所有服务器都必须在同一个物力网段中。
(1)NAT模式(【路由模式】推荐)
路由模式的部署方式,服务器的网关必须设置成负载均衡机的LAN口地址,且与WAN口分署不同的逻辑网络。因此所有返回的流量也都经过负载均衡。这种方式对网络的改动小,能均衡任何下行流量。
(2)IP隧道模式
桥接模式配置简单,不改变现有网络。负载均衡的WAN口和LAN口分别连接上行设备和下行服务器。LAN口不需要配置IP(WAN口与LAN口是桥连接),所有的服务器与负载均衡均在同一逻辑网络中。
由于这种安装方式容错性差,网络架构缺乏弹性,对广播风暴及其他生成树协议循环相关联的错误敏感,因此一般不推荐这种安装架构。
(3)DR模式(路由直连模式)
这种安装方式负载均衡的LAN口不使用,WAN口与服务器在同一个网络中,互联网的客户端访问负载均衡的虚IP(VIP),虚IP对应负载均衡机的WAN口,负载均衡根据策略将流量分发到服务器上,服务器直接响应客户端的请求。因此对于客户端而言,响应他的IP不是负载均衡机的虚IP(VIP),而是服务器自身的IP地址。也就是说返回的流量是不经过负载均衡的。因此这种方式适用大流量高带宽要求的服务。
【3】负载均衡的算法
现有的负载均衡算法主要分为静态和动态两类。静态负载均衡算法以固定的概率分配任务,不考虑服务器的状态信息,如轮询算法、加权轮询算法等;动态负载均衡算法以服务器的实时负载状态信息来决定任务的分配,如最小连接法、加权最小连接法等。分类:
(1)轮询法【加权轮询】
轮询法,就是将用户的请求轮流分配给服务器,就像是挨个数数,轮流分配。这种算法比较简单,他具有绝对均衡的优点,但是也正是因为绝对均衡它必须付出很大的代价,例如它无法保证分配任务的合理性,无法根据服务器承受能力来分配任务。
(2)随机法
随机法,是随机选择一台服务器来分配任务。它保证了请求的分散性达到了均衡的目的。同时它是没有状态的不需要维持上次的选择状态和均衡因子。但是随着任务量的增大,它的效果趋向轮询后也会具有轮询算法的部分缺点。
(3)最小连接法【加权最小连接】
最小连接法,将任务分配给此时具有最小连接数的节点,因此它是动态负载均衡算法。一个节点收到一个任务后连接数就会加1,当节点故障时就将节点权值设置为0,不再给节点分配任务。最小连接法适用于各个节点处理的性能相似时。任务分发单元会将任务平滑分配给服务器。但当服务器性能差距较大时,就无法达到预期的效果。因为此时连接数并不能准确表明处理能力,连接数小而自身性能很差的服务器可能不及连接数大而自身性能极好的服务器。所以在这个时候就会导致任务无法准确的分配到剩余处理能力强的机器上。
二、负载均衡配置之NAT模式
1、需求及规划
四台服务器,一台主机,所有的测试及都在仅主机的网卡下完成,避免出现不必要的错误。
【1】负载均衡调度器设备,设置双网卡ens33:192.168.60.1;ens37:15.0.0.1
yum install ipvsadm -y
【2-3】Apache网站服务器192.168.60.70和192.168.60.80两台
yum install -y httpd
vim /etc/httpd/conf/httpd.conf
Listen 192.168.60.70:80
#Listen 0
vim /etc/httpd/conf/httpd.conf
Listen 192.168.60.80:80
#Listen 0
【4】nfs共享资源服务器192.168.60.50
yum install -y rpcbind nfs-utils
【5】一台主机作为Internet客户端访问网站,测试是否出现lvs负载均衡调度
2、负载均衡之NAT模式原理图示
3、部署步骤
【1】加载ip_vs模块,安装ipvsadm工具,添加双网卡
yum install ipvsadm -y
cd /etc/sysconfig/network-scripts/
systemctl start NetworkManager
cp ifcfg-ens33 ifcfg-ens37
vim ifcfg-ens33
IPADDR=192.168.60.1
NETMASK=255.255.255.0
vim ifcfg-ens37
IPADDR=15.0.0.1
NETMASK=255.255.255.0
systemctl restart network
【2】nfs服务器安装
(1)编辑配置文件
cd /opt
mkdir accp benet
chmod 777 accp benet
vim /etc/exports
/opt/accp 192.168.60.0/24(rw,sync)
/opt/benet 192.168.60.0/24(rw,sync)
(2)开启nfs服务相关配置
systemctl start rpcbind
systemctl start nfs
(3)查看共享服务
//在nfs服务器上查看:
exports -rv
//在Apache服务器上面查看:
showmount -e 192.168.60.90
showmount -e 192.168.60.90
【3】挂载编写测试网站并使用
vim /etc/fstab
192.168.60.90:/opt/accp /var/www/html nfs defaults 0 0
mount -a
vim /var/www/html/index.html
<h1>this is accp web</h1>
systemctl start httpd
vim /etc/fstab
192.168.60.90:/opt/benet /var/www/html nfs defaults 0 0
mount -a
vim /var/www/html/index.html
<h1>this is benet web</h1>
systemctl stat httpd
【4】NAT模式负载均衡配置
vim /opt/nat.sh
#!/bin/bash
echo "1" > /proc/sys/net/ipv4/ip_forward
#清除内核虚拟服务器表中的所有记录
ipvsadm -C
ipvsadm -A -t 15.0.0.1:80 -s rr
ipvsadm -a -t 15.0.0.1:80 -r 192.168.60.70:80 -m
ipvsadm -a -t 15.0.0.1:80 -r 192.168.60.80:80 -m
ipvsadm
sh /opt/nat.sh
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP master:http rr
-> 192.168.60.70:http Masq 1 0 0
-> 192.168.60.80:http Masq 1 0 0
【5】访问,关闭所有的防火防护,在客户端上面访问15.0.0.1
//多刷星几十次就可以看到负载均衡的效果了。