Cyborg是一个加速器资源(GPU、vGPU、FPGA、NVMe SSD、QAT、DPDK、SmartNIC等)管理项目,它采用微服务架构来支持分布式部署,包含cyborg-api、cyborg-conductor和cyborg-agent服务。cyborg-agent收集加速器资源信息并报告给cyborg-conductor。cyborg-conductor将加速器资源信息存储到数据库中,并将其报告给Placement资源管理服务。Placement存储资源信息,并在服务器创建时为Nova调度提供可用资源。cyborg-api服务提供了请求加速器资源信息的接口。图0是Cyborg的架构。

使用Cyborg,可以通过与Nova和Placement交互来使用加速器引导服务器,并支持使用调度加速器的批引导服务器。用户可以在服务器端使用这些设备进行FPGA编程,通过GPU进行图像处理等。还可以通过热插拔和非热插拔设备将加速器绑定和解除绑定到现有服务器上,保证了加速器的方便使用。图1是启动服务器时Nova和Cyborg之间的交互流程。

在使用加速器增强服务器操作方面,支持大多数服务器操作,如创建和删除、重启(软和硬)、暂停和取消暂停、停止和启动、快照、备份、救援和取消救援、重建、撤离。还有其他正在进行的操作,如搁置和取消搁置、挂起和恢复(这些操作接近于合并)。计划支持迁移(live和cold)并很快调整大小。通过这些增强,运维人员可以更灵活地使用加速器。图2是使用vGPU设备引导服务器的顺序流程。

在Inspur InCloud OpenStack Enterprise版中,对一些功能进行了增强,如批引导服务器、基于热插拔的绑定和解除绑定加速器设备等。采用Cyborg管理虚拟GPU,利用率提高了80%。数据同步策略使Cyborg和Placement数据传输效率提高30%。

从图3可以看出,N3000的主要组件包括Intel Arria®10 FPGA、双Intel以太网聚合网络适配器XL710、Intel MAX®10 FPGA基板管理控制器(BMC)、9 GB DDR4、144 Mb QDR-IV。它可以支持10Gbps/25Gbps接口的高速网络和PCIe*Gen 3×16的高速主机接口。
Intel®FPGA可编程加速卡N3000(Intel FPGA PAC N3000)是一个高度定制的平台,支持高吞吐量、低延迟和高带宽应用。它允许优化数据平面性能,以实现更低的成本,同时保持高度的灵活性。端到端行业标准和开源工具支持允许用户快速适应不断变化的工作负载和行业标准。英特尔正在加快5G和网络功能虚拟化(NFV)在生态系统合作伙伴(如电信设备制造商(TEM)、虚拟网络功能(VNF)供应商、系统集成商和电信公司)中的应用,以将可扩展的高性能解决方案推向市场。图4是Cyborg程序的顺序流程。

对于SmartNIC,我们可以在OpenStack中使用OVS镜像作为NFVI功能进行编程,例如N3000、Mellanox CX5和BF2。图5是为SmartNIC启用加速器的顺序。

Cyborg支持几个新功能:异步程序API、程序进程API、资源动态报告。
用户可以启动N3000的新程序进程请求。它是一个异步API,可以安全、智能地检测资源使用中是否存在冲突,并决定是否接受或拒绝请求。还支持一个友好的程序进程查询API。用户可以使用它随时检查进程的阶段以及完成的百分比。当程序完成后,对资源进行类型化和量化,然后Cyborg可以动态地发现和报告变化。
在整个OpenStack中,也做了一些新的改进:Cyborg支持新SRIOV网卡的新驱动程序;Neutron支持一个新的选项来创建一个带有加速器设备配置文件的端口;Nova的改进以检索新的VF NIC并作为接口传递到服务器。
经过这些改进,OpenStack可以更加灵活方便地支持SmartNIC,这些改进包括SmartNIC卡(如上所述),甚至其他SRIOV卡。
OpenStack的所有新特性和改进都将是上游的。
11月25日,浪潮InCloud OpenStack(ICOS)完成了1000个节点的“全球最大的云、大数据、人工智能单集群实践”,实现了云、大数据、人工智能的融合。这是业界规模最大的SPEC云测试,也是第一次大规模多维融合测试。实现了规模、场景、性能的全面突破,完成了从500节点到1000节点的升级,实现了从量变到质变的升华。浪潮正在为这项大规模测试编写白皮书,不久将发布。这对大规模环境下的产品有一定的参考价值。
原文链接:
Enhancement of New Heterogeneous Accelerators Based on Cyborg - Superuser (openstack.org)






