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
注意:最好别删原来的引导。
最好你以前做过编译内核的事,
要是看我写的这个可能看的不是很明白。