ipvs和ipvsadm

ipvs:内核中的协议栈上实现

  1. ipvsLVS软件核心,是运行在LB上的,这是个基于ip层的负载均衡。
  2. ipvs的总体结构主要有ip包处理,负载均衡算法,系统配置和管理三个模块以及虚拟服务器与真实服务器链表组成。
  3. ipvs管理集群服务管理服务上的RS
  4. 一个ipvs主机可以同时定义多个cluster server,但可能会影响调度性格。
  5. 一个ipvs服务至少应该有一个RS
  6. grep -i -C 10 "ipvs" /boot/config-VERSION-RELEASE.x86_64
  7. 支持的协议:TCPUDPAHESPAH_ESPSCTP
  8. ipvs 规则: /proc/net/ip_vs
  9. ipvs 连接:/proc/net/ip_vs_conn

ipvsadm:用户空间的集群服务管理工具

  1. 1)程序包:ipvsadm
  2. rpm -ql ipvsadm
  3. /etc/sysconfig/ipvsadm-config
  4. /usr/lib/systemd/system/ipvsadm.service
  5. /usr/sbin/ipvsadm
  6. /usr/sbin/ipvsadm-restore
  7. /usr/sbin/ipvsadm-save
  8. /usr/share/doc/ipvsadm-1.27
  9. /usr/share/doc/ipvsadm-1.27/README
  10. Unit File: ipvsadm.service
  11. 主程序:/usr/sbin/ipvsadm
  12. 规则保存工具:/usr/sbin/ipvsadm-save
  13. 规则重载工具:/usr/sbin/ipvsadm-restore
  14. 配置文件:/etc/sysconfig/ipvsadm-config
  15. 2)命令:ipvsadm
  16. ipvsadm - Linux Virtual Server administration
  17. ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags]
  18. ipvsadm -D -t|u|f service-address
  19. ipvsadm -C
  20. ipvsadm -R
  21. ipvsadm -S [-n]
  22. ipvsadm -a|e -t|u|f service-address -r server-address [options]
  23. ipvsadm -d -t|u|f service-address -r server-address
  24. ipvsadm -L|l [options]
  25. ipvsadm -Z [-t|u|f service-address]
  26. ipvsadm --set tcp tcpfin udp
  27. ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid]
  28. ipvsadm --stop-daemon state
  29. -A ,--add-service 添加一个集群服务
  30. -E ,--edit-service 修改已添加的集群服务
  31. -D ,--delete-service 删除虚拟服务
  32. -C ,--clear 清空整个表
  33. -R ,--restore 从标准输入重载
  34. -S ,--save 保存值到标准输出。
  35. -a ,--add-server 向指定的Client Server中添加Real Server.
  36. -e ,--edit-server 修改RS
  37. -d ,--delete-server 删除真实服务
  38. -L|-l,--list 列出表
  39. -Z ,--zero 清空计数器
  40. --set tcp tcpfin udp 设置连接超时值
  41. --start-daemon 开启连接同步后台进程
  42. --stop-daemon 停止连接同步后台进程
  43. -t service-address,--tcp-service 服务地址是 host[:port],tcp协议
  44. -u service-address,--udp-service 服务地址是host[:port],udp协议
  45. -f fwmark,--fwmark-service 防火墙标记
  46. -6 ,--ipv6 fwmark 项使用 IPv6
  47. -s scheduler,--scheduler rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,调度方法其中之一,默认为wlc
  48. --pe engine 备用持久性引擎可能是 sip,默认情况下不设置
  49. -p [timeout] ,--persistent 持续连接
  50. -M netmask ,--netmask 持久粒度掩码
  51. -r server-address ,--real-server 服务地址主机和端口,只有支持端口映射的LVS类型才允许此处使用和集群服务中不同的端口
  52. -g ,--gatewaying gatewaying (direct routing) (default),dr模式
  53. -i ,--ipip ipip encapsulation (tunneling),tun模式
  54. -m ,--masquerading masquerading (NAT),nat模式
  55. -w weight ,--weight 实际服务器容量,指定权重
  56. -x uthreshold ,--u-threshold 连接的高等门限
  57. -y lthreshold ,--l-threshold 连接的低等门限
  58. --mcast-interface interface 连接同步的多播接口
  59. --syncid sid syncid 同步连接(default=255)
  60. -c,--connection 显示ipvs连接
  61. --timeout 超时时间输出(tcp tcpfin udp)
  62. --daemon 后台进程信息输出
  63. --stats 统计数据
  64. --rate 速率
  65. --exact 精确值
  66. --thresholds 线程信息输出
  67. --persistent-conn 当前连接信息输出
  68. --nosort 禁用对服务器/服务的排序输出
  69. --sort 不做任何事情,因为后台兼容性
  70. -o ,--ops 单包调度
  71. -n ,--numeric 数字格式显示ipport,注意-n只能写在-L之后。
  72. -b flags ,--sched-flags 调度标志(comma-separated)
  73. 3)核心功能:
  74. 集群服务管理:增、删、改
  75. 集群服务的RS管理:增、删、改
  76. 查看
  77. 4)管理集群服务:增、改、删
  78. 增、改:
  79. ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
  80. 删除:
  81. ipvsadm -D -t|u|f service-address
  82. service-address
  83. -t|u|f
  84. -t: TCP 协议的端口,VIP:TCP_PORT
  85. -u: TCP 协议的端口,VIP:UDP_PORT
  86. -f firewall MARK ,标记,一个数字
  87. [-s scheduler] :指定集群的调度算法,默认为wl
  88. 5)管理集群上的RS :增、改、删
  89. 增、改:
  90. ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
  91. 删:
  92. ipvsadm -d -t|u|f service-address -r server-address
  93. server-address
  94. rip[:port] 如省略port ,不作端口映射
  95. 选项:
  96. lvs类型:
  97. -g: gateway, dr 类型,默认
  98. -i: ipip, tun 类型
  99. -m: masquerade, nat 类型
  100. -w weight:指定权重
  101. 6)清空定义的所有内容:ipvsadm C
  102. 7)清空计数器:ipvsadm -Z [-t|u|f service-address]
  103. 8)查看:
  104. ipvsadm -L|l [options]
  105. --numeric, -n :以数字形式输出地址和端口号
  106. --exact :扩展信息,精确值
  107. --connection ,-c :当前IPVS 连接输出
  108. --stats :统计信息
  109. --rate :输出速率信息
  110. 9)保存:
  111. 建议保存至/etc/sysconfig/ipvsadm
  112. ipvsadm-save > /PATH/TO/IPVSADM_FILE
  113. ipvsadm -S > /PATH/TO/IPVSADM_FILE
  114. systemctl stop ipvsadm.service
  115. 10)重载:
  116. ipvsadm-restore < /PATH/FROM/IPVSADM_FILE
  117. ipvsadm -R < /PATH/FROM/IPVSADM_FILE
  118. systemctl restart ipvsadm.service

FireWall Mark:FWM

  1. 1MARK target 可用于给特定的报文打标记,在netfilter上给报文打标记,mangle
  2. --set-mark value
  3. 其中:value 为十六进制数字
  4. 2)借助于防火墙标记来分类报文,而后基于标记定义集群服务。
  5. 可将多个不同的应用使用同一个集群服务进行调度。
  6. 也就是将httphttps统一调度,可以实现无论你访问httphttps都给你调度到后面的真实的服务器,不用每一个服务都单独的创建一个集群服务。
  7. 打标记实现方法:
  8. Director 主机打标记:
  9. iptables -t mangle -A PREROUTING -d $vip -p $proto m multiport --dports $port1,$port2,… -j MARK --set-mark NUMBER
  10. Director 主机基于标记定义集群服务:
  11. ipvsadm -A -f NUMBER [options]++++
  12. 定义集群服务:
  13. ipvsadm -A -f MARK -s rr -p
  14. ipvsadm -a -f MARK -r ip -g -w 1
  15. 查看
  16. ipvsadm -Ln
  17. ipvsadm -Ln --rate
  18. Forward:转发方法
  19. Weight:权重
  20. ActiveConn:活动连接数
  21. InActiveConn:非活动连接数
  22. CPS:connections per seconds
  23. InnPPSInput packets per seconds
  24. OutPPSoutput packets per seconds
  25. InBPSinput bytes per seconds
  26. OutBPSOutput bytes per seconds
  27. 3)作用:
  28. 同一服务不同端口使用一个设置搞定
  29. 4)具体实现
  30. VS上进行如下设置
  31. iptables -t mangle -A PREROUTING -d 192.168.74.88 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 12
  32. ##无论访问VIP的80还是443端口统一打标签为12
  33. iptables -t mangle -vnL
  34. ipvsadm -A -f 12 -s wrr -
  35. ##创建一个集群服务,只要标签是12的调度算法都是wrr
  36. ipvsadm -a -f 12 -r 192.168.74.129 -g -w 3
  37. ##将RS添加到集群服务里
  38. ipvsadm -a -f 12 -r 192.168.74.133 -g
  39. ipvsadm -Ln
  40. 在客户端进行测试
  41. curl 192.168.74.88
  42. curl -k https://192.168.74.88/
  43. ##k表示忽略证书访问

ipvs和ipvsadm的更多相关文章

  1. IPVS实现分析

    IPVS实现分析 IPVS实现分析 根据LVS官方网站的介绍,LVS支持三种负载均衡模式:NAT,tunnel和direct routing(DR). NAT是通用模式,所有交互数据必须通过均衡器:后 ...

  2. lvs用户空间命令ipvsadm

    ipvs工作在内核空间,而ipvsadm工作在用户空间,是负责管理集群服务编写规则的命令行工具 ipvsadm需要手动安装. $ yum -y install ipvsadm ipvsadm管理命令 ...

  3. lvs+ipvsadm负载均衡

    使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...

  4. 运维ipvsadm配置负载均衡

    一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(r ...

  5. 14.深入k8s:kube-proxy ipvs及其源码分析

    转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 这一篇是讲service,但是基础使用以及基本概念由于官方实在是写的 ...

  6. LVS负载均衡集群服务搭建详解(一)

    LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...

  7. LVS包转发模型和调度算法(转)

    LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU.I/O处理能力很快会成为瓶颈.由于单台 ...

  8. Linux负载均衡概念与实践(一)

    根据网上文章整理. 负载均衡软件LVS(Linux Virtual Server)概念篇 lvs是在linux操作系统基础上建立虚拟服务器,实现服务节点之间的负载均衡.它是基于linux内核实现的.2 ...

  9. LVS 介绍以及配置应用

    1.负载均衡集群介绍 1.1.什么是负载均衡集群 负载均衡集群提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据的处理能力.提高网络的灵活性和可用性 搭建负 ...

随机推荐

  1. hibernate-validator验证请求参数

    开发接口要进行请求参数内容格式校验,比如在接收到请求参数后依次需要进行数据内容判空.数据格式规范校验等,十分麻烦,于是尝试用hibernate-validator进行参数校验,简单记录一下使用步骤: ...

  2. HTML Imports & polyfill

    组件化浏览器的兼容性问题汇总 框架依赖的 Web 标准技术 优先级高 HTML Imports HTML tempaltes ES6 to ES5 (搭建模块开发环境) polyfill https: ...

  3. restful(3):认证、权限、频率 & 解析器、路由控制、分页、渲染器、版本

    models.py中: class UserInfo(models.Model): name = models.CharField(max_length=32) psw = models.CharFi ...

  4. Java高概率面试题目—finally

    在Java面试中关于finally的面试题目出现的概率非常高,而且一旦面试官问起绝不会是蜻蜓点水,而是会向你发起层层递进地“连环问”,并且回答这系列问题常常需要代码的辅助,可谓考验基础的面试利题.究竟 ...

  5. 安装最新版本的zabbix

    1. 先安装php5.4 最新版本: yum安装php5.4或5.5 https://blog.csdn.net/MarkBoo/article/details/49424183 2. 然后参照官网或 ...

  6. [bzoj4698][Sdoi2008]Sandy的卡片_后缀数组_二分/单调队列_双指针

    Sandy的卡片 bzoj-4698 Sdoi-2008 题目大意:题目链接. 注释:略. 想法: 这个题跟一个Usaco的题特别像.我们把这些串差分 现在我们要求的就是公共子串且出现次数不少于$k$ ...

  7. sql语句执行的很慢

    一个 SQL 执行的很慢,我们要分两种情况讨论: 1.大多数情况下很正常,偶尔很慢,则有如下原因 (1).数据库在刷新脏页,例如 redo log 写满了需要同步到磁盘. (2).执行的时候,遇到锁, ...

  8. mysql建表语句key的含义

    CREATE TABLE `admin_role` (  `adminSet_id` varchar(32) NOT NULL,  `roleSet_id` varchar(32) NOT NULL, ...

  9. STL中常用的c++语法

    函数调用操作(c++语法中的左右小括号)可以被重载,STL的特殊版本都以仿函数形式呈现.如果对某个class进行operator()重载,它就成为一个仿函数. 仿函数(functor),就是使一个类的 ...

  10. Python标准库:内置函数tuple([iterable])

    本函数实现从可迭代对象生成一个元组对象返回.元组对象是一个不可改动的列表对象. 样例: #tuple() print(tuple([1, 2, 3])) print(tuple((1, 2, 3))) ...