LVS的使用
lvs:
Linux Virtual Server
l4:四层交换;四层路由;
根据请求报文的目标IP和PORT将其转发至后端主机集群中的某一台主机(根据挑选算法);
netfilter:
PREROUTING --> INPUT
PREROUTING --> FORWARD --> POSTROUTING
OUTPUT --> POSTROUTING
ipvsadmin/ipvs
ipvsadmin:用户空间的命令行工具,用于管理集群服务;
ipvs:工作内核中netfileter INPUT钩子上;
支持 TCP, UDP, AH, EST, AH_EST, SCTP 等诸多协议;
lvs arch
调度器:director,dispatcher,balancer
RS:Real Server
Client IP:CIP
Director Virtual IP:VIP
Director IP:DIP
Real Server:RIP
lvs type:
lvs-nat MASQUERADE
lvs-dr(direct routing) GATEWAY
lvs-tun(ip tunneling) IPIP
lvs-fullnat
lvs-nat: 隐藏内网主机
多目标的DNAT,通过修改请求报文的目标IP地址(端口)至挑选出的某RS的RIP地址实现转发;
(1)RS和DIP应该使用私有地址,且RS的网关要指向DIP;
(2)请求和响应报文都要经由Director转发; 极高负载场景中,Director可能会成为系统瓶颈;
(3)支持端口映射;
(4)RS可使用任意操作系统;
(5)RS的RIP和Director的DIP必须在同一IP网络;
lvs-dr:direct routing
通过修改请求报文的目标MAC地址进行转发;
Director:VIP,DIP
RS:VIP,RIP
(1)保证前端路由器将目标IP为VIP的请求报文发送给Director;
解决方案:
静态绑定
arptables
修改RS主机内参数
(2)RS的RIP可以使用私有地址;但也可以使用公网地址;
(3)RS和Director必须在同一物理网络中;
(4)请求报文经由Director调度,但响应报文一定不能经由Director;
(5)不支持端口映射;
(6)RS可以是大多数OS;
(7)RS的网关不能指向DIP;
lvs-tun:
不修改请求报文的IP首部,而是通过在原有的IP首部之外(cip <--> vip),再封装一个IP首部;(dip <--> rip);
(1)RIP,DIP,VIP 全需要是公网地址;
(2)RS的网关不能指向DIP;
(3)请求报文必须经由Director调度,响应报文不能经由Director;
(4)不支持端口映射;
(5)RS的OS必须支持隧道功能;
lvs-fullnat:
Director通过同时修改请求报文的目标地址和源地址进行转发;
(1)VIP是公网地址;RIP和DIP尽量使私网地址,二者无需在同一网络中;
(2)RS接收到的请求报文的源地址为DIP,因此要响应给DIP;
(3)请求把稳的响应报文都必须经由Director;
(4)RS可以使用任意OS;
(5)支持端口映射;
http: stateless
session保持:
session绑定:
source ip hash
cookie hash
session集群:
在所以服务器中维护所有的session
session服务器
lvs scheduler:
静态方法:仅根据算法本身进行调度;
RR: round robin,轮调
WRR: weighted rr,加权轮调
SH: source hash,实现 session 保持; 来自同一个IP的请求将始终被调度至同一RS;
DH: destination hash,将对同一个目标的请求始终发往同一个RS;
动态方法:根据算法以及各RS的当前负载状态进行调整;
Overhead
LC: Least Connection
Overhead = Active*256+Inactive
WLC: Weighted LC
Overhead = (Active*256+Inactive)/weight
SED: Shortest Expection Delay
Overhead=(Active+1)*256/we ight
NQ: Never Queue
SED 的改进,将请求优先调度至没有被调度过的Server,之后再用 SED 算法调度
LBLC: Locality-Based LC,动态的DH 算法;
正向代理情形下的cache server的调度;
LBLCR: LBLC with Repication,带复制功能的LBLC算法;
ipvs的集群服务:
(1)一个ipvs主机可以同时定义多个cluster service;
tcp,udp
(2)一个cluster server 上至少应该有一个 real server;
定义时:指明lvs-type,以及lvs scheduler;
ipvsadm的用法:
管理集群服务
ipvsadm -A|E -t|u|f service-address [-s scheduler]
service-address:
tcp: -t ip:port
udp: -u ip:port
fwm: -f mark
-s scheduler:
默认为 WLC
ipvsadm -D -t|u|f service-address
ipvsadm -L|l [options]
ipvsam -C
管理集群服务中的RS
ipvsadm -a|e -t|u|f service-address -r server-address
[-g|i|m] [-w weight] [-x upper] [-y lower]
server-address:
ip[:port]
lvs-type:
-g: gateway,dr
-i: ipip
-m: masquerade,nat
ipvsadm -d -t|u|f service-address -r server-address
查看和清理:
ipvsadm -L|l [options]
-n: number, 基于数字格式显示地址和端口;
-c: connection, 显示ipvs连接;
--stats: 进出站字节统计
--rate: 进出站字节数速率
--exact:显示精确值
ipvsadm -C
保存和重载:
ipvsadm -R
ipvsadm -S [-n]
清空计数器:
ipvsadm -Z [-t|u|f service-address]
LVS的使用的更多相关文章
- 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡
一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...
- [原]一个针对LVS的压力测试报告
LVS 测试报告 测试计划 基本功能测试 流量压力测试 响应时间测试 配置正确性测试 灾难恢复测试 测试点 基本功能测试 客户端IP地址正确性 RealServer 访问Internet测试(包括Ip ...
- 负载均衡之LVS集群
h3 { color: rgb(255, 255, 255); background-color: rgb(30,144,255); padding: 3px; margin: 10px 0px } ...
- Keepalived+LVS+nginx双机热备
Keepalived简介 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了, 也就是所谓的高可用或热备,用来防止单点故障的发生. Keepalived采 ...
- 基于keepalived双主模型的高可用LVS
背景知识: keepalived:Keepalived的作用是检测web服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的web 服务器从系统中剔除, ...
- LVS原理详解
一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算 ...
- 配置LVS + Keepalived高可用负载均衡集群之图文教程
负载均衡系统可以选用LVS方案,而为避免Director Server单点故障引起系统崩溃,我们可以选用LVS+Keepalived组合保证高可用性. 重点:每个节点时间都同步哈! C++代码 [r ...
- lvs+keepalived
一.简介 VS/NAT原理图: 二.系统环境 实验拓扑: 系统平台:CentOS 6.3 Kernel:2.6.32-279.el6.i686 LVS版本:ipvsadm-1.26 keepalive ...
- CentOS7 编译安装LVS 互为主备 (实测 笔记 Centos 7.0 + ipvsadm 1.27 + keepalived 1.2.15 )
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) LVS服务器(两台): 系统:Centos7.0 64位(LVS+keepalived) LvsMaster:1 ...
- LVS DR模式 RealServer 为 Windows 2008 R2配置
有3篇文档详细介绍 http://kb.linuxvirtualserver.org/wiki/Windows_Servers_in_LVS/DR_and_LVS/TUN_Clusters http: ...
随机推荐
- 洛谷 P2633 Count on a tree
P2633 Count on a tree 题目描述 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v,k),你需要回答u xor lastans和v这两个节点间第K小的点权.其中last ...
- HDU 4510
省一等,保研. #include <iostream> #include <cstdio> #include <cstring> #include <algo ...
- 【转】kafka概念入门[一]
转载的,原文:http://www.cnblogs.com/intsmaze/p/6386616.html ---------------------------------------------- ...
- 《深入浅出 Java Concurrency》——原子操作
part1 从AtomicInteger開始 从相对简单的Atomic入手(java.util.concurrent是基于Queue的并发包.而Queue.非常多情况下使用到了Atomic操作.因此首 ...
- Webx框架:Spring Schema 和 Spring Ext
webx诞生的原因是当时市面上没有好用的web框架.如今的Web框架有非常多.然后它们背后的思想都是相似的,并且越来越趋同. Spring Schema 在传统的spring中,配置bean时须要手动 ...
- Cocos2d-X直接使用OpenGL接口
Cocos2d-X是基于基于OpenGL ES的2D游戏引擎,所以Cocos2d-X能够直接使用OpenGL接口 首先建立一个Draw类,用于处理OpenGL接口 在Draw.h中加入以下的代码 #i ...
- SpringAop中JoinPoint对象
来自:http://blog.csdn.net/it_zouxiang/article/details/52576917 JoinPoint的用法 JoinPoint 对象 JoinPoint对象封装 ...
- Eclipse 连接hsqldb数据库
初学Java,在接触数据库根本无从下手,不知如何将程序和数据库连接起来,今天做一个记录. 数据库是:hsqldb_1_8_0_5 附链接百度云盘 链接:https://pan.baidu.com/s/ ...
- [Luogu1273] 有线电视网
[Luogu1273] 有线电视网 题目描述 某收费有线电视网计划转播一场重要的足球比赛.他们的转播网和用户终端构成一棵树状结构,这棵树的根结点位于足球比赛的现场,树叶为各个用户终端,其他中转站为该树 ...
- 9.14[XJOI] NOIP训练33
今日9.14 洛谷打卡:大凶!!!(换个字体玩玩qwq) -------------------------------------------------------- 一个超颓的上午 今天又是fl ...