服务器 频道

负载均衡实战之一:lvs 核心ipvs

  (二)lvs客户端

  Lvs的客户端指负载均衡其/转发器(director)后面提供服务的真实机器。负载均衡类型(lb_kind)一般分直接路由模式DR 、网络地址转换模式 NAT以及隧道模式TUN三种。Lvs客户端的配置是根据其所采用的负载均衡种类(lb_kind)来做相应操作的。在我们的应用环境里,为了获得最高的性能,采用的负载均衡种类(lb_kind)是直接路由模式DR。

  不管采取哪一种模式,lvs客户端都不需安装额外的软件。

  Lvs可支持的客户端包括:各种GNU/linux、大部分unix已经windows。目前我已经成功运行的lvs客户端环境有centos、redhat、freebsd、windows等。需要注意的是,由于客户端操作系统的不同,lvs客户端的配置也就各不相同了。本书中,将以centos及freebsd两种操作系统作为lvs的客户端,给出其直接路由模式DR的配置方法。

  ● lvs客户端(真实服务器)操作系统是centos时的配置文件

  [root@huludao-2 ~]# more /usr/local/bin/lvs_real

  #!/bin/bash

  #description : start realserver

  VIP=61.135.20.16

  /etc/rc.d/init.d/functions

  case "$1" in

  start)

  echo " start LVS of REALServer"

  /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up

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

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

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

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

  ;;

  stop)

  /sbin/ifconfig lo:0 down

  echo "close LVS Directorserver"

  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore

  echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce

  echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

  echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce

  ;;

  *)

  echo "Usage: $0 {start|stop}"

  exit 1

  esac

  这里对配置文件里重要的一些项进行说明:

  1、 vip(virtual ip)。直接路由模式的vip必须跟服务器对外提供服务的ip地址在同一个网段,并且lvs 负载均衡器和其他所有提供相同功能的服务器都使用这个vip.

  2、 vip被绑定在环回接口lo0:0上,其广播地址是其本身,子网掩码是255.255.255.255。这与标准的网络地址设置有很大的不同。采用这种可变长掩码方式把网段划分成只含一个主机地址的目的是避免ip地址冲突。

  3、 echo "1",echo "2" 这段的作用是抑制arp广播。如果不做arp抑制,将会有众多的机器向其他宣称:"嗨!我是奥巴马,我在这里呢!",这样就乱套了。

  ● lvs客户端(真实服务器)操作系统是freebsd时的配置文件

  fav1# more /usr/local/bin/lvs_real_bsd

  #!/usr/local/bin/bash

  #description : start realserver

  VIP=61.135.20.16

  case "$1" in

  start)

  echo " start LVS of REALServer"

  /sbin/ifconfig lo0 $VIP  netmask 255.255.255.255 alias -arp up

  ;;

  stop)

  /sbin/ifconfig lo0 alias down

  echo "close LVS Directorserver"

  /sbin/ifconfig lo0 127.0.0.1 arp up

  ;;

  *)

  echo "Usage: $0 {start|stop}"

  exit 1

  esac

  在这里,我们同样对这个配置脚本的某些项进行说明:

  1、vip地址设置和arp抑制用 /sbin/ifconfig lo0 $VIP  netmask 255.255.255.255 alias -arp up

  这么一行就实现了。

  我们把这两种操作系统的lvs客户端做个比较,发现freebsd的配置书写上要简洁一些,是不是可以认为freebsd的网络功能比linux强大呢?

 

3
相关文章