lvs基础知识

一、LVS概述
LVS是Linux Virtual Server的简称,也叫Linux虚拟服务器,是一个由章文嵩教授主持开展的开源项目,官方站点为www.linuxvirtualserver.org。现在LVS已经是Linux内核的一部分,不需要编译内核。但在Linux2.4之前,要使用LVS需要将ipvs编译进内核才能使用。
LVS提供的负载均衡技术和Linux操作系统实现了一个高性能的服务器集群,有良好的扩展性、可靠性和可操作性,极大地减轻了后台服务器的压力。
LVS只要由三个部分组成:调度器、后台服务器池、共享数据库
负载均衡调度器:主要负责将请求分发到后台的服务器上。
后台服务器池(RealServer):用于向客户提供需要的服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等。
共享数据库:提供数据存储
二、LVS支持的四种模型
原生的LVS支持NAT,DR,TUN三种,但是近几年又出现了FULL-NAT模型,对NAT模型进一步改善。
NAT:地址转换
DR:直接路由模式
TUN:隧道模式
FULL-NAT:完全地址转换

NAT模型:

NAT模型是在入站时做了一次DNAT将请求转发至后台主机,出站时做了一次SNAT,该方式主要用于结合F5防DDOS攻击。
DR模型:

DR的性能是所有模式中最高的,它只需要修改目的MAC;但部署上必须要求LVS和后端服务器在同一个VLAN中。
TUN模型:

TUN是在原来IP头部再新增封装一个IP。进来时通过调度器,出去时直接返回客户端。
FULLNAT模型:

FULLNAT是在NAT模式上做了一次改进,加入了一个内网IP(lip)。cip-vip转换为lip->rip,而 lip和rip均为IDC内网ip,可以跨vlan通讯。

NAT:
① director与集群节点必须在同一个IP网络中;
② RIP通常是私有地址,仅用于各集群节点通信;
③ director位于client与real server之间,并负责处理进出的所有通信;
④ real server必须将网关指向DIP;
⑤ 支持端口映射;
⑥ real server可使用任意操作系统;
⑦ 大规模应用中director可能易成为系统瓶颈。

DR:
① 集群节点必须和director在同一个物理网络中;
② RIP可以使用公网地址,实现便捷的远程管理和监控;
③ director仅负责处理入站请求,响应报文则由realserver直接发往客户端;
④ realserver不能将网关指向DIP;
⑤ 不支持端口映射;

TUN:
① 集群节点可以跨越互联网;
② RIP必须是公网地址;
③ director仅负责处理入站请求,响应报文则由realserver直接发往客户端;
④ realserver网关不能指向director;
⑤ 只有支持隧道功能的os才能用于realserver;
⑥ 不支持端口映射。

FULLNAT:
① director与集群节点可以跨VLAN通讯;
② director位于client与real server之间,并负责处理进出的所有通信;
③ 通过在TCP Option中加入cip,将cip传给realserver
三、LVS支持的十种调度算法
调度算法分为静态和动态:
静态:固定不变的转发请求,仅仅依据算法本身。
rr:轮叫,轮询,依次轮流的向后台主机转发请求。
wrr:加权轮询,根据每台主机的权重依次轮流 。
sh:source hashing,源地址散列。主要实现会话绑定,能够将此前建立的session信息保留了,将源IP作为散列键
dh:destination hashing:目标地址散列。把同一个IP地址的请求,发送给同一个RealServer,将目标IP作为散列键

动态:依据后台服务器的状态动态的转发请求
lc:最少连接
active*256+inactive挑小的
wlc:加权最少连接
(active*256+inactive)/weight挑小的
sed:最短期望延迟
(active+1*256)/weight
nq:never queue永不排队(改进的sed)无需队列,如果有台realserver的连接数=0就直接分配过去,不需要在进行sed运算。
LBLC:基于本地的最少连接
基于局部性的最少连接调度算法根据请求的目标IP地址找出该目标IP地址最近使用的RealServer,若该Real Server是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器
LBLCR:带复制的基于本地的最少连接
带复制的基于局部性最少链接调度算法也是针对目标IP地址的负载均衡,该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。

四、LVS的相关配置
LVS的配置主要分为两部分:
ipvs:内核模块,只对定义为集群的服务进行转发
ipvsadm:用户空间管理集群服务的命令行工具
ipvsadm
管理集群服务
添加: -A -t|u|f service-address [-s schedule] -p timeout
-t:TCP协议的集群
-u:UDP协议的集群
service-address: IP:PORT #端口映射
-f:防火墙标记
service-address:Mark Number
-p timeout:持久连接。这个选项的意思是来自同一个客户的多次请求,将被同一台真实的服务器处理。timeout 的默认值为300 秒。
修改:-E -t|u|f service-address [-s schedule]

删除:-D -t|u|f service-address

#ipvsadm -A -t 172.16.100.2:80 -s rr

管理集群服务中的RS
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight]
-t|u|f service-address 实现定义好的集群服务
-r service-address:某RS的地址,在NAT模型中,可以使用IP:PORT端口映射
[g|i|m]
g:DR
i:TUN
m:NAT
[w weight]:定义权重
修改:-e -t|u|f service-address -r server-address [-g|i|m] [-w weight]
删除:-d -t|u|f service-address -r server-address
#ipvsadm -a -t 172.168.100.2:80 -r 192.168.193.1 -m
#ipvsadm -a -t 172.168.100.2:80 -r 192.168.193.2 -m

查看
-L|l
-n:数字格式显示主机地址和端口
--stats:统计数据
--timeout:显示tcp、tcpfin和udp的会话超时时长
-c:显示当前的ipvs连接状况

删除所有集群服务:
-C:清空ipvs规则

保存ipvs规则
-S
#ipvsadm -S > /path/to/somefile

导入此前的规则
-R
#ipvsadm -R < /path/from/somefile

时间: 2024-08-04 14:52:24

lvs基础知识的相关文章

集群及LVS基础知识整理

目录 1.常见集群环境介绍 2.LVS三种类型介绍 3.LVS各种调度算法介绍 1.常见集群环境介绍 在说lvs前先来说说集群,根据所适用场景的不同,IT人员可能希望服务器运行的时间更长,最好一年365天,一天72小时都不间断的运行,也可能希望应用程序运行得更快,而有些数字领域里则需要进行大规模的数值运算,这些都会涉及到计算机群集. 最常见的集群有以下三种类型:负载均衡集群(LB:Load Balance),高可用集群(HA:High Availability),高性能集群(HP:High Pe

集群之lvs 基础知识

注意:本文主要是对于LB中的lvs 做讲解(centos6.5-x86_64系统) 一.集群基本概念: 集群是把一组相互独立的.通过高速网络互联的计算机,把它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用于提高可用性和可缩放性. 1.1.常见的服务器扩展方式: Scale Up: 向上扩展 添加配置 Scale Out: 向外扩展 添加服务器 1.2.集群分类 负载均衡集群:Load Balancing Cluster,LB 高可用集

lvs基础知识及lvs-nat模型的简单模拟

  lvs是什么? lvs即linux virtual server,是LB(load balance)集群调度器的一种实现方法,是一种layer4 router,它能够根据目标地址.端口及调度方法,做出转发至哪一个后端的决策. 通常来讲,lvs由ipvs和ipvsadm两部分组成,ipvs工作于内核中,是lvs的核心组件,ipvsadm用于编.修改.保存规则. ipvs工作于内核中,查看某redhat系列的系统是否支持此功能的方法是查看内核的编译参数. 如果没有ipvs相关的项目,则需要为内核

LVS集群基础知识

LVS集群基础知识 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 优点 1.开源,免费 2.在网上能找到一些相关技术资源 3.具有软件负载均衡的一些优点 缺点 1.最核心的就是没有可靠的支持服务,没有人对其结果负责: 2.功能比较简单,支持复杂应用的负载均衡能力较差,如算法较少等: 3.开启隧道方式需重编译内核: 4.配置复杂: 5.主要应用于LINUX

Keepalived基础知识

大纲: 一.什么是Keepalived? 二.VRRP协议简介. 三.Keepalived原理. 四.Keepalived配置文件详解. 五.Keepalived配置示例. 一.什么是Keepalived? 什么是Keepalived呢,keepalived观其名可知,保持存活,在网络里面就是保持在线了,也就是所谓的高可用或热备,用来防止单点故障(单点故障是指一旦某一点出现故障就会导致整个系统架构的不可用)的发生,那说到keepalived时不得不说的一个协议就是VRRP协议,可以说这个协议就是

《两地书》--Kubernetes(K8s)基础知识(docker容器技术)

大家都知道历史上有段佳话叫“司马相如和卓文君”.“皑如山上雪,皎若云间月”.卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武帝赏识,飞黄腾达之后便要与卓文君“故来相决绝”,寄来给家乡留守的妻子一封<两地书>,上面只有一行数字:“一二三四五六七八九十百千万.”意义是:无亿,我已经无意于你啦. 卓文君看了这封信也不示弱,回了一首<怨郎诗>,司马相如看了发现虽然我是靠写诗吃饭的.要说写诗还是我媳妇厉害,于是亲自将卓文君迎回长安. 卓文君其实是个二婚.头

Linux基础知识 ls date stat cat file echo

Linux中的发行版Centos 自学了一年多的Centos了,全是学的一些杂×××功法,没有系统性连贯性的从头到尾贯穿一遍,导致许多知识点都知道一些皮毛,就类似于什么都知道,但是什么都不精通一样.....而且呢还总是急于求成,特别的基于求成,可能是对现状的不满意.....,想尽快的换一份待遇好的工作...可是最近呢,找到了一套九阳神功,打算从头练起,把基础知识弄透彻了,不要在基于求成,因为基础的才是最关键的,后面所有高级应用都是基于前面的基础知识,万变不离其宗吧!例如后面的LVS 就是根据前面

SpringCloud(1) 架构演进和基础知识简介

一.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图) 高可用 LVS+keepalive 1.单体应用:开发速度慢.启动时间长.依赖庞大.等等 2.微服务:易开发.理解和维护.独立的部署和启动等等 不足:分布式系统(分布式事务问题).需要管理多个服务(服务治理) 二.微服务基础知识简介 微服务核心知识 :网关.服务发现注册.配置中心.链路追踪.负载均衡器.熔断 1.网关:路由转发 + 过滤器 /api/v1/pruduct/       商品服务 /api/v1

Linux运维是什么?linux运维的基础知识

如果您对运维行业了解一些,应该会知道,现在的运维早已不是早年的"睡机房",往办公室打眼一看,分不清是运维攻城狮还是开发程序猿,但是,运维这行也是春天到了,今天Linux,明天云计算的,各种新鲜概念层出不穷,那么,Linux运维是什么?云计算运维又是什么? 现在我们谈运维,经常谈的就是海量这个词,当一个企业拥有几百台服务器的时候,可能更关注的是如何满足应用/业务需求,更多时候不必过多的关注架构.容量.扩展性这些,运维部门有时甚至沦为打杂部门.但是当一个企业拥有几万甚至几十万台的服务器这个