<原原本本的经过,没有重新整理,请阅读本文的朋友见谅>
2004年7月22日11:42:51
★☆内核升级试验☆★
smbmount //10.42.96.28/ftp /pc -o username=pc
cd /usr/src
rm linux
tar -zvxf /pc/linux-2.4.18.tar.gz
cd /usr/src
ls //显示存在linux目录
mv linux linux-2.4.18
ln -s linux-2.4.18 linux //建立一个symbolic link
make menuconfig
--提示未安装Ncurses,在redhat7.2b中找到ncurses4-5.0-4.i386.rpm,copy到/pc
rpm -ivh ncurses4-5.0-4.i386.rpm --安装ok,cd /usr/src/linux,make menuconfig,仍报错
--从光盘中找到ncurses-devel-5.2-12.i386.rpm,copy到/pc,安装ok,仍报错
--在网上找到一篇文章提示两个包的version要一样
--下载了下面的两个包
rpm -Uvh ncurses-5.2-26.i386.rpm --升级安装ok
rpm -Uvh ncurses-devel-5.2-26.i386.rpm --升级安装ok
--仍然不行
--在提示中说gcc没装,找到下面各个包,安装
binutils-2.11.90.0.8-9.i386.rpm
CPP_2_96_98_I386.RPM
KERNEL_HEADERS_2_4_7_10_I38.RPM
glibc-devel-2.2.4-13.i386.rpm
gcc-2.96-98.i386.rpm
cd /usr/src/linux
make menuconfig --终于出现了配置菜单
make dep
make clean
make bzImage
make modules
make modules_install
cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.4.18
cp -p System.map /boot/System.map-2.4.18
mkinitrd /boot/initrd-2.4.18.img 2.4.18
--此处屡屡失败,提示没有BusLogic Module,重新make menuconfig多次无用,
--发现/lib/modules/2.4.18/kernel中竟然没什么东西,
--然后采用:
cp -R /lib/modules/2.4.7-10/kernel /lib/modules/2.4.18/
--再
mkinitrd /boot/initrd-2.4.18.img 2.4.18
--竟然生成了initrd-2.4.18.img
--修改/etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You do not have a /boot partition. This means that
# all kernel and initrd paths are relative to /, eg.
# root (hd0,0)
# kernel /boot/vmlinuz-version ro root=/dev/hda1
# initrd /boot/initrd-version.img
#boot=/dev/hda
default=0
timeout=10
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
title Red Hat Linux (2.4.7-10)
root (hd0,0)
kernel /boot/vmlinuz-2.4.7-10 ro root=/dev/hda1
initrd /boot/initrd-2.4.7-10.img
title Red Hat Linux (2.4.18)
root (hd0,0)
kernel /boot/vmlinuz-2.4.18 ro root=/dev/hda1
initrd /boot/initrd-2.4.18.img
--启动到一定地点就失败了,在4和28上均试验多次效果不大,目前在网上也没找到具体针对
--vmware中升级内核的文章
--内核设置中一些要注意的地方:
--vmware的虚拟网卡是AMDpcnet,
--scsi里要选BusLogic,这也是vmware的问题
--配置好的config文件可以保存下来备用
2004年7月27日9:58:18
--终于升级成功了!!!!!!!!!!!!
--问题还是出在config上。今日使用make oldconfig,发现其作用是保持原配置不变,新内核的
--更新则提供选择,这样就保证了不会因模块选择错误导致当机
tar xvfz linux-2.4.18.tar.gz
mv linux /usr/src/linux-2.4.18
cd /usr/src/linux-2.4.18
make mrproper
cp -p /usr/src/linux-2.4/configs/kernel-*-i686.config .config --将老配置copy到/usr/src/linux-2.4.18
make oldconfig --按此配置
make dep
make bzImage 2 > errors
make modules 2 > mod-errors
cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.4.18
cp -p System.map /boot/System.map-2.4.18
make modules_install
new-kernel-pkg --install --mkinitrd --depmod 2.4.18 --顺利生成/boot/initrd-2.4.18.img,后来发现/boot/grub/grub.conf和
--都已经被修改好了
--下面解压查看/boot/initrd-2.4.8.img
mkdir /mnt/initrd
gzip -dc /boot/initrd-2.4.8.img > /tmp/initrd.img
mount -o loop /tmp/initrd.img /mnt/initrd --选项-o loop估计是用来在本身的文件系统中使用的
ls -R /mnt/initrd --查看目录结构
umount /mnt/initrd
--主要参考了《架构高性价比的分布式计算机集群》一文
--下面要从make menuconfig中研究今日的config,增加经验
2004年7月28日10:39:52
--在.4的虚拟机上,把昨日在.28上成功升级的.config文件拷入,make oldconfig,非常顺利的升级。
2004年7月29日16:51:23
★☆openmosix试验☆★
--在.4的虚拟机上打openmosix补丁
--安装patch命令
rpm -Uvh patch-2.5.4-10.i386.rpm
cd /usr/src/linux
--给kernel2.4.18打补丁
cat /pc/openMosix-2.4.18-4.gz | gzip -d | patch -p1 -l
make oldconfig --现在出现了openmosix选项
make dep && make bzImage && make modules
cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.4.18-om2 --om2是自己加的,给后面带来了问题
cp -p System.map /boot/System.map-2.4.18-om2
make modules_install
--有点问题,/lib/modules/下已经存在linux-2.4.18-openmosix目录
--删掉刚才的om2
rm /boot/vmlinuz-2.4.18-om2
rm /boot/System.map-2.4.18-om2
cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.4.18-openmosix
cp -p System.map /boot/System.map-2.4.18-openmosix
new-kernel-pkg --install --mkinitrd --depmod 2.4.18-openmosix
--修改/boot/grub/grub.conf,/etc/grub.conf自动随之变更
--至此带openmosix补丁的kernel已经可用了
--下面安装openmosix工具
rpm -Uvh openmosix-tools-0.2.4-1.i386.rpm
--安装后在/bin/下出现了一些openmosix的工具命令,生成了/etc/mosix.map文件
--copy一份,改地址,修改mosix.map文件
--使用mosmon命令,出现了界面,但找不到节点
--在/etc/fstab里添加了
none /mfs mfs dfsa=1 0 0
--后来在http://howto.ipng.be/openMosix-HOWTO/x424.html中提示在redhat中必须
--修改/etc/hosts文件使hostname和ip相匹配,在修改hostname和/etc/hosts文件后,
/etc/init.d/openmosix start --启动正常
/etc/init.d/openmosix status --显示目前状态
--此时mosmon已经可显示出节点
--然后在/root/.bash_profile中添加一行
hostname omX --root登录时更改主机名
--在.4上如法炮制出三台机器,分别为(.11)om1、(.12)om2、(.13)om3,改好各自的配置后,启动
--openmosix,执行下面的测试:
for x in 1 2 3 4
do
awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}' &
done
--启动了4个awk进程,使用top观察,有两个cpu使用达到99%,剩下两个接近50%;使用mosmon
--观察,三个节点的负载比较稳定,om3的load较高;用.4的taskmgr观察,三个vmware-vmx进程
--的cpu使用率均在25%左右。
--关于openmosix的安装,还可以通过直接安装rpm包的方式,如安装
--openmosix-kernel-2.4.18-openmosix4.i386.rpm后,在/lib/modules/里就已经有了包含
--openmosix补丁的编译好的内核目录,相应的vmlinuz、System.map、initrd.img也自动生成,同
--时/etc/grub.conf也被改好了,不过我没试过用此内核启动。
2004年7月30日11:03:26
--在om4(.27)上使用
mosrun -j1-4 /mfs/1/seti/setiathome -nolock
--但进程迁移的效果不明显,根据man mosrun的解释,flag -j表示在j后的机器中随机选择一个,
--将进程转移到该机器上
--使用
while true
do
./setiathome
sleep 120000
done &
--好像能显示出迁移,但cpu的使用效率低
--在.8上又建立了两台机器,分别为.14和.15,目前所有的机器为
om1 .11
om2 .12
om3 .13
om4 .27 --主控机,用于和外界通讯及提交进程
om5 .14
om6 .15
--在/root下建立了seti1-4个目录,copy了四份setiathome进去,然后先
./setiathome
--与服务器交互,输入mail,下载数据运行,然后ctrl+c结束,然后
./setiathome &
--放入后台,依次搞定四个目录后,到另一个控制台,mosmon,发现进程已经迁移到另外的机器上了,
--且load在1.0左右,此时.4的cpu使用率为100%。
--对openmosix集群的理解:
openmosix实现的是进程的迁移,而不是对一个进程的计算的迁移。
当系统中有多个进程需要使用计算资源时,openmosix会自动寻找集群中空闲的node,将某些进程的
计算转移到该node,对用户来说,这一切都是透明的,他只需提交任务而无需担心系统的计算能力。
但是对于某一个特定的进程,其数据并不可分,则它的计算只能发生在一个单独的node上,openmosix并不能将其计算分配到其它node上。不过可能会存在这种情况,比如某一进程调用了其它许多进程为其服务,这时openmosix估计就会为其分配资源了。