Quantcast
Channel: CodeSection,代码区,Linux操作系统:Ubuntu_Centos_Debian - CodeSec
Viewing all articles
Browse latest Browse all 11063

LVS产生背景、原理及LVS-DR应用实例(一)

$
0
0

一、什么是 lvs ? 它产生的背景,使用场景是什么?

LVS(linux Virtual Server) 可以理解为一个虚拟服务器系统 。

Internet 的飞速发展,网络带宽的增长, Web 服务中越来越多地使用 CGI 、动态主页等 CPU 密集型应用,这对服务器的性能有较高要求,单台服务器已经无法满足需要,所以集群自然的成为一种解决方案,而 LVS 便是其中的一种集群方案。

集群 (Cluster)是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。集群系统的主要优点:高可扩展性、高可用性、高性能、高性价比。

常见集群类型及实现方式简介
LB:Load Balancing 高可拓展,伸缩集群
HA:High Availability 高可用集群
HP:High Performance 高性能集群
LB: Load Balancing 硬件级:F5 BIG-IP、Citrix Netscaler、 A10 A10、Array、Redware
软件级:lvs (传输层)、haproxy, nginx (应用层)
HA:高可用,heartbeat 、corosync + pacemaker、 cman + rgmanager、cman + pacemaker、keepalived
HP:高性能
hadoop
LVS项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。通过LVS提供的负载均衡技术和Linux操作系统可实现一个高性能、高可用的服务器群集,从而以低成本实现最优的服务性能 。

l vs能够实现在大并发的情况下,将前端调度器收到的请求分发给后端服务器处理,实现了负载均衡集群的作用。

注: 更多信息:LVS是国内贡献给开源组织的一个最优秀的项目之一,该项目 创始人和主要开发人是章文嵩博士,目前就职于阿里巴巴,改项目及具体介绍请参见网站: http://www.linuxvirtualserver.org/zh/lvs1.html

二、LVS的构成和内核

LVS 是作为一个前端 (Director) 存在的 , 又称为调度器,它本身不提供任何的服务,只是将通过互联网进来的请求接受后再转发给后台真正的服务器 (RealServer) 进行处理,然后响应给客户端。

LVS 有两个重要的组件:一个是 IPVS ,一个是 IPVSADM 。

ipvs 是 LVS 的核心组件,它本身只是一个框架,类似于 iptables ,工作于内核空间中。

ipvsadm 是用来定义 LVS 的转发规则的,工作于用户空间中

内核客户端的请求流向参见以下示意图


LVS产生背景、原理及LVS-DR应用实例(一)
三、LVS调度算法

静态方法:仅根据调度算法本身进行调度

rr: round robin,轮流,轮询,轮叫

wrr: weighted round robin, 加权轮询

sh:source hashing,session绑定

dh: destination hashing, 目标地址hash

动态方法:根据算法及各RS当前的负载状况进行调度

lc: least connection,最少连接

wlc: weighted lc,加权最少连接

sed: shortest expection delay,最少期望延迟

nq: never queue,永不排队

lblc: Locality-Based Least Connection,基于局部性的最少连接

lblcr:Replicated lblc,基于局部性的带复制功能的最少连接

四:LVS 的安装、配置,使用命令详解

LVS安装(ipvsadm)

#yum -y install ipvsadm

安装ipvsadm

#echo 1 > /proc/sys/net/ipv4/ip_forward

打开系统的转发功能,也即路由功能

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

添加一个集群服务,指定 vip,端口80,调度算法:rr 轮询

#ipvsadm -a -t 181.163.10.8:80 -r 181.163.10.9:80 -g

添加一个节点到集群服务,指定指定节点IP,端口,模式为-g:DR 模式

#ipvsadm -a -t 181.163.1.10:80 -r 181.163.10.10:80 -g

添加一个节点到集群服务,指定指定节点IP,端口,模式为-g:DR 模式

LVS ipvsad 命令格式

Ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-M netmask]

ipvsadm -D -t|u|f service-address

ipvsadm -C

ipvsadm -R

ipvsadm -S [-n]

ipvsadm -a|e -t|u|f service-address -r server-address

[-g|i|m] [-w weight] [-x upper] [-y lower]

ipvsadm -d -t|u|f service-address -r server-address

ipvsadm -L|l [options] ipvsadm -Z [-t|u|f service-address]

ipvsadm set tcp tcpfin udp

ipvsadm start-daemon state [ mcast-interface interface] [ syncid syncid]

ipvsadm stop-daemon state

ipvsadm -h

LVS ipvsad 命令详解

定义集群服务:

-A 添加一个集群服务

-D 删除一个集群服务

-E 修改一个集群服务

-t VIP:端口 定义集群服务的类型为TCP的某个端口

-u VIP:端口 定义集群服务的类型为UDP的某个端口

-f 防火墙标记 定义集群服务的类型为防火墙标记

-s 调度算法 指定集群服务的调度算法

定义集群节点:

-a 添加一个节点到集群服务

-d 从集群服务中删除一个节点

-e 修改集群服务器中的节点

-r 节点IP:端口 定义节点的IP及类型

-m 定义为NAT模型

-g 定义为DR模型

-i 定义为TUN模型

-w 权重 定义服务器的权重

查看已经定义的集群服务及RS:

ipvsadm -L -n

-c: 查看各连接

stats: 统计数据

rate: 速率

exact: 精确值

从集群服务中删除RS:

ipvsadm -d -t|u|f service-address -r server-address

删除集群服务:

ipvsadm -D -t|u|f service-address

清空所有的集群服务:

ipvsadm -C

保存集群服务定义:

ipvsadm -S > /path/to/some_rule_file

ipvsadm-save > /path/to/some_rule_file

让规则文件中的规则生效:

ipvsadm -R < /path/from/some_rule_file

ipvsadm-restore < /path/from/some_rule_file

五、LVS四种工作模式与对比

1、LVS-DR

LVS-DR模式,直接路由模式, 调度器与实际服务器都有一块网卡连在同一物理网段上

lvs-DR模型是lvs的默认模型,也是企业中用到的最多的模型

解读:直接路由模型,每个Real Server上都有两个IP:VIP和RIP,但是VIP是隐藏的,就是不能提高解析等功能,只是用来做请求回复的源IP的,Director上只需要一个网卡,然后利用别名来配置两个IP:VIP和DIP ### Director在接受到外部主机的请求的时候转发给Real Server的时候并不更改目标地址,只是通过arp解析的MAC地址进行封装然后转给Real Server,Real Server在接受到信息以后拆除MAC帧封装,然后直接回复给CIP


LVS产生背景、原理及LVS-DR应用实例(一)

2、 LVS-TUN

LVS-TUN模式,ip隧道模式,可以运用于异地机房的负载调度上

解读:隧道模型,跟DR模型比较相似,都是由rs直接回复给cs .跟dr模型不同的是,vs和rs之间可以存在路由,原因是tun模型在报文源ip和目的ip后又加入了一层源ip和目的ip的信息。
LVS产生背景、原理及LVS-DR应用实例(一)

3、 LVS-NAT

LVS_NAT模型,通常应用与rs较少,rs节点无要求,端口转换的场景

解读:地址转换模型,vs通过修改目的ip将报文发送到rs.rs通过dip网关将报文发给vs,vs再将报文的源ip进行修改发送给客户端。


LVS产生背景、原理及LVS-DR应用实例(一)

4、LVS-FULLNAT

全地址转换模型,主要应用与rs和vs不在同一网络的情景

解读:vs接收到client发送的报文后,修改报文中的源ip和目的ip为dip和rip.rs将报文返回vs后vs再将报文中的源ip和目的ip改为vip和cip.
LVS产生背景、原理及LVS-DR应用实例(一)

注:本文参考:N22-深圳-晓志, 章文嵩项目信息


Viewing all articles
Browse latest Browse all 11063

Trending Articles