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的更多相关文章

  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. hadoop_exporter+prometheus

    1.准备工作 安装go.glibe(需要连google服务器,咋连的,我就不写了,因为尝试了各种办法,都失败了,很伤心) 2.下载hadoop_exporter cd /usr/local/prom/ ...

  2. 【Codeforces 329B】Biridian Forest

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 找到出口到每个点的最短距离. 设你到出口的最短距离为temp 那么如果某个人到终点的距离<=temp,则他们肯定能遇到你 因为他们可以在 ...

  3. 【Codeforces 444A】DZY Loves Physics

    [链接] 我是链接,点我呀:) [题意] 题意 [题解] 两个点的子图他们的"密度"是比所有联通生成子图都要大的 "只要胆子大,遇到什么问题都不怕!" [代码] ...

  4. Jupyter notebook使用笔记

    常用快捷键 For a Cell,   Blue -> selecting. Green -> editing. Esc -> exist edit When the cell is ...

  5. Nginx教程收集

    学习要系统,最推荐的方式是看书. 下面是收集的一些Nginx教程: https://www.gitbook.com/book/yinsigan/nginx/details http://www.ngi ...

  6. IE插件

    在OA上要直接查看word等公告文件,就必须安装office控件.要安装office控件,需要在IE浏览器中做相应的设置.如何设置呢,下面由小编具体介绍下. 工具/原料   OA IE浏览器 方法/步 ...

  7. CentOS 7加强安全性:

    CentOS 7加强安全性:1. 更改 root 密码************************************************************************* ...

  8. python批量删除文件

    敲代码測试时总会碰到要删除日志目录下的日志或者删除一些历史文件.每次都会生成,再測试的时候为了查找错误原因方便总是要在測试前删除这些文件.手动删除比較麻烦.所以写一个批量删除脚本 import os ...

  9. hdu 4869 Turn the pokers 策略(组合数)

    题意:输入操作次数n和扑克牌数m,一開始扑克牌全都背面朝上. 如今输入n个数xi,表示选择xi张牌翻转,问最后的牌的情况有多少种可能? 题解: 我们将一開始的牌觉得是m个0.而翻转就是将0变成1或者1 ...

  10. ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析

    ASP.NET MVC不可或缺的部分——DI(IOC)容器及控制器重构的剖析   IoC框架最本质的东西:反射或者EMIT来实例化对象.然后我们可以加上缓存,或者一些策略来控制对象的生命周期,比如是否 ...