九五从零开始的运维之路(其三十六)

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: (一)四层负载均衡器四层负载均衡器也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;

前言

本篇将简述的内容:Linux系统下的LVS集群


一、集群概述

1.负载均衡技术类型

(一)四层负载均衡器

四层负载均衡器也称为 4 层交换机,主要通过分析 IP 层及 TCP/UDP 层的流量实现基于 IP 加端口的负载均衡,如常见的 LVS、F5 等;


(二)七层负载均衡器

七层负载均衡器也称为 7 层交换机,位于 OSI 的最高层,即应用层,此负载均衡器支持多种协议,如HTTP、FTP、SMTP 等。7 层负载均衡器可根据报文内容,配合一定的负载均衡算法来选择后端服务器,即“内容交换器”。如常见的 HAProxy、Nginx。


2.负载均衡实现方式

(一)硬件负载均衡产品:

F5 、深信服 、Radware


(二)软件负载均衡产品:

LVS(Linux Virtual Server)、 Haproxy、Nginx、Ats(apache traffic server)


二、LVS结构

2.三层结构

1)负载调度器

2)服务器池

3)共享存储


架构对象


VS Virtual Server,也称为 Director,负载均衡服务器

RS Real Server,真正的服务器,集群中各节点

VIP Director 向外部提供服务的 IP

DIP Director 向内部与 RS 通信的 IP

RIP 真实服务器的 IP

CIP 客户端的 IP

三、LVS工作模式

LVS-NAT(NAT模式)

LVS-DR(直接路由模式)(应用最广泛)

LVS-TUN(IP隧道(Tunnel)模式,不常用)

FULL-NAT模式(双向转换模式,不常用)


四、LVS负载均衡算法

1.静态负载均衡

rr round robin 轮询

wrr weight round robin 加权轮询

sh source hashing 源地址散列算法(HASH)

dh destination hashing 目标地址 HASH

2.动态负载均衡

动态负载均衡

lc(leash-connection,最少连接 )

简单算法:active * 256 + inactive (谁的小选谁)


wlc(加权最少连接)

简单算法:(active * 256 + inactive) / weight(谁的小选谁)


sed(最少期望延迟)

简单算法:(active + 1) * 256 / weight (谁的小选谁)


nq(never queue,永不排队)


LBLC(基于局部性的最少连接 )


LBLCR(基于局部性的带复制功能的最少连接)


五、ipvsadm命令详解

-A 添加虚拟服务节点

-D 删除虚拟服务节点

-L 查看虚拟服务节点列表

-a 添加真实服务节点

-d 删除真实服务节点

-l 查看真实服务节点列表

-t 指定虚拟服务器IP地址

-s 指定调度算法

-r 指定真实服务器节点IP地址

-w 指定权重值

-g 直接路由模式(默认)

-i 隧道模式(不常用)

-m NAT模式

六、LVS配置案例

1.基础配置

关闭防火墙


systemctl stop firewalld && systemctl disable firewalld


关闭Selinux

setenforce 0


关闭Networkmanager


systemctl stop NetworkManager && systemctl disable NetworkManager


配置IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens33


2.实现NAT模型搭建

(一)负载调度器配置

配置IP地址

增加一块网卡


cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens37


vim ifcfg-ens37


NAME=ens38
DEVICE=ens38


安装ipvsadm


yum  install -y ipvsadm


开启路由转发功能


vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p


加载ip_vs模块


modprobe ip_vs
lsmod |grep ip_vs


启动ipvsadm服务


systemctl start ipvsadm


配置负载分配策略


ipvsadm -A -t 192.168.16.100:80 -s rr
ipvsadm -a -t 192.168.16.100:80 -r 192.168.115.4:80 -m
ipvsadm -a -t 192.168.16.100:80 -r 192.168.115.5:80 -m


保存策略


ipvsadm-save > /etc/sysconfig/ipvsadm


(二)web节点配置

安装nginx

配置网关


route add -net 0/0 gw 192.168.115.3


测试


3.实现DR模型搭建

负载调度配置器-ens33 192.168.115.3 192.168.115.2 192.168.115.2

负载调度配置器-ens33:0 192.168.115.200 / /

web1-ens33 192.168.115.4 / /

web1-ifcfg-lo:0 192.168.115.200 / /

web2-ens33 192.168.115.5 / /

web2-ifcfg-lo:0 192.168.115.200 / /

(一)负载调度器配置

调整ARP参数

vim /etc/sysctl.conf


net.ipv4.conf.all.send_redirects = 0 
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects = 0


sysctl -p

配置虚拟IP地址


cd /etc/sysconfig/network-scripts/


cp ifcfg-ens33 ifcfg-ens33:0


安装ipvsadm

yum  install -y ipvsadm


加载ip_vs模块


modprobe ip_vs
lsmod |grep ip_vs


启动ipvsadm服务

systemctl start ipvsadm

配置负载分配策略


ipvsadm -A -t 192.168.115.200:80 -s rr
ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.4:80 -g
ipvsadm -a -t 192.168.115.200:80 -r 192.168.115.5:80 -g


保存策略

ipvsadm-save > /etc/sysconfig/ipvsadm


(二)web节点配置

调整ARP参数

vim /etc/sysctl.conf


net.ipv4.conf.all.arp_ignore=1 
net.ipv4.conf.all.arp_announce=2 
net.ipv4.conf.default.arp_ignore=1 
net.ipv4.conf.default.arp_announce = 2 
net.ipv4.conf.lo.arp_ignore = 1 
net.ipv4.conf.lo.arp_announce=2


sysctl -p

配置虚拟IP地址


cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0



添加回环路由

route add -host 192.168.115.200/32 dev lo:0

安装httpd

访问192.168.115.200

进行验证


总结

LVS集群是一种强大的负载均衡解决方案,可以提高系统的可用性、性能和可扩展性。通过深入探索LVS集群的原理、架构和配置方法,我们可以更好地理解和应用这一技术,为构建高可用性的互联网应用提供有力支持。

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
11月前
|
运维 Java 应用服务中间件
九五从零开始的运维之路(其十九)
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 Tomcat虚拟主机是通过linux或windows操作系统下进行独立运行的一个网站发布容器,他是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。
78 0
|
11月前
|
运维 关系型数据库 MySQL
九五从零开始的运维之路(其三十五)
MHA(MasterHigh Availability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可用。
66 2
|
11月前
|
监控 Linux 网络安全
Linux系统下的keepalived双机热备
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但 是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
147 0
|
11月前
|
存储 缓存 NoSQL
九五从零开始的运维之路(其三十二)
本篇将简述的内容:Linux系统下的Redis基础
67 0
|
11月前
|
存储 运维 Linux
九五从零开始的运维之路(其三十一)
计划任务是在指定的时间间隔内自动执行的任务。在Linux系统中,常用的计划任务工具是crond(cron daemon)。用户可以通过创建计划任务来定期执行指定的命令或脚本。
58 0
|
11月前
|
存储 运维 关系型数据库
九五从零开始的运维之路(其二十九)
数据库备份是指将数据库中的数据、表格、视图、存储过程、触发器等信息备份到另一个地方,以便在数据库丢失或损坏时进行恢复。数据库备份是数据库管理中必不可少的一项工作,通过备份可以保护数据库中的数据和业务
70 0
|
11月前
|
运维 关系型数据库 MySQL
九五从零开始的运维之路(其二十八)
数据库用户权限管理是数据库系统中非常重要的一个方面,它用于控制不同用户访问和操作数据库的权限范围。数据库用户权限管理可以保护敏感数据和数据库结构,确保只有被授权的用户才可以操作和使用数据库,防止数据被修改或泄露,并最大程度地保证数据库的安全。为了保护数据库的安全性,合理管理MySQL服务用户的权限是至关重要的。
50 0
|
1月前
|
运维 Linux Apache
,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具
【10月更文挑战第7天】随着云计算和容器化技术的发展,自动化运维成为现代IT基础设施的关键部分。Puppet是一款强大的自动化运维工具,通过定义资源状态和关系,确保系统始终处于期望配置状态。本文介绍Puppet的基本概念、安装配置及使用示例,帮助读者快速掌握Puppet,实现高效自动化运维。
52 4
|
4天前
|
机器学习/深度学习 数据采集 人工智能
智能运维:从自动化到AIOps的演进与实践####
本文探讨了智能运维(AIOps)的兴起背景、核心组件及其在现代IT运维中的应用。通过对比传统运维模式,阐述了AIOps如何利用机器学习、大数据分析等技术,实现故障预测、根因分析、自动化修复等功能,从而提升系统稳定性和运维效率。文章还深入分析了实施AIOps面临的挑战与解决方案,并展望了其未来发展趋势。 ####
|
13天前
|
机器学习/深度学习 数据采集 运维
智能化运维:机器学习在故障预测和自动化响应中的应用
智能化运维:机器学习在故障预测和自动化响应中的应用
38 4