在 AI 计算:AI 计算:从单机到集群(上)和 AI 计算:从单机到集群(中)介绍基础上,大家了解了 AI 计算容器化和集群调度的相关知识。那么本篇作为 AI 计算系列的收尾篇,指导大家如何打造一个完备高效的计算平台。
本篇首先介绍一个完备高效计算平台的整体架构,然后选择架构中一些分系统作为切入点,详细介绍这些系统的组成和特点,希望能够为大家构建平台时提供有益的参考。
— 整体架构 —
AI 计算任务和传统的云服务有显著不同,其具有如下特点:
业务流程长,逻辑复杂:从数据的采集、存储、分析、挖掘到最终提供数据服务,需要把多种数据源融合以及关联分析。
场景多样化,不确定性强:需要与业务紧密结合,很多场景都是探索性质,并且要随着业务变化和反馈持续的调整。
技术门槛高,对使用者要求高:多种计算引擎,多种计算模型,大规模机器学习的组合使用,以及多种计算资源(GPU/CPU) 协调计算。
针对以上特点,我们需要一个对使用者友好的计算平台,能够解决不同场景下对 AI 计算的不同需求,降低使用者的门槛。所以,作为一个完备高效的计算平台,只具有计算任务的管理和调度是不够的,还需要其他分系统和组件的协同配合。下图展示的是平台整体架构逻辑图。从下往上分别是:
平台基础层:提供平台的底层支撑,除了我们在中篇已经介绍的计算调度系统,还包括计算所需要的分布式存储系统。
平台计算层:提供平台与 AI 具体算法相关的计算实现,与平台紧密配合并深度优化定制,完成任务算法的具体实现。
平台控制中心:提供平台支撑和管理系统。
平台业务层:支持多种业务领域的应用。
基于以上架构的平台具有如下优势:
丰富的机器学习算法:内置支持丰富多样的机器学习算法和模块
完整的数据处理流程:兼容支持多种数据格式与完整的数据处理流程
高效的异构计算集群:高效的 GPU/CPU 异构计算平台和分布式存储系统
一站式服务体验:一站式服务,易用,惠及更多用户
从平台整体框架图看,平台的构成子系统众多,由于篇幅限制,不能一一介绍。本文挑选部分子系统向大家介绍。
— 平台基础层 —
在 AI 计算:从单机到集群(上)和 AI 计算:从单机到集群(中)中我们主要介绍了基于 GPU 和 CPU 的容器任务调度系统。容器任务在生命周期结束时,所有的生成数据都会随着任务删除而消失,为了保存任务的输出结果,需要将外部存储挂载到容器中保存训练结果。除此之外,计算任务读取外部数据进行模型训练,也需要外部存储支持。
分布式文件存储系统
分布式文件存储系统是计算平台的重要部分,我们实现了连续空间的大规模分布式存储系统,可扩展支持 PB 量级容量的存储空间,兼容 POSIX 标准,无缝对接现有多种深度学习框架的读写接口,具有多重数据冗余能力,保证数据的安全可靠。同时提供高吞吐量的数据读写操作 ,满足任务对数据的高速读写要求,此外,系统具有良好的扩展性,根据平台需求对存储容量自由扩展。
AI 计算任务需要海量数据支撑,对存储的需求具有如下特点:
大容量:能够支持大容量的数据存储。
高 IO:具有高 IO 的数据读写操作。
兼容 POSIX 协议。
这写特点决定了,与 AI 计算匹配的存储系统必须是分布式存储系统,才能满足计算的要求。由于我们使用基于 Kubernetes 的计算任务调度系统,要求外部存储首先能够和 Kubernetes 结合,才能在计算任务中使用。Kubernetes 支持的外部存储(https://link.zhihu.com/?target=https%3A//kubernetes.io/docs/concepts/storage/volumes/)包括很多类型,包括本地目录 hostPath、网络存储 NFS、块存储 RBD、以及其他第三方云平台存储格式等。我们构建基于 Lustre 的分布式文件系统,为计算任务提供大容量和高 IO 的存储方案。
Lustre 分布式文件系统历史悠久,广泛应用在各个国家的高性能计算中心。Lustre 是开放源代码的集群文件系统, 提供与 POSIX 兼容的文件系统接口。Lustre 两个最大特征是高扩展性和高性能,能够支持数万客户端系统、很容易扩展到 PB 级存储容量、并具有数百 GB 每秒的 I/O 吞吐量。
下图是 Lustre 的组成架构图,描述的是存储整体逻辑框。左侧为 Metadata Servers ( MDS, 媒体结构数据服务器),存储数据的结构性信息,右侧是 Object Storage Servers (OSS,对象存储服务器)。存储实际的数据信息。存储节点间的网络连接分为两层,一种是用于数据传输的高性能网络,采用万兆网络配置。一种是节点管理网络,利用 Intel Manager for Lustre 软件监控整个存储集群的实时运行状态和配置存储集群。存储系统组成分为三部分:OSS阵列,MDS阵列,存储运行状态实时监控服务器。OSS 和 MDS 直接通过高速和低延时的高性能网络连接。监控服务器通过专用监控网络连接 OSS 和 MDS。MDS 服务器负责管理 OSS 服务器上的数据,并处理来自客户端的数据请求。每个 OSS 服务器的本地存储器,比如硬盘,被划分为多个 RAID 阵列,每个阵列被虚拟为 OST 数据类型。
OSS(对象存储服务器),存储实际的数据信息,采用 Dell 高密度阵列存储。
MDS(媒体结构数据服务器),提供数据的描述和结构信息,通过阵列实现高可用的 MDS。
监控服务器,实时监控存储系统运行状态,具有管理和配置存储系统的功能。
— 控制中心 —
如果说计算系统和存储系统是平台的双引擎,那么控制中心就是平台的驾驶舱。控制中心直接面向用户,为用户提供图形化的任务交互,为平台提供监控和健康检查,为任务提供镜像分发等服务。我们选择其中两个分系统:平台日志与实时监控系统和镜像管理系统,向大家作简单介绍。
平台日志与实时监控系统
计算平台的硬件涉及众多功能不一的服务器,但作为管理和使用人员来说,希望整个系统能够像一台计算机那样进行运行与管理。平台日志与实时监控系统是平台不可或缺的重要组件之一,保证平台的稳定运行和监控实时资源的使用,所以在平台中是至关重要的。我们独自开发了一套图形化的平台任务和节点状态监控系统,对整个计算集群中的计算资源进行管理。此系统是一套非常完备的用于监控和管理机群的解决方案,简化了机群管理工作的复杂度,使管理员通过统一的操作就可以非常容易的管理与监控集群中的多种计算资源。
下图展示的是实时监控系统逻辑框图,在计算节点上通过 Node Exporter 和 GPU Exporter 等信息采集器收集节点运行状态,包括计算资源,存储,网络带宽占用情况,以及节点健康状态。cAdvisor 监控节点上运行的多个任务的实时状态和对 GPU 、内存等相关资源的使用情况,上述平台运行信息定期发给 Prometheus 收集汇总。Grafana 查询 Prometheus 存储的信息,并通过图像化方式展示。监控系统中的警告和通知管理子系统,会根据相应配置触发邮件、短信或者即时通讯工具发送警告和通知信息给管理员,以保证平台的正常运转。
平台日志与实时监控系统软件具有如下优势:
多种功能有效集中在一起,高效便捷便,于管理维护
同时支持图形化界面操作与命令行方式操作,为系统管理员提供多种选择
分级授权管理,为系统管理员和普通用户提供不同权限的访问,保证系统的安全性
全面的可定制的系统监控及报警功能
实时显示节点 GPU、CPU、内存等资源使用信息
自动通知与报警
自动对监控结果进行筛选过滤,方便用户使用
下图显示的是监控系统显示节点 CPU 运行状态、内存使用情况以及节点负载情况的示例:
镜像管理系统
平台中运行着各种计算任务,需要利用镜像管理系统对所有的任务镜像提供统一的管理。Docker 官方维护的Docker Registry(https://link.zhihu.com/?target=https%3A//docs.docker.com/registry)能够提供简单的镜像仓库功能,但不足以支撑企业级的应用,尤其在高可用,用户管理和安全方面。Harbor 是由 VMWare 开发和维护的企业级 Registry 服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了 Docker Registry 的实现。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全,提升用户构建和传输镜像的效率。Harbor 在架构上如下图所示,主要包括:
Nginx Proxy:提供 Harbor 的图形界面等服务,通过一个前置的反向代理统一接收浏览器、Docker 命令的请求,并将请求转发给后端不同的服务。
Admin Server:提供用户认证和授权,赋予用户不同的角色。
Registry: 负责储存 Docker 镜像,并处理 Docker push/pull 命令。由于我们要对用户进行访问控制,即不同用户对镜像有不同的权限,Registry 会指向一个 Token 服务,强制用户的每次 docker pull/push 请求都要携带一个合法的 Token,Registry 会通过公钥对 Token 进行解密验证。
Project: 这是Harbor的核心功能,主要提供以项目为基础的镜像管理。
图中给出了四种角色,在 Harbor 工作流程中具有不同的权限:
Admin :具有所有权限
Developers:具有 push 与 pull 公开和私有项目镜像的权限
Guests:具有 pull 公开和私有项目镜像的权限
Anonymous:具有 pull 公开项目镜像的权限
Harbor 具有如下特性:
基于角色的访问控制 :用户与 Docker 镜像仓库通过项目进行组织管理,一个用户在不同的项目里具有不同的权限。
镜像复制 : 支持在多个 Registry 实例中复制(同步)镜像,尤其适合于负载均衡,高可用的场景。
图形化用户界面 : 支持通过浏览器来浏览,检索 Docker 镜像仓库,管理项目。
AD/LDAP 支持 : 支持集成企业内部已有的 AD/LDAP,用于鉴权认证管理。也提供了高级的安全特性,诸如用户管理,访问控制和活动日志等。
RESTful API : RESTful API 实现对 Harbor 更多操控的接口,与其它管理软件集成变得更容易。
部署简单 : 提供在线和离线两种安装方式。
— 总结 —
本文是 AI 计算系列的收尾篇,在 AI 计算:从单机到集群(上)和 AI 计算:从单机到集群(中)基础上,扩展介绍平台的整体架构实现,并选择架构中的部分子系统做详细的描述。在本文介绍完成之后,大家应该具有这样一个概念:一个高效完备的平台仅仅具有计算调度系统的功能是不够的,需要有相应的高 IO 和高可靠性的分布式存储平台与之相匹配。除此之外,还需要用户友好的平台控制中心,包括各种提供平台支撑的管理系统和监控系统等。
AI 计算系列三篇文章分享暂时告一段落,由于篇幅限制,很多内容没有机会详细展开和阐述,但是希望大家能够通过这三篇介绍,窥一斑而见全豹,了解面向 AI 计算的高效平台的基本概念,进而能够帮助大家实现从单机到集群,再到完备高效计算平台的目标。后续有机会我们会再次为大家介绍 AI 计算平台相关内容。
-
存储系统
+关注
关注
2文章
409浏览量
40858 -
人工智能
+关注
关注
1791文章
47260浏览量
238432 -
计算平台
+关注
关注
0文章
52浏览量
9623
发布评论请先 登录
相关推荐
评论