玩转Linux系统之搭建LVS负载均衡群集及排错
Posted Friends of the wind
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了玩转Linux系统之搭建LVS负载均衡群集及排错相关的知识,希望对你有一定的参考价值。
负载均衡群集结构图
我的价值
提示:为什么要用我?
白话解释: 一对一解答疑问,一 天可帮助50人,而好多问题都是重复的,做的事一多,难免出错,影响效果;如果,众多技术专家,把博文集中发到CSDN(相当于一个群集),他们既轻松又可通过CSDN帮助更广大的朋友。
术语:提高应用系统的响应能力、尽可能处理更多的访问请求、减少延迟为目标,获得高并发、高负载的整体性能。
我的性格
提示:群集都有哪些类型呢?
1、负载均衡群集(LB):用于前台服务器, 如:web 同时在线 主要考虑性能 nginx 、lvs、 haproxy等
2、高可用群集(HA):用于后端服务器,如:数据库主从、主主; 主要考虑可用HSRP、 VRRP 、KEEPALIVED等
3、高性能计算(HPC):如云计算
负载均衡群集架构
提示:如上图所示
1、 负载调度器 通常位于前端,提供服务
2、 服务器池 介于中间位置
3、 共享存储 位于后端,提供数据存储服务
负载均衡群集工作模式
1、NAT模式
调度器做为所有服务器节点的网关
服务器节点使用私有ip地址
与负载调度器位于同一个物理网络
即作为互联网用户访问入口,同时又是节点服务器的出口
优势:节省公有地址、 安全
劣势:性能差
2、TUN模式
负载调度器仅做为客户端的入口
直接由真实服务器响应客户端
节点服务器分散在互联网中不同位置
节点服务器具有独立的公网ip地址
使用ip隧道封装(源地址为ds,目标为节点服务器的真实ip地址)
优势:性能优
劣势:占用公有地址多、所需设备多,成本较高
3、DR模式
服务器与调度器在同一个子网
需要每个服务器有公有地址 服务器直接向客户端响应
不走隧道
实验案例
搭建lvs负载均衡群集NAT模式
(一)、环境
配置各个服务器ip地址、网关;
关闭防火墙、setenforce(仅限实验,真实环境是配置防火墙策略)
vim 编辑脚本
#!/bin/bash
sed -i '2c BOOTPROTO=static' /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i '17c ONBOOT=yes' /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i '17a IPADDR=192.168.2.2' /etc/sysconfig/network-scripts/ifcfg-ens33
sed -i '18a GATEWAY=192.168.2.1' /etc/sysconfig/network-scripts/ifcfg-ens33
ifdown ens33;ifup ens33
systemctl stop firewalld
setenforce 0
注意:LVS调度服务器需要配置两个网卡,先添加网卡,配置方法如下:
(1)查看网卡名称(外网接口ens33、群集接口ens37)
(2)进入网卡配置文件目录
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
(3)拷贝网卡配置文件并修改内容。
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens37
重载网卡: [root@localhost network-scripts]# systemctl restart network
(4)查看网卡信息
(二)、配置LVS调度器
(1)开启路由转发
[root@localhost network-scripts]# vim /etc/sysctl.conf
文件里面添加如下内容:
重载配置文件:
[root@localhost network-scripts]# sysctl -p
重新加载配置:sysctl -p
(2)配置负载均衡分配策略
-
命令语法:
ipvsadm -A -t VIP:端口 -s 调度算法
说明:-A代表添加虚拟服务器,-t指定vip地址和端口,-s指定负载调度算法,轮询(rr),加权轮询(wrr),最小连接数(lc),加权最小链接数(wlc)
添加真实服务器
ipvsadm -a -t VIP:端口 -r 真实服务器ip:端口 群集模式 -w(权重),后面加参数如:1
-a表示添加真实服务器,,-r指定rip地址和tcp端口,-m表示使用nat群集模式,-g为dr模式,-i为tun模式,-w设置权重(为0代表暂停节点)
安装ipvsadm群集管理工具
配置yum仓库,挂载镜像文件省略。
安装:yum -y install ipvsadm
-
具体配置:
清除原有策略:
ipvsadm -C
添加虚拟服务器
ipvsadm -A -t 192.168.1.2:80 -s rr
添加真实服务器
ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.2:80 -m -w 1
ipvsadm -a -t 192.168.1.2:80 -r 192.168.2.3:80 -m -w 1
保存ipvsadm策略
ipvsadm-save >/etc/sysconfig/ipvsadm
-
配置web节点服务器(两个节点服务器配置方法类似,为方便演示,内容设置成web 1 与web 2)
(1) 安装Apache服务
配置yum仓库,挂载镜像文件省略。
安装:yum -y install
vim /var/www/html/index.html
(2)启动服务
systemctl start httpd
做完这步先在客户机验证一下,负载均衡。 -
搭建NFS共享存储(上步骤成功,才能继续,centos7默认已安装此服务)
(1)启动服务:
rpcbind服务用于rpc支持,远程同步
NFS用于提供nfs共享服务
systemctl enable rpcbind
systemctl enable nfs
(2)创建共享网页存放路径和主页
创建目录:mkdir -p /opt/wwwroot
编辑内容如下图:vim /opt/wwwroot/index.html
(3)发布共享目录
编辑配置文件:vim /etc/exports
说明:根据需要添加选项,rw/ro代表权限; sync:代表同步 ; no_root_squash:代表当客户端以root身份挂载时,可以获取nfs服务器的root权限。
systemctl restart rpcbind
systemctl restart nfs
(三)、web服务器设置
分别在web1和web2将nfs的共享目录挂载到网页目录上
临时挂载(立即生效)
mount 192.168.2.4:/opt/wwwroot /var/www/html
永久挂载(重启才生效)
编辑配置文件:vim /etc/fstab
添加一下内容:
192.168.2.4:/opt/wwwroot /var/www/html nfs defaults,_netdev 0 0
2.重启web服务
systemctl restart httpd
3. 验证:注意:反应可能会很慢,耐心等待多次刷新,才能看到效果
(1)在客户机测试,访问调度器外网地址,显示的是两个节点服务器的各自内容,内容不同。(未做NFS共享存储同步)
(2)在客户机测试,访问调度器外网地址,显示的是两个节点服务器的内容,因为,添加了同步NFS存储功能,内容都同步成功,所以相同。
排错:
配置正确但是达不到效果,或者,只能达到部分效果,怎么办?
注意:LVS负载均衡群集的网页处理性能不如Nginx,所以配置完,要多等会多次刷新,才验证出效果。
若实验环境,必须保证同一网卡类型,NAT或v1。如果,对防火墙和setenforce不熟练,可以关闭。
翻译下面提示,mount.nfs:不支持请求的nfs版本或传输协议
经查看发现网卡类型不一致,NFS是NAT,节点服务器是V1
改成同一类型,问题还是未解决。
再次查看,发现没有错误配置,这时候就证明是配置文件没有生效。重启两个共享存储服务,等待一会,多次刷新问题解决!
重启服务:
挂载:
以上是关于玩转Linux系统之搭建LVS负载均衡群集及排错的主要内容,如果未能解决你的问题,请参考以下文章