随着5G商用的渐近,通信行业也迎来了5G的机遇与挑战。大规模机器类通信、超可靠、低延迟通信需求场景(智能家居、智慧城市、增强现实、工业自动化、自动驾驶等)的兴起,对未来网络的计算和流量转发能力提出了更高的要求。通用CPU设备已经无法满足处理海量数据、图片、流量的需求。
根据不同业务场景和自身优势,通讯厂商引入GPU、FPGA等进行加速,推出了各种加速硬件方案。对于异构加速硬件,要运行在各种CloudOS上,再被上层厂家的VNF调用,假如没有一个统一的标准来管理这些加速卡,没有统一的接口来让上层网元调用,将会造成比较严重的问题。
为了实现NFV异构加速硬件的统一管理, ETSI制定了NFV加速硬件统一管理软件框架标准。此后,该标准被拓展至更多场景,并在OpenStack孵化出了Cyborg项目。
Cyborg,目前唯一的开源硬件加速管理软件项目
Cyborg的主要功能包括硬件资源的发现、上报、挂载\卸载等资源管理。用户可以通过Cyborg列出计算节点上已经被发现和上报的加速器、并创建带加速器的实例。对于一些特殊硬件的特殊功能或配置(如:FPGA的编程),也将在cyborg实现。
Cyborg采用经典架构,由cyborg-api、cyborg-conductor、cyborg-agent、 cyborg-db几个模块组成。其中Cyborg-agent位于计算节点,用于监控加速器;cyborg-conductor位于控制节点,管理整个系统和操作数据库。cyborg-api和cyborg-db分别为接口和数据库,均位于控制节点。
下面通过Cyborg的两个流程来介绍其主要功能:资源发现和上报流程、创建带加速硬件的实例流程。
加速资源发现和上报流程:
1. 各设备的driver为加速设备构造Cyborg中用于描述设备的数据结构,等待cyborg-agent轮询取走设备数据;
2. cyborg-agent周期性扫描计算节点enabled的driver;
3. cyborg-agent获取到driver上报来的数据信息后,通过cyborg-conductor将资源信息写入placement(更新Resource Provider(RP), Resource Class(RC),traits)和cyborg-db(更新devices, deployables, attach_handles, attributes, controlpath_ids)
创建带加速硬件的实例流程:
1. User在cyborg创建一个加速资源模板device_profile(类似于nova flavor);
2. User创建flavor,并在extra-spec属性中设置device_profile的name;
3. User 使用已创建的flavor 发送boot虚机请求;
4. Nova-api接受到请求以后, 向cyborg发起请求获取device_profile信息,并将device_profile信息合入request_spec,用于调度;
5. 调度过程中nova-scheduler向placement请求获取符合request_spec中要求的硬件加速资源,placement返回满足要求的主机列表,之后主机列表再通过nova-scheduler其他Filter的过滤,排序后选定某个主机;
6. Nova-compute在选定的主机上部署实例,并向cyborg请求加速资源的挂载操作:
Nova-compute根据device_profile向cyborg请求创建加速器请求(Accelerator Request, ARQ),并为每个ARQ匹配硬件资源Resource Provider(RP)。 需要说明的是:ARQ包含instance_uuid、 resource_provider_id、host_name、 device_profile_id等字段信息。一个ARQ对应一个device_profile_group, 一个device_profile_group对应request spec中的一个request group。
Nova-compute向cyborg发送绑定设备(bind_ARQ)的请求。Cyborg根据ARQ信息绑定instance、host、device,绑定结束后更新ARQ的状态,并通知nova当前ARQ绑定操作是否成功;
Nova-compute接到ARQ绑定操作结束的通知后,从ARQ获取设备信息,并将设备BDF信息写入instance的XML文件。
责任编辑:gt
-
智能家居
+关注
关注
1926文章
9465浏览量
183727 -
开源硬件
+关注
关注
8文章
204浏览量
29699 -
增强现实
+关注
关注
1文章
708浏览量
44902
发布评论请先 登录
相关推荐
评论