Username: Password:

怎样架构高性价比的分布式电脑集群(1)
来源:作者: 发布时间:2007-11-09 05:14:02

 

正如您所看到的相同,您的机器在绝大多数时间是空闲的,假如您在Windows下用任务管理器或其他的Linux 平台的工具(例如top,xload)观察CPU,您会看到CPU的使用率常见在1~2%。事实上,假如您有更多的电脑,这种浪费会加剧,在一个有 300台电脑的部门里,CPU的空闲率是惊人的。然而这些部门还是需要强大的服务器用来编译或模拟计算,这样的情况还会加剧,不止需要一台,因为随着用户的增加,即使是8个CPU的服务器,满负荷时也不能把任务交给另外的空闲服务器,因为用户很少会改变习惯去登陆另外一台服务器。假如能利用现有的计算资源,把空闲的CPU利用起来,或能让服务器智能的迁移负荷,就是您看下去的理由。

集群的基本单位是单独的电脑,称为节点 (node)。其可增长的特性,称为延展性(Scale),也就是向集群中加入电脑。集群没有严格的定义,能够说就是许多利用高速联接的,具备高速运算能力的,具备单一用户界面的电脑组合。这并不是集群的定义,而是表面现象的描述。集群中的节点需要硬件尽可能的一致,不一致的硬件集群称为异构集群,虽然这并不能改变集群的特性,但是异构导致集群会花费额外的时间来处理由于异构带来的延迟,另一方面这也是集群的优势,任何其他的多CPU系统都是严格需要 CPU是一致的,集群就有足够的自由度增减节点,不受类型的限制。

本文选择MOSIX作为集群的方案,并使用无盘节点。架构集群并没有想象中那样复杂,参考下面的步骤能够一步步的架构集群,整个的方案并不是很昂贵,而且便于扩展。使用RedHat是因为在中国这是最有权威的版本,不论是初学者还是专业工作者,都能够在RedHat Linux中定制自己的版本。使用终端服务器LTSP是因为结构简单,便于快速扩展。使用的硬件是能够改进的,比如使用双CPU的主板和至强处理器,这样单一机柜中处理器就密集到48块CPU,本例中能够使用24块CPU。除了CPU以外,还能够使用千兆网卡或光纤网卡,交换机能够使用光纤交换机,内存总数能够达到48GB。但是随着硬件的升级,整体价格就会过高,而性能的提升并不是按比例的,因此本例的配置是性价比较好的组合。MOSIX是利用给内核源代码加补丁的办法,增加内核的功能来达到内核级的集群支持,通过编译后的内核启动的系统间类似SMP多处理器的系统,从外面的角度看只有一台有很多处理器的庞大机器,但是内部是用很多机器架构成的。而MOSIX集群的特点是对用户透明,原有的应用程式无需修改代码即能够在集群中分布计算。

有几种情况是无需使用集群系统的,使用类似网格计算的脚本就能够完成计算,比如三维动画的渲染,这类计算能够使用不同的节点,无需对称的硬件,无需一致的操作系统(需要应用具备支持不同操作系统的版本),只需要按照处理器来分割渲染的任务段,在每个节点上运行相应的任务段,然后合成任何节点的计算结果。因为计算数据是离散的(结果的连续是视觉的连续),因此用类似网格计算的脚本也能够完成。这类计算无需使用集群也能够完成。

下面本文将告诉您怎样准备硬件和软机环境。首先是规划您的计算环境。

硬件环境:

49U标准机柜,安装1U的交换机,24台2U机架式机箱。

1U的24口100MB交换机(不是集线器)

Intel P4 2GHz CPU,1GB DDR,Intel 845D主板,软驱,NVIDIA显卡(能启动X Windows就能够),2U机架式机箱,3C905B 10/100MB自适应网卡,网关需要配置光驱,80GB硬盘和双网卡。

5类线,按照693A压3米网线24根。

显示器,键盘,鼠标仅在安装时使用。

软件环境和必要的安装包(除特别说明外,高版本不一定适用):

Redhat 7.2 CD1 和CD2安装光盘 www.redhat.com

dhcp-3.0.1rc9-1.i386.rpm是支持启动内核调用的DHCP版本www.redhat.com

dhcpcd-1.3.22pl1-7.i386.rpm是DHCPD守护进程www.redhat.com

mknbi-1.2-6.noarch.rpm是制作客户端启动内核的必要软件包www.redhat.com

MOSIX-1.6.0.tar.gz是原始的MOSIX文档,最新的版本是1.7.0 www.mosix.com

MOSKRN-1.6.0.tar.gz是原始MOSIX内核文档,最新的版本是1.7.0 www.moxis.com

openmosix-kernel-2.4.18-openmosix2.i386.rpm是MOSIX分支版本的通用内核,最新的版本是2.4.19 www.openmosix.org

openmosix-kernel-2.4.18-openmosix2.i686.rpm是MOSIX分支版本的新处理器内核,最新的版本是2.4.19 www.openmosix.org

openmosix-kernel-smp-2.4.18-openmosix2.i686.rpm是MOSIX分支版本的多处理器内核,最新的版本是2.4.19 www.openmosix.org

openmosix-kernel-2.4.18-openmosix2.src.rpm是MOSIX分支版本的源代码www.openmosix.org

openmosix-tools-0.2.2-1.i386.rpm是MOSIX分支版本的客户端工具www.openmosix.org

ltsp_core-3.0-11.i386.rpm是LTSP的核心文档www.ltsp.org

ltsp_kernel-3.0-3.i386.rpm是LTSP的内核www.ltsp.org

ltsp_floppyd-3.0.0-2.i386.rpm是LTSP的软盘工具www.ltsp.org

ltsp_initrd_kit-3.0.1-i386.tgz是LTSP的启动制作工具www.ltsp.org

linux_kernel-2.4.18.tar.gz是需要编译的内核源码www.kernel.org

网络配置环境:

网关对外网卡配置10.193.15.169,子网掩码255.255.255.0给内部网使用,用于登录和提交进程。网关对内网卡配置192.168.0.254,子网掩码255.255.255.0,网关为10.193.15.169给集群用于DHCP服务器,NFS 服务器,LTSP服务器。

网关对内网卡配置DHCP,分配地址从192.168.0.100到192.168.0.253,子网掩码255.255.255.0,都是C类。

当以上条件都具备时,能够开始架构MOSIX集群。

1.安装任何硬件,并能确保能够从光盘启动网关服务器系统,节点能够使用软盘启动,检查BIOS的启动配置,并确认能够正确启动。将任何节点和交换机安装到机柜上,用网线连接交换机和各节点,网关需要额外的网线连接到局域网,因为能够称集群计算环境为计算场(Computing Farm),因此对应局域网称集群系统的网络为计算网络。连接好电源后,使用两套显示器和键盘鼠标,分别连接一台节点机和网关服务器。

2.安装RedHat 7.2版本在具备两块网卡的网关服务器上,分区使用自动分区(比较简单,本文不讨论Linux其他问题),选择定制安装,但不要安装任何的软件包,除缺省的选择外,需要额外选择软件研发和内核研发两组软件包,安装时没有选择的软件包,能够在系统正常启动后参考“怎样编译内核”中的软件包来安装。安装到网络配置时,按照网络环境配置IP地址,需要配置DNS的需要修改对外网卡的配置,使用小写mosix为主机名。安装完后需要验证网关服务器能够正常启动,按照个人喜好来设定系统,推荐使用文本模式,图像模式资源消耗较大。另外需要连接到RedHat网站升级有缺陷的软件包,减少系统漏洞,注意别把内核也升级了,并不是因为本文的操作,而是内核升级后,系统很可能启动失败,本文将自己编译内核。升级完成后重启,再次确认系统没有任何错误。

3.安装MOSIX包(openmosix的安装是另外的分支)需要很多步骤,注意操作步骤的准确性:

A,将任何下载的软件包上载到服务器的/usr/src/tmp目录下,确认下载的软件包是完整的,确认md5的校验结果一致:

su -

cd /usr/src/

makdir tmp

md5 package_file_name

B,将RedHat 7.2 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*

rpm -Uvh tftp*

cd /usr/src

umount /mnt/cdrom

C,安装需要的软件包,展开任何的tar.gz软件包:

tar xvfz MOSIX-1.6.0.tar.gz

tar xvfz MOSKRN-1.6.0.tar.gz

tar xvfz linux-2.4.18.tar.gz

D,假如展开文档没有错误,将各个软件展开目录移到正确的位置:

mv MOSIX-1.6.0 /usr/src/

mv MOSKRN-1.6.0 /usr/src/

mv linux /usr/src/linux-2.4.18

E,为了避免以往MOSIX脚本的错误,需要确认以下步骤:

chmod goa+x /usr/src/MOSIX-1.6.0/inst/add_kernel_to_grub

mkdir /usr/local/man

F,下面才是真正有趣和让人着迷的步骤,首先要创建编译内核配置文档的目录,这是个好习惯,因为每次的编译配置不一定相同,后面排错也会提到相关的问题:

cd /usr/src

mkdir config.backup

cd /usr/src/linux-2.4.7-10/configs

cp kernel-2.4.7-i686.config /usr/src/config.backup/kernel-2.4.8.config

G,将配置文档复制到待编译内核的目录:

cd /usr/src/

cp config.backup/kernel-2.4.18.config linux-2.4.18/.config

H,根据您的情况修改Makefiles的EXTRAVERSION部分,原值为18,可改为mosix来标明编译后的内核版本,并能够区分模块的版本。

cd /usr/src/linux-2.4.18

vi Makefile

EXTRAVERSION = 18

I,开始安装MOSIX 1.6.0

cd /usr/src/MOSIX-1.6.0

./mosix.install

J,安装开始后会有一些问题,除新内核加入LILO或GRUB一问回答为G以外的问题都用回车使用缺省选择(大写的字母为缺省值)。问题依次为内核源代码的路径,新内核的启动选项添加在那个启动程式中,内核所包含的库文档连接,MOSIX服务的启动级别,创建MFS装载目录,启动那种内核编译配置菜单,是否显示内核编译周详过程,是否显示用户级编译周详过程。随后系统开始给内核源代码加补丁,启动内核编译配置菜单。



图1

K,在内核编译配置菜单中,您能够看到新增加的MOSIX选项

 



图2

L,选择进入MOSIX选项并添加直接文档系统访问 (Direct File-System Access) 和MOSIX文档系统 (MOSIX File-System)。用ESC键推出当前选单。



图3

M,添加块设备 (Block devices) 的内存虚拟盘的支持 (RAM disk support) 和使用初始化进程初始化内存虚拟盘 (Initial RAM disk (initrd) support)两项。





图4

N,在网络选项 (Networking options) 中增加对IP内核级自动配置 (IP: kernel level autoconfiguration),IP动态地址支持 (IP: DHCP support),IP启动地址绑定支持 (IP: BOOTP support)。



图5

O,建议除去SCSI的支持,本例中没采用SCSI设备,并且能够避免内核编译失败。建议除去声卡支持。..



图6





图7

P,在网络文档系统 (Network File System) 中增加NFS支持根文档系统(Root file system on NFS)。





图8

Q,最后多按一次ESC键,提示保存配置文档,选择Yes。系统将开始编译内核,编译模块,安装内核,安装模块。该过程可能会产生一些警告,只要编译没退出,并正常完成回到提示符状态就完成了编译。



图9



图10

R,先不要忙于重启,需要修改/boot/grub/grub.conf文档中 MOSIX的内核路径一行,原路径为/boot/vmlinuz-2.4.18-mosix,修改为/vmlinuz-2.4.18-mosix。修改完后键入reboot能够重新启动。





图11

S,这时的启动菜单中出现Mosix 1.6.0 (2.4.18),选择该项启动MOSIX系统





图12

T,系统启动中会出现若干错误,图中第一个是由于没有创建/mfs引起的,第二个是由于MOSIX更改了sshd服务的权限,而没启动另外的MOSIX的sshd引起的。第一次启动MOSIX系统,会需要配置mosix.map 文档,回车选择缺省的编辑器进入编辑。



图13

U,配置文档修改完成后,系统会提示节点的IP地址有变化时需要修改mosix.map文档中的节点号。因为网关服务器是192.168.0.254因此定义为节点1,其他的节点从192.168.0.1开始共有253个节点,节点号从2开始。





图14

[1] [2] [3] 下一页

喜欢本文,那就收藏到:

    Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网
相关评论  我也要评论
还没有关于此文章的相关评论!
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
  • 导航
    赞助商
    文章类别
    订阅