当前位置:操作系统 > Unix/Linux >>

RedHat8.0/9.0LVS安裝手冊

作者:apile(apilecheng@yahoo.com.tw)

  完成日期:2003/08/04

  附注:欢迎传阅转寄,并希望可以保留原作者名字

  1、前言:

  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的好处,就是可以达到类似的功能,但不需要花钱。?

  以下安装内容主要参考下述网页,非常感谢这些提供基本知识的人,如果你不清楚LVS是什么,看看下面文章,可以有个头绪顺便练练基本的功夫,以免后面的内容你完全不晓得我再写什么。

  http://linux.vbird.idv.tw/ 鸟哥的Linux私房菜(Linux基本常识)

  http://www.adj.idv.tw/server/linux_lvs.php 在RedHat 7.3上架设LVS

  http://www.linuxvirtualserver.org/ LVS的官方网站

  http://www.zzzyk.com/articles/2/0/202490941.shtml LinuxAid说明(上)

  http://www.zzzyk.com/articles/8/0/807154206.shtml LinuxAid说明(下)

  http://mail.incredimail.com/howto/lvs/install/ Alex的网站,重要的patch都从这儿抓取

  附带一提:

  如果你参考Linux Virtual Server的官方网站上的作法,我在REDHAT 8上编译了十多次的kernel也作不出来,后来发现是因为RedHat在kernel-2.4.20-19.8的source中将ipvs的程序代码拿掉,且CIPE版本也不对。

  目前最适合拿来当Linux Virtual Server的RedHat版本为7.3,其它的都不是很stable,有兴趣可以用google查查看。

  下列方法适用于2.4的kernel,主要在Redhat 8.0上使用,但是RedHat 9.0应该也差不多。

  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开机,检查有无错误。

  4、安装内核源码

  然后上http://www.redhat.com 抓取kernel-source-2.4.20-19.8.i386.rpm这个kernel的核心。利用

  # rpm -ivh kernel-source-2.4.20-19.8.i386.rpm

  安装,他会建立两个目录:

  /usr/src/linux-2.4.20-19.8 (directory)

  /usr/src/linux-2.4->/usr/src/linux-2.4.20-19.8 (Symbolic Link)

  但是我们还要另外建立一个symbolic link

  #ln -s ./linux-2.4.20-19.8 ./linux

  因为等会要上ipvs patch的时候,他一定会link到/usr/src/linux这个目录,所以要另外建立这个Soft Link。

  5、因为我们先前有安装过2.4.20-18.8的rpm文件,所以在/boot目录下,可以找到

  -rw-r--r-- 1 root root 44764 5月 29 19:49 config-2.4.20-18.8

  这个档案,将这个档案copy至/usr/src/linux/.config

  # cp /boot/config-2.4.20-18.8 /usr/src/linux/.config

  因为等会我要利用make oldconfig去作…他default会去读取/usr/src/linux/.config这个file

  注意:这就是我所说的技巧,因为我先前用make config、make menuconfig选取那些modules,但是因为数量实在太多,看得眼花撩乱,而且选完不知道为什么总有一两地方有问题无法compile成功,无意间被我发现2.4.20-18.8的config档案与2.4.20-19.8的config档案一模一样,加上kernel的README中又有写 make oldconfig会去读取,.config这个档案,所以我才会想到用这个方法或许可行,因为2.4.20-18.8都可以正常激活机器了,不可能用相同的config 档案,2.4.20-19.8就无法激活。其它版本,应该也差不多,先安装一个差不多版本的kernel,再用他的config去重新compile支持 ipvs的kernel。
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,