这是头条一个网友的提问,细想一下,这个问题实在复杂,一番短文很难说明清楚,如果把各种技术内容全部写下来,估计是几本书的篇幅,所以我先尝试从分层的角度来解释一下,再回答这个问题。希望对网友了解Laxcus集群操作系统有点帮助。
粗略地说,Laxcus集群操作系统大致可以分成这样几层:核心层、分布层、管理层、基础设施层、虚拟化层、应用层、安全层。下面逐一说明。
1. 基础层。这一层是系统核心,它管理对象是单台服务器和硬件设备,服务器在基础层被映射成“节点”。系统启动的时候,硬件设备被抽象成“资源”,加入到节点管理队列中。之前谈过Laxcus支持各种异构CPU,就是在基础层处理。这个管理队列类似U盘的热插拔,需要的时候加入,不需要的时候再移出,非常灵活,也便于迁移。
2. 分布层。提供网络通信和基于网络通信的分布存储分布计算,在基础层被虚化的节点会在分布层聚合,形成一个巨大的资源池,受到系统统一管理。同时分布层还起到屏蔽基础层硬件设备的作用,为上层提供接口服务,以向下层传递上层处理请求。功能类似HTTP/FTP + 5G Massive MIMO + 谷歌 GFS / Hadoop HDFS的组合。
3. 管理层。这一层巨复杂,计算机集群的各种管理工作位于这一层,比如流量控制、分布调度、负载平衡、冗余容错之类。从Laxcus 5.0版本开始,计算机集群的管理工作已经委托给DFL人工智能模型来处理。
4. 公共设施层。提供超大规模存储计算必需的具有公共属性的功能,目前在云端的各种刚需应用,包括数据库、大数据、人工智能、应用容器、分布锁、分布事务等,都已经在公共设施层集成。
5. 虚拟化层。是为了满足多用户接入,提高资源复用而设计的功能。系统启动之后,虚拟化会把一个物理的计算机集群分割成N个虚拟的计算机集群,然后再分配给用户使用。这相同于把许多VMWare连接起来后的效果。虚拟集群之间是逻辑隔离的,用户的应用业务只能在自己的虚拟空间里运行。
6. 应用层。这一层提供具有用户属性的功能。分布编程接口包DSDK、开发和运行应用软件,处理大数据、人工智能、边缘计算业务都在这一层。
7. 安全层。这一层不是单独的,它是嵌入到上述各层,管理所有子系统。不论物理资源还是虚拟资源,包括CPU、内存、硬盘、网络通信、用户、用户业务、应用软件都受它管理。同时为各层提供各种安全保护手段,比如非对称加密、数字签名、对称密钥、防网络攻击策略、沙箱、各种资源安全策略、量子保密通信之类。我个人了解,目前所有分布式系统的安全体系,Laxcus提供的最完整。
层与层之间,还有DFL人工智能模型提供的各种机制来处理集群与集群,节点与节点之间协调控制衔接,正常状态下,集群运行基本不需要人员干预,DFL人工智能模型会智能分配各种工作。
介绍了分层,现在来回答问题,Laxcus集群操作系统如何管理几十万台服务器。
在Laxcus集群操作系统里面,有一项叫“多域并行集群”的技术,它位于“分布层”,由一个主域集群和多个子域集群组成,这是一种集群化的主从结构(master/slave),主域集群负责管理子域集群,子域集群接受主域集群管理,子域集群的数量,由主域集群物理性能决定。由于这个“多域并行集群”的出现,Laxcus多集群并行规模可以放大近千倍。
第二项技术:“松耦合架构”,它同时位于基础层、分布层、管理层,以“异步+弱依赖”的方式管理集群业务。松耦合架构的优势在于它支持迅速扩大单集群节点数量,但不影响集群性能和稳定性。根据我们测试结果,以核心节点采用Power8服务器为例,单集群节点数量在5000以下,同时辅以各种并行测试业务在节点上运行时,能够保证集群稳定运行,超过会出现管理峰值,单集群稳定性会下降。
第三项技术:“基于DFL人工智能模型的自适应机制”,这是DFL人工智能模型中的一个子集,负责管理单个节点,维持单节点稳定性。Laxcus集群运行时,系统会把管理工作下沉到每个节点,自适应机制使用DFL提供的深度学习,会根据节点不同的物理性能,选择一个最佳工作区间,主动干预服务器载荷,让服务器在允许范围内运行。
上述三项技术是Laxcus集群操作系统分别从“多集群”、“单集群”、“单节点”三个维度对计算机集群实施的管理。目前对于集群节点数量,我们有两组数据。在仿真环境里,多域集群并行数量超过800组,单域集群节点数量在3,000个以上,合计2,400,000个节点。生产环境中,多域集群并行数量最大是28组,单域集群节点数量最大500个左右,最大的多域集群总节点数量超过1,200台物理服务器。所以现在现实情况是,可用节点数量仍然离最大目标相去甚远。我们只能期待有更大规模的计算机集群出现,有更多用户使用Laxcus集群操作系统。
不知这些介绍说清楚没有?