LVS负载均衡群集之构建NAT模式,可跟做!!!

有关于LVS负载均衡群集的相关概念可以参考博文:LVS负载均衡群集详解

一、案例概述

LVS负载均衡模式—NAT模式:NAT用法本来是因为网络IP地址不足而把内部保留IP地址通过映射转换成公网地址的一种上网方式(源地址NAT)。如果把NAT的过程稍微变化,就可以 成为负载均衡的一种方式。原理其实就是把从客户端发来的IP包的IP头目的地址在DIR上换成其中一台Web节点服务器的IP地址并发至此Web节点服务器,而Web节点服务器则在处理完成后把数据经过DIR主机发回给客户端,DIR在这个时候再把数据包的源IP地址改为DIR接口上的IP地址即可。期间,无论是进来的流量,还是出去的流量,都必须经过DIR。

LVS负载均衡模式—NAT模式:
优点:实现方便简单,也容易理解;
缺点:LVS负载均衡调度器会称为一个优化的瓶颈,所有的报文都要经过LVS负载均衡调度器,因此,负载后端Web节点服务器的台数在10-20台左右,服务器性能而定,如果LVS负载均衡调度器坏掉,后果很严重,不支持异地容灾;

二、案例环境

由于实验环境,没有必要弄那么大型的拓补图,2个Web节点服务跟10个Web节点服务器意思是一样的,而且配置方法是一样的,所以实验环境就部署两台Web节点服务器。实验拓补图如下:

LVS负载均衡群集之构建NAT模式,可跟做!!!

LVS负载均衡模式—NAT模式特点:

  1. Web节点服务器和LVS负载均衡调度器属于同一IP网络中网卡应该使用私网地址,且Web节点服务器的网关要指向LVS负载均衡调度器;
  2. 请求和响应报文都要经由LVS负载均衡调度器转发;极高负载的场景中,LVS负载均衡调度器可能会成为系统瓶颈;
  3. 支持端口映射;
  4. LVS负载均衡调度器可以使用任意操作系统(OS);
  5. LVS负载均衡调度器需要两块网卡(属于典型的lan/wan)Web节点服务器和LVS负载均衡调度器必须有一块网卡在同一IP网络;
  6. VIP需要配置在LVS负载均衡调度器接受客户端请求网卡上,且直接对外提供服务。

三、案例实施

案例实例原理

  1. client发送request到LVS调度服务器的VIP上,LVS调度服务器根据负载算法选择一个Web节点服务器,并记录连接信息到hash表中,然后修改client的request的目的IP地址为Web节点的地址,将请求发给Web节点服务器r;
  2. Web节点服务器收到request包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS;
  3. LVS收到reply包后,修改reply包的的源地址为VIP,发送给client;

1.配置负载调度器

1)开启路由转发功能

[root@localhost ~]# vim /etc/sysctl.conf
                 …………               //省略部分内容
net.ipv4.ip_forward = 1
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1

2)配置负载分配策略

[root@localhost ~]# yum -y install ipvsadm
//默认没有ipvsadm工具,需要手动安装
[root@localhost ~]# ipvsadm -C
//清空原有策略
[root@localhost ~]# ipvsadm -A -t 192.168.1.1:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.2:80 -m -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.3:80 -m -w 1
[root@localhost ~]# ipvsadm-save 
-A -t localhost.localdomain:http -s rr
-a -t localhost.localdomain:http -r 192.168.2.2:http -m -w 1
-a -t localhost.localdomain:http -r 192.168.2.3:http -m -w 1
//确认VIP、添加Web节点服务器

关于这些命令的详细解释也可以参考博文:LVS负载均衡群集详解

2.配置Web节点服务器

所有的Web节点服务器均使用相同的配置,包括httpd服务端口、网站文档内容。实际上各节点的网站文档可存放在共享存储设备中,从而免去同步的过程。但在本次实验调试过程中可以为各节点采用不同的网页,以便测试负载均衡效果。

第一台Web节点服务器

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "qqqqqqqq" > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd

第二台Web节点服务器

[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo "oooooo" > /var/www/html/index.html
[root@localhost ~]# systemctl start httpd

关于防火墙的相关配置可以参考博文:保证Linux系统安全之firewalld防火墙入门详解本次实验就把防火墙、SELinux关闭。

客户机访问(访问192.168.1.1)时,多次刷新就会出现不一样的页面!在实际生产环境中,不可能让页面一直有变化,所以需要搭建——NFS共享存储服务器。

3.搭建NFS共享存储服务器

[root@localhost ~]# mkdir -p /var/www/html
[root@localhost ~]# echo "welcome to beijing" > /var/www/html/index.html
[root@localhost ~]# vim /etc/exports
/var/www/html   192.168.2.0/24(rw,sync,no_root_squash)
[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind

Web节点服务器需要挂载一下:

[root@localhost ~]# mount 192.168.2.4:/var/www/html /var/www/html

客户端再次访问(192.168.1.1)LVS调度器查看效果:

[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.1.1:80 rr
  -> 192.168.1.2:80               Route   1      1          0         
  -> 192.168.1.3:80               Route   1      1          0 

效果实现,实验完成!!!

———————— 本文至此结束,感谢阅读 ————————