现在的企业服务器,基本上都安装了磁盘阵列,然后通过网卡向网络提供服务,数据在服务器和用户之间传输流程如下图:
 p_w_picpath
存放在服务器磁盘阵列的数据,响应用户的数据请求,从磁盘阵列读取到磁盘阵列卡,然后数据从磁盘阵列卡通过系统总线传输到网卡(当然途中会经过内存,只是内存的带宽远比磁盘阵列卡的大),从网卡传输到传输介质,再从传输介质到网络连接设备,最后从网络连接设备进行分流传入众用户。而用户存放数据到服务器,这个流程只要逆向就可。(带宽:带子的宽度,带子越宽,速度越快,汗!带宽指通道的最大数据传输能力。)
在这个流程中的各类硬件设备,根据情况可有多种选择。
典型上,我们最常用设备的数据传输流程图如下:
p_w_picpath
在这个传输流程中,服务器端,使用磁盘阵列就可以提高数据的吞吐量,根据需要可增加磁盘数量来提高数据的吞吐量,这个环节瓶颈不大,一般单块SAS硬盘实际平均读写速率可达到100MB/s,8块RAID0阵列,速度差不多能达到800MB/s;从阵列卡到系统总线,一般阵列卡如SAS用的是PCI-X,133MHz,64bit,那它的带宽=64/8*133*1000*1000/1024/1024=1014.7MB/s,这个阵列卡的带宽完全能胜任,从系统总线到网卡,一般多以单1000MB/s网卡为主,好一点的主板上有双千兆网卡绑定,虽然万兆网卡也有,但那价格抵买一台服务器了(7-9万RMB),成本太高。
看起来单1000M网卡的速度和PCI-X的带宽1014.7M差不多,若这样认为其实就大错特错了,因为此兆非彼兆也,网卡的1000M是指1000Mbps,指每秒钟传输1000M个位,这里小写的b指的是bit(位),而PCI-X的带宽1014.7MB/s,是指每秒钟传输1000M个字节,这里大写的B指的是byte(字节),地球人都知道1byte=8bit,所以1000兆网卡它的传输速率只有1000/8=125MB/s,这下看出问题了吧,磁盘阵列卡插的PCI-X的带宽1014.7MB/s,而输入输出的千兆网卡才125MB/s,就算是双千兆绑定,也才区区250,和尚多粥少啊,可见这里就是一个严重的瓶颈。
想必大家都知道,一般千兆网卡大多使用PCI槽,标准PCI是33MHz,32bit,它的带宽=32/8*33*1000*1000/1024/1024=
125.885MB/s,正好够千兆网卡125MB/s带宽,那百兆网卡就更可怜,只有区区12.5MB/s带宽。
在我们生活中,因口头语中把这个Mbps和MB/s都混为一谈,叫做“兆”,所以出现了不少误解,比如你家安装了1兆的宽带,上网去下载个东西,却发现它无论如何也超不过125KB/s,那个心里不平衡啊:“都说电信黑,今天尽然黑到我的头上了,可恶之极啊,不行,告他去!”,不过这回电信倒是当了个冤大头。
从千兆网卡向外传输,使用的是超五类双绞线,接到带千兆口的交换机上(或全千兆交换机),再从百兆口通过双绞线到客户机上,在这个环节,传输速率取决于网卡和交换机,因常用中大多数都是千兆网卡,骨干交换机是千兆,分流的交换机是带千兆口的百兆交换机,这里也不会出现瓶颈,因可以通过增加网络连接设备来拓展带宽。
看来,最严重的瓶颈就在网卡上。使用万兆网卡解决,当然好,但是一块万兆网卡和一台万兆交换机,它们以15WRMB左右的价格让人望而却步。而使用双千兆网卡绑定的服务器,又比单千兆网卡的服务器贵上不少,但性能提高不大,性价比太低。那有没有好的解决办法呢?当然有!最好的解决办法,也是性价比最高的解决办法,就是实现网卡阵列。现在百元左右的千兆网卡比比皆是,而一般5U的机架式服务器都有5个左右的PCI插槽,再加服务器原来的一个千兆网卡,那速度就是6*125MB/s=750MB/s,能够胜任7块SAS硬盘的RAID0阵列的数据吞吐,何乐而不为?
要实现多网卡绑定,要用到一款国外网卡绑定软件,NIC Express,它可以通过绑定多块网卡以增加网络的带宽,多个网卡共用一个IP地址对外服务,提供冗余,只要有一块网卡的网路是畅通的,网络服务就能继续,在网络高负荷状态时多个网卡间做到负载均衡,但是有一点要注意,在绑定网卡时,网卡的传输速率必须相同,你不能用一个千兆网卡和一个百兆网卡绑在一起,那样阵列无法正常工作。
网卡阵列实现的拓补结构如下:
p_w_picpath
因没有千兆中心交换机及相关网络设备,现以我所在单位的无盘教室的服务器为例,介绍下网卡阵列的安装及实现。
在我单位的无盘服务器中的网卡阵列已经工作近两年,一直使用两块8139百兆网卡,外加主板集成的百兆网卡3块做成网卡阵列工作,比使用单块网卡时速度快了不少,也更稳定,对读取大文件及抗饱和读写能力比以前情况好了很多。无盘系统使用的是锐启XP无盘1.5,进行了读写分离,两块40G的ATA133硬盘组成RAID0阵列用于读,一块80G硬盘用于写,RAID0阵列的读取的平均速度在40MB/s和三块网卡阵列的12.5MB/s*3=37.5MB/s速度相近,下面正式开工。
一、首先在电脑上安装好网卡,本例中,主板集成一块8139百兆网卡,另安装两块独立8139网卡,安装好驱动后,制作三根同样长的网线(最好等长,尽量的短,但不要小于1.5米)连接三块网卡和交换机,对“网上邻居”右击选“属性”,弹出“网络连接”窗口,对本机安装的三块网卡设置好IP地址、子网掩码,(上:192.168.0.50,255.255.255.0,中:192.168.0.51,255.255.255.0下:192.168.0.52,255.255.255.0),并重新命名,以方便识别,结果如下图。
clip_p_w_picpath002
二、安装网卡绑定软件,NIC Express企业版4.0,双击NICExpressW2kEE.exe开始安装。
clip_p_w_picpath004
三、软件提示,要重新启动后再安装。
clip_p_w_picpath006
四、再一次双击NICExpressW2kEE.exe开始安装,出现的安装向导界面。
clip_p_w_picpath008
五、许可条款,按“Yes”进入下一步。
clip_p_w_picpath010
六、选择是否打开负载平衡功能,使用默认选择“Enabled”使用负载平衡功能。
clip_p_w_picpath012
七、指定安装路径,这里用默认,直接“NEXT”。
clip_p_w_picpath014
八、安装过程中会安装一些驱动,系统会给出一些警告,不用理会,全部选“仍然继续”,直到它不出来为止。
clip_p_w_picpath016
clip_p_w_picpath018
九、安装完驱动后,出现阵列配置对话框。
clip_p_w_picpath020
十、先给新阵列取个名,把New Array删除改为“8139阵列”。
clip_p_w_picpath022
十一、然后把三个网卡加入到“8139阵列”中去,先选[1]号,再单击“Add”,加入到阵列中,软件询问是否使用[1]号网卡的地址作为阵列网卡的地址,选“是”。
clip_p_w_picpath024
十二、同样的方法加入另外两块网卡,三块网卡都加入这个阵列后,如下图:
clip_p_w_picpath026
十三、弹出一个对话框,按“确定”,打开高级配置界面。
clip_p_w_picpath028
clip_p_w_picpath030
十四、把Packet Frequency(包周期)、Receive Wait Time(接收等待时间)改小一点,为:1,Wait Time From the Default也改小点,为:2,然后单击“OK”结束设置。
clip_p_w_picpath032
十五、单击“Finish”结束安装。
clip_p_w_picpath034
十六、来到网络连接,出现了一个新的“网络连接”,这就是我们的网卡阵列虚拟出来的网卡,现在电脑上的三个网卡都由它来调配,由它来统一设置,对外的IP地址、网关、DNS设置都在这个网卡上,其它三个网卡上的Internet协议(TCP/IP)已经关闭,不能再设置,这里先把它重新命名为:8139阵列。
clip_p_w_picpath036
十七、打开它的属性,里面多了几个项目:NIC Express Transport for Ethernet、DDK PACKET Protocol。
clip_p_w_picpath038
十八、双击“Internet协议(TCP/IP)”设置工作环境中需要的IP:192.168.0.50、网关:192.168.0.1、DNS:192.168.0.1,以后这台电脑对外服务的唯一IP地址就是:192.168.0.50。
clip_p_w_picpath040
十九、在开始菜单,程序中打开NIC Express自带的“NIC Express Enterprise Edition”(用来对阵列工作的详情进行监控及统计),来对这个网卡阵列的速度进行测试,看速度有没有提升。
clip_p_w_picpath042
二十、下面是在无盘教室的实际测试情况,30台无盘win2000机由5人同时开启,启动时最大传输速度达到215.08Mbits/Sec,平均速度为129.46Mbits/Sec,30台电脑从第一个按电源开关开始计时,到最后一台启动看到桌面图标止,用时42秒,比单网卡快了20秒,其中最快的一台用了23秒完成了启动。从下图可以看出,三网卡阵列远远超出了单网卡的100Mbits/Sec的速度,实为这类要求大吞吐量的文件服务器必备法宝。
p_w_picpath