Mosix:强大的集群Linux方案
Linux界现在好像处在疯狂地热衷于集群概念之中。几乎就在几个月之前,唯一的解决方案还只能是自己编写集群软件以达到较高的实用性。当然在科学集群方面,还可以使用Beowulf或者传送消息的集群库(例如 PVM)。但除了早先的这些解决方案,Linux在专有和商业集群的方面上是大大落后的。
但现在的发展看起来令人欣慰了很多。SGI的Failsafe已基本移植;Linux High Availability(高效性Linux)计划已经启动;Red Hat 推出了Piranha集群软件;等等。
同时还出现了一些可行的科学集群解决方案,其中最值得推荐的是Mosix。Mosix使用的是单一系统图形(SSI)集群器。SSI集群器之所以受到欢迎是因为它们给用户的感觉像是在一台巨型计算机上工作,而不是一群单个的节点。用户可以登录到Mosix集群器上的任何一个节点,并启动集群器中任何节点上运行的程序,只要内核中的集群软件认为这些程序是可以运行的。如果用户运行的DNS是正确的,他们只需telnet到cluster.mynet.com,DNS的循环功能会让他们随机地登录到某个节点及其分支程序上,然后再分支,分支。
装配Mosix集群器
有些Mosix集群器可以达到世界上前50种性能最强的的超级计算机的水平。如果有足够多闲置的计算机设备的话,就可以考虑自己动手组装一个Mosix集群器。
例如,在如下硬件上安装Mosix内核:
3台双CPU计算机,主频从500MHz到933MHz,内存总和为1.5GB左右。
8台单CPU计算机,主频从MMX266MHz到933MHz,内存总和为1.8GB。
而存储空间,用了Network Appliance F720,约有120GB的磁盘空间,并使文件系统对所有计算机为可读。非常重要的一点是,所有机器都必须有统一的用户ID和群组ID,否则访问数据时就可能会出现问题。
这些机器通过100/1000Mbit的网络连接起来,中心安置一个光学转换器。
在这个设计中采用的是用 Network Appliance 存储服务器来实现中心存储的方案,所有集群器节点都围绕其中。有些节点用的是1000Mbit 的网卡,有些用的是较旧的100Mbit。Mosix 会测得每个节点之间的等待时间,并在某个节点上负载过高决定将它的程序转移到其他节点时考虑这个因素。这里使用的网卡是Phobos公司的产品,转换器用的是Nbase公司的。
从上述网站下载两个RPM,并用“rpm -install xxx.rpm”命令进行安装。其中一个RPM是给2.2.16内核的,其中带有所有编译好的 Mosix扩展。另一个则是为监测集群器所用的一套Mosix用户空间命令而备的。
重新启动各节点进入Mosix内核,此时,工作就已接近尾声了,最后要做的就只是让每个节点知道其他节点的位置。要做到这点,编辑一个映射文件/etc/mosix.map,在文件中指定所有其他的节点和它们的IP地址,这与/etc/hosts文件相似。
检测一下是否所有节点都能互相看到彼此,运行“mon”监测程序。它将显示所有工作节点的图表和各自的负载水平、内存消耗,及其他信息。
<img src="http://linux.chinabyte.com/image/010613mon.jpg">
mon监测程序的运行界面
启动集群器
现在就实践一下吧,可以试着创建一个进程,如distributed.net所说的dnetc RC5破程序。然后再加几个其他的进程。此时看一下“mon”程序会发现你的计算机的负载很高,而其他则仍很低。但很快,你节点上的负载量会逐渐降低,而其他节点则相应上升,因为你机子上的一些进程被转移到了其他更佳的节点上了。Mosix会自动调节转移的时间和节点位置,而无需用户对此进行控制。
为了对这个新集群器的强大性能有个具体的概念,笔者在集群器之外的Linux上写了一组脚本,在某个节点上启动程序并测定该集群器的运行情况。这些程序由质数运算器、互动式空程序,及共享的内存使用进程组成。
当节点在集群器(双CPU PIII 933-MHz,768MB RAM)之外时,该机器最高达到20个质数运算器、40个互动式任务,以及大约30个共享内存进程。运行了这些程序后,几乎连登录都不能运行,再也不能添加额外的负载了。
而在集群器中的情况就大为不同了,在最大的节点上可以运行450个以上的质数运算器、数百个shell和大约210个共享内存任务(内存参考模式规定,共享内存程序不能转移到其他节点。)
如果在单个的计算机上要完成这些任务,不知道需要多高的配置,但至少不会低于Sun E6000或HP V2000大型机的水平,它们的价格达十万美元之巨。而现在所有这些硬件只需要不到2万美元,是Linux使我们做到了这一点。
在多个节点上创建单一图形集群器只有在程序被转移到另外节点时仍能看到其设备和文件时才是有意义的。Mosix无需中央存储器就能做到这一点,具体情况如何呢?
当一个进程转移到集群器中的另一个节点时,它的代码存根仍保留在原来的节点上。每当需要输入/输出时,该进程会将请求发送到最初节点的代码存根上,而后代码存根在本地进行输入/输出处理并返回结果。
当然,这会加大输入/输出密集的程序的负担。为减少这种网络活动,提高整个输入/输出的效率,Mosix开发人员开始将
全局文件系统(Global File System,GFS)移植到Mosix集群器中。
全局文件系统是Linux的共享盘集群器文件系统。GFS支持客户机故障时的日志和恢复。GFS集群器节点通过Fibre Channel或共享的SCSI 设备物理共享共同的存储器。看起来,文件系统在每个节点上都像是本地机上的,GFS使文件访问在集群器中保持同步。GFS是完全对称的,也就是说,所有节点都是均等的,没有哪个服务器会是瓶颈或出现任何故障。GFS在维护所有Unix文件系统时使用读/写缓冲。
但是,GFS也存在着一个缺点,它只能运行在较新的SCSI控制器上,而不能在以前的产品上运行。不过对于装备了新设备并且确实有集群必要的用户来说,GFS是非常好的解决方案。
Mosix GFS执行的时间还不长,但性能确实很好。想想家里要是有这么个功能强大的巨型机该是多么好的感觉。那么,如果你有好几台装了Linux的闲置机器,又想搞个大型机玩玩的话,就试试Mosix吧。
欲对Mosix有一个全面的了解,请访问网站:http://www.mosix.org/。
分享到:
相关推荐
MOSIX是Linux核心集群计算的功能之一。它支持的操作系统平台有BSD/OS 和Linux,它允许任意多个基于X86/Pentium的服务器和工作站协同工作。在MOSIX集群环境中,用户无需对应用程序进行修改,或将应用程序与库连接起来...
【Linux 操作系统】 Linux 是一种开源操作系统,它的核心在于其灵活性和可定制性,使其成为各种场景下的理想选择,包括服务器环境。...对于构建和管理校园网服务器集群,Linux提供了强大且经济高效的解决方案。
以上这些集群产品和解决方案展示了Linux在企业级应用中的强大实力,不仅提供了高可靠性,还具有良好的性能扩展性和资源优化能力,是现代企业IT架构中的重要组成部分。对于系统开发人员和管理员来说,了解并掌握这些...
总的来说,OpenMosix为Linux用户提供了一个强大的集群解决方案,它通过进程迁移、代理进程和直接文件访问等机制,实现了高效的资源管理和高可用性。尽管现在可能已经被其他集群技术如Maui、Slurm等所取代,但...
- 包括Beowulf集群、MOSIX集群以及LVSLinux Virtual Server等不同类型,这些集群主要用于科学研究、教育和开发测试等领域。 ##### 二、Apache + Tomcat 集群配置细节 - **N54537 Real-server**:在Apache + ...
2. **Red Hat Linux**:作为一款广泛使用的开源操作系统,Red Hat Linux为企业级应用提供了强大的支持。通过使用Red Hat Linux,可以构建稳定的集群环境。此外,结合LTSP(Linux Terminal Server Project)等工具,...
已编译好的内核升级包(.deb 格式),适用于debian 系统。 使用方法: 1 安装包解压后有两个文件:已编译好的内核包和mosix2.31.0.0原码。 2 # dpkg -i 内核包 安装内核包。...执行# ./mosix.install安装mosix
11. MOSIX和Sprite:MOSIX和Sprite都是早期的集群和分布式系统项目,它们通过特定的软件实现节点间的资源管理和任务调度。 12. Mainframe:大型机(Mainframe)是传统上用于管理大规模数据和进行计算的大型计算机...
文章探讨了在Linux集群中Socket迁移的问题,并着重分析了MIGSOCK系统,这是一个基于CRAK集群系统的Socket迁移解决方案。MIGSOCK通过添加一个Linux模块并对TCP层进行少量修改,实现了内核级别的可迁移Socket。这一...
Linux 高性能集群系统是一种常见的高性能计算集群系统,例如 Beowulf、COW 和 Mosix 等。Beowulf 集群是一种能够将多台计算机用于并行计算的体系结构,通常由通过以太网或其他网络连接的多个计算节点和管理节点构成...
作者将侧重就集群的可扩展性及体系结构分析、原理论、集群的考量、具体的分析案例(LVS、beowulf、MOSIX)、集群高可用技术、分布式文件系统等等各个方面为您更加深入的介绍集群系统。本文是第一篇。主要阐述集群...
2. **MOSIX**:这是一种改进版的Linux操作系统,可以将多个独立的Linux系统连接起来形成一个强大的计算集群。 3. **LVSLinux Virtual Server**:一种用于构建高度可扩展和可管理的Web服务集群的解决方案,通过负载...
本文档将详细介绍如何使用Red Hat AS 3.x、LVS、Linux-HA及Ldirectord来构建一个高可用的负载均衡集群系统。 - **架构设计**:集群系统通常由LoadBalancer、Backup Server和Real Server组成。LoadBalancer负责接收...
在现代信息技术领域,特别是在集群和分布式系统的发展中,Linux作为操作系统的核心承载着进程迁移和优化的重担。《Linux下进程迁移机制的研究》一文,正是在这样的背景下,针对Linux操作系统中进程迁移的实现机制,...
【基于Linux的进程迁移机制设计】是针对Linux操作系统的一种优化技术,旨在提高集群系统和分布式环境的整体性能和容错能力。进程迁移是指将正在运行的进程从一个计算节点转移到另一个节点,以实现负载平衡,减少资源...