LVS-NAT模式

LVS负载均衡群集

群集的定义

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

群集的作用

对于企业服务的的性能提升一般会有两种方式:

纵向扩展: 对服务器的CPU 内存 硬盘 等硬件进行升级或者扩容来实现的 性能上限会有瓶颈,成本昂贵,收效比不高等问题。

横向扩展:通过增加服务器主机数量来应该高并发的场景。

群集的目的

提高性能:计算密集应用。如天气预报,核试验模拟。 降低成本:相对百万美元的超级计算机,价格便宜。 提高可扩展性:只要增加集群节点即可。 增强可靠性:多个节点完成相同功能,避免单点失败。

企业级群集的类型

负载均衡(LB):提高应用系统的响应效率,处理更多的访问请求,减少延迟,提高并发和负载能力。 同时也是如今企业运用最多的群集类型。

高可用(HA): 提高应用系统的可靠性,减少服务中断时间,确保服务的连续性

高性能运算(HPC):将多台主机的硬件计算资源整合到一起实现分布式运用,比如 云计算

LVS的相关话术:

DS:Director Server。指的是前端负载均衡器。

RS:Real Server。节点服务器,后端真实的工作服务器。

VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。

DIP:Director Server IP,主要用于和内部主机通讯的IP地址。

RIP:Real Server IP,后端服务器的IP地址。

CIP:Client IP,访问客户端的IP地址。

LVS的基本原理

1.当用户向负载均衡器(Director Server)发起请求,调度器将请求发送至内核空间。

2.Prerouting链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发送到INPUT链。

3.IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已经定义好的集群服务进行对比,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP地址及端口,并将新的数据包发送到POSTROUTING链。

4.POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将数据包最终发送到后端的服务器。

LVS负载均衡的三种模式

群集的负载调度技术有三种工作模式:地址转换(NAT模式) ,直接路由(DR模式),IP隧道(IP-TUN)。对于商用来说,最常用是NAT模式和DR模式。

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

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

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

  • 缺点:由于NAT的负载均衡器既作为用户的访问请求入口,也作为节点服务器响应请求的出口,承载两个方向的压力,调度器的性能会成为整个集群的瓶颈。

DR模式(直接路由)
  • Direct Routing,简称DR模式。
  • 采用半开放式的网络结构,与TUN模式的结构类似,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接回应客户机,而不再经过负载调度器。承载的压力比NAT小。
  • 但各节点并不是分散在各地,而是与调度器位于同一个物理网络。
  • 负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。

LVS的负载调度算法

rr:轮询算法(Round Robin)

  • 将请求依次分配给不同的RS节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
  • 将收到的访问请求安装顺序轮流分配给群集指定各节点(真实服务器),均等地对待每一台服务器,而不管服务器实际的连接数和系统负载。

wrr:加权轮询调度(Weighted Round Robin)

  • 依据不同RS的权重值分配任务。权重值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • 保证性能强的服务器承担更多的访问流量。

dh:目的地址哈希调度(destination hashing)

  • 以目的地址为关键字查找一个静态hash表来获得所需RS。

sh:源地址哈希调度(source hashing)

  • 以源地址为关键字查找--个静态hash表来获得需要的RS。

(2)动态调度算法: wlc,lc,1blc

lc:最小连接数调度( Least Connections)

  • ipvs表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
  • 根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。

wlc:加权最小连接数调度(Weighted Least Connections)

  • 假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次取Ti/Wi为最小的RS作为下一个分配的RS。
  • 在服务器节点的性能差异较大时,可以为真实服务器自动调整权重。
  • 性能较高的节点将承担更大比例的活动连接负载。

lblc:基于地址的最小连接数调度(locality-based least-connection)

  • 将来自同一个目的地址的请求分配给同一-台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS-NAT模式实例

NFS服务器 7-5 192.168.222.105

#关闭防火墙

systemctl stop firewalld

setenforce 0

LVS-NAT模式_第1张图片

#安装nfs服务

yum install nfs-utils rpcbind -y

LVS-NAT模式_第2张图片

#新建目录,并创建站点文件

cd /opt/

mkdir zhao qian

echo "zhaoqiansunli" >zhao/index.html

echo "zhouwuzhengwang" >qian/index.html

LVS-NAT模式_第3张图片

#开启服务

systemctl start rpcbind

systemctl start nfs

#授权

chmod 777 zhao/ qian/

LVS-NAT模式_第4张图片

#设置共享策略

vim /etc/exports /opt/fl

192.168.222.0/24(rw,sync) /opt/dl

192.168.222.0/24(rw,sync)

#发布服务

systemctl restart nfs

exportfs -rv

LVS-NAT模式_第5张图片

节点服务器1 7-4 192.168.222.104

#关闭防火墙

systemctl stop firewalld
setenforce 0

LVS-NAT模式_第6张图片

#安装httpd

yum install -y httpd

LVS-NAT模式_第7张图片

#查看nfs服务

showmount -e 192.168.222.105

LVS-NAT模式_第8张图片

#挂载站点

#法一:临时挂载
df

mount 192.168.222.105:/opt/zhao /var/www/html/

cat /var/www/html/index.html
#法二:永久挂载
vim /etc/fstab
192.168.222.105:/opt/zhao/  /var/www/html/        nfs     defaults,_netdev 0 0 
mount -a

LVS-NAT模式_第9张图片

#开启httpd服务

systemctl start httpd

#指定网关

vim /etc/sysconfig/network-scripts/ifcfg-ens33 
GATEWAY=192.168.222.100
#DNS1=8.8.8.8

LVS-NAT模式_第10张图片

#重启网络服务

systemctl restart network

节点服务器2 7-3 192.168.222.103【和7-4操作相同】

负载调度器 7-2 192.168.222.100 需要两块网卡

#关闭防火墙

systemctl stop firewalld

setenforce 0

#安装ipvsadm

yum install -y ipvsadm*

LVS-NAT模式_第11张图片

#添加一块网卡,配置网卡,重启网络

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens33 ifcfg-ens35

vim ifcfg-ens35 去掉网关、UUID、修改IP

vim ifcfg-ens33 去掉网关

systemctl restart network

LVS-NAT模式_第12张图片

LVS-NAT模式_第13张图片

LVS-NAT模式_第14张图片

#打开路由转发功能

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

sysctl -p

LVS-NAT模式_第15张图片

LVS-NAT模式_第16张图片

#防火墙做策略

#查看策略

iptables -nL -t nat

#清空策略

iptables -F

#添加策略

iptables -t nat -A POSTROUTING -s 192.168.222.0/24 -o ens35 -j SNAT --to 12.0.0.1

#查看策略

iptables -nL -t nat

LVS-NAT模式_第17张图片

LVS-NAT模式_第18张图片

#加载LVS内核模块

modprobe ip_vs

cat /proc/net/ip_vs

LVS-NAT模式_第19张图片

#开启ipvsadm服务

ipvsadm-save >/etc/sysconfig/ipvsadm

systemctl start ipvsadm.service

#清空策略

ipvsadm -C

#制定策略

#指定IP地址 外网的入口 -s rr 轮询 ipvsadm -A -t 12.0.0.1:80 -s rr

#先指定虚拟服务器再添加真实服务器地址,-r:真实服务器地址 -m指定nat模式

ipvsadm -a -t 12.0.0.1:80 -r 192.168.222.103:80 -m

ipvsadm -a -t 12.0.0.1:80 -r 192.168.222.104:80 -m

#开启服务 ipvsadm

LVS-NAT模式_第20张图片

#查看策略

ipvsadm -ln

LVS-NAT模式_第21张图片

客户端主机

修改ip

LVS-NAT模式_第22张图片

访问12.0.0.1

LVS-NAT模式_第23张图片

你可能感兴趣的:(lvs)