负载均衡集群配置过程详解

在生产环境中,一台机器的性能再好,也不可能抵挡住上万人的同时访问。这就需要我们搭建集群来减轻单一主机的压力,同时还可以提升服务的速度和质量。

LVS-NET负载均衡集群:

NET模型的基本配置:

NET模型需要一个director和至少两个realserver来提供集群服务,其大致工作原理如图所示:

Director有两块网卡,其中VIP指向外网,DIP指向内网。用户访问时访问的是director,也就是一个集群服务。但是用户并不知道自己访问的是一个集群服务,用户看到的只是director通过VIP提供的服务,所以用户在发送请求时其目标IP指向的是VIPVIP在接收到用户请求之后通过指定的算法将请求通过DIP转发给realserverrealserver得到请求报文之后会在最短的时间内处理并将报文回传给DIPDIP再将响应报文转交给VIPVIP将响应报文送还给用户。

下面是用NET模型提供web服务的配置过程:

配置环境:使用VMware虚拟机,Director和两个realserver的系统均为RHEL5.8

主机配置:Director主机配置两块网卡,realserver配置一块网卡;Director一块网卡指向外网,选择Bridged;指向内网的网卡选择Hots-Only。两个realserver的网卡也选择Host-Only

首先为Director提供两块网卡,其中一块用来当做VIP网卡使用,指向外网地址。

配置VIP地址为:172.16.125.1; DIP网卡地址指向内网,地址为:192.168.125.1

realserver 1地址为192.168.125.3realserver 2地址为192.168.125.4。将两个realserver的网关指向192.168.125.1

做集群最重要的是realserver之间的时间间差不能超过1秒钟,可以使用ntpdate 192.168.125.1来让realserver的时间与Director同步。realserver上的ntpdate服务要实现停止才可以同步。

Director中开启本地路由转发功能,可以使用命令# echo 1 > /proc/sys/net/ipv4/ip_foeward 来实现。

查看Directoripvsadm包是否安装,没有安装的话可以使用yum安装。安装后为ipvsadm添加调度规则。

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

# ipvsadm -a -t 172.16.125.1:80 -r 192.168.125.3 -m

# ipvsadm -a -t 172.16.125.1:80 -r 192.168.125.4 -m

realserver提供web服务,可以利用yum直接安装使用,为realserver 1 提供网页在/var/www/http/下命名为index.html,内容为了测试为host2.earl.com。为realserver 2 提供网页在/var/www/http/下命名为index.html,内容为host3.earl.com。启动两个realserverhttpd服务,在本地的物理机上就可以测试了。

以下为网页访问效果:

realserver 1

realserver 2

LVS-DR模型的基本配置:

DR模型总体上来说和NET模型没有什么区别,只是将所有的请求报文交给Director处理,Director不再处理响应请求,响应请求直接由realserver交给路由器转发回Client。这样可以减轻Director的压力,提高报文响应的速度。但是用户请求的是目标IPVIP,如果RIP直接响应给用户的话,用户发现没有对此IP发送请求,是不会接收的。所以我们还必须用VIP的地址来响应给用户。可是VIP不处理响应报文,这里就用到了网卡的别名。可以给RIP的网卡定义一个别名,将其地址设为VIP的地址。由于是网卡的别名,是隐藏的地址,所以不会发生IP冲突。一般情况下别名的地址是不用来通信的,只用来响应用户的请求的集群服务。

配置环境:VMware Workstation 9.0

系统环境: RHEL 5.8

我们可以使用上边的NET模型中的三台虚拟机,只是要添加一台虚拟机当做路由器来进行转发功能。

配置路由IP地址:

内部路由接口:192.168.125.20

外部路由接口:172.16.125.10

realserver要使用VIP的地址直接响应给用户的,所以给realserver的网卡配置上别名,不过在这之前将其RIP的网关指向路由设备使其能够到外网中去(别忘了查看时间同步)

修改网关之后要修改内核参数,然后定义别名,并给别名添加路由条目(一定要先修改内核参数,然后在定义别名)

Realserver1Realserver2的步骤完全相同:

# echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce

# echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

# echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore

# ifconfig eth0:0 172.16.125.1 netmask 255.255.255.255 broadcast 172.16.125.1

# route add -host 172.16.125.1 dev eth0:0

配置Director

DirectorVIP提供一条跟RIP的别名相同的路由条目

# route add -host 172.16.125.1 dev eth0

清空NET是用的ipvsadm规则,并重新制定规则

# ipvsadm -A -t 172.16.125.1:80 -s wlc

# ipvsadm -a -t 172.16.125.1 -r 192.168.125.3 -w 1

# ipvsadm -a -t 172.16.125.1 -r 192.168.125.4 -w 1

最后重启realserverDirector的网络服务,就可以测试了。

以上便是两种LVS的负载均衡集群配置全过程。


你可能感兴趣的:(net,DR)