在本文之前,我建议先看完这篇文章:Linux高性能计算集群 – Beowulf集群
1.集群设计/布局的一大难点就是网络,各家有各家的策略,一般围绕Beowulf变型。
2.软件的部署缺乏实操调试,也不能断定这样部署是否成功以及是否优越。
3.操作系统的选型以及安装系统、所需软件(包括集群管理工具、驱动软件、能耗监控软件等)的整个流程的手动/自动化部署。
4.每个提供硬件的对应公司几乎都推出他们自己的集群管理软件,浪潮好像没有,在HPC方面浪潮好像没有相应的开发社区,DELL和IBM这些大公司都有。
5.能耗的衡量,具体的优化方向和策略。
Outside Network: 外部网络
Master Node: 主节点
Compute Nodes: 计算节点
Storage: 存储器
Computational Network: 计算网络
Management Network: 管理网络
集群中的每个节点(HPCC 节点文章链接)、主节点、登录节点和计算节点都需要有操作系统。操作系统可以安装在节点的硬盘驱动器上,甚至可以安装在ramdisk 上,这有时被称为“无盘”或“无状态”节点。一般说来,主节点创建所谓的“映像”,然后将其发送到计算节点上进行安装(硬盘驱动器或 ramdisk 上)。
系统装在内存会更快,但断电后要采取将系统拷贝到硬盘的方法重新存储起来,比较麻烦。
几种安装工具的特点:
但是,比较有名有Rocks(比xCat安装简单)、xCat。
xCAT:
a、支持自己系统独立,可以自己选择基于RHEL的最新版本系统;
b、命令行安装,需要人工编辑配置文件,安装一台之后再利用脚本进行网络安装裸机节点;
c、xCat在安装起来像一个个独立软件,如其他并行计算需要的相关软件可以通过xCat命令安装;
Rocks:
a、ROCKS 基于 Red Hat 发行版,这对于大多数人是合适的,但是对于使用 SUSE 或者希望使用在 RH 6.2 发行版上创建的映像的人就不合适了,里面的软件可以选择性安装。另外,ROCKS 不是克隆解决方案;
b、之前需刻录CD,GUI界面部署,之后人工进行节点命名和节点ip的配置,安装时一台一台进行;
c、Rocks则像一个集成的包,包含工具与软件;
Rocks = CentOS + Rolls
Roll软件包包括:
一般而言,这两种方法只有适用性与便捷性的差异。
有一个视频课程 http://edu.51cto.com/course/course_id-507.html
对于操作系统的选择,调研了很多,一般用Red Hat,Centos居多,一方面是社区活跃,一方面是源码开发,资源兼容较多。
(MIC开发上基本采用Red Hat,Centos,SUSE,windows也开始有了)
包括IB驱动、编译器、编辑器、调试器、库等。
并行计算开发环境:
安装NFS、PVFS、Lustre 、Luster、GPFS、SNFS等,一般大型的HPC集群用Lustre能获得更好的性能,但不太适合小集群,小集群可以考虑用NFS和PVFS,但NFS并不是面向并行计算的,推荐用PVFS好一点。
关于Lustre:
一个Lustre文件系统主要包括以下四个组件:管理服务器Management Server(mgs), 元数据服务器Meta Data Target(mdt), 对象存储服务器Object Storge Target(ost) ,客户端Lustre clients(lc)。
它主要包括三个部分:元数据服务器MDS (Metadata Server)、对象存储服务器OSS (Object Storage Server)和客户端Client。
正常的启动顺序是:OST -> MDS -> CLIENT
甲骨文产品管理负责人Bob Thome表示:“云文件系统并不是甲骨文首个基于集群文件系统的产品。甲骨文管理着Lustre项目,Lustre更适合于拥有上千台服务器的大规模HPC(高性能计算)部署。云文件系统则更适合于25个节点数左右的小规模部署,尽管Lustre已经通过了多达100个节点的测试。Lustre也可以实现很多相同的功能,但使用门槛较高,安装和配置较为繁琐,并不适合于小规模部署。”
关于Lustre的博文:http://www.cnblogs.com/jpa2/category/384788.html
PVFS存在以下不足:
1)单一管理节点。上面说到过PVFS中只有一个管理节点来管理元数据,当集群系统达到一定的规模之后,管理节点将可能出现过度繁忙的情况,这时管理节点将成为系统瓶颈。
2)对数据的存储缺乏容错机制。当某一I/O节点无法工作时,上面的数据将出现不可用的情况。
3)静态配置。对PVFS的配置只能在启动前进行,一旦系统运行则不可再更改原先的配置。
集群管理工具 (CMT),它的职能是管理集群。它有多个功能,有的是可选功能。而必须具备的功能包括:
虽然这个功能清单对于有集群经验的人来说显得太简短,但清单所载功能是 CMT真正的核心。具备其他功能也不错,但对集群来说并不是必不可少的。
CMT 包括 Platform OCS、Clustercorp ROCKS+、Microsoft Windows CCS 和平台管理器 (Platform Manager) 、Mon等。
集群所需的工具并不多,但有了这些就能实现集群的基本运行。不过,它只能满足 1 个用户或 2 至 3 个用户的需要,此外,要实现全面控制和掌握集群的运行情况。要安装一些可选组件,从技术上虽然是可选项,但是没有这些工具,集群就不具备生产能力。
有一些组件可以添加到 CMT 或 CMI 上层。一个有数年管理多个集群经验的人说的,强烈建议您郑重考虑使用以下附加组件:
另一个理论上可选,但值得强烈推荐的组件——任务调度器(也被称为资源管理器)任务调度器是一个允许用户提交执行任务、但不参与任务运行的排队系统。任务调度器把提交的任务排成队列,等到资源(即节点)可用时,就开始运行。任务调度器包括:Platform LSF、PBS-Pro 和 MOAB 等。
略
http://www.ibm.com/developerworks/cn/linux/l-cluster1/
http://zh.community.dell.com/techcenter/w/techcenter_wiki/50
http://www.hpcblog.com.cn/
附上一张高清MIC图: