背景资料:
相关名词
SMP:对称多处理器
LTSP:Linux终端服务器项目 (Linux Terminal Server Project)
Kernel:内核
Ramdisk:内存虚拟盘
Etherboot:以太启动
Bootrom:网卡启动芯片
大型主机(Mainframes),超级计算机(Supercomputers)和集群(Clusters)
纵观计算机的历史,最先让人了解的就是大型主机和超级计算机,这是计算机历史的一部分,没有这些大家伙,就没有今天的个人电脑。这些大家伙通常是一个或几个有强大研发队伍和资金的厂商完成,最初的目的是军方或政府的需要,很多大学的研发也促成了这些大家伙更强大。一般情况下,大型主机和超级计算机都使用超过8个,多达上百个的CPU和自己的专用操作系统,计算机历史上很多的重要成员都和这些大家伙有关,IBM,DEC,Cray,SGI,HAL。大型主机已经成为历史,而超级计算机成了各国技术实力的争夺焦点,但是目前个人电脑的发展使集群成为竞争超级计算机的强大对手,集群的CPU数和浮点能力和超级计算机的差距已经越来越近。
Cluster
集群系统,也有成为机群和群集系统的。集群主要分为三类:容错集群(Fail-over Cluster),负载均衡集群(Load balancing Cluster),高性能计算集群(High Performance Computing)。
容错集群是指两台主机通过两个或两个以上网路连接的系统,其中一个连接称为心跳线(heartbeat),利用每台主机上的服务进程监控对方主机的状态,一旦发现对方主机宕机或出现不能正常工作的情况,心跳线会反映给互为备份的另外一台主机,该主机则会接替出问题的主机。典型的使用场景是空军的雷达追踪系统。
负载均衡集群一般用于相应网络请求的网页服务器,代理服务器。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器上。从检查其他服务器状态这一点上看,负载均衡和容错集群很接近,不同之处是数量上更多。
高性能计算集群是指具有响应大量计算的性能,可以作为数据中心使用的计算机的集合。比如压缩mp3,气象云图的分析等。
集群模式
(N)UMA非一致性内存访问(Non-)Uniform Memory Access一般是指通过执行特殊的程序代码对内存的共享访问。在Linux内核中,可以执行对访问时间内的不同内存区域进行交叉访问,也就是内核进程可以使用接近CPU使用时的内存。对正在使用内存区域的访问,才可以共享。线性的内存访问是无法共享的。
PVM/MPI是指并行虚拟机(Parallel Virrual Machine)和信息传递界面(Message Passing Interface)。在Beowulf的世界里最常提到的就是这两个概念,该软件包已经提供了多平台的版本。通过开放式的标准信息传递库,并行机之间可以通讯,事实上PVM也是一组库,程序可以使用这些编译库来改造程序适应并行系统。但是这些都要相应的修改源程序,系统内核事实上并没有发生改变。
其他模式:Turbo Linux EnFuzion,Platform等网格计算(Grid Computing)不必讨论这类集群不是单纯意义的集群,以Enfuzion为例,EnFuzion是Turbo Linux收购的一个软件改良版(前身就叫Cluster),因为使用了Java,可以跨平台,使用驻留系统服务来监控集群间的通讯,事实上是任务分发和监控器,依赖于计算数据离散性,对于数据不可分的程序,无能为力。也就是说每个节点都运行相同的程序,但处理的数据是不同的,该集群提供了控制这些程序的界面,跨平台性也只是依赖于计算的应用有跨平台版本,而其只提供跨平台的监控。主要集中在CPU空闲的监控和计算的再分配。
数据可分和程序可分
集群计算中最重要的就是分布,根据不同的应用,分为两种:数据可分和程序可分。
数据可分是指数据间没有必然联系或联系在结果的基础上,比如mp3的压缩,每个单独的mp3互不关联,或者有限元计算的某个步骤,单一的曲面计算生成结果再参加后面的关联计算,更著名的是SETI@home通过分析射电望远镜的信号寻找外星人,这是典型的将中间分析结果传递给下一部分析,这就是数据可分,这最适合网格计算。
程序可分,用过ANSYS的人都知道商业软件分为单处理器和多处理器版本,因为计算量大,所以支持SMP的计算软件和使用单一CPU的软件是不同的,多CPU共同运算时也要考虑到内存的访问,处理通讯和负载均衡,除非操作系统支持,不然使用DOS和Windows9x很难用到第二个CPU(甚至不可见),有了操作系统的支持,应用程序也要支持,即使操作系统支持并行,应用程序不可分的话,只能使用1/n(n=CPU数量)的处理能力,典型的例子就是 2CPU的WindowsNT/2000下使用单处理器版本的ANSYS,处理器进程显示50%,但是2CPU共同生效。而使用多处理器版本时,2CPU 都可以在98%的使用率。因此程序可分是集群重要的应用基础,即使程序本身不可分,而集群支持子进程的迁移,也意味着类似SMP系统支持程序可分。
SETI@home
在家寻找外星人计划,这是NASA全球计划之一,位于波多黎各西北的一个火山口中垂直对天的射电望远镜Arecibo(007黄金眼中最后决战的地点和X-files第二部第一集中收到外星人电波的天线,直径305米,接收器高约30米,约位于130米高处),用于收集来自宇宙的无线电信号,就像 TCP/IP网中的sniffer,这是宇宙中的一个嗅探器,通过收集信号,来分析由智慧生物发出的,有一定规律的无线电。比如,第一台电视的信号和猫王歌曲在多年前通过收音机发送的无线电信号,至今还在宇宙中遨游,虽然可能很微弱了,但是还可以接收到。这个计划就是接受类似外星人的无线电信号,具体的步骤是让个人电脑的用户下载客户端程序,一个屏幕保护程序,或一个命令行程序,然后在连接互联网时下载大约330KB的数据包,然后利用处理器空闲时间计算。该数据包只是庞杂数据中的一小部分,但是全球目前加入的上亿台计算机就构成了最大的超级计算机,当计算完成后,在连接互联网时上载结果,并下载新的数据包,根据其目前的计算形式,Intel称为P2P计算,其实是网格计算的一种。上载的数据不是最终数据,经过和其他人加工的数据整合,会产生新的结果,这时可能要继续计算,也可能就此产生阶段报告,每天SETI@home的主页上都会有新的成果,当然不一定是发现外星人的报告。笔者的成绩因为借助了自己设计的网格计算,全球4055845位排名1787名左右,还在向前靠拢,大约是完成了23096个数据包,在中国目前第一。
图17 SETI◎home作为屏幕保护时软件运行界面
图18 位于波多黎各一个火山口中的Arecibo射电望远镜
图19 记得那个著名的007镜头吗
相关连接:
SETI@home的主页:http://setiathome.ssl.berkeley.edu/index.html
笔者的成绩:http://setiathome.ssl.berkeley.edu/fcgi-bin/fcgi?email=dw22077@163.net&cmd=user_stats_new
openMosix小组的成绩:http://setiathome.ssl.berkeley.edu/stats/team/team_151601.html
波多黎各Arecibo射电望远镜:http://www.naic.edu/
需要强大计算的应用
财务与社会行为分析,使用数学模型模拟的计算。
音乐,图象等多媒体数据处理,例如mp3压缩,动画渲染,后期处理。
流体力学,有限元分析,例如乐高玩具的数字模拟强度分析。
编译,数据库挖掘。
医学研究,例如AIDS和DNA的结构分析,成功运作的有UD(United Devices http://www.ud.com/home.htm)
天文研究,例如SETI@home,在家寻找外星人项目(http://setiathome.ssl.berkeley.edu/index.html)。天气和海浪预报。
电子电路数字模拟分析,例如研发新的处理器。
穷举解密,例如破解DES密码(http://www.distributed.net/index.html.en)。
正在研发的分布式计算系统
Beowulf
是目前开放源码世界中最大的高性能计算项目,该项目就在探寻能适应于不同需要,不同处理速度的计算组合。但是这个项目并不是指单一的某个软件包或者一种技术,而是整个研发方向的综合。你可以在该项目中寻找适合你的技术和软件,还有很多项目成员并未找出通用的方法,而是将已经在使用的专门系统公开到 Beowulf项目中,让大家参考。其中有用于分布式编译,数据采集,还有多媒体处理等很多领域。
相关连接:www.beowulf.org
Plan 9
1993年源于贝尔实验室(Computing Sciences Research Center of Bell Laboratories) 开发的新分布式操作系统,建立在Unix和C与C++基础上,支持的处理器有Intel x86, Sparc, Alpha, Power PC, 和ARM。目前没有象KDE漂亮的图形界面,使用上接近UNIX,标准UNIX工具也可以使用,但是从设计原理和基础上不同于UNIX,核心已经完全重写并设计成网络操作系统,就像设计完UNIX后的补充,其中设计元素包括用户端的终端,存储固定文件的服务器和提供更快CPU的计算服务器,提供用户验证和网关特性。
目前吸引人的焦点是Plan 9的文件系统可以支持所有的系统服务进程,也就是说所有任何用户可以使用的资源在文件系统中都可以找到唯一的命名,已经可以称为命名空间了。通过网络层的协议9P来访问所有的资源,这一点类似NFS,但不同之处是对用户不透明。支持异构的网络:以太网,光纤和普通调制解调器,还有ISDN的连接。
较早的Plan 9更像文件系统,现在的系统支持更多的用户并发。标准情况下,用户可以运行任意的从他们的终端上或CPU服务器上启动应用,应用将会从文件服务器上获取数据,并且可以小到在笔记本上运行。因为具备了高可配置性,因此摆脱了客户机服务器体系的中心控制模式。
相关连接:http://plan9.bell-labs.com/plan9dist/
其他的网格计算
http://www.gridcomputingplanet.com/ 网格计算的信息站点
http://wwws.sun.com/software/gridware/ SUN的网格计算软件
http://www.turbolinux.com/enfuzion TurboLinux的EnFuzion
如何编译内核
首先你的手中要有一个Linux的分发版本,RedHat是个不错的选择,为了具有普遍性,下面的操作是在RedHat 7.2的基础上完成的。
当你安装完Linux后,你需要确认下列的rpm包已经存在(*是指不同的版本),你可以使用rpm -Uvh来安装(绝大多数文件在CD2中) :
mount /dev/cdrom /mnt/cdrom
cd /mnt/redhat/RPM
rpm -Uvh kernel-headers*
rpm -Uvh kernel-source*
rpm -Uvh kernel-doc*
rpm -Uvh dev86*
rpm -Uvh make-*
rpm -Uvh glibc-devel*
rpm -Uvh cpp*
rpm -Uvh ncurses-devel*
rpm -Uvh binutils*
rpm -Uvh gcc-2*
cd /usr/src
umount /mnt/cdrom
如果你从www.kernel.org上下载了Linux稳定的内核2.4.18,可以将他解开并移到/usr/src目录下:
tar xvfz linux-2.4.18.tar.gz
mv linux /usr/src/linux-2.4.18
你可以修改Makefile文件来改变编译的内核名称,RedHat 7.2的内核版本是2.4.7.10,首先要清理编译的过程文件,将当前版本内核配置文件作为新编译内核版本的配置使用,编译中的错误输出到指定文件
cd /usr/src/linux-2.4.18
make mrproper
cp -p /usr/src/linux-2.4/config/kernel-*-i686.config .config
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
mkdir /mnt/initrd
gzip -dc /boot/initrd-2.4.8.img > /tmp/initrd.img
mount -o loop /tmp/initrd.img /mnt/initrd
ls -R /mnt/initrd
umount /mnt/initrd
修改GRUB的启动配置(/boot/grub/grub.conf)文件,加入新编译内核的条目:
vi /boot/grub/grub.conf
title Red Hat Linux (2.4.18)
root (hd0,0)
kernel /vmlinuz-2.4.18 ro root=/dev/hda2
下次启动时就可以选择了。
www.Rom-O-matic.net
动态创建以太网启动映象。目前的版本是5.0.7。使用的原理就是用软盘启动来模拟网卡的启动芯片。主页是交互式的,通过下拉菜单,可以选择网卡的类型和映象类型。在配置菜单中还可以设置支持的启动类型和其他的参数,最后点击Get ROM将提示保存映象文件。把保存的结果传到Linux上,使用cat命令将映象文件创建以太启动软盘
图24
LTSP的启动过程
LTSP的启动过程需要很多步骤,了解这些步骤可以很好排除出现的问题:
以下的例子硬件环境是
客户端DELL Gx1 PII 350MB 128MB 3C905B ATI rage128
服务器端运行RedHat 7.2和DHCP服务
网络地址范围192.168.0.0网段,子网掩码是255.255.255.0
客户端开机自检
在开机自检的过程中,BIOS将检测扩展的芯片,也就是网卡上增加的用于以太网启动的启动芯片(bootrom),BIOS可以检测到网卡上的启动芯片。 一旦开机自检完成,执行步骤将到以太启动代码。 以太启动代码检测网卡类型,当检测正确时,初始化网卡。
以太启动代码将在本地网段中发申请DHCP的广播,网卡的MAC地址将包括在该广播中。
服务器端的DHCPD守护进程将收到来自客户端的广播申请,检查配置文件中与接受到客户端MAC地址相匹配的参数。
DHCPD守护进程发送回复的数据包,该数据包中包括:该客户端的IP地址,本网段的子网掩码,下载内核的路径,需要装载的根文件系统的路径,传递内核命令行执行的参数。
以太启动代码将从服务器接受这些数据,随后开始按照提供的数据配置网卡的TCP/IP设置。
使用TFTP(Trivial File Transfer Protocol直接文件传输协议),以太启动代码可以从服务器上下载内核。
一旦内核下载到客户端完成,以太启动代码将把内核放到内存正确的位置。
完成必要步骤之后,控制权交到内核控制,内核将开始初始化整个系统和全部的可识别外围设备。
下面才是真正的开始。因为内核是文件系统的镜像,需要象调入内存的虚拟盘中,并作为根文件系统临时装载到系统中。用内核命令行表示root=/dev/ram0引导内核镜像作为根文件系统装载。
正常情况下,内核完成启动过程后,将启动init进程。需要指明内核如何调入shell脚本,用init=/linuxrc命令行表示。
/linuxrc脚本将扫描PCI总线,搜索网卡等。每种类型的PCI驱动都会在/etc/niclist中寻找匹配的参数。一旦发现匹配的,该网卡类型的模块将返回给内核用来加载。对于ISA接口的卡,驱动模块必须被内核以命令行方式加载,并且需要特别指定中断和占用的地址。
一旦网卡被识别,/linuxrc脚本将加载前面返回的内核模块。
dhclient将随后运行来从DHCP服务器来的确认请求。这里需要特别区分确认的类型,从以太启动得到的确认将被内核取消,内核将忽略任何曾经特殊指定过根路径的NFS(网络文件系统)服务器。如果你的NFS服务器和TFTP服务器不是同一台时,这一点非常重要。也就是说这是系统不再依赖TFTP 服务器而是开始使用NFS服务器来装载文件系统了。
当dhclient从服务器得到回应,将开始运行/etc/dhclient-script文件,它将重新收集系统信息,配置eth0网卡。
从上面的几点,根文件系统实际是在内存虚拟盘里的。现在/linuxrc脚本将通过NFS装载新的根文件系统,这个目录就是在服务器上共享的 /opt/ltsp/i386目录。它将被装载成新的根文件系统。首先它要被装载到/mnt目录下,随后将作一次根对称 (pivot_root),也就是把当前的根文件系统和新文件系统交换,一旦完成,NFS文件系统将装载到根,而旧的根文件系统将会装载到 /oldroot目录下。
当装载和根对称完成,也就完成了/linuxrc脚本,这时才真正的开始init进程。
init将读取 /etc/inittab文件开始设定客户端环境。
init提供了运行级别(runlevel),客户端不同的服务进程运行在不同的运行级别上,LTSP客户端的运行级别就是2,这是系统缺省的运行级别。
列在inittab中头一项的就是rc.local文件,该命令是运行于客户端的系统初始化状态(sysinit)。
rc.local脚本将创建1MB的内存虚拟盘,其中有在整个过程中随时需要写和修改的任何文件。
内存虚拟盘将被装载到/tmp目录下。任何需要写的文件都会真实的存在/tmp目录下,然后创建相应的符号连接到正确的目录下。
随后是/proc文件系统被装载。
如果客户端配置为通过NFS作交换区(swap),/var/opt/ltsp/swapfiles目录将会被装载到/tmp/swapfiles 下。反之,如果没有设置,交换区将被自动创建。交换区的大小设置在lts.conf文件中配置。交换文件通过swapon命令激活。自循环(loopback)网卡将被配置,设定IP地址为127.0.0.1。
本地应用模式激活,随后/home目录将被装载,随后的应用将以用户的家目录起始访问。
一系列的目录在/tmp文件系统下创建,用来提供给系统运行作临时过渡文件。这些目录包括:
/tmp/compiled a.
/tmp/var b.
/tmp/var/run c.
/tmp/var/log d.
/tmp/var/lock e.
/tmp/var/lock/subsys f.
配置X Windows系统,在lts.conf文件中,参数(XSERVER)是不可缺少的,一般设定为auto自动,这意味着尝试自动检测。如果是PCI的设备,将尝试获取驱动厂商和驱动设备标识,并从/etc/vidlist文件中寻找匹配项。
如果该卡支持Xfree86 4.x版本,PCI扫描程序将返回驱动模块的名称,如果仅支持Xfree86 3.3.6版本,PCI扫描程序将返回将要使用的X服务器的名称。rc.local脚本可以选择不同的版本使用,因为旧的3.3.6服务器是使用 XF86_开头的。如果是Xfree86 4.x版本,/etc/rc.setupx脚本将创建XF86Config配置文件给4.x版本。反之,XFree86 3.3.6将由/etc/rc.setupx3脚本创建XF86Config配置文件。
XF86Config配置文件是基于/etc/lts.conf文件的,当rc.setupx脚本完成后,将返回给rc.local脚本,创建/tmp/start_ws脚本,该脚本是用来启动X服务器的。
随后创建/tmp/syslog.conf文件。该文件将告知syslogd守护进程发送关于系统的日志信息到指定的日志机接收。日志主机定义在 lts.conf文件中。事实上/etc/syslog.conf是/tmp/syslog.conf的符号连接。启动syslogd守护进程,配置文件在上一步骤已经创建。返回控制权给init进程,该进程将寻找初始缺省的运行级别。缺省的LTSP核心运行级别定义是2。
缺省的运行级别是2将导致init设定运行级别set_runlevel脚本,该脚本将读取lts.conf文件并定义客户端实际运行的运行级别。客户端LTSP运行级别一般是3,4和5:
3 - 将启动shell,常使用在排错模式,本文中也是定义为3。
4 - 将会在字符模式启动一个或更多的telnet进程,这将有力的替换旧的串行终端。
5 - 图形用户界面,这是X Windows,并且发送XDMCP申请给服务器,随着登录对话框的出现,你就可以登录到服务器了。这种情况下,服务器需要启动显示管理器,例如XDM,GDM,或KDM。
相关连接:www.ltsp.org
MOSIX和openMosix
MOSIX是指Multicomputer Operating System for UnIX,最早原自FEHAL,直到第6个原型还是为BSD/OS,第7个DATE_FEHAL原型开始为GNU/Linux平台开发。正如其他开放源码的程序一样,评估一个最有发展潜质的系统为未来的开发方向是个必然。Barak教授是原始MOSIX项目的领导者。MOSIX原理是利用给内核增加补丁的办法全面兼容Intel架构的32位处理器,支持内核级的负载均衡,可以将负载准确迁移到集群成员,系统会自动或手动的将负载优化的分担给各节点。这种准确的进程迁移使集群类似一个巨大的SMP系统,多个节点就象多个处理器,进而提供了一种不同于NFS的缓冲连接,时间标记连接,稳固连接的强大应用高性能计算组合。
MOSIX是用户端透明的(应用程序不需要因为集群而修改源代码)Linux集群系统解决方案,openMosix是MOSIX的新公开分支,出现该版本的原因是2001年底,MOISX项目决定不再遵循以前的GPL许可,转而到非GPL许可中。事实上,新版本的MOSIX代码已经排除了不限制许可的代码,并加入了所有版权保留(All rights reserved) 的限制。由于这个突然的变化,MOSIX新的发布版本不再是免费的版本,而且尚不清楚目前使用者的权限有什么变化。实际上,未来没有什么能阻挡MOSIX 的作者对使用MOSIX的用户收取费用。
鉴于这个明显的原因,许可的变化使很多正在使用MOSIX的用户开始关注这个问题,这一切从MOSIX的邮件列表存档和代码从主页上删除开始,情况越来越恶化。非常幸运的是,有一些人并不仅仅象大众一样关注这种变化。Moshe Bar,MOSIX项目的核心经理,商业MOSIX公司的普通经理,他不同意改变原来的GPL许可,对变化的第一反应就是Moshe本人开始 openMosix项目,并保MOSIX免费版本继续为公众服务。OpenMosix是遵循完整的GPL2许可。
在openMosix项目刚开始,至少350人的MOSIX用户切换到openMosix,openMosix建立在Amnon Bark的2002旧MOSIX版权基础上,未来的代码版权属于Moshe Bar,另外Moshe因为新颖更多的开放式研发风格提高了openMosix的研发速度,虽然受他所尊敬的Barak教授经过再三考虑没有加入 openMosix,继续留在当时具有1000全球用户的Qlusters公司(即MOSIX转向商业后的公司),但是现在有14个人为 openMosix项目研发,而MOSIX仅仅有4个人。在这种情况下,openMosix代码的很多问题被修复,性能得到提高。而且在增加很多新的特性的基础上,更广泛的,高性能的特性也在研发中,比如自动配置,新的用户端工具,节点探测。目前为适应标准化,将会把/proc/mosix文件修改为 /proc/hpc,/etc/mosix.map修改为/etc/hpc.map。而且新版本Mosixview也开始支持openMosix。 /etc/hpc.map是节点自探测的重要部分。OpenMosix项目的主页连接是www.openMosix.org,项目文件连接是http: //openMosix.sourceforge.net。
现在尘埃落定,openMosix和MOSIX的分裂已经平息,其结果使开放创新的得到发展,研发速度更快,更有活力。无论如何Linux的集群解决方案将继续发展。
MFS, DFSA, mosrun, mosmon, migrate
MFS (Mosix File System) 是位于根目录下的mosix文件系统,当mosix启动后,系统自动将所有节点机的根文件系统加载到/mfs下。
DFSA( Direct File System Access),直接文件系统访问,正如MFS装载节点文件系统一样,直接访问节点文件系统是集群具有全局性的必要功能,这样节点间的访问是透明和无缝的,所有的节点访问路径是一致的。
Migrate是进程的迁移,当你启动mosix后,你会发现该进程已经自动的迁移到集群的另外一台机器上去了,每一个进程都有自己独立的源节点,称为UHN(unique home node)。能够迁移就意味着进程被切割成了两个部分,用户级和系统级。用户级的部分将可以迁移到远程节点中,而系统级的部分将留在自己的独立源节点 (UHN)中,系统级部分也被称为代理进程,这个进程用来处理解析来自系统的调用。Mosix可以处理2个CPU的通讯,也就是说目前任意双节点间的通讯类似双CPU的SMP,该命令可以指定进程在任意节点间迁移,并可以设定负载均衡。
mosrun是使用mosix加载应用的命令,其中-j可以指定特殊的节点机运行程序。
mosmon是集群节点监视工具。
setpe 设置MOSIX的节点配置
如何架构超过254个节点的集群
问题的关键使网络节点,地址的限制使节点数限制在254个,但是通过修改/etc/mosix.map可以增加新的网关来增加新的地址段,也就是增加节点。作为网关的地址用ALIAS标记。这样理论可以增加到65535个节点。不要忘记修改/etc/hosts文件和保持客户端的配置文件一致。
1 192.168.0.254 1
2 192.168.0.1 1
2 192.168.1.1 ALIAS
3 192.168.1.1 254
初始安装完系统推荐禁止的服务程序
使用chkconfig -list可以列出目前安装的服务进程,有很多可以停止。下面是一些缺省启动,但是可以在集群中禁止的服务:
pcmcia (用于笔记本的PCMCIA插卡)
kudzu (类似PnP的新硬件自检程序)
linuxconf (Linux配置工具)
atalk (Apple的通讯协议)
iscsi (SAN常用的在TCP/IP网络上加载SCSI通讯模式)
canna (语言转换引擎)
cWnn (简体中文输入)
kWnn (韩文输入)
tWnn (繁体中文输入)
FreeWnn (日文输入)
sendmail (邮件服务器进程)
如何规划你的网络和计算场
首先你要确定最终使用的节点数目,使用什么样的处理器,是单CPU还是SMP,内存的多少可以满足计算的要求,硬盘存储的增量是多少,计算是I/O密集型还是CPU密集型,是否需要磁盘阵列。其次是分析你的网络,网段是多少,是否有DNS服务器和静态的IP地址,网关和子网掩码是什么,如果是动态地址分配,DHCP服务器是什么,主机名是否有要求,交换机的类型是什么,跃点有几个,服务器系统的类型,服务器间使用的通讯协议是什么,是否是10MB和 100MB混用的环境,连接ISP的连接是否有防火墙,网线的类别是否满足要求,压线的方式是否正确。最后是拓扑结构图,包括集群在内的网络拓扑图,便于检查拓扑结构和排错。
MOSIX集群主要有三种规划模式:单一池 (single pool) 是将所有可以利用的无盘节点,工作站和服务器都集中到一起。服务器池 (server pool) 是将所有服务器矩阵集中到一起集群。适应池 (adaptive pool) 是将集群节点按照时间段划分,动态的加入计算集群。
计算场的硬件可以参考:
图26-28
因文章篇幅限制,很多集群的特点和实现方式不能例举,加之文章种种不足之处,希望能和爱好者与研究多年的专家共勉。
特别感谢Moshe Bar,James Jensen和clump/OS (pachyderm software)的开发者Jean-David Marrow,没有他们就没有开放的MOSIX,就没有热心快速回答我问题的专家。还感谢我的家人Grace和我的老板Andy Seah,没有他们,我也不能专心的研究技术,谢谢。最后感谢蓝潮志诚网络有限责任公司的杨波先生,因为他的协助,避免了我在硬件上耗费过多的时间,因为他的出色经验,保证了硬件的质量稳定,提供了全球性价比最高的集群系统。
本文作者版权所有,如需更改应得到作者同意,如需转载应得到作者授权,作者保留所有法律诉讼权利。遵守GNU和GPL的转载需保证原文完整性,包括本版权声明。