随着5G商用的临近,通信行业也迎来了5G的机遇和挑战。大规模机器通信、超可靠低时延通信场景(智能家居、智慧城市、增强现实、工业自动化、自动驾驶等)的兴起。)对未来的网络计算和流量转发能力提出了更高的要求。通用CPU设备已经不能满足处理海量数据、图片、流量的需求。

通信厂商根据不同的业务场景和自身优势,推出GPU、FPGA等。加速,并推出各种加速硬件方案。对于异构加速硬件,需要在各种CloudOS上运行,然后被上层厂商的VNF调用。如果没有统一的标准来管理这些加速卡,没有统一的接口供上层网元调用,会造成更严重的问题。

为了实现NFV异构加速硬件的统一管理,ETSI制定了NFV加速硬件统一管理软件框架标准。此后,该标准被扩展到更多场景,在OpenStack中孵化了CyberBorg项目。

Cyborg,目前唯一开源的硬件加速管理软件项目。

CyberBorg的主要功能包括硬件资源发现、报告、安装和卸载等资源管理。用户可以通过CyberBorg在计算节点上列出已经发现并报告的加速器,并创建一个带有加速器的实例。一些特殊硬件的特殊功能或配置(如FPGA编程)也会在Cyberborg中实现。

Cyberg采用经典架构,由几个模块组成:cyborg-api、cyborg-conductor、cyborg-agent和cyborg-db。电子人代理位于计算节点中,用于监控加速器;Cyborg-conductor位于控制节点,负责管理整个系统和操作数据库。Cyborg-api和cyborg-db分别是接口和数据库,位于控制节点中。

下面用CyberBorg的两个进程来介绍它的主要功能:资源发现和报告进程,用加速的硬件创建实例进程。

加快资源发现和报告的进程;

1.每个设备的驱动程序为加速设备构造CyberBorg中用于描述设备的数据结构,等待cyborg-agent轮询并取走设备数据;

2.Cyberg-Agent定期扫描启用的驱动程序;计算节点的;

3.Cyberborg-Agent获得驱动程序上报的数据信息后,通过cyborg-conductor将资源信息写入placement(更新资源提供者(RP)、资源类(RC)、features)和Cyberborg-DB(更新设备、可部署项、attach_handles、attributes、controlpath_ids)。

要使用加速硬件创建实例进程,请执行以下操作:

1.用户在Cyberborg中创建一个加速资源模板device_profile(类似于Nova Flavor);

2.用户创建风味并设置名称;ext-spec属性中device_profile的;

3.用户使用创建的风格发送启动虚拟机请求;

4.Nova-API收到请求后,向cyborg发送请求获取device_profile信息,并将device_profile信息合并到request_spec中进行调度;

5.在调度过程中,nova-scheduler请求放置获得request_spec中符合要求的硬件加速资源,放置返回符合要求的主机列表,然后由nova-scheduler的其他过滤器对主机列表进行过滤,排序后选出一台主机;

6.Nova-compute在选定的主机上部署实例,并请求CyberBorg加速资源的安装操作:

Nova-compute请求Cyberborg根据device_profile创建加速器请求(ARQ ),并为每个ARQ匹配硬件资源提供者(RP)。应当注意,ARQ包括诸如实例_uuid、资源_提供者_id、主机_名称和设备_配置文件_id的字段信息。ARQ对应于设备配置文件组,设备配置文件组对应于请求规范中的请求组。

Nova-compute发送一个将设备(bind_ARQ)绑定到Cyberborg的请求。Cyborg根据ARQ信息绑定实例、主机和设备,绑定后更新ARQ状态,通知nova当前ARQ绑定操作是否成功;

在收到ARQ绑定操作完成的通知后,Nova-compute从ARQ a获得设备信息