CentOS 7上操作LVS负载均衡群集之NAT转换模式

LVS虚拟服务器
Linux Virtual Server(LVS)是针对 Linux内核开发的一个负载均衡项目,由我国的章文嵩博土在1998年5月创建,官方站点位于http://www.linuxvirtualserver.org/.
 
ASP站长网LVS实际上相当于基于IP地址的虚拟化应用,为基于IP地址和内容请求分发的负载均衡提出了一种高效的解决方法。
 
LVS现在已成为Linux内核的一部分,默认编译为ip_vs模块,必要时能够自动调用。
 
LVS的负载调度算法
针对不同的网络服务和配置需要,LVS调度器提供多种不同的负载调度算法,其中最常用的四种算法包括轮询、加权轮询、最少连接和加权最少连接。
 
轮询( RoundRobin):将收到的访问请求按照顺序轮流分配给群集中的各节点(真实服务器)。
 
加权轮询( WeightedRoundRobin):根据真实服务器的处理能力轮流分配收到的访问请求,调度器可以自动查询各节点的负载情况,并动态调整其权重。这样可以保证处理能力强的服务器承担更多的访问流量。
 
最少连接( LeastConnections):根据真实服务器已建立的连接数进行分配,将收到的访问请求优先分配给连接数最少的节点。
 
加权最少连接(WeightedLeastConnections):在服务器节点的性能差异较大的情况下,可以为真实服务器自动调整权重,权重较高的节点将承担更大比例的活动连接负载。
 
使用ipvsadm管理工具
ipvsadm是在负载调度器上使用的LVS群集管理工具,通过调用ip_vs模块添加、删除服务器节点,以及查看群集的运行状态。在CentOS6系统中,需要手动安装ipvsadm软件包。在centos7中直接安装就可以。
 
地址转换模式
地址转换( NetworkAddressTranslation)简称NAT模式,类似于防火墙的私有网络结构,负载调度器作为所有服务器节点的网关,即作为客户机的访问入口,也是各节点回应客户机的访问出口。服务器节点使用私有IP地址,与负载调度器位于同一个物理网络,安全性要优于其他两种方式。
 
图解
CentOS 7上实现LVS负载均衡群集之NAT转换模式
说明:节点服务器作用在私网,而客户端作用在公网,此时LVS就作为网关,节点服务器反馈信息给客户端时,会经过LVS。
 
实验环境
角色 IP
LVS 192.168.100.1 / 12.0.0.1
apache1 192.168.100.110
apache2 192.168.100.120
NFS 192.168.100.130
步骤
在两台节点服务器上搭建httpd服务
# yum install httpd -y
# systemctl stop firewalld.service
# setenforce 0
在NFS服务器上搭建NFS服务
安装服务
# rpm -q nfs-utils
# rpm -q rpcbind   //看是否安装,服务已安装
编辑配置文件
# vim /etc/exports
/usr/share *(ro,sync)
/opt/benet 192.168.100.0/24(rw,sync)//创建目录benet,192.168.100.0网段的可以进行读写和同步操作
/opt/accp 192.168.100.0/24(rw,sync)//创建目录accp,192.168.100.0网段的可以进行读写和同步操作
创建目录并赋予权限
# mkdir /opt/benet /opt/accp
# chmod 777  /opt/benet /opt/accp
开启nfs服务并发布共享
# systemctl start nfs.service
# exportfs -rv  //发布共享
CentOS 7上实现LVS负载均衡群集之NAT转换模式
 
节点服务器挂载nfs服务器的共享文件
apache1将/opt/benet挂载到站点目录下
# showmount -e 192.168.100.130  //查看共享文件
# mount.nfs 192.168.100.130:/opt/benet /var/www/html  //挂载
# cd /var/www/html/
# echo "this is benet" > index.html
# systemctl start httpd.service 
CentOS 7上实现LVS负载均衡群集之NAT转换模式
 
apache2将/opt/accp挂载到站点目录下
# showmount -e 192.168.100.130  //查看共享文件
# mount.nfs 192.168.100.130:/opt/accp /var/www/html  //挂载
# echo "this is accp" > index.html
# systemctl start httpd.service 
CentOS 7上实现LVS负载均衡群集之NAT转换模式
CentOS 7上实现LVS负载均衡群集之NAT转换模式
 
LVS服务器(注意是双网卡)
安装ipvsadm管理工具
# yum install ipvsadm -y
加载内核模块
# modprobe ip_vs
设置路由转发(因为是双网卡)
# vim /etc/sysctl.conf
末尾添加:net.ipv4.ip_forward = 1
# sysctl -p  //立即生效
CentOS 7上实现LVS负载均衡群集之NAT转换模式
 
防火墙设置
iptables -F  
# iptables -t nat -F
# iptables -L
//清空所有规则
# iptables -t nat -I POSTROUTING -s 192.168.100.0/24 -o ens36 -j SNAT --to-source 12.0.0.1   //设置SNAT转发,将所有192.168.100.0段的都转换为12.0.0.1,然后进行访问client
CentOS 7上实现LVS负载均衡群集之NAT转换模式
 
开启ipvsadm
# systemctl start ipvsadm.service
注:此时开启可能会出现问题
# ipvsadm --save  > /etc/sysconfig/ipvsadm  //输入该行即可
CentOS 7上实现LVS负载均衡群集之NAT转换模式
 
编写可执行的脚本
# cd /opt
# vi net.sh
#!/bin/bash
ipvsadm -C
ipvsadm -A -t 12.0.0.1:80 -s rr
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.110:80 -m
ipvsadm -a -t 12.0.0.1:80 -r 192.168.100.120:80 -m
ipvsadm
# chmod +x net.sh
# ./net.sh
解释如下:
ipvsadm -C //清除内核虚拟服务器表中的所有记录//
-A:添加虚拟服务器
-s:指定调度算法
rr:轮询算法
-a:添加真实服务器
-t:指定外网网关及TCP端口
-r:指定节点服务器的地址及TCP端口
-m:使用NAT集群模式
CentOS 7上实现LVS负载均衡群集之NAT转换模式
CentOS 7上实现LVS负载均衡群集之NAT转换模式
打开一台win7进行检测
CentOS 7上实现LVS负载均衡群集之NAT转换模式
CentOS 7上实现LVS负载均衡群集之NAT转换模式
注:当两次连续访问12.0.0.1时,可能一时间切换不过来,显示的还是原来的界面,这时候就必须清除缓存,才能看到两个不同的界面。当然了,如果这时关掉其中一台节点服务器的httpd服务,那么再去访问12.0.0.1时,显示的就是另一台的网页界面啦。

dawei

【声明】:九江站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。