lvs介绍
1Linux集群及系统扩展的方式概述
集群是有多台服务器组织在一起,一起工作,因为单台服务器的并发响应能力是有限的,响应处理能力也是有限的所有有了集群的出现
在系统扩展有2种方法:
1 向上扩展:是指换一台性能更高的服务器来取代现有服务器,但这样子因为单台的服务器运算性能是有限的,而且这样造价相当昂贵。
2向外扩展:是指多增加一台服务器来分担现服务器的工作。
2Linux集群类型及调度方法详解
集群的类型有:
1 lvs:负载均衡:将客户端的请求通过一定的调度算法分发给不同的后端服务器来处理
注意在lvs如果一个客户发送请求,被分发给后端某一个服务器上,当这个客户端再次发送请求时,可能会被发送的另一台后端的服务器上,这样一次的会话内容信息就会丢失,为了解决这一问题有一下几种方法:
1 做静态绑定,将同一台客户端的请求分发给同一台后端服务器上,但这样一来就破坏的负载均衡的意义
2 在后端服务器的后面做共享存储,如结构化数据可以存放在mysql等关系型数据库中,非结构化数据如图片存放在nfs当中,
3 在后端服务器之间做信息的共享
2 HA:高可用集群:它具有冗余性注重服务器的在线使用时间指高可用性 MTBF (平均无故障时间)/MTBF+MTTR(故障修复时间)
3 HP:高性能集群是把计算量分隔出去
负载均衡的调度算法:
1 通过硬件设备实现调度:如 big-ip A10 等硬件设备
2 通过软件层来实现调度:
常用的软件调度:
lvs:它是工作在传输层 内核空间的 所以他响应并发是不受到套接字的限制,但是他没有客户端工具,调度能力有限不能完成更高级的调度设置,所以通常用lvs做一级调度,用nginx来最二级调度。
我们知道iptables是指定规则的用户空间工具,在iptables有5个链;
一般数据的流向是2种:1 prerouting------input----到用户空间------output -------postrouting
2 prerouting ------forward ------------------------------------postrouting
但lvs 工作在input链上,它的工作数据流:prerouting -----------input--------------postrouting
ipvs框架是来判断是否是集群的,若是直接交给postrouting ,管理工具是ipvsadm
Nginx和haproxy是应用层的程序不过他们可以模拟工作在传输层
http fastcgi ats perlbal 工作在应用层
3 lvs常见的四种集群lvs-nat、lvs-dr、lvs-tun、lvs-fullnat优点及使用场景
lvs 常见的有四种类型:
1 lvs—nat:
1修改请求报文的目标ip将客户端的vip改为后端服务器的rip ,进行分发它请求响应都需要经过director, 由于请求和响应都经director,所以调度器容易成为集群瓶颈
2 rip与dip必须同一网段 rip的网关指向dip
3支持端口映射,可以修改请求报文的目标端口
4 vs必须是linux系统, rs可以是任意
2 lvs-dr :直接路由:通过封装的MAC地址进行响应,
1 Director与rs 都接在同一个交换机上 ,客户端:通过广播方式得到vs的MAC地址,封装原MAC 和目标MAC 传给director,Director:在将原MAC地址为dip所在接 口的MAC 目标mac给为rs的rip网口的 MAC地址 派发给rs 而客户端请求时的原ip和目标ip不变 、,Rs 接收到后应为rs上也配有vip所以将直接响应客户端,不再经过 director
但有个问题:
1此处:在客户端广播是,rs的vip地址不做响应
2在接入这个网络后vip不做通过,防止ip冲突
实现的办法有:
1 arptables / nftables 来写规则阻断
2 在linux内核中有两个参数来设置 arp_announce =2 arp_ignore =1
3 做与director做静态绑定,
1 rs的rip可以做私网地址也可以做公网地址,与dip在同一网络 rip网关不指向dip
2 rs与director在同一个物理网络
3请求报文经过director 响应不经过director
4 并不支持端口映射
3 lvs-tun:隧道: 在原ip报文外面在封装一个ip首部 不修改请求报文首部而是在原ip报文外再封装一个ip首部,将报文发送为rs
1 dip vip rip 都在公网地址
2rs的网关不指向dip
3请求报文经过director 响应报文不经过director
4不支持端口映射
5 rs的os系统必须支持隧道功能
4lvs-fullnat:非标准的 可以是跨机房在director上有个nat追加表,可以根据nat表的记录进行将ip的修改
请求响应都经过director
1 vip公网地址 ,rip 和dip 是私网地址且同常不在同一网络中
2 rs收到请求的源地址是dip 只需响应给director 再由director响应给客户端
3 请求和响应都经过director
4 支持端口映射
调度算法:根据调度时是否考虑各rs当前负载状态可以分为静态和动态
静态: 仅根据算法自身进行调度
1 RR: 轮询
2WRR: 加权轮询
3SH:实现session sticy 源ip地址hash表将来自同一ip地址请求始终发送给之前的同一个rs 实现会话绑定。
4 DH 目标地址哈希:将发往同一目标地址的请求始终转发到第一次的rs上
动态方法: 主要根据每个RS当前的负载状态和调度算法进行调度
1 LC: 最小连接 当overhead 值最小的 Overhead = activconns * 256 + inctiveconns
2 WLC: 加权最小连接 Overhead = (activconns * 256 + inctiveconns)/weight
3 SED:小的值挑出 权重大的挑中 Overhead=(activeconns + 1) * 256 /weight
4 NQ:从不排队
5 LBLC:动态的DH算法
6LBLR:带复制功能的LBLC
lvs介绍的更多相关文章
- LVS 介绍
LVS 介绍 说明: LVS是Linux Virtual Server的简称 LVS是一个实现负载均衡的开源软件项目 LVS效率要高于Nginx LVS工作在ISO的第4层(传输层) LVS架构有三层 ...
- 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建
7月4日任务 18.6 负载均衡集群介绍18.7 LVS介绍18.8 LVS调度算法18.9/18.10 LVS NAT模式搭建 扩展lvs 三种模式详解 http://www.it165.net/a ...
- Linux centosVMware 负载均衡集群介绍、LVS介绍、LVS调度算法、LVS NAT模式搭建
一.负载均衡集群介绍 主流开源软件LVS.keepalived.haproxy.nginx等 其中LVS属于4层(网络OSI 7层模型),nginx属于7层,haproxy既可以认为是4层,也可以当做 ...
- LVS 介绍以及配置应用
1.负载均衡集群介绍 1.1.什么是负载均衡集群 负载均衡集群提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据的处理能力.提高网络的灵活性和可用性 搭建负 ...
- 负载均衡集群相关、LVS介绍、LVS调度算法、LVS NAT模式搭建
1.负载均衡集群相关 2.LVS的三种模式:NAT.DR .IP tunnel 3. LVS的调度算法(共有8种) 4.LVS NAT模式搭建准备条件: 在分发服务器上安装:yum install ...
- 负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建
LVS BAT模式搭建 更改主机名: hostnamectl set-hostname centos7-three bash 准备工作 • 三台机器 • 分发器,也叫调度器(简写为dir) • 内网: ...
- linux系统构架 - LB集群之LVS介绍
LB 集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有 nginx.lvs.keepalived ,商业的硬件负载设备 F5.Netscale. LB ...
- 【摘自lvs官网】lvs介绍
Linux Virtual Server项目的目标 :使用集群技术和Linux操作系统实现一个高性能.高可用的服务器,它具有很好的可伸缩性(Scalability).可靠性(Reliability)和 ...
- LVS介绍及相关配置
一. LVS概述 LVS是一种工作在四层协议上的负载均衡解决方案,在1998年5月由章文嵩博士创建.目前广泛使用的负载均衡模型主要有: 1)工作在四层协议(LVS):主要用于四层协议上的负载均衡,性能 ...
随机推荐
- corba/ice/web service/com+
//todo model1 model2
- Affiliate实战记录之一:CPI、CPA、CPM...名词解释
1.CPM (Cost Per Mille,或者Cost Per Thousand;Cost Per Impressions) 每千人成本,按展示次数收费 网上广告收费最科学的办法是按照有多少人看到你 ...
- 【进阶1-5期】JavaScript深入之4类常见内存泄漏及如何避免(转)
这是我在公众号(高级前端进阶)看到的文章,现在做笔记 https://mp.weixin.qq.com/s/RZ8Lpkyk8lz6z5H8Q8SiEQ 垃圾回收算法 常用垃圾回收算法叫做**标记清除 ...
- ASP.NET的路由系统:路由映射
总的来说,我们可以通过RouteTable的静态属性Routes得到一个基于应用的全局路由表,通过上面的介绍我们知道这是一个类型的RouteCollection的集合对象,我们可以通过调用它的MapP ...
- iOS ReplayKit 录屏 框架的使用
在需要使用录屏的 地方 引入 头文件 #import <ReplayKit/ReplayKit.h> 添加代理 RPPreviewViewControllerDelegate 因为 iOS ...
- 什么是java序列化,如何实现java 序列化?
序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化. 可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.序列化是为了解决在对对象流进行读写操作时所引发的问题. ...
- Java 银联支付官网demo测试及项目整合代码
注:原文来源与 < Java 银联支付官网demo测试及项目整合代码 > 银联支付(网关支付B2C) 一.测试官网demo a)下载官网开发包,导入eclipse等待修改(下载的开发包没 ...
- 在 Confluence 中启用 HTTP 响应压缩
Confluence 能够支持 HTTP 的 GZip 传输编码.这个意味着 Confluence 将可以把数据压缩后传输给用户,这种配置能够针对不稳定的互联网状态下的传输速度缓慢和不稳定并且能够降低 ...
- Confluence 6 使用页面请求属性来对慢性能进行问题解决
这个页面告诉你如何启用页面请求属性.当这个属性启用以后,你可以查看在 Confluence 任何页面完成的一个记录消耗的时间(毫秒).如果 Confluence 反应缓慢的话,一个关于慢页面请求的内部 ...
- swift项目初始化并添加忽略文件Swift.ignore
1 先去GitHub上去把最新的忽略文件下载下载 https://github.com/github/gitignore 2 然后找到Swift.gitignore 把里面的 pod 前面的# 删除 ...