LVS(Linux Virtual Server) 集群

一.概念:

LVS

1.lvs的核心思想是 将客户端请求分发到多台后端真实服务器,从而实现:

  • 负载均衡:避免单台服务器过载。

  • 高可用性:某台服务器故障时,自动切换到其他服务器。

  • 可扩展性:可动态增加服务器以应对高流量。

名词:

VS:Virtual Server

RS:Real Server

CIP:Client IP

VIP: Virtual serve IP VS外网的IP

DIP: Director IP VS内网的IP

RIP: Real server IP

  1. LVS有四种工作模式

(1) NAT 模式

  • 原理:

客户端请求先到达LVS 负载均衡器。

LVS 修改目标IP并转发给后端服务器。

后端服务器返回数据时LVS 再修改源IP返回给客户端。

  • 特点:

所有流量都经过 LVS,可能成为性能瓶颈。

适用于 **小型集群**,Real Server 可以位于私有网络。

  • 架构示例:

客户端 → LVS → Real Server → LVS → 客户端

(2) DR 模式

  • 原理:

LVS 只修改请求的MAC 地址,直接转发给Real Server。

Real Server直接返回数据给客户端(不经过 LVS)。

  • 特点:

高性能,LVS 仅处理入站请求,返回流量不经过它。

Real Server 必须配置VIP并隐藏 ARP 响应。

适用于高并发场景。

  • 架构示例:

客户端 → LVS → Real Server

(3) TUN 模式

  • 原理:

LVS 将请求封装在IP 隧道 中发送给 Real Server。

Real Server 解封装后直接返回数据给客户端。

  • 特点:

Real Server 可以位于不同物理网络。

性能略低于 DR 模式,但比 NAT 模式好。

适用于分布式集群。

  • 架构示例:

客户端 → LVS → Real Server

(4)FULLNAT模式

  • 原理:

双向地址转换:

入站请求:LVS 同时修改源IP和目标IP。

出站响应:Real Server 返回数据时,LVS 反向修改源I和目标IP。 - 特点: 可在任意网段,无需任何特殊配置。 支持跨网络,机房集群。 - 架构示例:

Client

| (CIP → VIP)

LVS Director\] ← 双向NAT(CIP↔LVS_IP, VIP↔RIP) \| (LVS_IP → RIP) \[Real Servers

集群与分布式

集群

定义:

将多台同构服务器通过高速网络连接,对外表现为单一系统,共同提供服务。

核心特点:

  • 统一管理:所有节点运行相同服务,共享存储或配置。

  • 高可用性:故障时自动切换(如 LVS + Keepalived)。

  • 负载均衡:流量均匀分发(如 Nginx、LVS)。

  • 典型架构:

客户端 → [负载均衡器] → [Server1][Server2][Server3](相同服务)

应用场景:

  • Web服务器集群

  • 数据库主从集群

  • 高性能计算

优势:

  • 提升系统可靠性和扩展性。

  • 运维简单。

分布式

定义:

将系统拆分为多个独立服务,部署在不同节点上,通过网络协作完成任务。

核心特点:

  • 异构性:不同节点可能运行不同服务。

  • 松耦合:服务通过API/RPC通信。

  • 分区容忍性:允许部分节点故障。

  • 典型架构:

客户端\] → \[服务A\] → \[服务B\] → \[数据库分片

(节点1) (节点2) (节点3)

应用场景:

  • 微服务架构

  • 大数据处理

  • 区块链网络

优势:

  • 更强的横向扩展能力。

  • 灵活的技术栈选择。

系统性能扩展方式

Scale UP:向上扩展,增强 Scale Out:向外扩展,增加设备,调度分配问题,Cluster

二:lvs部署命令介绍

1.lvs相关软件信息

程序包:ipvsadm

Unit File: ipvsadm.service

主程序:/usr/sbin/ipvsadm

规则保存工具:/usr/sbin/ipvsadm-save

规则重载工具:/usr/sbin/ipvsadm-restore

配置文件:/etc/sysconfig/ipvsadm-config

ipvs调度规则文件:/etc/sysconfig/ipvsadm

2.ipvsadm命令

核心功能:

集群服务管理:增、删、改

集群服务的RS管理:增、删、改

查看

复制代码
管理集群服务
ipvsadm -A|E -t(tcp)|u(udp)|f(防护墙标签) \
 service-address(集群地址) \
 [-s scheduler(调度算法)] \
 [-p [timeout]] \
 [-M netmask] \
 [--pepersistence_engine] \
 [-b sched-flags]
 ipvsadm -D -t|u|f service-address 删除
ipvsadm --C 清空
ipvsadm --R 重载
ipvsadm -S [-n] 保存
管理集群中的real server
 ipvsadm -a|e -t|u|f service-address -r server-address [-g | -i| -m](工作模式) [-w 
weight](权重)
 ipvsadm -d -t|u|f service-address -r server-address 删除RS
 ipvsadm -L|l [options]                  查看rs
ipvsadm -Z [-t|u|f service-address]     清楚计数器

3.lvs集群中的增删改

1.管理集群服务中的增删改

ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]

-A #添加

-E #修改

-t #tcp服务

-u #udp服务

-s #指定调度算法,默认为WLC

-p #设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver

-f #firewall mask 火墙标记,是一个数字

2.管理集群中RealServer的曾增删改

ipvsadm -a|e -t|u|f service-address -r realserver-address [-g|i|m] [-w weight]

复制代码
-a      -e      -t      -u      -f      -r      -g      -i      -m      -w      -Z      -C      -L      -n      
-a #添加realserver
-e #更改realserver
-t #tcp协议
-u #udp协议
-f #火墙 标签
-r #realserver地址
-g #直连路由模式
-i #ipip隧道模式
-m #nat模式
-w #设定权重
-Z #清空计数器
-C #清空lvs策略
-L #查看lvs策略
-n #不做解析
--rate :输出速率信息

pvs规则:/proc/net/ip_vs

ipvs连接:/proc/net/ip_vs_conn

部署nat模式集群

实验环境

首先安装ipvsadm:

部署策略及查看策略

保存规则 ipvsadm -Sn

删除规则 ipvsadm -C

重新加载规则 ipvsadm -R < /etc/sysconfig/ipvsadm-config

在rs1和rs2中进行配置并刷新

部署DR模式集群

实验环境

在客户端主机中为nat模式网卡

在在路由主机中设定双网卡,eth0为nat网卡,eth1为仅主机网卡

对于eth0

对于eth1

调度器设定网卡仅主机

RS1设定网卡为仅主机

RS2同理

确保每台主机可以ping通

DR模型中各主机上均需要配置VIP,解决地址冲突的方式有三种:

(1)在前端网关做静态绑定

(2)在各RS使用arptables

(3)在各RS修改内核参数,来限制arp响应和通告的级别

配置详情

1.要点

1.Director服务器采用双IP桥接网络,一个是VPP,一个DIP

2.Web服务器采用和DIP相同的网段和Director连接

3.每个Web服务器配置VIP

4.每个web服务器可以出外网

2.内容:

在lvs,rs1和rs2中设定vip:

rs1和rs2解决响应问题

在lvs中配置策略

相关推荐
菜鸟12号23 分钟前
Linux下SPI设备驱动开发
linux·arm开发·驱动开发
嵌入式产品侠30 分钟前
Linux find命令:强大的文件搜索工具
linux·linux命令·find·find查找
cpsvps_net1 小时前
云服务器磁盘IO性能优化的测试与配置方法
运维·服务器·性能优化
kfepiza1 小时前
Debian-10,用dpkg, *.deb包,安装Mysql-5.7.42 笔记250717
linux·笔记·mysql·debian
沙老师1 小时前
移除debian升级后没用的垃圾
运维·服务器·debian
玥轩_5212 小时前
《Linux服务与安全管理》| 安装拼音输入法
linux·运维·服务器·centos·redhat·root·拼音输入法
阿巴~阿巴~2 小时前
Linux中ELF区域与文件偏移量的关系
linux·运维·服务器
光年像素2 小时前
Linux系统性能优化与监控
linux·开发语言·php
星星点点洲3 小时前
清理磁盘空间
linux
JAVA学习通3 小时前
【JavaEE进阶】使用云服务器搭建Linux环境
linux·运维·服务器