
随着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获得设备信息









