LVS 负载均衡概念篇

一、简单介绍
LVS是Linux Virtual Server的简写,是Linux服务器上的一种高扩展和高可用集群方案。由章文嵩博士主导开发,目前已被集成到Linux内核模块中,在内核级别实现了四层(传输层)的负载均衡调度。 


原理:互联网用户访问网站,请求解析到LVS上,LVS调度器根据预设算法将请求分配给后端服务器,最后,后端服务器以不同方式返回数据给用户

二、LVS 工作模式

根据后端服务器返回数据的方式可以分三种工作模式:

模式                                        命令选项
1、DR (direct routing) 默认模式,效率最高    -g --gatewaying
2、TUN (tunneling) 隧道模式                 -i --ipip
3、NAT模式 地址伪装                         -m --masquerading 
 
三、负载均衡调度算法
 1、rr (Round Robin)                轮询
2、wrr (Weighted Round Robin)      加权轮询
3、lc (Least-Connection)           最少连接
4、wlc (Weighted Least-Connection) 加权最少连接 (默认算法)
5、lblc (Locality-Based Least-Connection)   基于局部的最少连接 根据请求IP分配相同RS, 如果负载重就分配连接最少RS, 维护从一个 目标IP地址到一组服务器的映射
6、lblcr (Locality-Based Least-Connection with Replication) 带复制的基于局部性最少链接, 维护从一个目标IP地址到一台服务器的映射
7、dh (Destination Hashing)       目标地址散列
8、sh (Source Hashing)            源地址散列
9、sed (Shortest Expected Delay)  最短的期望延迟 (Clients + 1)/weight
10、nq (Never Queue)              最少队列 直接分配给连接数为0的RS 
四、安装ipvsadm
ipvsadm 是创建和维护内核LVS表的工具 
1、查看内核是否集成ipvs模块 
modprobe -l |grep ipvs
kernel/net/netfilter/ipvs/ip_vs.ko
kernel/net/netfilter/ipvs/ip_vs_rr.ko
kernel/net/netfilter/ipvs/ip_vs_wrr.ko
kernel/net/netfilter/ipvs/ip_vs_lc.ko
kernel/net/netfilter/ipvs/ip_vs_wlc.ko
kernel/net/netfilter/ipvs/ip_vs_lblc.ko
kernel/net/netfilter/ipvs/ip_vs_lblcr.ko
kernel/net/netfilter/ipvs/ip_vs_dh.ko
kernel/net/netfilter/ipvs/ip_vs_sh.ko
kernel/net/netfilter/ipvs/ip_vs_sed.ko
kernel/net/netfilter/ipvs/ip_vs_nq.ko
kernel/net/netfilter/ipvs/ip_vs_ftp.ko
kernel/net/netfilter/ipvs/ip_vs_pe_sip.ko

2、开启内核路由转发

sed -i ‘/net.ipv4.ip_forward/s/0/1/‘ /etc/sysctl.conf # 永久开启

sysctl -p # 重新加载

echo "1" > /proc/sys/net/ipv4/ip_forward # 临时开启

3、安装方式任选一种

A、yum安装

yum install ipvsadm

B、编译安装

yum -y install popt popt-devel libnl libnl-devel popt-static # 安装依赖包

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz # 下载ipvsadm

tar -zxf ipvsadm-1.26.tar.gz

cd ipvsadm-1.26

make && make install # 编译 && 安装

chkconfig --add ipvsadm

chkconfig ipvsadm on

service ipvsadm start # 启动 ipvsadm

五、命令选项

ipvsadm -A -t 192.168.18.10:80 -s rr # 将192.168.18.10设为对外虚拟服务器,使用tcp:80端口,负载均衡使用Round Robin(轮询)算法

ipvsadm -a -t 192.168.18.10:80 -r 172.17.0.2:80 -m # 将后端real server 172.17.0.2的tpc:80端口对应到虚拟服务器,使用NAT模式(masquerading)

ipvsadm -a -t 192.168.18.10:80 -r 172.17.0.3:80 -m

ipvsadm -A -t 192.168.18.10:3306 -s rr

ipvsadm -a -t 192.168.18.10:3306 -r 172.17.0.2:3306 -m

ipvsadm -a -t 192.168.18.10:3306 -r 192.168.18.11:3306 -g

ipvsadm -d -t 192.168.18.10:3306 -r 192.168.18.11:3306 # 删除后端服务器(RS)

ipvsadm -E -t 192.168.18.10:3306 -s wrr # -E修改虚拟服务器,调度算法为加权轮询

ipvsadm -e -t 192.168.18.10:3306 -r 172.17.0.2:3306 -w 2 -m # 修改RS的权重为2

ipvsadm -e -t 192.168.18.10:3306 -r 192.168.18.11 -w 12 -g # 修改RS的权重为12

ipvsadm -ln # -n 以数字显示详细信息

ipvsadm -lnc # -c 显示当前连接

ipvsadm -D -t 192.168.18.10:3306 # 删除虚拟服务器(关联的RS规则也被删除)

ipvsadm -S > ~/ipvsadm_bak # 备份表规则

ipvsadm -R < ~/ipvsadm_bak # 还原表规则

更多参考:

http://www.linuxvirtualserver.org/

http://www.austintek.com/LVS/LVS-HOWTO/HOWTO/

http://zh.linuxvirtualserver.org/node/34

http://keepalived.org/pdf/sery-lvs-cluster.pdf

http://kb.linuxvirtualserver.org/wiki/Compiling_ipvsadm_on_different_Linux_distributions

时间: 2024-10-21 02:43:31

LVS 负载均衡概念篇的相关文章

LVS负载均衡概念

一.负载均衡的分层结构 第一层:负载调度器,这是访问整个集群系统的唯一入口,对外使用所有服务器共有的VIP地址.通常会配置主.备两台调度器实现热备份. 第二层:服务器池,集群所提供的应用服务由服务器池承担,其中的每个节点具有独立的RIP地址,只处理调度器分发过来的客户机请求.当某个节点暂时失效时,负载均衡器的容错机制会将其隔离,等待错误排除后再重新纳入服务器池. 第三层:共享存储,为服务器池中的所有节点提供稳定.一致的文件存取服务,确保整个集群的统一性. 二.负载均衡的工作模式 1.NAT模式(

Linux负载均衡软件LVS之一(概念篇)

一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能.使用LVS技术要达到的目标是:通过LVS提

(转)Linux负载均衡软件LVS之一(概念篇)

一. LVS简介LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能.使用LVS技术要达到的目标是:通过LVS提

构建高可用的LVS负载均衡集群 入门篇

一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是www.linuxvirtualserver.org.现在LVS已经是 Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能. LVS 集群采用IP负载和基于内容请求分

构建高可用的LVS负载均衡集群 进阶篇

一.lvs组件介绍 lvs的组件由两部分组成:工作在内核空间的ipvs模块和工作在用户空间ipvsadm工具.其中ipvsadm是规则生成工具,而ipvs是一个使规则生效的工具. 二.ipvsadm详解 构建高可用的LVS负载均衡集群 进阶篇,布布扣,bubuko.com

LVS负载均衡之持久性连接介绍(会话篇)

在实际生产环境中,往往需要根据业务应用场景来设置lvs的会话超时时间以及防session连接丢失的问题提,如在业务支付环节,如若session丢失会导致重复扣款问题,严重影响到安全性,本小节解将会讲到关于lvs持久性连接问题 一.lvs负载均衡持久连接介绍: 引子(案例) 对于电子商务网站来说,用户在挑选商品的时候使用的是80端口来浏览的,当付款的时候则是通过443的ssl加密的方式,当然当用户挑选完商品付款 的时候,我们当然不希望https的443跳转到另外一台REAL SERVER上,很显然

【中级篇】Linux中部署LVS负载均衡群集

LVS负载均衡群集 1.          实验需求: 1)     2台服务器部署HTTPD服务 2) 1台做负载调度器 3) 搭建负载均衡,测试其效果. 2.          实验环境: Linux服务器系统版本:CentOS-6.5 -S02 IP:192.168.10.15  ( httpd ) Linux服务器系统版本:CentOS-6.5 -S03 IP : 192.168.10.18  ( httpd ) Linux服务器系统版本:  RedHat6.5     IP1 :192

搞懂分布式技术7:负载均衡概念与主流方案

搞懂分布式技术7:负载均衡概念与主流方案 负载均衡的原理 原创: 刘欣 码农翻身 4月23日 这是1998年一个普通的上午. 一上班,老板就把张大胖叫进了办公室,一边舒服地喝茶一边发难:"大胖啊,我们公司开发的这个网站,现在怎么越来越慢了? " 还好张大胖也注意到了这个问题,他早有准备,一脸无奈地说: "唉,我昨天检查了一下系统,现在的访问量已经越来越大了,无论是CPU,还是硬盘.内存都不堪重负了,高峰期的响应速度越来越慢." 顿了一下,他试探地问道:"老

HAproxy负载均衡-配置篇

安装HAProxy及环境配置 红帽的yum源已经为我们提供了最新版本的haproxy,所以我们只需要yum安装即可 [[email protected] ~]# yum install haproxy -y 配置haproxy的日志 编辑rsyslog [[email protected] haproxy]# vim /etc/rsyslog.conf 将以下参数开启 $ModLoad imudp $UDPServerRun 514 加入参数: *.info;mail.none;authpriv