【集群】LVS负载均衡

简介: 文章目录前言一、NAT负载均衡1.0 架构概况1.1 NFS资源存储器

一、NAT负载均衡

1.0 架构概况

作用 IP地址 安装服务 root密码
负载均衡器 192.168.13.10 ipvsadm aaabbb
节点服务器1 192.168.13.20 httpd aaabbb
节点服务器2 192.168.13.30 httpd aaabbb
NFS资源存储器 192.168.13.40 rpcbind/nfs aaabbb

1.1 NFS资源存储器

systemctl disable --now firewalld         #关闭防火墙
setenforce 0
sed -i "7c SELINUX=disabled" /etc/sysconfig/selinux
yum install -y rpcbind nfs          #安装rpcbind/nfs服务
mkdir -p /opt/nfs/web1 /opt/nfs/web2    #准备两个分享的测试文件
chmod 777 /opt/nfs/web1 /opt/nfs/web2
echo 'this is test web1!' >/opt/nfs/web1/index.html
echo 'this is test web2!' >/opt/nfs/web2/index.html
cat >/etc/exports<<EOF
/opt/nfs/web1 192.168.13.0/24(rw,sync,no_root_squash)
/opt/nfs/web2 192.168.13.0/24(rw,sync,no_root_squash)
EOF
#分享目录 享受分享的IP地址 可读可写,可修改分享目录,root用户不降权
systemctl start rpcbind           #启动rpcbind服务(必须必nfs先启动)
systemctl start nfs             #启动nfs服务
showmount -e                #查看是否配置成功

1.2 节点服务器

systemctl disable --now firewalld         #关闭防火墙
setenforce 0
sed -i "7c SELINUX=disabled" /etc/sysconfig/selinux
yum install httpd -y                #安装httpd网页服务
mount 192.168.13.40:/opt/nfs/web1 /var/www/html/  #挂载资源到本地
systemctl start httpd.service           #启动httpd服务
sed -i "s/GATEWAY=\"192.168.13.2\"/GATEWAY=\"192.168.13.10\"/" /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network             #将网关IP设置为负载均衡器的网关
#在节点服务器2重复此操作

1.3 配置负载均衡器

systemctl disable --now firewalldsystemctl disable --now firewalld              #关闭防火墙
setenforce 0
sed -i "7c SELINUX=disabled" /etc/sysconfig/selinux
cd /etc/sysconfig/network-scripts/          #添加ens35网卡,并配置好
cp ifcfg-ens33 ifcfg-ens35
vim ifcfg-ens35
ifdown ens35 && ifup ens35
vim /etc/sysctl.conf                #开启路由转发功能,连同内外网
  net.ipv4.ip_forward=1
sysctl -p
iptables -t nat -A POSTROUTING -s 192.168.13.0/24 -o ens35 -j SNAT --to 12.0.0.1
                          #开启SNAT源地址转换功能,保护节点服务器IP地址
modprobe ip_vs                    #加载LVS内核模块
yum install ipvsadm -y                #安装ipvsadm工具,并创建目录(必须先创建才能启动)
ipvsadm-save >/etc/sysconfig/ipvsadm
ipvsadm -C                      #清空所有原有调度策略
ipvsadm -A -t 12.0.0.1:80 -s rr
#添加调度器 指定调度器IP/端口 指定调度算法
ipvsadm -a -t 12.0.0.1:80 -r 192.168.13.20:80 -m
#添加节点服务器 指定调度器IP/端口 指定节点服务器IP/端口 指定集群模式
ipvsadm -a -t 12.0.0.1:80 -r 192.168.13.30:80 -m
ipvsadm                       #启动调度策略
ipvsadm -ln                     #查看调度策略
ipvsadm-save >/etc/sysconfig/ipvsadm        #保存现有调度规则,下次重启后,会自动加载该文件

二、DR负载均衡

2.1 部署共享资源

systemctl stop firewalld          #关闭防火墙
setenforce 0
yum install -y rpcbind nfs          #安装rpcbind/nfs服务
mkdir -p /opt/nfs/web1 /opt/nfs/web2    #准备两个分享的测试文件
chmod 777 /opt/nfs/web1 /opt/nfs/web2
echo 'this is test web1!' >/opt/nfs/web1/index.html
echo 'this is test web2!' >/opt/nfs/web2/index.html
vim /etc/exports
  /opt/nfs/web1 192.168.13.0/24(rw,sync,no_root_squash)
  /opt/nfs/web2 192.168.13.0/24(rw,sync,no_root_squash)
  #分享目录 享受分享的IP地址 可读可写,可修改分享目录,root用户不降权
systemctl start rpcbind           #启动rpcbind服务(必须必nfs先启动)
systemctl start nfs             #启动nfs服务
showmount -e                #查看是否配置成功

2.2 配置节点服务器

systemctl stop firewalld              #关闭防火墙
setenforce 0
yum install -y httpd                #安装网页服务
cd /etc/sysconfig/network-scripts         #配置VIP地址
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0
  DEVICE=lo:0                   #修改虚拟网卡VIP地址与调度器VIP地址一致
  IPADDR=192.168.13.21
  NETMASK=255.255.255.255
ifup lo:0                     #启动虚拟网卡lp:0
route add -host 192.168.13.21 dev lo:0        #将VIP地址绑定到虚拟网卡上
vim /etc/rc.local                 #配置开机自动将VIP地址与虚拟网卡绑定
chmod +x /etc/rc.d/rc.local
vim /etc/sysctl.conf
  net.ipv4.conf.lo.arp_ignore = 1         #本机只相应目的IP为物理网卡的ARP请求
  net.ipv4.conf.lo.arp_announce = 2       #不使用数据包的源地址作为ARP的源地址,使用发送接口的IP作为ARP源地址
  net.ipv4.conf.all.arp_ignore = 1
  net.ipv4.conf.all.arp_announce = 2
sysctl -p
mount 192.168.13.10:/opt/nfs/web1 /var/www/html   #将nfs共享资源挂载到本地
#在节点服务器2重复此操作

2.3 配置负载均衡器

systemctl stop firewalld              #关闭防火墙
setenforce 0
cd /etc/sysconfig/network-scripts         #配置虚拟ens33:0网卡作为VIP地址
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0
  NAME="ens33:0"
  DEVICE="ens33:0"
  ONBOOT="yes"
  IPADDR="192.168.13.21"
  PREFIX="32"                   #注:子网掩码必须为32位
ifup ens33:0
ifconfig
vim /etc/sysctl.conf
  net.ipv4.ip_forward = 0             #关闭路由转发功能
  net.ipv4.conf.all.send_redirects = 0      #关闭icmp重定向
  net.ipv4.conf.default.send_redirects = 0
  net.ipv4.conf.ens33.send_redirects = 0
sysctl -p                     #启动规则
modprobe ip_vs                    #加载LVS内核模块
yum install -y ipvsadm                #安装ipvsadm工具,并创建目录(必须先创建才能启动)
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C                      #清空所有原有调度策略,并配置新的调度策略
ipvsadm -A -t 192.168.13.21:80 -s rr
ipvsadm -a -t 192.168.13.21:80 -r 192.168.13.30:80 -g
ipvsadm -a -t 192.168.13.21:80 -r 192.168.13.40:80 -g
ipvsadm                       #启动调度策略
ipvsadm -ln                     #查看调度策略
ipvsadm-save >/etc/sysconfig/ipvsadm        #保存现有调度规则,下次重启后,会自动加载该文件
systemctl stop firewalld

三、思维导图


四、结语

思路:负载均衡主要是为了横向扩大服务器性能,加快处理速度,那么就要有调度器作为指挥官,节点服务器作为小兵,共享资源作为仓库。

易错点:DR模式与NAT模式不同,需要关闭路由转发功能,并且配置节点服务器的虚拟网卡IP地址与VIP地址保持一致,且配置ARP规则,防止出现广播紊乱。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 算法 关系型数据库
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
本文聚焦 MySQL 集群架构中的负载均衡算法,阐述其重要性。详细介绍轮询、加权轮询、最少连接、加权最少连接、随机、源地址哈希等常用算法,分析各自优缺点及适用场景。并提供 Java 语言代码实现示例,助力直观理解。文章结构清晰,语言通俗易懂,对理解和应用负载均衡算法具有实用价值和参考价值。
大数据大厂之MySQL数据库课程设计:揭秘MySQL集群架构负载均衡核心算法:从理论到Java代码实战,让你的数据库性能飙升!
|
负载均衡 前端开发 JavaScript
LVS-DR模式、keepalived、Nginx与Tomcat合作,打造动静分离,高效负载均衡与高可用性
为了采用这样的架构,你需要对LVS-DR、Keepalived、Nginx与Tomcat有一定的理解和掌握,同时也需要投入一些时间去研究和配置,但是一旦你把它运行起来,你将会发现,这一切都是值得的。
484 11
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。
|
负载均衡 网络协议 Linux
LVS,软负载均衡
LVS(Linux Virtual Server)是一项广泛应用的负载均衡技术,由章文嵩博士于1998年发起,自Linux 2.4.24版本起成为官方内核的一部分。LVS通过四层负载均衡技术实现高性能、高可用的服务器集群,支持多种调度算法和工作模式(如D-NAT、full-NAT、IP隧道、DR),适用于HTTP、数据库等应用。相比7层负载均衡器(如Nginx、HAProxy),LVS具有更高的并发处理能力和更低的资源消耗,适合大规模流量分发。本期文章详细介绍了LVS的工作原理、优势与不足,并对比了常见的负载均衡产品,帮助读者根据具体需求选择合适的解决方案。
2573 6
LVS,软负载均衡
|
负载均衡 算法 Linux
LVS+Keepalived:实现高效软负载均衡的利器
本文介绍了如何使用LVS(Linux Virtual Server)和Keepalived搭建高可用负载均衡集群。LVS通过不同调度算法将请求转发给后端服务器,而Keepalived基于VRRP协议实现服务高可用,避免IP单点故障。具体步骤包括环境准备、安装配置ipvsadm和Keepalived、启动服务及测试。文中还详细解释了配置文件中的关键参数,并提供了故障转移测试方法。最后,文章简要对比了软件、硬件和云负载均衡方案的特点,帮助读者选择合适的负载均衡策略。
2130 4
|
运维 负载均衡 网络协议
LVS+Keepalived 负载均衡
LVS+Keepalived 负载均衡
519 8
LVS+Keepalived 负载均衡
|
域名解析 运维 负载均衡
LVS+Keepalived 负载均衡(二)28-1
【8月更文挑战第28天】LVS+Keepalived 负载均衡 配置 LVS VIP
366 6
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
554 2
|
负载均衡 算法 关系型数据库
MySQL集群如何实现负载均衡?
【8月更文挑战第16天】MySQL集群如何实现负载均衡?
1055 6
|
负载均衡 网络协议
使用LVS搭建集群实现负载均衡(二)安装使用
【8月更文挑战第8天】使用LVS搭建集群实现负载均衡(二)安装使用
327 5