OpenStack Ussuri 版新特性: Nova-Cyborg Interaction功能分析

本文详细阐述了OpenStack Ussuri版本中Nova与Cyborg组件的深度整合过程,重点介绍了加速设备管理功能的增强,以及如何通过Cyborg和Placement实现更灵活的资源管理。文中深入分析了DeviceProfile、ARQ等核心概念,以及虚拟机创建流程中各组件的交互细节。

摘要:OpenStack社区在Ussuri版本完成了nova-cyborg interaction功能的开发, 该功能加强了nova和cyborg的联系, 解耦了nova的PCI加速设备管理功能, 通过cyborg和placement可以让加速器资源的管理更加灵活。


概念

PR

resource provider, placement中的概念, 资源提供者。

Device Profile

Device profile是Cyborg中的概念, 它用于描述单个或多个加速设备,可以将之看作加速设备的flavor. 广义上, 它包括了两点:

  • 特定资源类的数量(resource class)
  • RP需要满足的要求(trait)

一个device profile的结构如下:

``` json
{
    'name': 'gpu-nvidia-t4',
    'description': 'Nvidia tesla t4',
    'groups': [
        {'resources:PGPU': '1',
         'CUSTOM_GPU_PRODUCT_ID_1EB8': 'required'
        },
        {'resources:PGPU': '2',
         'CUSTOM_GPU_PRODUCT_ID_1E04': 'required'
        }
    ]
    'uuid': 'd6cd5b94-f95c-4148-85c5-2ce22a38a796'
}
```

目前仅允许管理员创建/更新/删除device profiles。

ARQ

ARQ即accelerator request, 它是一个对象, 用于描述实例请求分配加速设备的状态,ARQ的创建和管理由cyborg完成, 并且数据存储在cyborg数据库中。

一个ARQ只能表示单个加速设备分配请求. `device_profile`可以有N个group, 每个group请求M个加速设备, 此时将会创建N*M个ARQ。

Cyborg初始化一个ARQ后, 该ARQ并不会和特定的计算节点主机名或RP id关联, 此时我们可以认为该ARQ处于未绑定状态(unbound). 之后, nova调用cyborg将ARQ绑定到一个计算节点主机名和一个加速设备的RP id和一个实例 id上. 如果实例孵化失败, nova不会删除这个ARQ, 而是取消绑定. nova会在删除实例时解绑和删除ARQ。

在绑定ARQ前, 每个ARQ都需要与nova选择的allocation candidate匹配。当前nova会建立RequestGroup到RPs的映射, nova中的cyborg客户端模块据此将ARQ匹配到RequestGroup上。匹配是使用RequestGroup对象中的requester_id字段进行的, 规则如下:

  • device profile中的group的顺序并不重要, 但是cyborg保留了这个顺序. 因此每个RequestGroup都有一个唯一的索引;
  • 当cyborg返回的device profile groups添加到request spec中时, 对于第N个RequestGroup, requester_id将
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值