发新话题
打印

X系列计算机的网卡捆绑

X系列计算机的网卡捆绑

X系列计算机的网卡捆绑

微机集群技术Myrinet,Qsnet等技术大家都听说过。

但是不是很实用。听说平均2000美元/端口,真是令人生畏!

自从2000年上半年linux官方的2.2.14版本的内核开始就直接支持网卡捆绑技术。

这一技术改善了微机的通信瓶颈问题!

没有经验的兄弟,请不要慎重尝试~~


我在这里使用的是SUSE linux 7.2.

你可以使用FreeBSD或OpenBSD 4.4release kernel以上,SunUnix与Aix(不建议使用)。

大家也可以使用redhat7.1以上。(我不太喜欢redhat! 太笨~)

用3个网卡.建议用名牌。

一个NIF,2个捆绑,
NIF是192.168.1.* 255.255.255.0

BONDING 的虚拟网卡 是192.168.2.* 255.255.255.0
BONDING MAC地址与虚拟2块网卡中的第一块MAC地址一样~!

如果eth0,eth1已经激活,先停用。
命令:
# ifconfig eth0 down
# ifconfig eth1 down

先安装好网卡,然后做简单的配置,目的是给予网卡命名。
eth0,eth1,eth2......

在/etc/rc.d/建立bonding脚本文件。
内容如下:
/etc/rc.d# cat bonding (命令)
#!/bin/sh
ifconfig eth0 down
ifconfig eth1 down
host= hostname | cut -c3-4
/sbin/modprobe bonding
/sbin/ifconfig bond0 192.168.1.$host netmask 255.255.255.0 broadcast 192.168.2.255 up
/sbin/ifenslave bond0 eth0
/sbin/ifenslave bond0 eth1

初步解释:
1 hostname 探测本机名,然后选择本机3,4位的数字。

2 ifconfig bond0 设置虚拟网卡。 虚拟网卡的 IP 是192.168.2.$host(上行hostname所得)

3 ifenslave 将网卡命名为eth0 eth1 的网卡绑定到bond0上去。

4 如果你不想启机就虚拟Bond0的话。
去掉:
ifconfig eth0 down
ifconfig eth1 down

绑定后,我们用/sbin/ifconfig查看。
>/sbin/ifconfig (查看上面的配置是否正确显示,应该第一行就是bond0 ****什么什么。。)

你应该明白,eth0,eth1现在已经被绑定成bond0 而eth2另外有用途,即NFS。
bonding设备的MAC地址从它的第一个捆绑上去的网卡来得到。
只有bonding设备停止,Mac地址才会改变。

如果确认正确,那么你是否考虑在启动时自动捆绑,在运行级别3的启动目录/etc/rc.d/rc3.d中,
建立一个S06bonding的连接,指向这个文件。
命令:
# ln -s ../bonding s06bonding
# ls -l s06bonding

劝告一句:最好别在这台机器经常使用运行级别5。

最后,执行chmod +x bonding 使 bonding 文件执行!

还需要给bonding命令一个别名,bond0,即在/etc/modules.conf中
命令:
cat modules.conf | more

加一行:
alias bond0 bonding

需要重新编译内核,确保Bonding driver support作为模块编译,
在 "network device support"项目中,选定Bonding driver support这一项为手动。



内核编译步骤:(写的比较简略,此部分如有疑问,请参见www.X-server.com

1 先复制原内核选项。放在/usr/src/linux/.config文件中。
复制该文件成比如/boot/linux-2.4.**.**.config.

2 下载新kernel 或 patch 的rpm包。
如直接用rpm包(下载linux官方的kernel)有可能与SuSE 或 Redhat 等的内核产生冲突,需要做些准备。

3 删除/usr/scr/目录的linux连接。
用ls -l 命令看linux这个目录是不是个连接,指向linux-2.4.10.suse这个目录。
删除这个连接。

命令: rm linux

4 用rpm工具安装内核的原文件。

命令:rpm -ivh kernel-source-2.4.16.SuSE-24.i386.rpm

如果版本与冲突,我的做法是强制安装,呵呵~~~!
幸好每次我强制安装都成功,没失败过。

命令: rpm -ivh --force kernel-source-2.4.16.SuSE-24.i386.rpm

可以看到,已经建立起linux连接,指向linux-2.4.16.SuSE目录。

5 选择内核模块。
进入/usr/src/linux目录

执行:make menuconfig

也许需要装ncurses-devel包。 -可能行小,不做解释了。

6 接下来重新编译内核和模块。
先用 make clean 清除原来目标文件。
再执行make dep,最后make bzImage重新编译内核。

具体命令:
make clean
make dep
make bxImage

也可以另起名到/boot目录下。
具体做法是:
mv arch/i386/boot/bzImage /boot/bzImag.2.4.16

然后用make modules重新编译模块,并用make modules_install安装模块。
具体做法是:
make modules
make modules_install

7 最后修改引导记录使引导时可以选择装入重新编译好的内核。
即在/etc/lilo.conf文件加入新内核的选项。
具体做法是编辑/etc/lilo.conf,使增加如下内容:
image = /boot/bzImage.2.4.16
label = linux-p4
root = /dev/hda2
initrd = /boot/initrd

注意:最好别删原来的引导。

最好你以前做过编译内核的事,
要是看我写的这个可能看的不是很明白。

TOP

咋一看标题还没有明白是什么意思,看内容才知道是多网卡绑定(bond)技术。
不过你贴出来的帖子古老了点。
目前这个技术已经很成熟了,在很多项目实施中已经用到了这个技术。但是需要考虑一点的是当网卡发生切换时,ARP的更新速度如何?这和联接的交换机有一定的关系。

TOP

发新话题