在Linux下,LVS是一个比较有用的工具,配合keepalived软件,可以组建一个高性能高可靠的服务器群集,为用户提供稳定的服务,这篇文章将详细探讨LVS DR+keepalived的搭建方式。
首先,拓扑图如下:
如图所示,这个拓扑很简单,这里做一下简单介绍:
1. 一台Client,IP配置为172.16.2.7/24;
2. 一台路由器Router,2块网卡,外网IP配置为172.16.2.13/24,内网IP配置为192.168.11.2/24,路由器上开启了NAT功能,将外部的TCP 80端口映射到了内网的192.168.11.10:80上(这个后便会介绍);
3. 一台交换机Switch,纯2层,所以可直接忽略;
4. 两台LVS director服务器(director1和director2),IP地址分别为192.168.11.11/24和192.168.11.12/24,这两台director将运行keepalived,虚拟出一个IP地址:192.168.11.10(这个IP地址正是NAT端口转发的目的地址);
5. 两台www服务器(www1和www2),IP地址分别为192.168.11.21/24和192.168.11.22/24,均安装了nginx提供web服务。
6. 所有的服务器均安装Ubuntu 10.10 Server版。
【第一步,安装LVS和keepalived】
在两台director服务器上,分别安装LVS和keepalived软件,使用命令:
$sudo apt-get install ipvsadm安装keepalived,使用命令:
$sudo apt-get install keepalived【第二步,配置keepalived】
装完之后,在/etc/keepalived目录下建立keepalived.conf文件,写入配置文件如下:
# Global Configuration
global_defs {
lvs_id director1
}
# VRRP Configuration
vrrp_instance LVS {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.11.10
}
# Virtual Server Configuration - for WWW service
virtual_server 192.168.11.10 80 {
delay_loop 1
lb_algo rr
lb_kind DR
persistence_timeout 60
protocol TCP
# Real Server 1 configuration
real_server 192.168.11.21 80 {
weight 3
TCP_CHECK {
connection_timeout 10
nb_get_retry 3
delay_before_retry 3
}
real_server 192.168.11.22 80 {
weight 1
TCP_CHECK {
connection_timeout 10
nb_get_retry 3
delay_before_retry 3
}
}
}
同样,在director2上也要做这个文件的配置,只是红色标记的部分需要注意,director1改为director2,MASTER要改为BACKUP,virtual_router_id,主从上边的ID都要保持相同(51),priority,director1上为150,director2上应保持比它小(一说要小50,未经证实过)。
这个配置文件中,virtual_server部分是集群面对外部访问时的一些参数,比如服务器轮询算法,这里用了最简单的rr,长连接超时设置为60秒,real_server就是用来定义那两台真实服务器的,可以设置权重weight,重试次数等。其他还有很多参数,可以参考一本中文的手册叫《Keepalived权威指南》 见
或者查看Keepalived的官方文档,下载地址:
具体下载目录在 /2012年资料/5月/23日/Ubuntu上配置LVS DR模式 + Keepalived/