随着5G商用的临近,通信行业也迎来了5G的机遇和挑战。大规模机器通信的兴起,超可靠、低时延的通信需求场景(智能家居、智慧城市、增强现实、工业自动化、自动驾驶等。)对未来网络的计算和流量转发能力提出了更高的要求。通用CPU设备可以无法满足处理海量数据、图片和流量的需求。
通信厂商根据不同的业务场景和自身优势,推出GPU、FPGA等。加速,并推出各种加速硬件方案。对于异构加速硬件,它必须运行在各种CloudOS上,然后被上层厂商的VNF调用。如果没有统一的标准来管理这些加速卡,没有统一的接口供上层网元调用,就会造成严重的问题。
为了实现NFV异构加速硬件的统一管理,ETSI制定了NFV加速硬件统一管理软件框架标准。此后,该标准被扩展到更多场景,Cyborg项目在OpenStack中孵化。
Cyborg,目前唯一开源的硬件加速管理软件项目。
Cyborg的主要功能包括资源管理,如硬件资源的发现、报告、安装和卸载。用户可以通过Cyberblog在计算节点上列出发现和报告的加速器,并创建带有加速器的实例。一些特殊硬件的特殊功能或配置(如FPGA编程)也会在cyborg中实现。
Cyborg采用经典架构,由几个模块组成:cyborg-api、cyborg-conductor、cyborg-agent和cyborg-db。其中,Cyborg-agent位于计算节点,用于监控加速器;Cyborg-conductor位于控制节点,负责管理整个系统和操作数据库。Cyborg-api和cyborg-db分别是接口和数据库,位于控制节点中。
下面用Cyborg的两个进程来介绍它的主要功能:资源发现和报告进程,以及带加速硬件的实例创建进程。
加快资源发现和上报流程:
1.每个设备的驱动程序为加速设备构造用于在Cyborg中描述设备的数据结构,并等待cyborg-agent轮询并获取设备数据;
2.电子人代理定期扫描驱动程序;启用的计算节点的名称;
3.cyberg-agent获得驱动程序上报的数据信息后,通过cyborg-conductor将资源信息写入placement(更新资源提供者(RP)、资源类(RC)、traits)和cyborg-db(更新设备、可部署项、attach_handles、attributes、controlpath_ids)。
加速创建硬件的示例流程:
1.用户在cyborg中创建一个加速资源模板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在选定的主机上部署实例,并请求cyborg加快资源的挂载操作:
Nova-compute请求cyborg根据device_profile创建加速器请求(ARQ),并为每个ARQ匹配硬件资源提供者(RP)。应当注意,ARQ包括诸如实例_uuid、资源_提供者_id、主机_名称和设备_配置文件_id的字段信息。一个ARQ对应于一个设备配置文件组,一个设备配置文件组对应于请求规范中的一个请求组。
Nova-compute发送一个将设备(bind_ARQ)绑定到电子人的请求。Cyborg根据ARQ信息绑定实例、主机和设备,绑定后更新ARQ状态,通知nova当前ARQ绑定操作是否成功;
收到ARQ绑定操作结束的通知后,Nova-compute从ARQ获取设备信息,并将设备的BDF信息写入XML
标签:设备资源cyborg