LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 916|回复: 4

无盘工作站的构建.

[复制链接]
发表于 2005-8-13 15:02:06 | 显示全部楼层 |阅读模式
引言: 虽然用LINUX有好多年了,不过自已还是一个菜鸟,如果文章有什么不对的地方希望大家原谅。多年来在Linuxsir,chinaunix 上学到了不少的东西,所以把我的处子作发到这两个网站上,献丑了。也算是对多年来的索取的一点回报,当然也发在了集美大学理学院网络协会的BBS上,知道地方的别忘了去交流一下

     最近因为要做一个无盘LINUX集群,其中通过PXE远程无盘启动是这个搭建过程中花的时间最多的,看到网上还有人在做这个,所以把我的经验拿来跟大家分享一下,希望能让大家有所收获。
现在网上的通过PXE远程无盘启动,基本上有二种方法。
1:root-nfs模式,这种方法是比较老的一种,实现起来也比较容易,但是它的可扩展性比较差,当一个网络中无盘节点过多的时候,如果同时启动,会造成服务器节点负载过高,我在搭建这种方式的时候,可以成功的启动,但感觉速度比较慢,有的时候会出现启动失败,因而没有采用。这个你可按照这篇文章[1]提供的方法实现。
2:RamDISK模式,这种模式应该是现在用的最多的,但是制作过程中比较繁琐。通过一些工具实现起来也是不是很麻烦,我现在的无盘集群就是采用的这种方法。如果你想做WINDOWs系列的无盘工作站,大概只要把这个RAMdisk重新做一个估计就差不多了,我也只是在做的过程看到一些文章,没是有测试过。
关于无盘工作站的启动模式你可以参考这篇文章[2]。
下面的搭建过程就是采用第二种方法。
对于无盘工作站其实就是DHCP ,TFTP,NFS三种服务,或者加上一个NIs服务的构建过程。对于前面三种服务的搭建你可以参考这篇文章[3],基本上是不会出现什么问题,当你把这个搭建好了下面就是无盘节点的系统制作,这个制作的方法又有两种。
第一种:这种办法在自已构建服务的基础上在加上相应的工具便可实现。这种方法的好处是如果你的服务器和节点机属于不同类型CPU的构造起来比较方便。
1.        首先你准备两台机子,一台是服务器,一台是节点机,在两台机子上分别装上你所需要的系统,可以是不同内核的。
2.        在服务器上执行rsync –a –e  ssh node:/  /server/path。这样便把节点机上的所有文件都复制到服务器上的某个路径下。这里的node是你节点机的IP,server是你服务器的IP。而PATH是你要把节点机上的文件所要放的地方。也是你NFS服务所导出的路径。
3.        下载mkbootready.sh,[4]这个文件,在服务器上执行
./mkbootready.sh  /path 这里你要给出mkbootready.sh的绝对路径或者到所在的目录下用相对路径,别忘了给它执行权限。这里面的path就是你刚才执行rsync后把文件所放的位置
4.        下载mkbootimage.sh[5]和pxeboot.img.gz[6]两个文件,制作启动所需要的RAMDISK.下载完后执行
           ./mkbootimage.sh  [path]  [SYSTEMMAP]  [KERNELVER]
           这里的path还是你刚才放置节点机的文件的路径,systemmap应该是/path/boot/systemap-kernelver。这里的kernelver是你节点机所用的内核的版本号。执行后就会在当前路径下产生pxeboot.img.gz这个文件。
     这里要注意的是:path应该是你NFS所导出的那个路径,产生的pxebootimg.gz你应该放到pxelinux.cfg目录下面配置文件所给出的路径下。也就是TFPT所指定的目录。这样一个无盘启动的工作站基本上就做好了。具体的制作过程就请参考这里[7]。
     如果你按着这篇文章做,一般是不会出问题,但是这种方法有几个缺点,一个是没办法正常的关机,另一个是DHCP的客户端无法正常的使用。还有一些服务没办法正常的启动,另外是如果无盘节点过多没办法单独的配各个节点。好处是可配性稍强些。
      第二种:这种方法是最简单的,但是带来的缺点是可配性稍差一点。这个的具体做法请参考这个的帮助文件,繁体中文的,相信大家都可以看懂。这种方法对服务器的LINUX发行版本有要求。你也可以在这个的基础上去试验第一种方法,好处是所需的服务你就不需要配置了稍微改一下就OK。值得提出的,这个是中国人做的一个开源项目,而且使用的对象是台湾的各个小学,觉得台湾的小学生还是满幸福的,我的感觉:)具体请参见http://drbl.nchc.org.tw/。
      如果你想用你自已配置的内核,好像有点困难,不过也可以解决,你只要把/opt/drbl/sbin/mknic-nbi这个文件改一下,就可以使用你自已配置的内核。执行完后记得把modules下的目录拷到你相应的目录下。
      自已配置的内核注意一些选项的选取,这个在网上一般都可以找得到,这里就不多说了,这个制作的更详细过程等有时间在详细的写出来。这里的只是一个简要的过程,不过对想作无盘的人的我想是足够了。
参考文档
[1]        http://www.uni-essen.de/~bt0756/publications/2003-cluster/
[2]        http://linux.sys-con.com/read/43718.htm
[3]        http://chinaunix.net/jh/4/566211.html
[4]        http://www.intra2net.com/opensource/diskless-howto/ mkbootready.sh
[5]        http://www.intra2net.com/opensource/diskless-howto/ mkbootimage.sh
[6]        http://www.intra2net.com/opensource/diskless-howto/pxeboot.img.gz
[7]        http://www.intra2net.com/opensource/diskless-howto/howto.html
发表于 2005-8-14 23:30:37 | 显示全部楼层
你的无盘做好了吗??能正常关机吗??NFS模式的是不是不能正常关机的呢?你的DHCP如何设置呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-15 09:44:21 | 显示全部楼层
做好了,用台湾人写的那个工具做出来的可以关机,DHCP这些配置他都会配置好,非常简单
NFS模式因为他是先umount文件,所以有些命令不能执行,看DRBL的文档,他是重新写了一个halt脚本来解决这个问题,我没有试
回复 支持 反对

使用道具 举报

发表于 2005-8-16 11:40:57 | 显示全部楼层
你做的无盘是RamDISK模式的吧?是不是RamDISK模式的无盘可以正常关机的呢?RamDISK模式的思路是在内存上建一个盘,然后从这个盘启动LINUX(与一张软盘的LINUX的构架一样的小型LINUX),再从NFS上加载usr这个目录?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-17 10:12:12 | 显示全部楼层
如果按第一种方法做的RAMDISK模式的无盘工作站也是无法正常关机的,用台湾人的那个能关机,是因为他对关机这些操作的脚本做了修改
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表