LVS-NAT负载均衡群集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS-NAT负载均衡群集相关的知识,希望对你有一定的参考价值。

群集的类型

  • 负载均衡群集:以提高应用系统的相应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能。
  • 高可用群集:以提高应用系统的可靠性。尽可能的减少中断时间为目标,确保服务的连续性,达到高可用的容错效果。
  • 高性能运算群集:以提高应用系统的CPU运算速度、扩展硬件资源和分析能力为目标,获得相当于大型、超级计算机的高性能运算能力。

    负载均衡的分层结构

  • 第一层,负载调度器:这是访问整个群集系统的唯一入口,对外使用所有服务器共有的VIP(虚拟IP)地址,也称为群集IP地址。通常会配置主、备两台调度器实现热备份,当朱调度器失效以后平滑替换至备用调度器,确保高可用性。
  • 第二层,服务器池:群集所提供的应用服务(如HTTP/FTP)由服务器池承担,其中的每个节点具有独立的RIP(Real IP,真实IP)地址,只处理调度器分发过来的客户机请求。当某个节点暂时失效时,负载调度器的容错机制会将其隔离,等待错误排除以后再重新纳入服务器池。
  • 第三层,共享存储:为服务器池中的所有节点提供稳定、一致的文件存取服务,确保整个群集的统一性。在Linux/UNIX环境中,共享存储可以使用NAS设备或者提供NFS(网络文件系统)共享服务的专用服务器。

    负载均衡的三种工作模式

  • 地址转换:简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是个节点回应客户机的访问出口。服务器节点使用私有IP地址与负载调度器位于同一个物理网络,安全性要优于其他两种方式。
  • IP隧道:简称TUN模式,采用开放式的网络结构,负载调度器仅作为客户机的访问入口,各节点通过各自的Internet连接直接会用客户机,而不再经过负载调度器。服务器节点分散在互联网中的不同位置,具有独立的公网IP地址,通过专用IP隧道与负载调度器相互通信。
  • 直接路由:简称DR模式,采用半开放式的网络结构,与TUN模式的机构类似,但各节点并不是分散在各地,而是与调度器位于同一个物理网络。负载调度器与各节点服务器通过本地网络连接,不需要建立专用的IP隧道。

    实验环境

  • centos7系统
  • 调度服务器(网关):内网192.168.100.1 外网12.0.0.1
  • web服务器节点1:192.168.100.101
  • web服务器节点2:192.168.100.102
  • NFS共享存储服务器:192.168.100.103
  • win客户机(测试):12.0.0.12

环境部署

一、NFS服务器

1.查询有没有安装软件包,默认是安装的.

rpm -q nfs-utils rpcbind

如果没有安装用yum安装即可

yum install -y nfs-utils rpcbind

2.启动服务

systemctl start rpcbind.service
systemctl restart nfs.service

3.创建共享目录并修改用户权限

mkdir -p /data/web1 /data/web2
chmod 777 /data/web1 /data/web2

4.编辑配置文件

vim /etc/exports
/data/web1 192.168.100.0/24(rw,sync) #192.168.100.0/24网段可以读写、自动同步
/data/web2 192.168.100.0/24(rw,sync) #192.168.100.0/24网段可以读写、自动同步

5.发布共享

exportfs -rv

6.关闭防火墙

setenforce 0
systemctl stop firewalld.service

web1服务器

1.安装apache

yum install -y httpd

2.客户端查看共享储存,并挂载到/var/www/html/

showmount -e 192.168.100.103
mount.nfs 192.168.100.103:/data/web1 /var/www/html

3.创建默认首页文件

echo "<h1>this is web1 server</h1>" > /var/www/html/index.html

4.启动服务

systemctl enable httpd.service
systemctl start httpd.service

5.关闭防火墙

systemctl stop firewalld.service
setenforce 0

web2服务器

1.安装apache

yum install -y httpd

2.客户端查看共享储存,并挂载到/var/www/html/

showmount -e 192.168.100.103
mount.nfs 192.168.100.103:/data/web2 /var/www/html

3.创建默认首页文件

echo "<h1>this is web2 server</h1>" > /var/www/html/index.html

4.启动服务

systemctl enable httpd.service
systemctl start httpd.service

5.关闭防火墙

systemctl stop firewalld.service
setenforce 0

负载调度器(网关)

1.开启路由转发功能

vim /etc/sysctl.conf
net.ipv4.ip_forward=1

2.使转发功能生效

sysctl -p

3.清空防火墙及设置snat地址转换

iptables -t nat -F
iptable -F
iptables -t nat -A POSTROUTING -o ens36 -s 192.168.100.0/24 -j SNAT --to-source 12.0.0.1

4.加载LVS内核模块,并查看ip_vs模块版本

modprobe ip_vs
cat /proc/net/ip_vs

技术分享图片

5.安装管理软件

rpm -ivh /mnt/Packages/ipvsadm-1.27-7.el7.x86_64.rpm

6.启动服务,服务的启动和以往的版本有所不同,在服务启动前需将管理规则进行保存,然后再启动服务,否则会报错

ipvsadm-save  > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
  1. 创建虚拟服务器
ipvsadm -C    #清除缓存
ipvsadm -A -t 12.0.0.1:80 -s rr           #添加虚拟服务器采用rr(轮询)的负载均衡算法   
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.101:80 -m       #添加真实服务器节点,为web1服务器
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.102:80 -m            #添加真实服务器节点,为web2服务器  
ipvsadm       #启用

技术分享图片
8.关闭selinux防火墙,由于是在防火墙内添加规则,所以防火墙不需要关闭。

setenforce 0

win7客户机测试

技术分享图片

客户机对调度服务器进行访问,已实现了轮询访问
技术分享图片
技术分享图片

以上是关于LVS-NAT负载均衡群集的主要内容,如果未能解决你的问题,请参考以下文章

LVS负载均衡群集(LVS-NAT)

LVS-NAT负载均衡群集

LVS-NAT模式的负载均衡群集

构建LVS-NAT负载均衡群集

构建 LVS-NAT 负载均衡群集

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