Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33513
  • 博文数量: 12
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 165
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-02 21:50
文章分类

全部博文(12)

文章存档

2011年(1)

2009年(11)

我的朋友

分类: 系统运维

2009-04-04 11:25:25

最近几天都做VMware+Redhat9环境的LVS,今天终于成功了!hehe。参考了网上很多做法,走了不少弯路,因此想写篇文章记录一下这几天的工作。

   一开始参考的文章是《RedHat9实现集群负载均衡系统LVS》,发现在 mkinitrd /boot/initrd-2.4.20ipvs.img 2.4.20  报错,网上查了一下是因为make menuconfig 时少选了SCSI的支持(因为WMware用的是SCSI硬盘),于是乎加上:

SCSI support->SCSI low-level drivers->BusLogic SCSI support,选y
         Fusion MPT device support-> Fusion MPT(base_scsihost) drivers ,选y
Fusion MPT device support-> Fusion MPT misc device(ioctl) driver,选m
File systems->Ext3 journalling file system support选m
File systems->JBD(ext3)debugging support选y

    结果编译内核通过。但是启动时又报错 ... root .../LABEL...等等,上网查得“只有使用RedHat内核,才能使用LABEL/语法来指定根文件系统。如果编译的是常用内核,则必须指定根分区设备名称”。于是用df命令查得根的分区是/dev/sda2,修改/boot/grub/grub.config 将新加入的内核的root=/dev/sda2。终于可以用新内核启动了,但是启动时有一大堆[Failed]。
    启动后,用lsmod命令查看当前的内核加载的模块,发现只有ext3和jbd。而原先的内核加载了20多个模块。想来想去感觉怪怪的。最起码在VMware环境中没有vmxnet模块是上不了网的,那又如何实现负载均衡呢?

    又经过几天的折腾,发现参考的文章《RedHat9实现集群负载均衡系统LVS》有个地方没有说清楚,导致我走了这么多弯路。文中说道:

#make mrproper        去除如有上次已编译的*.o文件,如不去除就不会被再次编译

但是它在此之前又运行了:

# cp /boot/config-2.4.*   /usr/src/linux/.config

把安装时的配置文件copy /usr/src/linux 中,再用make menuconfig 编译,它会读取.config 中原来的配置信息,这样只要对IP:Virtual ServerConfiguration中的新选项选择即可。

    发查看手册发现make mrproper命令,会在源代码树的顶层擦除.config文件。这就导致了,前一步拷贝原来的配置文件被擦除了,而下一步的make menuconfig命令,又会生成新的.config文件。新生成的配置文件带有内核的默认配置,其实只有很少几个模块被选择了,这就是开机时一大堆[Failed]的原因。因为缺少模块嘛!

    其实看看RadHat9中/boot/config-2.4.20-8发现它选择了很多要用到的模块,只是刚才拷贝后又被make mrproper给重写了,于是去掉make mrproper,一切OK!

    make mrproper用于安装新内核,而不是升级或给内核打补丁。

    另外,make moudels_install之后可以直接make install,就不用手动加载新内核了。

    还差一点,就是发现新的内核不能上网,这又是VMware特有的问题了。

----------------------------------------------------------------------------------------------

   RedHat9默认的网络模块只有pcnet32,而VMware中需要vmxnet模块才能上网。重新安装VMwareTools(就是如果以前内核中安装过的话,需要卸载后再安装)。安装后再执行:

#service network stop

#rmmod pcnet32

#rmmod vmxnet

#modprobe vmxnet

#service network start

(貌似要把这段文本加入/etc/rc.d/rc.local中,以免每次启动系统时都要敲一遍。)

一切原来就这么简单,hehe

    如果你的/boot目录下找不到config-2.4*文件,可以之。

阅读(649) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~