负载均衡之LVS学习小结

负载均衡的解决方案有硬件解决方案和软件解决方案。主流的硬件解决方案是:

F5   BIG-IP

Citrix  Netscalar

A10    A10

Array

Redware

LVS(Linux Virtual Server)是工作在网络四层交换或路由软件解决方案。它通过内核框架模块ipvs及配置在该框架之上的一组规则来实现交换或路由。ipvsadm则是配置路由规则的工具。ipvs基于内核的netfilter框架模块,工作在其INPUT链上,将到达INPUT链的需要转发的包路由至Real Server。因此,ipvs功能会与netfilter的filter和nat表的功能有冲突。最好不要在部署了ipvs规则的主机上配置iptables的filter和nat规则。LVS有四种模型:NAT, DR, TUN, FULLNAT。

NAT模型的特征:

1.  RS应该使用私有地址。

2.  RS的网关必须指向Director的DIP。

3.  RS的RIP和DIP必须在同一网段内。

4.  请求和响应的报文都经过Director,在高负载的场景中,Director可能成为系统性能瓶颈。

5.  支持端口映射。

6.  RS可以使用任意支持集群服务的操作系统。

DR模型的特征:

1.  RS可以使用私有地址,也可以使用公网地址。

2.  RS的网关一定不能指向DIP

3.  RS和Director要在同一物理网络内(不能有路由器分割)

4.  请求报文经过Director,但响应报文一定不经过Director

5.  不支持端口映射

6.  RS可以使用大多数的操作系统

TUN模型的特征:

1.  RIP、DIP和VIP都必须是公网地址

2.  RS的网关一定不会指向DIP

3.  请求报文经过Director,但响应报文一定不经过Director

4.  不支持端口映射

5.  RS的操作系统必须支持IP隧道技术

LVS支持的10种调度策略

静态策略

  • rr:         Round Robin
  • wrr:      Weight Round Robin
  • sh:        Source Hashing
  • dh:       Destination Hashing

动态策略

  • lc:           Least Connection            Overhead=Active*256+Inactive,选择负载值最小进行调度。
  • wlc:        Weight Least Connection       Overhead=(Active*256+Inactive)/weight
  • sed:       Shortest Expect Delay              Overhead=(Active+1)*256/weight
  • nq:         Nerver Queue
  • lblc:       Locality-based Least Connection      dh+lc
  • lblcr:      Replicated and Locality-based Least Connection

Session持久机制

  • session绑定:始终将同一个请求者的连接定向至同一个RS(第一次请求时仍由调度方法选择);没有容错能力,有损均衡效果。
  • session复制:在RS之间同步session,因此,每个RS持集群中所有的session;对于大规模集群环境不适用。
  • session服务器:利用单独部署的服务器来统一管理session。

ipvs命令工具常用选项和参数

集群服务相关

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

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

ipvsadm -C

-A: 添加一个集群服务

-t: tcp

-u: udp      
-f: firewall mark,通常用于将两个或以上的服务绑定为一个服务进行处理时使用;

service-address:      
      -t IP:port        
      -u ip:port        
      -f firewall_mark

-s 调度方法,默认为wlc

-p timeout: persistent connection, 持久连接

-E:修改定义过的集群服务

-D -t|u|f service-address:删除指定的集群服务

RS相关

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

-a:向指定的CS中添加RS      
            -t|-u|-f service-address:指明将RS添加至哪个Cluster Service中

-r: 指定RS,可包含{IP[:port]},只有支持端口映射的LVS类型才允许此处使用跟集群服务中不同的端口

LVS类型:      
                -g: Gateway, DR        
                -i: ipip, TUN        
                -m: masquerade, NAT

-e: 修改指定的RS属性

-d -t|u|f service-address -r server-address:从指定的集群服务中删除某RS

保存规则:(使用输出重定向)

ipvsadm-save

ipvsadm -S

载入指定的规则:(使用输入重定向)

ipvsadm -R

ipvsadm-restore

查看ipvs规则

-L [options]      
            -n: 数字格式显示IP地址        
            -c: 显示连接数相关信息        
            --stats: 显示统计数据        
            --rate: 速率        
            --exact:显示统计数据的精确值

LVS持久连接

PCC:将来自于同一个客户端发往VIP的所有请求统统定向至同一个RS。

PPC:将来自于一个客户端发往某VIP的某端口的所有请求统统定向至同一个RS。

PFMC: 端口绑定,port affinity。基于防火墙标记,将两个或以上的端口绑定为同一个服务。

举例:

# iptables -t mangle -A PREROUTING -d VIP -p tcp --dport CS_Port -j MARK --set-mark num   (num取0-99之间的值)

# ipvsadm -A -f num

LVS的DR模型配置实例

假定用3台主机配置一个web集群。一台Director,2台Real Server。VIP:192.168.100.185,DIP:192.168.100.105,RS1的RIP:192.168.100.107,RS1的RIP:192.168.100.108 。3台主机都连接在同一交换机上,2台Real Server上web服务都已安装配置完成。以下主要给出LVS集群相关的配置过程。

RS1的配置:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
#
# ifconfig lo:0 192.168.100.185 netmask 255.255.255.255 broadcast 192.168.100.185 up
# route add -host 192.168.100.185 dev lo:0
#

RS2的配置:

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
#
# ifconfig lo:0 192.168.100.185 netmask 255.255.255.255 broadcast 192.168.100.185 up
# route add -host 192.168.100.185 dev lo:0

Director的配置:

安装ipvsadm

# yum install ipvsadm

# ifconfig eth0:0 192.168.100.185 netmask 255.255.0.0 broadcast up
# route add -host 192.168.100.185 dev eth0:0
# 
# iptables -t filter -F
# ipvsadm -A -t 192.168.100.185:80 -s rr
# ipvsadm -a -t 192.168.100.185:80 -r 192.168.100.107 -g
# ipvsadm -a -t 192.168.100.185:80 -r 192.168.100.108 -g
时间: 2024-10-12 04:28:52

负载均衡之LVS学习小结的相关文章

Nginx负载均衡和LVS负载均衡的比较分析(转)

Nginx负载均衡和LVS负载均衡的比较分析 作者:匿名 来源:ChinaZ源码报导 浏览:1032次 2011-12-6 15:12:27 字号:大 中 小 [摘要]Nginx是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器.本文介绍Nginx负载均衡和LVS负载均衡的比较分析. LVS和Nginx都可以用作多机负载的方案,它们各有优缺,在生产环境中需要好好分析实际情况并加以利用. 首先提醒,做技术切不可人云亦云,我云即你云:同时也不可太趋向保

企业级开源四层负载均衡解决方案--LVS

第1章 课程简介课程内容的概要介绍,包括需要具备的知识前提.课程内容.面向用户.课程的价值意义及学习目标 1-1 LVS导学视频1-2 LVS课程概述第2章 网络基础重点讲解网络核心基础知识,包括OSI七层模型.TCP四层模型.详解三次握手和四次挥手.数据包在服务器内部拆包解析全流程剖析.应用服务概念.iptables原理和常见命令编写 2-1 网络基础知识讲解2-2 OSI七层网络模型2-3 TCP/IP协议基础讲解2-4 TCP/IP四层模型2-5 iptables基础原理2-6 iptab

Web基础架构:负载均衡和LVS

在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务器(数据库.缓存等等). 一.负载均衡的作用 负载均衡设备的任务就是作为应用服务器流量的入口,首先挑选最合适的一台服务器,然后将客户端的请求转发给这台服务器处理,实现客户端到真实服务端 的透明转发.最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计算资源.存储资源,由某台管理服务器封装成一个服务对外提供,客户端 不需

从一个开发的角度看负载均衡和LVS(转)

原文:http://blog.hesey.net/2013/02/introduce-to-load-balance-and-lvs-briefly.html 在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务器(数据库.缓存等等). 一.负载均衡的作用 负载均衡设备的任务就是作为应用服务器流量的入口,挑选最合适的一台服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转

负载均衡、LVS概述

1. 负载均衡概述 负载均衡的基本思路是:在一个服务器集群中尽可能的平衡负载量.通常的做法是在服务器前端设置一个负载均衡器(一般是专门的硬件设备).然后负载均衡器将请求的连接路由到最空闲的可用服务器.下图显示了一个典型的大型网站负载均衡设置,其中一个负载均衡器用于HTTP流量,另一个用于MySQL访问. 负载均衡有5个常见的目的. (1)可扩展性:负载均衡对于某些扩展策略有所帮助,例如读写分离时从备库读数据. (2)高效性:负载均衡有助于更有效的使用资源,因为它能够控制请求被路由到何处. (3)

[转]Web基础架构:负载均衡和LVS

以下内容转载自:http://www.importnew.com/11229.html 在大规模互联网应用中,负载均衡设备是必不可少的一个节点,源于互联网应用的高并发和大流量的冲击压力,我们通常会在服务端部署多个无状态的应用服务器和若干有状态的存储服务器(数据库.缓存等等). 一.负载均衡的作用 负载均衡设备的任务就是作为应用服务器流量的入口,挑选最合适的一台服务器,将客户端的请求转发给它处理,实现客户端到真实服务端的透明转发.最近几年很火的「云计算」以及分布式架构,本质上也是将后端服务器作为计

Linux负载均衡软件LVS之二(安装篇)[转]

Linux负载均衡软件LVS之二(安装篇) 2011-04-26 16:01:47 标签:lvs安装配置 linux lvs 休闲 linux高可用 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://ixdba.blog.51cto.com/2895551/554029 一.  安装LVS软件 1.安装前准备工作操作系统:统一采用Centos4.4版本.地址规划,如表1所示:表1 更详细的信息如图2所示: 图2  LVS DR模

集群负载均衡之lvs和keepalived

本篇主要介绍集群的负载均衡. lvs是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序.为此,在设计时需要考虑系统的透明性.可伸缩性.高可用性和易管理性. LVS主要组成部分为: 负载调度器(load balancer/Director),它是整个集群对

负载均衡,LVS

负载均衡介绍 LVS介绍 有三种模式1.NAT模式,访问量很大的时候分发器就成为瓶颈2.IP Tunnel模式: 3.DR模式 LVS的调度算法 一共八种,前面四种比较常用,后面用的比较少 LVS NAT模式搭建 1.设置IP地址分发器:内网:188.130 外网:252.147(仅主机模式) rs1 内网:188.129 设置网关 188.130 rs2 内网:188.133 设置网关 188.130 2.关闭防火墙:三台都完成 [[email protected] ~]# iptables