ipvs和ipvsadm
ipvs和ipvsadm
ipvs:内核中的协议栈上实现
ipvs是LVS软件核心,是运行在LB上的,这是个基于ip层的负载均衡。
ipvs的总体结构主要有ip包处理,负载均衡算法,系统配置和管理三个模块以及虚拟服务器与真实服务器链表组成。
ipvs管理集群服务管理服务上的RS。
一个ipvs主机可以同时定义多个cluster server,但可能会影响调度性格。
一个ipvs服务至少应该有一个RS。
grep -i -C 10 "ipvs" /boot/config-VERSION-RELEASE.x86_64
支持的协议:TCP,UDP,AH,ESP,AH_ESP,SCTP
ipvs 规则: /proc/net/ip_vs
ipvs 连接:/proc/net/ip_vs_conn
ipvsadm:用户空间的集群服务管理工具
1)程序包:ipvsadm
rpm -ql ipvsadm
/etc/sysconfig/ipvsadm-config
/usr/lib/systemd/system/ipvsadm.service
/usr/sbin/ipvsadm
/usr/sbin/ipvsadm-restore
/usr/sbin/ipvsadm-save
/usr/share/doc/ipvsadm-1.27
/usr/share/doc/ipvsadm-1.27/README
Unit File: ipvsadm.service
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
2)命令:ipvsadm
ipvsadm - Linux Virtual Server administration
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask] [--pe persistence_engine] [-b sched-flags]
ipvsadm -D -t|u|f service-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f service-address -r server-address [options]
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] [--syncid sid]
ipvsadm --stop-daemon state
-A ,--add-service 添加一个集群服务
-E ,--edit-service 修改已添加的集群服务
-D ,--delete-service 删除虚拟服务
-C ,--clear 清空整个表
-R ,--restore 从标准输入重载
-S ,--save 保存值到标准输出。
-a ,--add-server 向指定的Client Server中添加Real Server.
-e ,--edit-server 修改RS
-d ,--delete-server 删除真实服务
-L|-l,--list 列出表
-Z ,--zero 清空计数器
--set tcp tcpfin udp 设置连接超时值
--start-daemon 开启连接同步后台进程
--stop-daemon 停止连接同步后台进程
-t service-address,--tcp-service 服务地址是 host[:port],tcp协议
-u service-address,--udp-service 服务地址是host[:port],udp协议
-f fwmark,--fwmark-service 防火墙标记
-6 ,--ipv6 fwmark 项使用 IPv6
-s scheduler,--scheduler rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq,调度方法其中之一,默认为wlc。
--pe engine 备用持久性引擎可能是 sip,默认情况下不设置
-p [timeout] ,--persistent 持续连接
-M netmask ,--netmask 持久粒度掩码
-r server-address ,--real-server 服务地址主机和端口,只有支持端口映射的LVS类型才允许此处使用和集群服务中不同的端口
-g ,--gatewaying gatewaying (direct routing) (default),dr模式
-i ,--ipip ipip encapsulation (tunneling),tun模式
-m ,--masquerading masquerading (NAT),nat模式
-w weight ,--weight 实际服务器容量,指定权重
-x uthreshold ,--u-threshold 连接的高等门限
-y lthreshold ,--l-threshold 连接的低等门限
--mcast-interface interface 连接同步的多播接口
--syncid sid syncid 同步连接(default=255)
-c,--connection 显示ipvs连接
--timeout 超时时间输出(tcp tcpfin udp)
--daemon 后台进程信息输出
--stats 统计数据
--rate 速率
--exact 精确值
--thresholds 线程信息输出
--persistent-conn 当前连接信息输出
--nosort 禁用对服务器/服务的排序输出
--sort 不做任何事情,因为后台兼容性
-o ,--ops 单包调度
-n ,--numeric 数字格式显示ip和port,注意-n只能写在-L之后。
-b flags ,--sched-flags 调度标志(comma-separated)
3)核心功能:
集群服务管理:增、删、改
集群服务的RS管理:增、删、改
查看
4)管理集群服务:增、改、删
增、改:
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
删除:
ipvsadm -D -t|u|f service-address
service-address:
-t|u|f:
-t: TCP 协议的端口,VIP:TCP_PORT
-u: TCP 协议的端口,VIP:UDP_PORT
-f :firewall MARK ,标记,一个数字
[-s scheduler] :指定集群的调度算法,默认为wl
5)管理集群上的RS :增、改、删
增、改:
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
server-address:
rip[:port] 如省略port ,不作端口映射
选项:
lvs类型:
-g: gateway, dr 类型,默认
-i: ipip, tun 类型
-m: masquerade, nat 类型
-w weight:指定权重
6)清空定义的所有内容:ipvsadm –C
7)清空计数器:ipvsadm -Z [-t|u|f service-address]
8)查看:
ipvsadm -L|l [options]
--numeric, -n :以数字形式输出地址和端口号
--exact :扩展信息,精确值
--connection ,-c :当前IPVS 连接输出
--stats :统计信息
--rate :输出速率信息
9)保存:
建议保存至/etc/sysconfig/ipvsadm
ipvsadm-save > /PATH/TO/IPVSADM_FILE
ipvsadm -S > /PATH/TO/IPVSADM_FILE
systemctl stop ipvsadm.service
10)重载:
ipvsadm-restore < /PATH/FROM/IPVSADM_FILE
ipvsadm -R < /PATH/FROM/IPVSADM_FILE
systemctl restart ipvsadm.service
FireWall Mark:FWM
1)MARK target 可用于给特定的报文打标记,在netfilter上给报文打标记,mangle表
--set-mark value
其中:value 为十六进制数字
2)借助于防火墙标记来分类报文,而后基于标记定义集群服务。
可将多个不同的应用使用同一个集群服务进行调度。
也就是将http和https统一调度,可以实现无论你访问http和https都给你调度到后面的真实的服务器,不用每一个服务都单独的创建一个集群服务。
打标记实现方法:
在Director 主机打标记:
iptables -t mangle -A PREROUTING -d $vip -p $proto –m multiport --dports $port1,$port2,… -j MARK --set-mark NUMBER
在Director 主机基于标记定义集群服务:
ipvsadm -A -f NUMBER [options]++++
定义集群服务:
ipvsadm -A -f MARK -s rr -p
ipvsadm -a -f MARK -r ip -g -w 1
查看
ipvsadm -Ln
ipvsadm -Ln --rate
Forward:转发方法
Weight:权重
ActiveConn:活动连接数
InActiveConn:非活动连接数
CPS:connections per seconds
InnPPS:Input packets per seconds
OutPPS:output packets per seconds
InBPS:input bytes per seconds
OutBPS:Output bytes per seconds
3)作用:
同一服务不同端口使用一个设置搞定
4)具体实现
在VS上进行如下设置
iptables -t mangle -A PREROUTING -d 192.168.74.88 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 12
##无论访问VIP的80还是443端口统一打标签为12
iptables -t mangle -vnL
ipvsadm -A -f 12 -s wrr -
##创建一个集群服务,只要标签是12的调度算法都是wrr
ipvsadm -a -f 12 -r 192.168.74.129 -g -w 3
##将RS添加到集群服务里
ipvsadm -a -f 12 -r 192.168.74.133 -g
ipvsadm -Ln
在客户端进行测试
curl 192.168.74.88
curl -k https://192.168.74.88/
##k表示忽略证书访问
ipvs和ipvsadm的更多相关文章
- IPVS实现分析
IPVS实现分析 IPVS实现分析 根据LVS官方网站的介绍,LVS支持三种负载均衡模式:NAT,tunnel和direct routing(DR). NAT是通用模式,所有交互数据必须通过均衡器:后 ...
- lvs用户空间命令ipvsadm
ipvs工作在内核空间,而ipvsadm工作在用户空间,是负责管理集群服务编写规则的命令行工具 ipvsadm需要手动安装. $ yum -y install ipvsadm ipvsadm管理命令 ...
- lvs+ipvsadm负载均衡
使用LVS实现负载均衡原理及安装配置详解 负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均 ...
- 运维ipvsadm配置负载均衡
一.负载均衡LVS基本介绍 LB集群的架构和原理很简单,就是当用户的请求过来时,会直接分发到Director Server上,然后它把用户的请求根据设置好的调度算法,智能均衡地分发到后端真正服务器(r ...
- 14.深入k8s:kube-proxy ipvs及其源码分析
转载请声明出处哦~,本篇文章发布于luozhiyun的博客:https://www.luozhiyun.com 源码版本是1.19 这一篇是讲service,但是基础使用以及基本概念由于官方实在是写的 ...
- LVS负载均衡集群服务搭建详解(一)
LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...
- LVS包转发模型和调度算法(转)
LVS简介 Internet的快速增长使多媒体网络服务器面对的访问数量快速增加,服务器需要具备提供大量并发访问服务的能力,因此对于大负载的服务器来 讲, CPU.I/O处理能力很快会成为瓶颈.由于单台 ...
- Linux负载均衡概念与实践(一)
根据网上文章整理. 负载均衡软件LVS(Linux Virtual Server)概念篇 lvs是在linux操作系统基础上建立虚拟服务器,实现服务节点之间的负载均衡.它是基于linux内核实现的.2 ...
- LVS 介绍以及配置应用
1.负载均衡集群介绍 1.1.什么是负载均衡集群 负载均衡集群提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据的处理能力.提高网络的灵活性和可用性 搭建负 ...
随机推荐
- 洛谷 3871 [TJOI2010]中位数
[题解] 平衡树模板题,不过因为可以离线,所以有别的做法.把询问倒着做,变成删掉数字.求中位数,于是可以二分+树状数组. #include<cstdio> #include<cstr ...
- [bzoj1058][ZJOI2007][报表统计] (STL)
Description 小Q的妈妈是一个出纳,经常需要做一些统计报表的工作.今天是妈妈的生日,小Q希望可以帮妈妈分担一些工 作,作为她的生日礼物之一.经过仔细观察,小Q发现统计一张报表实际上是维护一个 ...
- C语言基础--自加自减
有如下代码: unsigned int temp1,temp2, i=5,j=5; temp1=i++; temp2=++j; 结果是 temp1=5,temp2=6: i=6,j=6: 版权声明:本 ...
- W3C Blog: HTML-下一步是什么?
HTML5.1 草稿版: 地址:https://www.w3.org/TR/html51/introduction.html#a-quick-introduction-to-html 2016年3月0 ...
- [luoguP1494] 岳麓山上打水 && [luoguP2744] [USACO5.3]量取牛奶Milk Measuring
传送门 传送门 dfs选取集合,dp背包判断 虽然我觉的会TLE.. 但是的确是AC了 #include <cstdio> #include <cstring> #includ ...
- 2018/2/17 SpringCloud的一个简单小介绍
在学习SpringCloud之前,我以为SpringCloud是与Double一样,只是个单纯的RPC框架.但在今天的学习中,我发现并非如此,事实上,SpringCloud是多个框架的集合,感觉Spr ...
- Linux下汇编语言学习笔记41 ---
这是17年暑假学习Linux汇编语言的笔记记录,参考书目为清华大学出版社 Jeff Duntemann著 梁晓辉译<汇编语言基于Linux环境>的书,喜欢看原版书的同学可以看<Ass ...
- Layui图标
layui 图标 layui 的所有图标全部采用字体形式,取材于阿里巴巴矢量图标库(iconfont).因此你可以把一个 icon 看作是一个普通的文字,这意味着你直接用 css 控制文字属性,如 c ...
- Ubuntu 16.04无损分区大小调整工具Gparted
安装: sudo apt-get install gparted 使用: 注意: 这款软件可以调整分区大小,且支持无损,但是对于/根目录的分区无法调整,但是它提供ISO工具,可以启动后进行调整. 下载 ...
- JDBC基础教程:tutorialspoint-jdbc
来自turorialspoint的JDBC基础教程(英文),官网:https://www.tutorialspoint.com/jdbc/index.htm 这个教程在国内已经被翻译成中文(不过是属于 ...