ipvsadm是什么?

ipvsadm是用来配置、维护或者查看Linux内核当中virtual server table的一个工具, LVS(Linux virtual server)能基于一个集群当中的两个或者多个节点来创建弹性网络服务, 集群中的处于激活状态的节点能将服务请求重定向到一组实际提供服务的主机当中, 提供包括TCP和UDP两种协议, 三种数据包转发模式(NAT / tunneling / direct routing), 和八种负载均衡算法(round robin, weighted round robin, least-connection, weighted least-connection, locality-based least-connection, locality-based least-connection with replication, destination-hashing, and source-hashing).

使用方式

ipvsadm提供两种基本的使用格式, 中括号表示可选, 两种命令格式分别对应virtual server和real server

ipvsadm COMMOND [protocol] service-address [scheduling-method] [persistence options]

或者

ipvsadm command [protocol] service-address server-address [packet-forwarding-method] [weight options]

第一种命令格式用于配置虚拟服务(virtual service)和用于分配服务请求到真实服务器的算法, 另外一个可选项为用于持久化服务的持久化超时时间和网络掩码.

第二种命令格式用于配置与一个已经存在的虚拟服务器相关联的真实服务器, 当指定一个真实服务器时, 数据包转发方式和该真实服务器相对于该虚拟服务器下面的其他真实服务器的权重需要指定, 否则会采用默认值.

  • 安装ipvsadm
[root@10-10-40-96 ~]# yum instal -y ipvsadm

命令参数说明

惯例是大写表示用于virtual server, 小写表示用于real server

   -A, --add-service 添加virtual server, virtual server必须唯一(IP+端口+协议用于区分一个唯一的虚拟服务)-E, --edit-service 编辑虚拟服务-D, --delete-service 删除一个虚拟服务, 包括与之关联的真实服务器-C, --clear 清空虚拟服务表-R, --restore 通过标准输入恢复虚拟服务表(IPVS table)-S, --save 以可以通过-R参数恢复的格式导出虚拟服务表到标准输出-a, --add-server 添加一个真实服务器到一个虚拟服务-e, --edit-server 在一个虚拟服务当中编辑一个真实服务器-d, --delete-server 从一个虚拟服务当中移除一个真实服务器-L, -l, --list 列出虚拟服务表, 默认是列出所有虚拟服务表, 若需要列出某服务表, 后面指定服务地址即可-Z, --zero 清零一个所有服务的数据包 / 字节 / 速率计数器

示例

  • 查看IPVS
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.88.188:7480 wlc persistent 1800-> 172.16.130.20:7480 Masq 1 0 0
[root@10-10-88-192 ~]#
  • 保存IPVS

    默认是输出到标准输出, 可以重定向到文本保存, 方便后期再导入

[root@10-10-88-192 ~]# ipvsadm -S -n
-A -t 10.10.88.188:7480 -s wlc -p 1800
-a -t 10.10.88.188:7480 -r 172.16.130.20:7480 -m -w 1
[root@10-10-88-192 ~]# ipvsadm -S -n > ipvs_info
[root@10-10-88-192 ~]#
  • 清空IPVS
[root@10-10-88-192 ~]# ipvsadm -C
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@10-10-88-192 ~]#
  • 恢复(restore)IPVS

    注意: 默认是从标准输入进行恢复

[root@10-10-88-192 ~]# cat ipvs_info | ipvsadm -R
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.88.188:7480 wlc persistent 1800-> 172.16.130.20:7480 Masq 1 0 0
[root@10-10-88-192 ~]#
  • 移除一个real server
[root@10-10-88-192 ~]# ipvsadm -d -t 10.10.88.188:7480 -r 172.16.130.20:7480
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.88.188:7480 wlc persistent 1800
[root@10-10-88-192 ~]#

注: 移除real server之后会先将destination(endpoint)移到trash(暂存垃圾桶), 过一段时间再删除, 若这个期间这个real server又可以访问了则会从trash中拿回来继续用, 具体说明见IPVS源码注释https://elixir.bootlin.com/linux/v3.0/source/net/netfilter/ipvs/ip_vs_ctl.c, 下面为打开IPVS debug模式(debug_level=8)后dmesg -Hew的输出

[Sep26 11:08] IPVS: Enter: ip_vs_del_dest, net/netfilter/ipvs/ip_vs_ctl.c line 1079
[ +0.000007] IPVS: Moving dest 172.16.130.20:7480 into trash, dest->refcnt=1
[ +0.000002] IPVS: Leave: ip_vs_del_dest, net/netfilter/ipvs/ip_vs_ctl.c line 1101
[ +11.076403] IPVS: Removing destination 0/172.16.130.20:7480 from trash
  • 添加一个real server
[root@10-10-88-192 ~]# ipvsadm -a -t 10.10.88.188:7480 -r 172.16.130.22:7480 -m
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.88.188:7480 wlc persistent 1800-> 172.16.130.22:7480 Masq 1 0 0
[root@10-10-88-192 ~]#
  • 添加一个virtual server
[root@10-10-88-192 ~]# ipvsadm -A -t 10.10.88.189:7480 -s wlc -p 1800
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.88.188:7480 wlc persistent 1800-> 172.16.130.22:7480 Masq 1 0 0
TCP 10.10.88.189:7480 wlc persistent 1800
[root@10-10-88-192 ~]#
  • 移除一个virtual server
[root@10-10-88-192 ~]# ipvsadm -D -t 10.10.88.189:7480
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.88.188:7480 wlc persistent 1800-> 172.16.130.22:7480 Masq 1 0 0

如果直接移除virtual server的话, 若有real server, real server也会一并移除掉

[root@10-10-88-192 ~]# ipvsadm -D -t 10.10.88.188:7480
[root@10-10-88-192 ~]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@10-10-88-192 ~]#

转载于:https://www.cnblogs.com/dspace/p/9706436.html

Keepalived详解之 - LVS(IPVS)管理工具ipvsadm使用指南相关推荐

  1. keepalived详解 结合lvs

    Keepalived原理与实战精讲 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点 ...

  2. 详解PgMP项目集管理专业人士认证考试指南

    2021年初忽悠几个伙计报名了PgMP的学习,无数次臆想拿到证书的那一刻的开心画面,但经过了将近2年的学习和等待,这个flag还是没能实现. 原计划2021年的考试基本都被延期到了年底,而这跟我的考研 ...

  3. Linux 高可用(HA)集群之keepalived详解

    大纲 一.前言 二.Keepalived 详解 三.环境准备 四.LVS+Keepalived 实现高可用的前端负载均衡器 一.前言 这篇文章是前几篇文章的总结,我们先简单的总结一下我们前面讲解的内容 ...

  4. 远程访问及控制(详解)——SSH远程管理及TCP Wrappers 访问控制

    远程访问及控制(详解)--SSH远程管理及TCP Wrappers 访问控制 一.SSH远程管理 1.定义 2.优点 3.客户端与服务端 4.SSH服务的开启.端口号和配置文件 二.配置 OpenSS ...

  5. LVS管理工具--ipvsadm

    一. ipvsadm工具介绍 从2.4版本开始,linux内核默认支持LVS.要使用LVS的能力,只需安装一个LVS的管理工具:ipvsadm. LVS的结构主要分为两部分: 工作在内核空间的IPVS ...

  6. 详解 MySQL 基准测试和 sysbench 工具

    前 言 作为一名后台开发,对数据库进行基准测试,以掌握数据库的性能情况是非常必要的.本文介绍了MySQL基准测试的基本概念,以及使用sysbench对MySQL进行基准测试的详细方法. 文章有疏漏之处 ...

  7. 详解强大的SQL注入工具——SQLMAP

    本文转自:详解强大的SQL注入工具--SQLMAP 前言 Windows下的注入工具好的又贵,免费的啊D.明小子等又不好用,我们根本没必要花 时间去找什么破解的havij.pangolin什么的,特别 ...

  8. 【Windows 应用程序开发详解】三.Windows开发工具配置与使用(一)

    [Windows 应用程序开发详解]三.Windows开发工具配置与使用 一.Visual C/C++ 我们都知道在应用程序开发的时候都是要依赖于开发工具的,Windows主机应用程序绝大多数都是使用 ...

  9. navicat for mysql命令行_详解 Navicat for MySQL 命令工具

    Navicat for MySQL是一套管理和开发MySQL或MariaDB的理想解决方案,支持单一程序,可同时连接到MySQL和MariaDB.这个功能齐备的前端软件为数据库管理.开发和维护提供了直 ...

最新文章

  1. oracle数据库buffer,Oracle数据库导入Buffer不足出现主机蜂鸣
  2. Hibernate配置详解
  3. Linux cached过高问题
  4. kettle同步数据中文乱码问题解决
  5. php配置email支持_使用PHPMailer实现PHP发邮件功能
  6. 百度地图label样式修正
  7. 实数集r用区间表示为_七大实数理论与互推
  8. 将ubuntu的home迁移至第二块磁盘
  9. 计算机硬件知识ppt课件,计算机硬件课件
  10. HTML 标签参考手册:按字母顺序排列 HTML 标签
  11. 《2021企业数智化转型升级服务全景图/产业图谱1.0版》重磅发布
  12. vmware虚拟机ping不通主机
  13. Python中NaN的处理
  14. 2022智源大会议程公开 | 青源学术年会
  15. Leetcode799. 香槟塔
  16. 在线客服功能介绍-了解常见在线客服系统的功能点
  17. 奶茶自由让人上头,95后为何钟爱这一杯甜蜜疗愈?
  18. 计算机原理实验红绿灯转换,微机原理与应用的5个实验 包含8086扩展,8255交通灯,DEBUG程序,数码显示...
  19. 《 大型多人在线游戏开发》笔记
  20. js中escape和unescape方法

热门文章

  1. C#/.Net操作MongoDBHelper类
  2. 关于数据可视化页面制作
  3. 数据结构(六)查找---多路查找树(2-3-4树)
  4. Beta版本冲刺第二天
  5. 【转】在.Net中关于AOP的实现
  6. Hadoop namenode启动瓶颈分析
  7. COMET彗星(三)构建自己的COMET核心
  8. android 仿qq it蓝豹,《IT蓝豹》listview实现各种版面设计功能
  9. ubuntu18.0.4 不能下载 libgd2-dev(ubuntu 20.04 安装perl 中GD 模块失败的解决办法)
  10. cpickle支持的python版本_Python序列化模块pickle和cPickle