RedHat在 9.0以后,就将ipvsadm这些套件去除,因此如果想使用LVS(Linux Virtual Server),就得自己重新编译核心(kernel),而编译核心是一件穷极无聊的事情, 不管是make menuconfig、make xconfig、make config,触目所及都是一堆不是很懂的驱动程序,本文利用一些技巧,将compile kernel变得比较简单,但是如果你有一些不常见的硬设备,请自己想办法Compile,或者利用linux的load module功能自行将该硬件的驱动程序加载进kernel。
Redhat 8.0选择完整安装时,预设已经会支持ipvs,但是他却不支持-NOARP这个网络卡设定选项,因为没有这个-NOARP选项,则LVS无法在同一个网段内设定LVS/DR与LVS/IP Tunnel,会遭遇ARP Problem,所以只好重新编译核心,顺便将kernel更新至比较新的版本,另外RedHat 8.0上比较新的核心,预设不支持ipvs。
首先简单介绍一下LVS到底是什么东西,其实他是一种丛集(Cluster)的技术,透过支持IPVS的kernel,来达到LVS/Direct Routing (DR)、LVS/IP Tunnel、LVS/NAT的功能,详细内容请看LVS官方网站。而这些技术有什么用呢?其实就是拿来当成High Availability软件,Unix大厂SUN、HP、IBM、SCO等等都有提供这类的软件,但是都要很多钱,而我们没什么钱,只好用Open Source,而Open Source的好处,就是可以达到类似的功能,但不需要花钱。
PART I :编译核心
1、首先安装RedHat 8.0
选择全部安装。关闭一些不用的Service与并将vsftp激活。即着手进行kernel的重新编译,此时的kernel版本为2.4.18-18.4。
2、下载oprofile
首先上google找寻oprofile版本要大于0.4的,因为在安装kernel 2.4.20-18.8.rpm的时候会需要这个rpm,如果找不到rpm,就搜寻oprofile-0.4-xx.src.rpm。
2.1、安装oprofile
# rpm -ivh oprofile-0.4-44.8.1.src.rpm
# cd /usr/src/redhat/SPECS
# vi oprofile.spec 将(BuildPreReq: kernel-source >=2.4.20)用# mark起来
# rpmbuild -bb oprofile.spec
# cd /usr/src/redhat/RPMS/i386/
# rpm -ivh oprofile-0.4-44.8.1.i386.rpm(安装oprofile)
3、安装内核
安装kernel 2.4.20-18.8的kernel,上http://ftp.nsysu.edu.tw/Linux/RedHat/updates/抓取kernel-2.4.20-18.8的rpm核心,因为我测试环境有三部,一部是我的notebook (P4 CPU、512MB RAM),一部是有4GB RAM与两颗CPU(PIII 700)的机器,一部是有1GB RAM与两颗有hyper threading P4 CPU的计算机。所以我总共抓了三个RPM,分别是
kernel-2.4.20-18.8.i686.rpm 02-Jun-2003 23:34 13.3M
kernel-bigmem-2.4.20-18.8.i686.rpm 02-Jun-2003 23:34 13.9M
kernel-smp-2.4.20-18.8.i686.rpm 02-Jun-2003 23:34 13.9M
然后在各部机器上先安装上述RPM:若不清楚倒底要用那个,可以用uname -r
2.4.20-18.8bigmem (就用bigmem的版本)
#rpm -ivh kernel-2.4.20-18.8.i686.rpm
检查grub(/boot/grub/grub.conf)或lilo(/etc/lilo.conf)的设定是不是正确?
如果正确,就重新激活机器(shutdown -i 6 now),用2.4.20-18.8开机,检查有无错误。
http://netadmin.77169.com/HTML/20040615182900.html