如何架构高性价比的分布式计算机集群 |
摩托罗拉全球基础架构解决方案工程计算部 丁玮 |
北京蓝潮志诚网络技术有限责任公司(提供硬件支持) 杨波 |
本文作者版权所有,如需更改应得到作者同意,如需转载应得到作者授权,作者保留所有法律诉讼权利。 |
遵守GNU和GPL的转载需保证原文完整性,包括本版权声明。 |
(2002/09/02初稿2002/12/11修改稿-dw) |
|
正如你所看到的一样,你的机器在绝大多数时间是空闲的,如果你在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集群的特点是对用户透明,原有的应用程序不需要修改代码即可以在集群中分布计算。 |
有几种情况是不需要使用集群系统的,使用类似网格计算的脚本就可以完成计算,比如三维动画的渲染,这类计算可以使用不同的 |
节点,不需要对称的硬件,不需要一致的操作系统(需要应用具有支持不同操作系统的版本),只需要按照处理器来分割渲染的 |
任务段,在每个节点上运行相应的任务段,然后合成所有节点的计算结果。因为计算数据是离散的(结果的连续是视觉的连续), |
因此用类似网格计算的脚本也可以完成。这类计算不需要使用集群也可以完成。 |
下面本文将告诉你如何准备硬件和软机环境。首先是规划你的计算环境。 |
|