有关于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模式特点:
- Web节点服务器和LVS负载均衡调度器属于同一IP网络中网卡应该使用私网地址,且Web节点服务器的网关要指向LVS负载均衡调度器;
- 请求和响应报文都要经由LVS负载均衡调度器转发;极高负载的场景中,LVS负载均衡调度器可能会成为系统瓶颈;
- 支持端口映射;
- LVS负载均衡调度器可以使用任意操作系统(OS);
- LVS负载均衡调度器需要两块网卡(属于典型的lan/wan)Web节点服务器和LVS负载均衡调度器必须有一块网卡在同一IP网络;
- VIP需要配置在LVS负载均衡调度器接受客户端请求网卡上,且直接对外提供服务。
三、案例实施
案例实例原理
- client发送request到LVS调度服务器的VIP上,LVS调度服务器根据负载算法选择一个Web节点服务器,并记录连接信息到hash表中,然后修改client的request的目的IP地址为Web节点的地址,将请求发给Web节点服务器r;
- Web节点服务器收到request包后,发现目的IP是自己的IP,于是处理请求,然后发送reply给LVS;
- LVS收到reply包后,修改reply包的的源地址为VIP,发送给client;
1.配置负载调度器
1)开启路由转发功能
[[email protected] ~]# vim /etc/sysctl.conf
………… //省略部分内容
net.ipv4.ip_forward = 1
[[email protected] ~]# sysctl -p
net.ipv4.ip_forward = 1
2)配置负载分配策略
[[email protected] ~]# yum -y install ipvsadm
//默认没有ipvsadm工具,需要手动安装
[[email protected] ~]# ipvsadm -C
//清空原有策略
[[email protected] ~]# ipvsadm -A -t 192.168.1.1:80 -s rr
[[email protected] ~]# ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.2:80 -m -w 1
[[email protected] ~]# ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.3:80 -m -w 1
[[email protected] ~]# 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节点服务器
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# echo "qqqqqqqq" > /var/www/html/index.html
[[email protected] ~]# systemctl start httpd
第二台Web节点服务器
[[email protected] ~]# yum -y install httpd
[[email protected] ~]# echo "oooooo" > /var/www/html/index.html
[[email protected] ~]# systemctl start httpd
关于防火墙的相关配置可以参考博文:保证Linux系统安全之firewalld防火墙入门详解本次实验就把防火墙、SELinux关闭。
客户机访问时,多次刷新就会出现不一样的页面!在实际生产环境中,不可能让页面一直有变化,所以需要搭建——NFS共享存储服务器。
3.搭建NFS共享存储服务器
[[email protected] ~]# mkdir -p /var/www/html
[[email protected] ~]# echo "welcome to beijing" > /var/www/html/index.html
[[email protected] ~]# vim /etc/exports
/var/www/html 192.168.2.0/24(rw,sync,no_root_squash)
[[email protected] ~]# systemctl start nfs
[[email protected] ~]# systemctl start rpcbind
Web节点服务器需要挂载一下:
[[email protected] ~]# mount 192.168.2.4:/var/www/html /var/www/html
客户端再次访问页面永远都不会有变化了!
———————— 本文至此结束,感谢阅读 ————————
原文地址:https://blog.51cto.com/14157628/2437699