关于LVS负载均衡群集技术的相关概念,能够参考博文:LVS负载均衡群集详解。html
这篇博文以配置为主,配置过程当中相关命令的解释已经在上面连接中的博文写了出来,环境以下:linux
最终结果以下:web
使用NAT模式的群集技术,LVS负载调度器是全部节点访问Internet的网关服务器,其200.0.0.1也做为整个群集的VIP地址。算法
使用轮询(rr)的调度算法。vim
web1和web2先搭建web服务,分别准备不一样的网页文件,供客户端访问,以此来肯定client访问LVS服务器的200.0.0.1,能够访问到两台wbe服务器。bash
1、准备工做:服务器
将网络配置无误,同一网段的能够互通;网络
准备系统映像和相关的软件包,以便搭建httpd服务,和安装相关工具。这里为了方便,便直接使用系统映像中的安装包来搭建httpd服务。负载均衡
2、配置负载均衡调度器:ide
一、开启路由转发规则:
[root@localhost ~]# vim /etc/sysctl.conf ................. #省略部份内容 net.ipv4.ip_forward = 1 [root@localhost ~]# sysctl -p net.ipv4.ip_forward = 1
二、配置负载分配策略,并导出备份(若需知道下面配置的含义,请参考博文开头的连接。):
[root@localhost ~]# modprobe ip_vs #加载ip-vs模块 [root@localhost ~]# yum -y install ipvsadm #安装ipvsadm管理工具 [root@localhost ~]# ipvsadm -C [root@localhost ~]# ipvsadm -A -t 200.0.0.1:80 -s rr [root@localhost ~]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.2:80 -m -w 1 [root@localhost ~]# ipvsadm -a -t 200.0.0.1:80 -r 192.168.1.3:80 -m -w 1 [root@localhost ~]# hostname LVS #更改主机名,防止在备份时将VIP地址转为127.0.0.1 [root@localhost ~]# bash [root@LVS ~]# ipvsadm-save #保存策略 -A -t LVS:http -s rr -a -t LVS:http -r 192.168.1.2:http -m -w 1 -a -t LVS:http -r 192.168.1.3:http -m -w 1 [root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm.bak #导出策略做为备份 [root@LVS ~]# cat /etc/sysconfig/ipvsadm.bak #查看备份策略 -A -t LVS:http -s rr -a -t LVS:http -r 192.168.1.2:http -m -w 1 -a -t LVS:http -r 192.168.1.3:http -m -w 1
三、配置节点web服务器:
web1配置以下:
[root@web1 ~]# yum -y install httpd #安装httpd服务 [root@web1 ~]# echo "web server 1" > /var/www/html/index.html #准备网页文件 [root@web1 ~]# systemctl start httpd #启动httpd服务 [root@localhost ~]# systemctl enable httpd #设置开机自启动
web2配置以下:
[root@web1 ~]# yum -y install httpd #安装httpd服务 [root@web1 ~]# echo "web server 2" > /var/www/html/index.html #准备网页文件 [root@web1 ~]# systemctl start httpd #启动httpd服务 [root@localhost ~]# systemctl enable httpd #设置开机自启动
四、测试LVS负载均衡服务器是否工做正常(client屡次访问200.0.0.1,能够获得两个不一样的页面):
若访问到的是同一页面,在排除配置上错误的状况下,能够打开多个网页,或者稍等一会再刷新,由于它可能有一个保持链接的时间,因此会存在延迟。
获得以上效果后,就能够搭建NFS服务器,两台web服务器共同挂载同一个NFS服务器共享的目录,以此来提供相同的网页文件:
五、配置NFS共享存储服务器:
[root@NFS /]# yum -y install nfs-utils rpcbind #安装相关软件包 [root@NFS /]# systemctl enable nfs #设置为开机自启动 [root@NFS /]# systemctl enable rpcbind #设置为开机自启动 [root@NFS /]# mkdir -p /opt/wwwroot #准备共享目录 [root@NFS /]# echo www.baidu.com > /opt/wwwroot/index.html #新建网页文件 [root@NFS /]# vim /etc/exports #设置共享目录(该文件内容默认为空) /opt/wwwroot 192.168.2.0/24(rw,sync,no_root_squash) #写入该行 [root@NFS /]# systemctl restart rpcbind #重启相关服务,需注意服务启动的前后顺序 [root@NFS /]# systemctl restart nfs [root@NFS /]# showmount -e #查看本机共享的目录 Export list for NFS: /opt/wwwroot 192.168.2.0
六、在两台web服务器分别查看NFS服务器的共享目录,挂载并设置开机自动挂载:
① 配置web2服务器
[root@web2 ~]# yum -y install rpcbind nfs-utils #安装相关软件包,才能够访问及查询NFS的共享目录 [root@web2 ~]# systemctl enable rpcbind #设置为开机自启 [root@web2 ~]# systemctl start rpcbind #启动该服务 [root@web2 ~]# showmount -e 192.168.2.1 #查询NFS主机共享的目录 Export list for 192.168.2.1: /opt/wwwroot 192.168.2.0 [root@web2 ~]# mount 192.168.2.1:/opt/wwwroot /var/www/html/ #挂载共享目录 [root@web2 ~]# df -hT /var/www/html/ #查看是否挂载成功 文件系统 类型 容量 已用 可用 已用% 挂载点 192.168.2.1:/opt/wwwroot nfs4 39G 4.3G 35G 12% /var/www/html [root@web2 ~]# vim /etc/fstab #设置自动挂载 ......................... 192.168.2.1:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0 #写入上面内容
至此,web2服务器即配置完成了,如今将上面的配置在web1服务器上自行配置一下便可 。
若此时再进行访问测试,看到的页面不是NFS共享存储提供的页面,那么须要检测一下web节点的selinux是否关闭,若处于开启状态,那么颇有可能httpd这个进程没法读取到共享存储的首页文件。
至此,无论怎样刷新访问,都将是看到同一个网页。最终的LVS负载均衡效果也就实现了。
当LVS服务器重启后,LVS规则将会丢失,这就用到了备份,须要注意的是,备份时的主机名和恢复时的主机名必须一致,而且须要注意网卡优先的问题,不然在恢复后,会发现VIP(群集的虚拟IP)变成了LVS服务器的另外一个IP地址
[root@localhost ~]# ipvsadm -ln #查看策略 IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn [root@localhost ~]# ipvsadm-restore < /etc/sysconfig/ipvsadm.bak #恢复策略 [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 200.0.0.1:80 rr #须要注意这里是否仍是原来的VIP -> 192.168.1.2:80 Masq 1 0 0 -> 192.168.1.3:80 Masq 1 0 0
OK。。。。。。。。。。。。。。。。