当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 一、集群概述
    • 1.负载均衡技术类型
      • (一)四层负载均衡器
      • (二)七层负载均衡器
    • 2.负载均衡实现方式
      • (一)硬件负载均衡产品:
      • (二)软件负载均衡产品:
  • 二、LVS结构
    • 2.三层结构
  • 三、LVS工作模式
  • 四、LVS负载均衡算法
    • 1.静态负载均衡
    • 2.动态负载均衡
  • 五、ipvsadm命令详解
  • 六、LVS配置案例
    • 1.基础配置
    • 2.实现NAT模型搭建
      • (一)负载调度器配置
      • (二)web节点配置
    • 3.实现DR模型搭建
      • (一)负载调度器配置
      • (二)web节点配置
  • 总结


前言

本篇将简述的内容: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)共享存储

架构对象

VSVirtual Server,也称为 Director,负载均衡服务器
RSReal Server,真正的服务器,集群中各节点
VIPDirector 向外部提供服务的 IP
DIPDirector 向内部与 RS 通信的 IP
RIP真实服务器的 IP
CIP客户端的 IP

三、LVS工作模式

LVS-NAT(NAT模式)
LVS-DR(直接路由模式)(应用最广泛)
LVS-TUN(IP隧道(Tunnel)模式,不常用)
FULL-NAT模式(双向转换模式,不常用)

四、LVS负载均衡算法

1.静态负载均衡

rrround robin轮询
wrrweight round robin加权轮询
shsource hashing源地址散列算法(HASH)
dhdestination 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隧道模式(不常用)
-mNAT模式

六、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模型搭建

负载调度配置器-ens33192.168.115.3192.168.115.2192.168.115.2
负载调度配置器-ens33:0192.168.115.200//
web1-ens33192.168.115.4//
web1-ifcfg-lo:0192.168.115.200//
web2-ens33192.168.115.5//
web2-ifcfg-lo:0192.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

vim ifcfg-lo:0

添加回环路由
route add -host 192.168.115.200/32 dev lo:0
安装httpd
访问192.168.115.200
进行验证


总结

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

http://www.lryc.cn/news/142338.html

相关文章:

  • 同步和异步有什么区别,使用场景?
  • webassembly009 transformers.js 网页端侧推理
  • Android动态添加和删除控件/布局
  • maven下载不了仓库地址为https的依赖jar,配置参数忽略ssl安全检查
  • 3.Redis 单线程模型
  • 0基础学习VR全景平台篇 第90篇:智慧眼-数据统计
  • 【Go】Goland项目配置运行教程
  • Docker容器与虚拟化技术:Docker consul 实现服务注册与发现
  • 【大模型AIGC系列课程 2-2】大语言模型的“第二大脑”
  • Java基础数据结构
  • PP-TS基于启发式搜索和集成方法的时序预测模型,使预测更加准确
  • vue 04-reactive与ref的选择
  • Mysql索引+事务+存储引擎
  • 创建abp vnext项目
  • 【OpenCV实战】3.OpenCV颜色空间实战
  • 什么是回调函数(callback function)?
  • 零售再增长,直播登“C位”,美团稳稳交出成绩单
  • 什么是需求可追溯性,为什么它对产品团队很重要?
  • Window基础命令
  • Java List的扩容机制原理及应用
  • Cesium 显示经纬高
  • 专访 Hyper Oracle:可编程的 zkOracle 打造未来世界的超算
  • ThreadLocal存放当前用户
  • es入门实战
  • c++系列之指针
  • 网络安全:挑战与防护策略
  • AI 插件:未来的浏览器、前端与交互
  • R包开发-2.1:在RStudio中使用Rcpp制作R-Package(更新于2023.8.23)
  • 土豆叶病害识别(图像连续识别和视频识别)
  • 三、JVM监控及诊断工具-GUI篇