这个问题是公号一位网友提出来的,因为近期工作事情实在太多拖了很久,今天周末有空写篇文章正式回复这位网友。

先说结论:Slurm和Laxcus的差别,其实非常大。Slurm是Simple Linux Utility for Resource Management的缩写,它的产品定位是分布任务调度工具,用来管控分布式业务,应用方向在超算和科研领域。而Laxcus的产品定位是操作系统,作为操作系统自然需要管控一切,Slurm的功能对标到Laxcus,只是Laxcus分布式体系里的一个模块。实际上Slurm提供的功能,Laxcus在0.x版本的时候就已经实现了。Laxcus分布式操作系统从3.0版本开始,开始支持多人共享使用。现在的Laxcus分布式操作系统,是由可视化的前端客户机和不可视的后端计算机集群组成。同时Laxcus集成了大数据、大算力、人工智能机器算法、容器、虚拟化等多种前沿技术,用户可以象使用Windows、Macintosh一样,通过分布式应用软件的GUI界面,借助鼠标和键盘去控制后端计算机集群上的分布式作业流,处理大规模、超大规模的分布式业务。这种使用操作要比Slurm简单和方便太多。因为Laxcus涵盖的技术内容比Slurm更丰富,使用操作又比Slurm简单容易,其实意味着Laxcus体系结构远比Slurm更复杂。Laxcus分布式操作系统的本质是为大规模、超大规模存储和计算而设计的一站式分布式工作平台。


下面详细说说具体的异同。

(1) 应用领域

根据目前已知的情况,Slurm的主要应用场景是超级计算机。目前全球TOP 500的超级计算机,60%都在使用Slurm做任务调度,可见Slurm在超算行业的影响力。

而Laxcus分布式操作系统的目标对象完全不同,它主要应用在商业领域,包括云计算、物联网等行业。这些应用场景对计算资源和存储资源有很高的弹性要求,能够为每个用户快速分配虚拟的集群空间,使用结束后又能快速释放,然后再分配给其它用户使用,这些工作属于虚拟化范畴。技术体系上,Laxcus分布式操作系统完全适配云三层,在这个领域做了大量技术研发和实现工作。这个能力,Slurm不具备。

Slurm和Laxcus分布式操作系统的同与不同_linux

Laxcus主要应用在云端等商业环境,和超算的科学计算完全不同

Slurm和Laxcus分布式操作系统的同与不同_linux_02

Laxcus分布式操作系统适配云三层


(2) 操作方式

因为Slurm运行环境是Linux、Unix,不可避免的,它操作使用也受到Linux、Unix的影响,需要用户编写shell脚本,以命令行方式去控制分布式的作业流。这种操作方式,对于熟悉计算机器的专业开发者和运维管理人员来说不是问题,但是对于普通的非专业用户和计算机初学者来说,却是一个难以逾越的障碍。虽然Slurm后期也开始支持图形界面,但是和Laxcus分布式操作系统的图形桌面相比,仍然不是一个量级。

因为Laxcus是操作系统,需要解决用户的易操作的问题,所以Laxcus的前端采用了Windows、Macintosh风格的GUI桌面,保证普通用户一以贯之使用,后端的计算机集群由于不需要可视化,工作模式类似Linux、Unix,各种的分布式应用业务会在系统管理下,统一协调运行。同时系统管理员也会远程监控计算机集群。在Laxcus分布式操作系统上处理应用业务,全部通过Laxcus分布式应用软件来实现。和所有单机操作系统一样,用户在使用应用业务之前,需要安装Laxcus分布式应用软件。软件安装对用户透明,整个过程完全是由系统调度分配实施。它会被分别安装在Laxcus桌面和部署到Laxcus集群的后端服务器上。用户使用的时候,是由前端的可视化界面发出指令,去控制分散在后端各种计算机节点上的非可视化进程。

Slurm和Laxcus分布式操作系统的同与不同_slurm_03

Laxcus媲美Windows、Macintosh的图形桌面,是Slurm不具备的​

Slurm和Laxcus分布式操作系统的同与不同_作业流_04

一个简单的分布式散列计算,其实已经调用了后端N台计算机分布协同工作。


(3) 分布式作业

Slurm的目标是负责分布式作业流的调度管理,并不直接提供分布式计算所需的编程接口、规范、测试等一整套完全的作业流程,这些工作本身都属于操作系统的内容,所以Slurm对分布式作业的定义非常宽松。

Laxcus分布式操作系统则完全不同,为了让用户简单容易去实现各种各样的大规模、超大规模的分布式业务,它有自己编程接口、分布处理模型,以及运行、调度管理流程,应用范式要比Slurm严格很多,这些已经形成完整的开发闭环。所有开发者需要按照Laxcus分布式编程模型和DSDK,遵守Laxcus分布式编程规范来开发分布式应用软件,这样的应用软件才能最后在Laxcus平台上运行。这个情况,也是所有操作系统的共同特点。

Slurm和Laxcus分布式操作系统的同与不同_linux_05

Laxcus分布式应用软件链接了终端、边缘端、云端,驱动大数据、大算力、机器算法一起参与大规模、超大规模存储和计算,在Laxcus分布式计算体系里起到承下启下的作用。


(4) 技术组成

因为Slurm目标需求单一,只负责分布式作业流的调度管理,所以它的技术组成要比Laxcus简单太多。

Laxcus分布式操作系统作为一款操作系统,而且是在分布环境下运行的操作系统,需要为用户提供图形化的GUI界面,以及管理后端计算机集群的功能模块、分布式计算的运行环境,所以无论是从涉及的技术,还是从功能实现,或者研发难度,Laxcus都要比Slurm复杂太多、庞大太多。目前是Laxcus分布式操作系统,这些技术组成大致包括了“系统内核、松耦合架构、虚拟化、多模通信网络、分布资源管理、HTAP分布存储、分布计算、流计算、分布锁、数据库、冗灾冗余、日志服务、安全管理、人工智能模型、应用容器、应用运行环境、语言模型、人机交互、边缘计算、终端服务、DSDK(分布编程开发工具包)”。做为一套操作系统,这些技术和功能都是Laxcus远超Slurm,是Slurm不具备的。

Slurm和Laxcus分布式操作系统的同与不同_作业流_06

Laxcus功能组成

Slurm和Laxcus分布式操作系统的同与不同_作业流_07

Laxcus集群拓扑结构


所以说,如果剔除对分布式管理这个概念,回到产品本身来说,Slurm和Laxcus完全不是一个维度产品,这一点请大家仔细理解。Laxcus分布式操作系详细的产品和技术介绍,请大家参见相关文档。这些在Laxcus官网都有提供。更多的细节,还请大家在使用中体会。​