一、介绍
IPVS是LVS(Linux Virtual Server)项目重要组成部分,目前包含于官方Linux Kernel,IPVS依赖于netfilter框架,位于内核源码的net/netfilter/ipvs目录下。IPVS也是一个开源软件
IPVSD的主要用途是为web服务器提供一个“前端”,处理入向连接请求。然后这些请求会发给各个http服务器来处理相应。IPVS本身就是填在linux内核中的应用,所以开销很小,性能也很好。
二、工作原理
IPVSD通过建立一个或多个虚拟服务器来工作,它会将工作服务器都分配给该服务器,并为该服务器创建一个linux前端。这个linux前端将入向请求先聚集到该服务器,再将每个请求的负载分发给虚拟服务一部分。然后由这些服务器处理这些请求;加入到这个虚拟服务的工作服务器越来越多,每台服务器要处理的前端分配过来的请求就越少。
二、IPVS常用的调度方式
2.1基于轮询的调度方法:
这些调度方法将会以轮转的方式在服务器间分发连接。
轮询调度
缩写:rr
工作机制:默认的调度算法,它会创建一个服务器序列,然后按序分配连接
优点:简单易懂,效率高。
缺点:未考虑服务器负载,所以可能一台服务器会因大量请求造成过载,而另一台高容量服务器处于空闲状态
适用情形:当你确信请求的复杂度相同时,这样,没有请求会给服务器带来很大的负载
加权轮询调度
缩写:wrr
工作机制:所有工作服务器都会被预分配一个权值,权重越高服务器被认为处理更大负载。调度器会继续用轮询的方法,
按序向权值较高的服务器分配更多的负载
优点:采用同样的简单的轮询方法,但支持系统特定服务器分配更多负载。
缺点:需要用户驱动的加权,从而需要人工干预;没有考虑到不同的连接可能会带来不同的负载
适用情形:当你确信请求的复杂程度相同,并熟知每台服务器处理请求的能力时,这样,可以有效地分配权值,并高效
地分发服务器负载
2.2基于最小连接的调度方法
这些调度方法会将连接分发给活动连接最小的工作服务器
最小连接调度
缩写:lc
工作机制:由连接数最小的服务器来处理下一个连接请求
优点:平衡基于服务器上的实际连接数;减小了对有多个较长活动连接的单台服务器的依赖性
缺点:未考虑每台服务器的处理能力,并熟知每天服务器处理请求的能力时,这样可以有效地分配权值,并高效地分发服务器
负载。
加权最小连接调度
缩写:wlc
工作机制:连接数最小、权重比最高的服务器处理下一个请求。它给出的算法是连接数除以权值
优点:平衡基于服务器上的实际连接数;减小了对有多个较长活动连接的单台服务器的依赖性;支持给服务器分配权重,又提
供了一个一层可配置性。
缺点:需要人工干预权值;同时,在计算下个连接请求分给哪台服务器时开销也很大。
适用情形:当你确信请求的复杂相同,并熟知每天服务器处理请求的能力时。这样可以有效地分给权值,并高效分发服务器负
载。
2.3基于局部性的调度方法
这种方法的基本原则是最小化服务器之间的共享缓存,从而避免增加服务器的负载。
基于局部性的最小连接调度
缩写:lblc
工作机制:只要服务器没有过载并处于可用状态,便可将针对同一个终端用户的连接任务分配同一台服务器。否则,将它分配
给任务最少服务器。
优点:支持来自同一源ip地址的用户连到同一台主机上,从而避免加剧服务器端的负载;即这些用户使用的缓存数据不必复制
到多台web服务器上。
缺点:由于nat技术的存在,单个ip地址背后可能有大量用户,可能会对单台服务器造成过载。
适用情形:当来自共享数据的同一ip的多个连接请求会给服务器带来大量的负载,比如出现庞大cookie或当量会话数据的情
况。
三、基于linux的centos系统安装IPVS(lvs)
1.使用linux云命令
yum install ipvsadm
ok,安装完毕
检查IPVS是否正确安装
lsmod | grep ip_vs 或 ps -ef | grep ip_vs
安装完毕!
参数书籍:实用负载均衡技术网站性能优化攻略(Peter Membrey)