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

LVS ipvsadm命令的使用(二)

目录

上篇:负载均衡集群(一)-CSDN博客

命令参数概述

调度算法

基本命令

1. 添加虚拟服务器

2. 添加真实服务器

3. 删除虚拟服务器

4. 删除真实服务器

5. 列出当前配置

6. 修改服务器权重

 7.保存规则

8. 清除所有配置

进行增加虚拟和真实服务器操作示例


 

ipvsadm 是 Linux 系统中用于配置和管理 IP Virtual Server(IPVS)的命令行工具。IPVS 是 Linux 内核中的一个模块,用于实现网络负载均衡,它可以在四层(传输层)进行负载均衡,支持 TCP、UDP 等协议。以下是 ipvsadm 常用的命令选项和功能总结:

LVS-server安装lvs管理软件

yum -y install ipvsadm

程序包:ipvsadm(LVS管理工具)

主程序:/usr/sbin/ipvsadm

规则保存工具:/usr/sbin/ipvsadm-save > /path/to/file

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

命令参数概述

  1. 基本命令

    • -A, --add-service: 添加一个新的虚拟服务器或者一个新的服务组。
    • -D, --delete-service: 删除一个虚拟服务器或者服务组。
    • -E, --edit-service: 编辑一个现有的虚拟服务器或者服务组。
    • -L, --list: 列出所有的虚拟服务器和服务组。
    • -C, --clear: 清除所有 IPVS 配置。
    • -R, --replace-service: 替换现有的虚拟服务器或者服务组。
  2. 虚拟服务器相关

    • -t, --virtual-server: 指定虚拟服务器的 IP 地址和端口。
    • -s, --scheduler: 指定调度算法(Scheduler),如 rr(Round Robin)、wrr(Weighted Round Robin)、lc(Least Connection)等。
    • -p, --protocol: 指定虚拟服务器使用的协议,如 TCP 或 UDP。
  3. 后端服务器相关

    • -r, --real-server: 指定后端服务器的 IP 地址和端口。
    • -m, --method: 指定后端服务器的调度算法,通常与 -a-A 一起使用。
    • -w, --weight: 设置后端服务器的权重,通常与 -a-A 一起使用。
  4. 其他参数

    • -Z, --zero: 将统计信息归零(清空连接计数器)。
    • -G, --get: 获取指定服务的详细信息。
    • -U, --update: 更新指定服务的详细信息。

调度算法

ipvsadm 支持多种调度算法,以下是一些主要算法:

  • rr (轮询调度)-s rr
  • wrr (加权轮询调度)-s wrr
  • lc (最小连接调度)-s lc
  • wlc (加权最小连接调度)-s wlc
  • sh (源地址散列调度)-s sh
  • dh (目的地址散列调度)-s dh

基本命令

1. 添加虚拟服务器

添加一个新的虚拟服务器:

ipvsadm -A -t [虚拟IP]:[端口] -s [调度算法]

例:

ipvsadm -A -t 192.168.226.10:80 -s wrr

2. 添加真实服务器

向虚拟服务器添加一个真实服务器:

ipvsadm -a -t [虚拟IP]:[端口] -r [真实IP]:[端口] -m

例:

ipvsadm -a -t 192.168.226.10:80 -r 192.168.226.2:80 -m

3. 删除虚拟服务器

删除一个虚拟服务器:

ipvsadm -D -t [虚拟IP]:[端口]

例:

ipvsadm -D -t 192.168.226.10:80

4. 删除真实服务器

从虚拟服务器删除一个真实服务器:

ipvsadm -d -t [虚拟IP]:[端口] -r [真实IP]:[端口]

例:

ipvsadm -d -t 192.168.226.10:80 -r 192.168.226.2:80

5. 列出当前配置

显示当前 IPVS 配置:

ipvsadm -L -n

输出示例:

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.226.10:80 wrr-> 192.168.226.2:80             Masq    1      0          0-> 192.168.226.3:80             Masq    1      0          0

6. 修改服务器权重

修改虚拟服务器算法:

ipvsadm -E -t 192.168.226.10:80 -s lc

修改真实服务器的权重:

ipvsadm -e -t [虚拟IP]:[端口] -r [真实IP]:[端口] -w [权重]

例:

ipvsadm -e -t 192.168.226.10:80 -r 192.168.226.2:80 -w 3

 7.保存规则

1.保存到文件
ipvsadm-save > /etc/sysconfig/ipvsadm  
#当然该命令也可以自定义保存规则的位置2.有指定的配置文件后再保存可以直接用即可
ipvsadm -S

8. 清除所有配置

清除当前所有的 IPVS 配置:

ipvsadm -C

进行增加虚拟和真实服务器操作示例

添加并配置一个虚拟服务器与真实服务器练习:

是通过在ipvsadm中添加一个虚拟服务器IP,然后再这个虚拟服务器IP名下 管理多个真实的后端服务器。

1.添加虚拟服务器(使用加权轮询调度算法):

    ipvsadm -A -t 10.36.178.100:80 -s wrr

2.添加两个真实服务器到虚拟服务器:

    ipvsadm -a -t 10.36.178.100:80 -r 192.168.226.2:80 -mipvsadm -a -t 10.36.178.100:80 -r 192.168.226.3:80 -m

3.查看配置:

    ipvsadm -L -n

4.修改真实服务器的权重:

    ipvsadm -e -t 10.36.178.100:80 -r 192.168.226.2:80 -w 3

5.删除一个真实服务器:

    ipvsadm -d -t 10.36.178.100:80 -r 192.168.226.3:80

6.删除虚拟服务器:

    ipvsadm -D -t 10.36.178.100:80

7.清除所有配置:

    ipvsadm -C

相关文章:

LVS ipvsadm命令的使用(二)

目录 上篇:负载均衡集群(一)-CSDN博客 命令参数概述 调度算法 基本命令 1. 添加虚拟服务器 2. 添加真实服务器 3. 删除虚拟服务器 4. 删除真实服务器 5. 列出当前配置 6. 修改服务器权重 7.保存规则 8. 清除所有配置 进行增加虚拟…...

Java面向对象-接口

Java面向对象-接口 一、JDK1.8之前二、接口的作用三、JDK1.8之后,新增非抽象方法四、静态方法 一、JDK1.8之前 1、类是类,接口是接口,它们是同一层次的概念 2、接口中没有构造器 3、接口如何声明:interface 4、在jdk1.8之前&…...

怎么不使用springboot Helper或Spring Initializr来创建spring项目

1. 创建项目目录结构 首先,创建项目的基本目录结构。一个典型的 Maven 项目结构如下: my-spring-project ├── src │ ├── main │ │ ├── java │ │ │ └── com │ │ │ └── example │ │ │ └…...

STM32CubeMX配置-RTC周期唤醒

一、简介 MCU为STM32G070,采用内部时钟32KHZ,配置为周期6s唤醒,调用回调函数,进行喂狗操作。 二、配置 初始时间、日期、周期唤醒时间配置。 开启周期唤醒中断 三、生成代码 调用回调函数,进行喂狗操作。 //RTC唤醒回…...

js如何添加新元素到数组中

1.push方法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。这是向数组添加元素的最常用方法。 let arr [1, 2, 3]; arr.push(4); // 向数组末尾添加元素4 console.log(arr); // 输出: [1, 2, 3, 4] 2.unshift方法 unshift() 方法可向数组的…...

Python变量和基本数据类型

变量和基本数据类型 变量是什么? 变量是存储在内存中的值,这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量可以指定不同…...

嵌入式数据库_1.嵌入式数据库的定义及特点和分类

1.嵌入式数据库的定义及特点 1.1定义 嵌入式数据库的名称来自其独特的运行模式。这种数据库嵌入到了应用程序进程中,消除了与客户机服务器配置相关的开销。嵌入式数据库实际上是轻量级的,在运行时,它们需要较少的内存。它们是使用精…...

新人学习笔记之(变量)

一、什么是变量 1.变量是存储数据的小盒子,不是里面的数据 2.经常发生改变的数据 二、变量的定义格式 1.数据类型 变量名; 数据类型:为盒子中存储的数据,加入类型【限制】 变量名:为盒子起的名字 分号:语句的结束 三…...

Windows修改CMD窗口编码为UTF-8

windows下的cmd的默认编码是GBK编码,有时可能造成乱码问题,下面是我找到的两种更换编码方式为UTF-8的方法。 1、临时修改 (1)先进入cmd命令窗口(快捷键win键R) (2)直接输入“chcp…...

os实训课程模拟考试(1~7)

操作系统的基本功能和设计目标 1、 操作系统是一组 ____(单选) A、 文件管理程序 B、 资源管理程序 C、 中断处理程序 D、 设备管理程序 2、 以下哪项不是操作系统关心的主要问题?(单选) A、 管理计算机裸机 B、 设计…...

yolov10 学习笔记

目录 推理代码,source可以是文件名,路径, 预测可视化: 预测可视化加nms 训练自己的数据集, 训练一段时间报错:dill库 解决方法: 推理代码,source可以是文件名,路径…...

NAT概述

NAT概念 NAT(Network Address Translation,网络地址转换)是一种用于修改网络地址信息的技术,主要用于在路由器或防火墙上进行地址转换,以解决 IPv4 地址短缺问题、提高网络安全性以及实现私有网络与公有网络之间的通信…...

Ansys Mechanical|学习方法

Ansys Mechanical是Ansys的旗舰产品之一,涉及的学科体系全面丰富,包括的力学分支主要有理论力学,振动理论,连续介质力学,固态力学,物理力学,爆炸力学及应用力学等。 在自媒体及数字经济飞速发展…...

热门开源项目ChatTTS: 国内语音技术突破,实现弯道超车

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…...

环形链表2证明

解法 快慢指针相遇后,其中一个指回头部,然后同步前进 代码 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode(int x) : val(x), next(NULL) {}* };*/ class Solution { public:ListNod…...

fetch_lfw_people()报错urllib.error.HTTPError: HTTP Error 403: Forbidden的解决方案

零、实验报告地址 计算机视觉实验二:基于支持向量机和随机森林的分类(Part one: 编程实现基于支持向量机的人脸识别分类 )-CSDN博客 一、代码报错 fetch_lfw_people()报错urllib.error.HTTPError: HTTP Error 403: Forbidden 二、报错原因 通常是由于访问权限不足导致的…...

Verilog-Behavior Level 和 RTL Level 和 GATE Level的区别

硬件设计中对硬件的描述可以具有不同的抽象级别,以Verilog为例: Behavior Level。描述的是硬件的行为,当我们在看到如下关键字时就是行为级别的代码:#,wait,while,force,release等&…...

华为OD机考题HJ1 字符串最后一个单词的长度

前言 描述 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) 输入描述: 输入一行,代表要计算的字符串,非空,长度小…...

C语言---------深入理解指针

目录 一、字符指针 二、指针数组: 三、数组指针: 1、定义: 2、&数组名和数组名区别: 3、数组指针的使用: 四、数组参数,指针参数: 1、一维数组传参: 2、二维数组传参&am…...

C++ 算法教程

归并排序 #include<iostream> using namespace std; template <class T> void Merge(T data[],int start,int mid,int end) {int len1 mid - start 1, len2 end - mid;int i, j, k;T* left new int[len1];T* right new int[len2];for (i 0; i < len1; i)…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

C++使用 new 来创建动态数组

问题&#xff1a; 不能使用变量定义数组大小 原因&#xff1a; 这是因为数组在内存中是连续存储的&#xff0c;编译器需要在编译阶段就确定数组的大小&#xff0c;以便正确地分配内存空间。如果允许使用变量来定义数组的大小&#xff0c;那么编译器就无法在编译时确定数组的大…...

DBLP数据库是什么?

DBLP&#xff08;Digital Bibliography & Library Project&#xff09;Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高&#xff0c;数据库文献更新速度很快&#xff0c;很好地反映了国际计算机科学学术研…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中&#xff0c;如何在保障应用高可用的同时有效地管理资源&#xff0c;一直是运维人员和开发者关注的重点。随着微服务架构的普及&#xff0c;集群内各个服务的负载波动日趋明显&#xff0c;传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

Mac flutter环境搭建

一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...

「Java基本语法」变量的使用

变量定义 变量是程序中存储数据的容器&#xff0c;用于保存可变的数据值。在Java中&#xff0c;变量必须先声明后使用&#xff0c;声明时需指定变量的数据类型和变量名。 语法 数据类型 变量名 [ 初始值]; 示例&#xff1a;声明与初始化 public class VariableDemo {publi…...

【汇编逆向系列】六、函数调用包含多个参数之多个整型-参数压栈顺序,rcx,rdx,r8,r9寄存器

从本章节开始&#xff0c;进入到函数有多个参数的情况&#xff0c;前面几个章节中介绍了整型和浮点型使用了不同的寄存器在进行函数传参&#xff0c;ECX是整型的第一个参数的寄存器&#xff0c;那么多个参数的情况下函数如何传参&#xff0c;下面展开介绍参数为整型时候的几种情…...