随着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文件。
中兴通讯持续社区贡献
社区t版本的主要工作在于实现s版本重新定义的加速硬件数据结构、基本发现、上报、挂载流程,目前社区已实现基本的管理功能,与placement交互基本完成,与nova组件的交互尚在推进中,有待成熟。另一方面社区在提升cyborg代码规范、及产品可用性方面也投入了大量精力:t版本引入集成测试、并全面引入flak8测试提升源代码的规范、python3支持。driver的支持方面,cyborg社区t版本新增了aichip ascend driver。
我司从queens版本开始投入cyborg,历经四个版本,见证了cyborg功能的逐步实现和完善。总体来说,中兴通讯的贡献主要在三方面: 第一、cyborg与nova交互的集成测试以促进cyborg的商用进程 (包括了加速硬件需求的接口测试,?设备调度和挂载测试,设备上报数据库,tempest ci及测试);第二、对现有driver 的维护、支持更多的driver (eg. zte自研高精度时钟卡driver);第三、提升源代码规范和质量(全面改善flake8测试)、完善接口文档。
在openstack train release中,中兴通讯在项目的commits和reviews均排名第二。中兴通讯在项目拥有两位core reviewer。在未来,中兴通讯将持续投入在cyborg中,为cyborg项目的发展做出贡献。
京东方已通过苹果认证,将于本月开始向iPhone 12供货OLED
赛灵思FPGA DIY系列(5):中频全数字频谱分析仪的实现
小米预热 RedmiBook Pro:祖传模具,正式退役
电子芯闻早报:诺基亚推OZO,HTC发力虚拟现实
Lexar雷克沙全新1066x microSD存储卡 高质感4K Vlog即刻创作
OpenStack硬件管理加速利器详解
PLC使用及接线注意事项
MAXQ处理器的串口转JTAG接口板
冰箱温度调节怎么调节?冰箱温控器接线图
节能LED显示屏是如何设计的
上游材料依旧紧缺,面板价格维持涨势
半导体概念股全线普涨,韦尔股份再次站稳2000亿元市值大关
全球首款5g手机将发布,它曾是国内通讯老大!
iPhone8什么时候上市?iPhone8最新消息:iPhone8前后“双”镜头,新设计有点意思
功率放大器在复合超声电机正反向运动中的应用
创客火带你探寻无人机科技创新之路
stm32数字示波器操作说明
非行稳无以致远:华为如何写好数字金融的大文章?
微信小说分销系统开发微信小说平台源码微信三级分销系统定制开发
国行三星Galaxy Note9发售时间或与国行版moto Z3撞车,你更关注哪一个?