在vmware上升级linux内核及配置openmosix环境试验过程

类别:软件工程 点击:0 评论:0 推荐:

<原原本本的经过,没有重新整理,请阅读本文的朋友见谅>

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估计就会为其分配资源了。

本文地址:http://com.8s8s.com/it/it35991.htm