Linux实现双网卡负载均衡详解

一、 游戏服务器:
   1、配置:
         Intel双核CPU、
         2GB667内存、
         SCSI146GB硬盘*2   ( 硬盘转速:15000转/s)装游戏+80GBIDE
         Intel 800003ES2LAN Gigabit Ethernet 千兆网卡*2 (板载)
         显卡板载

   2、操作系统:Red Hat Enterprise Linux AS5
               内核:kernel 2.6.18-8.e15

         IDE80GB,专门存放linux操作系统、2个SCSI硬盘组硬阵列

二、PC机:
   1、配置:
         AM2 4000+、
         1GB667内存、
         串口160GB硬盘、
         GF7600GT显卡、
         Realtek RTL 8169/8110千兆网卡
   2、操作系统:Windows XP Service Pack2
         IE补丁截止日期:2007年11月8日

三、网络环境:
   1、主交换、分交换,全部华为3C全千兆交换机
   2、网线,全部超六类千兆网线,不过水晶头有点次,用的是百兆水晶头.   -_-..#
   3、网线做法:586B

实现负载均衡方法:
第一步、编辑虚拟网络接口配置文件。
       建立 /etc/sysconfig/network-scripts/ifcfg-bond0 文件
       内容如下:
       DEVICE=bond0
       IPADDR=192.168.0.253
       NETMASK=255.255.252.0
       BROADCAST=192.168.0.255
       NETWORK=192.168.0.253

第二步、编辑真实网卡的配置文件(建议修改之前做好备份)(我这里两块网卡,故只要做以下几步就可以了)

     1、编辑eth0网卡
       vi /etc/sysconfig/network-scripts/ifcfg-eth0
       内容如下:
       DEVICE=eth0
       BOOTPROTO=none
       TYPE=Ethernet

       MASTER=bond0
       slave=yes


     2、编辑eth1网卡
     vi /etc/sysconfig/network-scripts/ifcfg-eth1
     内容如下:
     DEVICE=eth1
     BOOTPROTO=none
     TYPE=Ethernet

     MASTER=bond0
     slave=yes

(   注意:真实网卡不能再设置ip地址了,按需要把所要绑定的真实网卡都按这个设置,主要是MASTER=bond0 和 slave=yes 一定不要弄错(简单的方法就是修改一个然后拷贝再修改   )

第三步、修改 /etc/modprobe.conf 文件加入如下两行:(建议做好备份)
     alias bond0 bonding
     options bond0 miimon=100 mode=1

(   注:1、miimon 是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。
         2、mode=0 表示负载均衡方式,两块网卡都工作。 mode=1 表示冗余方式,网卡只有一个工作,一个出问题启用另外的。)

第四步、在 /etc/rc.d/rc.local 加入如下一行(启动时执行此行命令)
       ifenslave bond0 eth0 eth1

第五步、重新启动后负载平衡已经能正常工作。

------------------------------------------------------------------------------------------------------------------------------------------------------
   测试结果:
一、Linux游戏服务器测试速度:
1、硬盘检测:
[root@ecofe2 ~]# fdisk -l
Disk /dev/hda: 80.0 GB , 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot       Start         End       Blocks   Id   System
/dev/hda1   *           1         637     5116671   83   Linux
/dev/hda2             638         892     2048287+   82   Linux swap / Solaris
/dev/hda3             893         9729     70983202+   83   Linux
Disk /dev/sda: 291.9 GB , 291999055872 bytes
255 heads, 63 sectors/track, 35500 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot       Start         End       Blocks   Id   System
/dev/sda1   *           1       35500   285153718+   83   Linux

2、读写速度:
[root@ecofe2 ~]# hdparm -tT /dev/hda
/dev/hda:
Timing cached reads:   7480 MB in   2.00 seconds = 4733.86 MB/sec
Timing buffered disk reads:   156 MB in   3.01 seconds = 51.75 MB/sec

[root@ecofe2 ~]# hdparm -tT /dev/sda
/dev/sda:
Timing cached reads:   9476 MB in   2.00 seconds = 5519.36 MB/sec
Timing buffered disk reads:   740 MB in   3.00 seconds = 246.40 MB/sec


二、客户机下载速度:
   1、采用 mode=1 模式,接任意一张网卡,
       用客户机下载容量为7.62GB的《魔兽世界》,下载速度是最低30MB/s,最高57MB/s,平均50MB/s

   2、采用 mode=0 模式,接一根网线到任意一张网卡,或者接两根网线到两张网卡,
       用客户机下载容量为7.62GB的《魔兽世界》,下载速度是最低20MB/s,最高45MB/s,平均30MB/s

   3、一头采用568B做法,另一头采用采用1-3、2-6、4-7、5-8线对调,并且采用千兆水晶头,再采用 mode=1 模式,接任何一张网卡
       用客户机下载容量为7.62GB的《魔兽世界》,下载速度是最低45MB/s,最高60-61MB/s,平均55MB/s

你可能感兴趣的:(linux,职场,休闲)