Chinaunix首页 | 论坛 | 博客
  • 博客访问: 419441
  • 博文数量: 97
  • 博客积分: 3145
  • 博客等级: 中校
  • 技术积分: 1890
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-15 12:52
文章分类
文章存档

2020年(1)

2016年(8)

2015年(3)

2014年(1)

2013年(5)

2012年(4)

2011年(9)

2010年(12)

2009年(42)

2008年(12)

我的朋友

分类:

2010-01-07 10:56:51

notify_master notify_backup notify_fault 定义当切换为masterbackup、失败情况下启动的脚本

smtp_alert 用全局变量里面定义的邮件发送报警邮件

3.2.2 VRRP实例

表示开始启用vrrp,每个接口定义一个实例,主要定义VRRP的主从,以及漂移IP

vrrp_instance inside_network {

state MASTER #定义主从

interface eth0  #定义接口

dont_track_primary #忽略错误,默认不设置

track_interface {

eth0

eth1

}

mcast_src_ip

garp_master_delay 10

virtual_router_id 51

priority 100   #优先权

advert_int 1 #检查间隔时间

authentication {

auth_type PASS

autp_pass 1234

}

virtual_ipaddress {

#/ brd dev scope label

192.168.200.17/24 dev eth1

192.168.200.18/24 dev eth2 label eth2:1

}

virtual_routes {

# src [to] / via|gw dev scope

src 192.168.100.1 to 192.168.109.0/24 via 192.168.200.254 dev eth1

192.168.110.0/24 via 192.168.200.254 dev eth1

192.168.111.0/24 dev eth2

192.168.112.0/24 via 192.168.100.254

}

nopreempt

preemtp_delay 300

debug  #错误级别

}

配置

包括2个部分,虚拟主机组和虚拟主机

3.3.1 虚拟主机组

这个配置是可选的,用途是让一台realserver上的服务可用于多个虚拟主机,并且只作一次健康检查。

virtual_server_group {

# VIP port

fwmark

}

3.3.2 虚拟主机

虚拟主机的配置有3种方式

1. virtual server IP port

2. virtual server fwmark int

3. virtual server group string

例如:

virtual_server 192.168.1.2 80 { #定义虚拟主机192.168.1.2,服务端口为80

delay_loop 3                        #虚拟主机轮循时间

lb_algo rr|wrr|lc|wlc|lblc|sh|dh #LVS的调度方式(轮循,加权轮循等)

lb_kind NAT|DR|TUN         #LVS集群模式(NAT,直接路由等)

persistence_timeout 120          #会话保持时间

persistence_granularity #会话保持粒度

protocol TCP                         #使用的协议(TCP/UDP)

ha_suspend                           # suspendhealthchecker’s activity

virtualhost                 #HTTP_GET做健康检查时检查的主机头

sorry_server #备用机,当所有realserver都失败时,启用

#所有的real_server都要启用下面配置项

real_server

{

weight 1  #默认为10为失效

inhibit_on_failure #在服务器健康检查失败是将weight 设置为0,而不是剔除

notify_up |      #在检查到service up后启动的脚本

notify_down |   #在检查到service down后启动的脚本

#健康检查方式 HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK

HTTP_GET | SSL_GET

{

url { #http/ssl 检查的URL,可以设置多个

path /

digest   #ssl检查后的摘要信息

status_code 200    #http_get检查的返回代码

}

connect_port 80      #健康检查的端口

bindto    #从此地址发送请求对服务器进行健康检查

connect_timeout   #连接超时时间      

nb_get_retry 3     #重新连接次数

delay_before_retry 2  #重新连接间隔时间

} # END OF HTTP_GET|SSL_GET

TCP CHECK方式

TCP_CHECK {

connect_port 80

bindto 192.168.1.1

connect_timeout 4

} # TCP_CHECK

SMTP检查方式

host {

connect_ip

connect_port   #默认端口25

bindto

}

connect_timeout

retry

delay_before_retry

helo_name | #HELLO 命令请求参数,可选

} #SMTP_CHECK

MSIC健康检查方式

MISC_CHECK

{

misc_path | #外部程序或脚本路径

misc_timeout                                  #脚本执行超时时间

misc_dynamic

}

} # Realserver

} # Virtual Server

#如果设置了msic_dynamic,健康检查程序返回代码将作为改变实例权重的依据。

返回0,健康检查OK,权重不变

返回1,健康检查失败,权重为0

返回2-255,健康检查OK,权重设置为:返回代码-2。比如返回为5,那么权重就设为5-2=3

 

 

附录

中虚拟服务器的NAT/DR/TUN三种方式的介绍

Virtual server via NATVS-NAT

 Virtual Server via NAT方法的最大优点是集群中的物理服务器可以使用任何支持TCP/IP操作系统,物理服务器可以分配Internet的保留私有地址,只有负载均衡器需要一个合法的IP地址。

 这种实现方法的最大的缺点是扩展性有限。当服务器节点(普通PC服务器)数据增长到20个或更多时,负载均衡器将成为整个系统的瓶颈,因为所有的请求包和应答包都需要经过负载均衡器再生。假使TCP包的平均长度是536字节的话,平均包再生延迟时间大约为60us(在Pentium处理器上计算的,采用更快的处理器将使得这个延迟时间变短),负载均衡器的最大容许能力为8.93M/s,假定每台物理服务器的平台容许能力为400K/s来计算,负责均衡器能为22台物理服务器计算。

 Virtual Server via NAT能够满足许多服务器的服务性能需求。即使是是负载均衡器成为整个系统的瓶颈,如果是这样也有两种方法来解决它。一种是混合处理,另一种是采用Virtual Server via IP tunnelingVirtual Server via direct routing。如果采用混合处理的方法,将需要许多同属单一的RR DNS域。你采用Virtual Server via IP tunnelingVirtual Server via direct routing以获得更好的可扩展性。也可以嵌套使用负载均衡器,在最前端的是VS-TunnelingVS-Drouting的负载均衡器,然后后面采用VS-NAT的负载均衡器。

 Virtual server via IP tunnelingVS-TUN

 采用VS-NAT方式,请求与应答包都需要经过负载均衡器,那么当服务器节点增长到20个或更多时,这个负载均衡器就可能成为新的瓶颈。我们发现,许多Internet服务(例如WEB服务器)的请求包很短小,而应答包通常很大。

 而使用VS-TUN方式的话,负载均衡器只负责将请求包分发给物理服务器,而物理服务器将应答包直接发给用户。所以,负载均衡器能处理很巨大的请求量,这种方式,一台负载均衡能为超过100台的物理服务器服务,负载均衡器不再是系统的瓶颈。使用VS-TUN方式,如果你的负载均衡器拥有100M的全双工网卡的话,就能使得整个Virtual Server能达到1G的吞吐量。

 IP tunnelingIP隧道)能够用于架构一个高性能的virtual server,非常适合构建virtual proxy server,因为当代理服务器收到了请求,能够让最终用户直接与服务器联系。

但是,这种方式需要所有的服务器支持IP Tunneling(IP Encapsulation)协议,我仅在Linux系统上实现了这个,如果你能让其它操作系统支持,还在探索之中。

 Virtual Server via Direct RoutingVS-DR

 就象VS-TUN一下,在VS-DR方式下,负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端。这种方式能够大大提高Virtual Server的可扩展性。与VS-TUN相比,VS-DR这种实现方式不需要隧道结构,但它要求负载均衡器的网卡必须与物理网卡在一个物理段上。

 而且VS-DR模式,可以使用大多数操作系统做为物理服务器,其中包括:Linux 2.0.362.2.92.2.102.2.12Solaris 2.5.12.62.7FreeBSD 3.13.23.3NT4.0无需打补丁;IRIX 6.5HPUX11

轮循调度方法

LVS 9种调度方法

1 rr  连接的时候,利用round robin 第一个人访问第一台机器,第二个人访问第二台机器。

wrr:加权轮循, 权重是一个比值,不是一个绝对值。

3 Lc :最小连接算法

wlc 加权最小连接算法,连接到当前最小的连接数的机器上,适合于新闻网站,要是总有会话就不适合了。

5 lblc 局部最小连接算法。优先把连接放在第一次连接的机器上。如:PC1通过Director访问过realserverRIP2)则PC1在指定30秒内再次访问realserver仍将访问RIP2

Dh :给予目标地址的Hash表,

sh :给予源地址的Hash表,

sed:最小延迟,类似一个ping值,谁的相应速度快,就连接谁

nq  无须等待。在sed的基础上,谁没有连接,空闲着就连接谁

 

常用算法:

wlc

PC1访问realserverRIP1),第一次访问时要输入用户名密码进行验证,验证通过后客户端会收到一个cookie,再次访问该网站,被Director分配到到realserverRIP2),此时PC1就不再需要验证,直接可以利用其存储的cookie通过验证进行连接。多用于论坛。

Lblc :

PC1访问银行网站,为了用户安全的保障,PC1每次连接时都需要验证,不保存cookies 多用于银行。

ipvsadm -A -f 33 -s rr  lblc #lblc调度算法,PC1连接realserver1,过些时间PC1再次访问,则director会让他优先选择他以前连接过的realserver1PC2请求连接时,Director会分配realserver2给它

 

阅读(1906) | 评论(0) | 转发(0) |
0

上一篇:LVS之IPVS之二

下一篇:VSFTP的一些配置

给主人留下些什么吧!~~