Linux下双网卡绑定技术实现负载均衡和失效保护

 对于bonding的网络 负载均衡 是我们在文件服务器 中常用到的,比如把三块网卡 ,当做一块来用,解决一个IP地址,流量过大,服务器 网 络压力过大的问题。对于文件服务器来说,比如NFS或SAMBA文件服务器,没有任何一个管理员会把内部网的文件服务器的IP地址弄很多个来解决网络负载 的问题。如果在内网中,文件服务器为了管理和应用上的方便,大多是用同一个IP地址。对于一个百M的本地网络来说,文件服务器在多个用户同时使用的情况 下,网络压力是极大的,特别是SAMABA和NFS服务器。为了解决同一个IP地址,突破流量的限制,毕竟网线和网卡对数据的吞吐量是有限制的。如果在有 限的资源的情况下,实现网络负载均衡,最好的办法就是 bonding ;

  另一种情况就是服务器的一个网卡失效或者网络连接意外断开,如果做了bonding就可以切换到另一个网卡的网络连接上.保证服务的不中断.

  详细的资料可以参考:
  http://www.linux-foundation.org/en/Net:Bonding#Configuring_Multiple_Bonds_with_sysconfig

  下面试验一下热备模式.

  首先要看linux是否支持bonding,RHEL4已经默认支持了.(大部分发行版都支持)

  # modinfo bonding

  filename:       /lib/modules/2.6.18-8.el5/kernel/drivers/net/bonding/bonding.ko

  author:         Thomas Davis, [email protected] and many others

  description:    Ethernet Channel Bonding Driver, v3.0.3

  version:        3.0.3

  license:        GPL

  srcversion:     2547D22885C2FDF28EF7D98

  如果有类似上面的信息输出,说明已经支持了.

  如果没有,说明内核不支持bonding,需要重新编译内核

  编译内核的步骤这里就不多写了,在make menuconfig里面

  找到Bonding driver support这样的对话框,选中它.

  如果是模块编译,还需要挂载模块.挂载bonding 模块的方法;
 
  [root@localhost#] modprobe bonding

  如果/sbin/ifenslave没有,我们还需要把它也单独编译出来

  [root@lin:/home/beinan#] cd /usr/src/linux-2.6.20/Documentation/networking

  [root@lin:/home/networking#] gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux-2.6.20/include ifenslave.c -o ifenslave

  [root@lin:/home/networking#] cp ifenslave /sbin/ifenslave

  1.编辑虚拟网络接口配置文件,指定网卡IP 

  没有这个文件我们可以从以前的配置文件复制一个过来,减少输入的文字. 

  #cd /etc/sysconfig/network-scripts/

  #cp ifcfg-eth0 ifcfg-bond0

  #vi ifcfg-bond0 

  将第一行改成 DEVICE=bond0
 
  # cat ifcfg-bond0

  DEVICE=bond0

  BOOTPROTO=static

  IPADDR=192.168.1.200

  NETMASK=255.255.255.0

  BROADCAST=192.168.1.255

  ONBOOT=yes

  TYPE=Ethernet

你可能感兴趣的:(应用服务器,linux,gcc,网络应用,配置管理)