IPVS-IP虚拟服务器

IPVS(IP Virtual Server),又称IP虚拟服务器,是Linux虚拟服务器(LVS)项目的核心模块,集成于Linux内核2.4及以上版本,提供第四层(传输层)的高性能负载均衡功能。其通过虚拟IP(VIP)接收客户端请求,并根据调度算法将TCP/UDP流量分发至后端真实服务器集群,实现服务的高可用性和横向扩展能力。

IPVS支持轮询、加权最小连接等十种调度算法,以及NAT、直接路由(DR)、隧道(TUN)三种转发模式,其中DR模式因性能最优广泛应用于局域网场景。该系统通过内核态哈希表高效管理连接,相比iptables规则链具备更优的扩展性和吞吐量,适用于大规模Web服务集群及Kubernetes等云原生环境。用户可通过ipvsadm工具配置虚拟服务、管理真实服务器节点及健康检查策略,并借助Netfilter框架实现流量拦截与分发。

含义

IPVS基本上是一种高效的Layer-4交换机,它提供负载均衡的功能。当一个TCP连接的初始SYN报文到达时,IPVS就选择一台服务器,将报文转发给它。此后通过查发报文的IP和TCP报文头地址,保证此连接的后继报文被转发到相同的服务器。这样,IPVS不用检查到请求的内容再选择服务器,这就要求后端的服务器组是提供相同的服务,不管请求被送到哪一台服务器,返回结果都应该是一样的。但是在有一些应用中后端的服务器可能功能不一,有的是提供HTML文档的Web服务器,有的是提供图片的Web服务器,有的是提供CGI的Web服务器。这时,就需要基于内容请求分发 (Content-Based Request Distribution),同时基于内容请求分发可以提高后端服务器上访问的局部性。

工作原理

(1)先说下LVS

提到IPVS就不得不提LVS(Linux Virtual Server),虚拟服务器是一个高度可扩展性和高可用性的服务器,建立在一个集群的服务器中。服务器集群的架构对用户是完全透明的,并且用户使用起来感觉它只有一个高性能虚拟服务器。

真正的服务器和负载平衡器之间通过高速局域网或地理上分散的广域网可以相互连接。负载平衡器可以将请求调度到不同的服务器并将并行的集群服务显示的像在一个单一的IP地址上的一个虚拟的服务,请求调度可以使用IP负载平衡技术或应用级负载平衡技术。系统的可扩展性是通过透明地添加或删除集群中的节点来实现的。通过检测节点或守护进程的失败和适当地重新配置系统提供高可用性。

(2)IPVS的原理

当一个TCP连接的初始SYN报文到达时,IPVS就选择一台服务器,将报文转发给它。此后通过查发报文的IP和TCP报文头地址,保证此连接的后继报文被转发到相同的服务器。这样,IPVS无法检查到请求的内容再选择服务器,这就要求后端的服务器组是提供相同的服务,不管请求被送到哪一台服务器,返回结果都应该是一样的。但是在有一些应用中后端的服务器可能功能不一,有的是提供HTML文档的Web服务器,有的是提供图片的Web服务器,有的是提供CGI的Web服务器。这时,就需要基于内容请求分发 (Content-Based Request Distribution),同时基于内容请求分发可以提高后端服务器上访问的局部性。

上面已经说了IPVS是LVS的关键,因为LVS的IP负载平衡技术就是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是:安装在Director Server上,同时在Director Server上虚拟出一个IP地址,用户必须通过这个虚拟的IP地址访问服务。这个虚拟IP一般称为LVS的VIP,即Virtual IP。访问的请求首先经过VIP到达负载调度器,然后由负载调度器从Real Server列表中选取一个服务节点响应用户的请求。

安装

从Linux内核2.4.x版本之后,已经将IPVS内置于内核中,ipvsadm是IPVS的管理程序,察看ipvsadm程序是否已安装最简单的办法就是在任意路径执行命令ipvsadm。

在ubuntu操作系统命令行模式下,执行 sudo ipvsadm

未安装ipvsadm

-bash: ipvsadm: command not found

已安装ipvsadm

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddress:Port Scheduler Flags

Forward Weight ActiveConn InActConn

如果未安装,执行命令安装ipvsadm程序: sudo apt-get install ipvsadm

命令参考

对ipvsadm 的命令参考,并根据自己使用的经验,进行了一个简单的翻译,希望对ipvsadm 的使用者有一定的帮助。

为了更好的让大家理解,将常用到的几个术语先简单的介绍一下:

1,virtual-service-address:是指虚拟服务器的ip 地址

2,real-service-address:是指真实服务器的ip 地址

3,scheduler:调度方法

ipvsadm 的用法和格式如下:

ipvsadm -A|E -t|u|f virutal-service-address:port [-s scheduler] [-p[timeout]] [-M netmask]

ipvsadm -D -t|u|f virtual-service-address

ipvsadm -C

ipvsadm -R

ipvsadm -S [-n]

ipvsadm -a|e -t|u|f service-address:port -r real-server-address:port

[-g|i|m] [-w weight]

ipvsadm -d -t|u|f service-address -r server-address

ipvsadm -L|l [options]

ipvsadm -Z [-t|u|f service-address]

ipvsadm --set tcp tcpfin udp

ipvsadm --start-daemon state [--mcast-interface interface]

ipvsadm --stop-daemon

ipvsadm -h

命令选项解释:

有两种命令选项格式,长的和短的,具有相同的意思。在实际使用时,两种都可以。

-A --add-service 在内核的虚拟服务器表中添加一条新的虚拟服务器记录。也就是增加一台新的虚拟服务器

-E --edit-service 编辑内核虚拟服务器表中的一条虚拟服务器记录。

-D --delete-service 删除内核虚拟服务器表中的一条虚拟服务器记录。

-C --clear 清除内核虚拟服务器表中的所有记录。

-R --restore 恢复虚拟服务器规则

-S --save 保存虚拟服务器规则,输出为-R 选项可读的格式

-a --add-server 在内核虚拟服务器表的一条记录里添加一条新的真实服务器记录。也就是在一个虚拟服务器中增加一台新的真实服务器

-e --edit-server 编辑一条虚拟服务器记录中的某条真实服务器记录

-d --delete-server 删除一条虚拟服务器记录中的某条真实服务器记录

-L|-l --list 显示内核虚拟服务器表

-Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)

--set tcp tcpfin udp 设置连接超时值

--start-daemon 启动同步守护进程。他后面可以是master 或backup,用来说明LVS Router 是master 或是backup。在这个功能上也可以采用keepalived 的VRRP 功能。

--stop-daemon 停止同步守护进程

-h --help 显示帮助信息

其他的选项:

-t --tcp-service service-address 说明虚拟服务器提供的是tcp 的服务

[vip:port] or [real-server-ip:port]

-u --udp-service service-address 说明虚拟服务器提供的是udp 的服务

[vip:port] or [real-server-ip:port]

-f --fwmark-service fwmark 说明是经过iptables 标记过的服务类型。

-s --scheduler scheduler 使用的调度算法,有这样几个选项

rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,

默认的调度算法是: wlc.

-p --persistent [timeout] 持久稳固的服务。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。

-M --netmask netmask persistent granularity mask

-r --real-server server-address 真实的服务器[Real-Server:port]

-g --gatewaying 指定LVS 的工作模式为直接路由模式(也是LVS 默认的模式)

-i --ipip 指定LVS 的工作模式为隧道模式

-m --masquerading 指定LVS 的工作模式为NAT 模式

-w --weight weight 真实服务器的权值

--mcast-interface interface 指定组播的同步接口

-c --connection 显示LVS 目前的连接 如:ipvsadm -L -c

--timeout 显示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout

--daemon 显示同步守护进程状态

--stats 显示统计信息

--rate 显示速率信息

--sort 对虚拟服务器和真实服务器排序输出

--numeric -n 输出IP 地址和端口的数字形式

转自:https://baike.baidu.com/item/ipvs/5041817

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1163797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙PC应用:工程结构解析与配置文件详解

前言 在真正动手开发鸿蒙PC应用之前,读懂工程结构和关键配置文件非常重要。只有搞清楚每个目录、每个 JSON5 配置、每个入口 Ability 与页面之间的关系,我们才能做到“改哪里心里有数”,避免一上来就被各种路径、页面路由搞懵。 本篇文章基于…

Python+Vue的 火车购票系统的设计与实现Pycharm django flask

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 …

小游戏方块鸟冒险Cocos Creator 2.x 源码休闲游戏开发模板

内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示请添加图片描述 ![请添加图片描述](https://i-blog.csdnimg.cn/direct/8b0fb8bfe8334afcb15f8063843298bb.png)一、详细介绍 小游戏方块鸟冒险Cocos Creator 2.x 源码休闲游戏开发模板 二、效果展示 1.部分代码 代码…

【数据库】【MySQL】锁机制深度解析:从原理到死锁分析实战

MySQL 锁机制深度解析:从原理到死锁分析实战 MySQL 的锁机制是数据库并发控制的核心,尤其在 InnoDB 引擎中,锁的设计极为精细。本文将从锁类型全景到死锁日志分析,构建完整的锁机制知识体系。一、MySQL 锁分类全景图 MySQL 锁机制…

【技术收藏】A2A协议实战:构建可互操作的AI代理系统,大模型开发必备技能

A2AGoogle的Agent2Agent (A2A) 协议是一种开放标准,旨在实现 AI 代理之间的无缝通信和协作。在一个代理使用不同框架和不同供应商构建的世界中,A2A 提供了一种通用语言,打破了孤岛并促进了互作性。A2A的特性 在不同平台…

Python+Vue的婴幼儿用品销售网站 Pycharm django flask

目录 这里写目录标题 目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示 收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍…

CISSP考试经验分享(全流程详解),从零基础到精通,收藏这篇就够了!

开场白:过了CISSP,然后呢? 刚从CISSP考场的泥潭里爬出来,一身疲惫,百感交集。先别急着恭喜我,也别盲目羡慕。这玩意儿,真不是你想的那么简单。两个月的折磨,换来一张证书&#xff0…

程序员必学:向量数据库原理解析与大模型应用指南(建议收藏)

说起向量数据库,我得先聊聊最开始在做RAG项目时遇到的一个头疼问题。当时我有几万份技术文档需要检索,用传统的关键词搜索总是找不到我想要的内容。比如我搜"机器学习",但文档里写的是"AI算法",结果就错过了。…

运维工程师一月多少钱(非常详细),零基础入门到精通,看这一篇就够了

前言 运维工程师的月薪因地区、工作经验、技能水平及公司规模等因素而有所不同。根据多个来源的数据,我们可以对运维工程师的月薪进行大致的归纳和分析: 一、全国平均月薪 * 整体平均月薪:根据看准网的数据,2024年运维工程师在全…

Python+Vue的图书借阅系统 图书借阅归还预期 Pycharm django flask

目录 这里写目录标题目录项目介绍项目展示详细视频演示技术栈文章下方名片联系我即可~解决的思路开发技术介绍性能/安全/负载方面python语言Django框架介绍技术路线关键代码详细视频演示收藏关注不迷路!!需要的小伙伴可以发链接或者截图给我 项目介绍 …

【珍藏】大模型记忆革命:MemOS让AI拥有“长期记忆“,程序员必学技术

它迅速回复:“9 点产品部,11 点市场部,下午 2 点财务汇报。”——完美。 你接着说:“那顺便把上次年会的讨论要点也整理一下吧。” 它却停顿了片刻,回复道:“很抱歉,我找不到相关记录。” 这是当…

django-flask基于python的美食探店吃货笔记分享网站

目录Django-Flask 美食探店网站摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!Django-Flask 美食探店网站摘要 基于 Python 的 Django 和 Flask 框架开发的美食探店吃货笔记分…

2026年全网最详细入门网络安全(黑客)教程,收藏这个就够了

【持续更新哟】网络安全2023必备资料 前言:如果是在校学生,有很多时间,建议从基础开始学起。如果是马上要找工作了,或者转行,可以直接找一个方向进行学习,比如Web安全,直接学Web安全的内容。 …

django-flask基于python的 小程序 百度云网盘资源搜索平台设计与实现

目录设计背景与意义技术架构与功能实现方法与创新点应用价值与总结关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!设计背景与意义 随着互联网数据量的激增,网盘资源成为…

强烈安利MBA必用TOP8 AI论文平台测评

强烈安利MBA必用TOP8 AI论文平台测评 2026年MBA论文写作工具测评:为何需要这份榜单? 随着人工智能技术的不断进步,AI写作工具在学术领域的应用日益广泛。对于MBA学生而言,撰写高质量的论文不仅是学业要求,更是展示专业…

【2025最新】大模型微调vs RAG:技术选型完全指南,一篇搞定!建议收藏备用

微调:给模型“开小灶”,重塑它的知识内核。怎么做: 拿一批精心准备的、与你特定领域或任务高度相关的数据(比如公司内部客服对话记录、特定行业术语文档),去继续训练那个已经很强的基础大模型(如…

2026年年初零基础转行学网络安全怎么样?能找到什么样的工作?

网络安全对于现代社会来说变得越来越重要,但是很多人对于网络安全的知识却知之甚少。那么,零基础小白可以学网络安全吗?答案是肯定的。 零基础转行学习网络安全是完全可行的,但需要明确的是,网络安全是一个既广泛又深入…

【2026必学收藏】AI Agent入门指南:程序员必看的五大特征与核心组成+资料包

2025年被广泛认为是AI Agent元年。这一年,AI Agent技术取得了突破性进展,应用场景不断拓展。AI Agent以其强大的自主决策能力、高效的信息处理能力和出色的交互能力,开始在众多领域崭露头角,从智能客服到智能家居,从企…

Linux目录的庖丁解牛

Linux 目录结构是 操作系统与用户交互的骨架,它不仅是文件存储的位置,更是 系统设计哲学、安全模型、运维规范 的集中体现。一、FHS(Filesystem Hierarchy Standard):统一的目录契约 Linux 目录遵循 FHS 国际标准&…

django-flask基于python的C语言数据结构的课程自主学习系统的设计与实现

目录摘要关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!摘要 该系统基于Python的Django和Flask框架,设计并实现了一个面向C语言数据结构课程的自主学习平台&#xff0c…