lvs负载均衡集群

什么是集群:

  • 就是将多台主机作为一个整体,对外提供共同的服务

使用场景:

  • 高并发

集群的分类:

  1. 负载均衡集群:减少响应延迟,提高并发处理能力
  2. 高可用集群:保持系统稳定,减少服务器中断时间,减少损失
  3. 高性能集群:高性能运算能力,分布式、高并发

负载均衡器的集群架构:

   1、负载均衡调度器:

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

   2、服务器池

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

   3、共享存储

  • 为服务器池中的所有节点提供稳定、一致的文件存取服务, 确保整个群集的统一性

lvs负载均衡集群_第1张图片

负载均衡器的工作模式:

    1、地址转换(NAT模式):

  • 调度作为网关,是访问请求的入口,也是响应访问的出口,在高并发场景中负载压力很高NAT转换可以提高安全性

    2、ip隧道(TUN模式):

  • 仅是访问请求的入口,响应数据不经过调度器,但是需要大量的公网ip,还需要额外的IP隧道(成本太高)数据转发受IP隧道的额外影响

    3、直接路由(DR模式):

  • 仅是访问请求的入口,响应数据不经过调度器,节点服务器和调度器在一个物理网络中数据进行转发不受额外影响

负载均衡器的调度算法:

   1、轮询:

将接收到的访问请求按照顺序依次分配给集群中的每一台服务器

   2、加权轮询:

将接收到的访问请求按照权重值进行分配,权重值越高,收到的请求越多

   3、最少连接数

根据服务器已经建立的连接数,优先将访问请求分配给连接数最少的服务器

   4、加权最少连接

在服务器性能差异较大时,可以调整服务器的权重值,权重值高的服务器将承受更多的访问请求

lvs的组成:

  1. lvs基于内核态的netfilter框架实现的IPVS功能,工作在内核态,用户配置VIP等相关信息并且传递到IPVS就需要用到IPVSadm工具
  2. ipvsadm是lvs用户态的一个配套工具,可以实现VIP和RS增删改查

         IPVSadm就是类似于iptables工具地位 

lvs的作用:

  1. 主要用于服务器的负载均衡
  2. 工作在网络层,可实现高性能、高可用的服务集群技术
  3. 廉价,可以把许多低性能服务器组合在一起,形成一个超级服务器
  4. 易用,配置简单,有多重负载均衡的方式
  5. 稳定可靠,解释在集群的服务器中,某台服务器无法正常工作,也不影响整体效果
  6. 可扩展性好

LVS-Nat实验

Web1 节点服务器1:192.168.86.11
Web2 节点服务器2:192.168.86.22
LVS负载调度器:ens33:192.168.86.33  ens37:10.0.0.1
NFS服务器:192.168.86.44

1、部署共享存储(NFS服务器:192.168.86.44)

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

yum install -y nfs-utils rpcbind

systemctl start nfs.service 
systemctl start rpcbind.service
systemctl enable nfs.service 
systemctl enable rpcbind.service

mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet

vim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.86.0/24(rw,sync)
/opt/benet 192.168.86.0/24(rw,sync)


#发布共享
exportfs -rv
showmount -e

2、配置节点服务器(后端服务器)(192.168.86.11 和 192.168.86.22)

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0

#修改网卡网关为LVS服务器

yum install -y httpd
systemctl start httpd.service 
systemctl enable httpd.service

yum install -y nfs-utils rpcbind

systemctl start rpcbind.service
systemctl enable rpcbind.service

showmount -e 192.168.86.44

web1:192.168.86.11

mount.nfs 192.168.86.44:/opt/kgc /var/www/html/
echo 'this is kgc' > /var/www/html/index.html

vim /etc/fstab 
192.168.86.44:/opt/kgc /var/www/html nfs defaults,_netdev 0 0
mount -a

web2:192.168.86.22

mount.nfs 192.168.86.44:/opt/benet /var/www/html/
echo 'this is benet' > /var/www/html/index.html

vim /etc/fstab 
192.168.86.44:/opt/benet /var/www/html nfs defaults,_netdev 0 0
mount -a

 LVS配置负载调度器:ens33:192.168.86.33  ens37:10.0.0.1

systemctl stop firewalld.service 
systemctl disable firewalld.service 
setenforce 0
1、配置SNAT转发规则
vim /etc/sysctl.conf
net.ipv4.ip_forward=1
sysctl -p
iptables -t nat -F
iptables -F
iptables -t nat -nL
iptables -t nat -A POSTROUTING -s 192.168.86.0/24 -o ens37 -j SNAT --to-source 10.0.0.1

2、加载LVS内核模块
modprobe ip_vs   #手动加载ip_vs模块
cat /proc/net/ip_vs    #查看ip_vs版本信息

3、安装ipvsadm管理工具
yum install -y ipvsadm
#注意:启动服务前必须保存负载分配策略,否则将会报错
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm.service

4、配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)
ipvsadm -C     #清除原有策略
ipvsadm -A -t 10.0.0.1:80 -s rr
ipvsadm -a -t 10.0.0.1:80 -r 192.168.86.11:80 -m -w 1
ipvsadm -a -t 10.0.0.1:80 -r 192.168.86.22:80 -m -w 1

ipvsadm     #启动策略

ipvsadm -ln    #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /etc/sysconfig/ipvsadm    #保存策略

ipvsadm -d -t 10.0.0.1:80 -r 192.168.10.16:80 -m -w 1     #删除群集中某一节点服务器
ipvsadm -D -t 10.0.0.1:80     #删除整个虚拟服务器
systemctl stop ipvsadm     #停止服务(清除策略)
systemctl start ipvsadm    #启动服务(重建规则)
ipvsadm-restore > /etc/sysconfig/ipvsadm      #恢复LVS策略

 使用浏览器访问10.0.0.1,刷新浏览器测试负载均衡(PS:刷新间隔时间需要稍长一点)

lvs负载均衡集群_第2张图片

 lvs负载均衡集群_第3张图片

 

你可能感兴趣的:(lvs)