MOSIX是由Jerusalem的Hebrew大学开发的,它是一个软件管理层,为Linux内核扩充了高性能集群计算支持能力。它采用单一系统映像模式SSI(SingleSystem Image),支持所有的UNIX接口和机制,具有如下特性:
- 易使用性和透明性:支持多用户和时分共享环境,基于内核的支持,透明性好,不用修改应用程序。对所有的跨机器间的操作,如网络相关的操作,MOSIX为交互用户和应用级程序提供了一个虚拟机,看起来像单独的一个机器。当一个进程发出系统调用,是由本地内核(进程当前驻留的机器)负责执行网络范围的操作来执行该调用。
- 动态负载平衡:根据负载的波动和资源的可用性来发起进程迁移,通过在工作站上平均分布负载来提高性能。主要的负载平衡策略是负载计算算法(loadcalculationalgorithm)、信息散布算法和竞争性迁移考虑算法。迁移考虑算法根据获得的可用负载信息,节点的相对速度和其它参数,做出最后的迁移决定。上述算法由每个节点独立执行,是分布和未同步的。
- 最大的全面性能:采用自适应资源管理方法,通过抢先式进程迁移(可以透明的在任何时候、任何地方迁移任何进程),充分利用整个系统的资源和能力。抢占式进程迁移机可以在任意时候透明的将任意用户进程迁移到任一可用的节点上去。迁移包括在远程节点上创建一个新的进程结构,然后拷贝进程的页表和所有的脏页。迁移后,除了home节点外,将没有其它的剩余相关性。进程在新节点上恢复运行,经过几次页故障,将进程必须的一些页传送过来。
- 分布式控制和高度的可伸缩性:为了利用硬件的冗余来达到高可用性,工作站之间没有主从关系。系统的组成完全是分布式的,没有一个机器拥有整个系统的所有对象的信息。控制也是分布的,MOSIX中不存在集中的控制机构。每个节点都能够作为独立的系统运行,并且自主的做出控制决策。这种设计允许动态配置,节点可以自由的加入或退出网络系统而不会给其它节点带来影响。通过在算法中引入随机性来达到可伸缩性,每个节点并不试图获取整个系统的全面信息,而是只根据其它节点的部分知识做出控制选择。
- DFSA(Direct File SystemAccess)支持:当前集群计算技术的发展和迁移并行进程的能力使得产生一种可伸缩的集群文件系统成为一种需要,该文件系统不仅要能支持对文件的并行访问,而且要能在进程间保持文件的Cache一致性。传统的文件系统如NFS、AFS和CODA并不能做到这一点,因为它们依赖于集中的文件服务器。DFSA则更适合于集群系统,它通过将进程迁移到文件而不是传统的将文件数据传送给进程的方式对集群文件系统进行更好的支持。DFSA兼容的文件系统将允许迁移进程在当前节点直接文件IO而不用通过Home节点,这极大得减小了通信开销,充分利用了数据的本地性,特别适合于IO密集型进程。当前在Linux上还未有其它支持DFSA的文件系统,Mosix系统则实现了MFS(MosixFile System),支持DFSA特性。
MOSIX系统最显著的特性就是透明性,分布性和配置的灵活性。用户不必重新编译他们的应用程序,或者考虑不同处理器间的负载。并行应用可以通过简单的创建多个进程运行在MOSIX系统上,就像在单机环境中一样的。系统将试图自动优化进程的分配和平衡负载。所有的用户进程看起来都似乎运行在用户的home工作站上。每个新的进程是创建在其父进程所处的site上,如果被迁移的进程fork一个子进程,它将同时创建一份代理(deputy)和body的拷贝。每个用户创建的进程将运行在用户home节点上的执行环境中。迁移进程将尽可能的使用本地资源,但却是和用户工作站上的用户环境交互。 |