Ubuntu上配置LVS DR模式 + Keepalived

在Linux下,LVS是一个比较有用的工具,配合keepalived软件,可以组建一个高性能高可靠的服务器群集,为用户提供稳定的服务,这篇文章将详细探讨LVS DR+keepalived的搭建方式。

首先,拓扑图如下:

Ubuntu上配置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,未经证实过)。

 

第三步,配置LVS】

LVS在第一步的时候已经安装过了,现在只需要配置即可。

在两台director上使用如下命令:

$sudo ifconfig eth0:0 192.168.11.10 broadcast 192.168.11.10 netmask 255.255.255.255 up

$sudo route add -host 192.168.11.10 dev eth0:0

$sudo echo "1" > /proc/sys/net/ipv4/ip_forward

$sudo ipvsadm -C

$sudo ipvsadm -A -t 192.168.11.10:80 -s rr

$sudo ipvsadm -a -t 192.168.11.10:80 -r 192.168.11.21:80 -g

$sudo ipvsadm -a -t 192.168.11.10:80 -r 192.168.11.22:80 -g

$sudo ipvsadm

$sudo sysctl -p需要特别注意的是:在LVS的NAT模式中,ip_forward是关闭的,而在LVS的DR模式中,ip_forward是打开的。

这个命令可以做成启动脚本,写到/etc/rc.local中去,这样的话,就不用在每次开机之后都手工再输一遍。

【第四步,配置Real Server】

在两台www服务器上,分别配置如下命令:

$sudo ifconfig lo:0 192.168.11.10 broadcast 192.168.11.10 netmask 255.255.255.255 up

$sudo route add -host 192.168.11.10 dev lo:0

$sudo echo "1"> /proc/sys/net/ipv4/conf/lo/arp_ignore

$sudo echo "2"> /proc/sys/net/ipv4/conf/lo/arp_announce

$sudo echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore

$sudo echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

$sudo sysctl -p这一步骤中,配置ARP是必须的工作,可参考这个链接:http://www.linuxidc.com/Linux/2012-05/60950.htm

【第五步,验证】

在Client机器上,访问http://172.16.2.13,如果可以打开预先在nginx中定义好的网页,则配置成功,由于配置的是简单的轮询(rr),等上一段时间,等TCP连接关闭了之后,再次打开,就会发现访问到的是不同的www服务器。

关闭掉director1,www访问应该不受影响。

关闭掉www2,www访问也应该不受影响。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值