CIM 命名空间元数据

https://blueprints.launchpad.net/glance/+spec/cim-namespace-metadata-definitions

OpenStack Kilo 版本引入了定义元数据定义并将其与不同资源类型关联的支持。为了使工作负载在 OpenStack 云之间具有互操作性,采用一组通用的元数据至关重要,特别是对于硬件架构、指令集及其扩展。通用信息模型 (CIM)[A] 和分布式管理任务组 (DMTF)[2] 已经定义了一个相当详尽的列表。我们建议将其包含到 OpenStack 中。

问题描述

一套标准的、众所周知的元数据标签对于描述云资源(例如镜像、风味、计算节点等)非常有用,目的是为了使跨云的编排具有互操作性。这是我们在云联合故事中的又一步。

  • 我有一个工作负载在 OpenStack 云 A 上运行,希望它在 OpenStack 云 B 上运行方式完全相同。使用通用标准描述符指定属性的风味将实现这一点。

  • 网络虚拟功能供应商希望提供一个设备,该设备具有元数据,不同的云可以预期提供相同的性能水平,以满足其通常严格的延迟需求。许多供应商使用开放虚拟化格式 (OVF) 来打包他们的设备,该格式使用 CIM 格式,这是 DMTF 标准。

我们希望在 OpenStack 中引入 CIM 命名空间,以促进云的互操作性。

提议的变更

处理器、资源、虚拟化和存储 [C - F] 的 CIM 模式文件将被解析,并将 json 文件添加到 Glance etc/metadefs 目录中。为了便于在未来的 OpenStack 版本中收集模式文件的更新(尽管预计这种情况很少发生),解析工具也将添加到 glance 代码库中。

指令集扩展将忽略启用/禁用项。这里的理由是,除了与虚拟化相关的指令(即 VT-d、VT-x)之外,很少有指令扩展会在云提供商花费资金购买最新平台后被禁用。

在本解决方案的当前版本中,我们不会引入元数据标签之间关系的语义。例如,在描述硬件时,属于特定处理器架构的计算主机只能表现出相同架构中可用的指令。

在本版本中,我们将忽略 CIM 模式文件的版本。期望是它们会添加元素,而不是删除元素,也不会更改元素值的类型。我们已经在 Glance 中支持上传、覆盖和合并元数据定义 [K]。当引入 CIM 标签的新版本时,这将派上用场。我们可以添加一个 API 调用,指示每个 CIM 元数据定义文件支持的 CIM 版本号。

备选方案

手动在每个云中创建 CIM 命名空间元数据,使用元数据添加 API,这是一项繁琐且容易出错的任务,必须在每个 OpenStack 云实例中复制。

数据模型影响

在 Glance etc/metadefs 目录中引入额外的 json 文件,这些文件是通过解析 [C]、[D]、[E] 和 [F] 的 CIM 模式文件生成的。

安全影响

通知影响

其他最终用户影响

易用性。Horizon 中 CIM 命名空间的元数据将类似于 [G]、[H]、[I] 和 [J] 中捕获的镜像,用于与处理器相关的 CIM 命名空间元素。可以通过 Searchlight API 使用弹性搜索的优势。

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

林阳 (lin-a-yang)

其他贡献者

评审人员

核心评审人:* Flavio Percoco * Ian Cordasco * Nikhil Komawar

其他审核员

  • 刘志燕

  • Travis Tripp

工作项

  1. CIM 模式到 json 文件

依赖项

测试

  1. 测试以确认我们的解析有效

  2. 测试以确认元数据已正确上传到 OpenStack

文档影响

需要添加文档说明正在引入 CIM 命名空间。

参考资料

  1. https://www.dmtf.org/

  2. https://www.dmtf.org/standards/cim

  3. http://schemas.dmtf.org/wbem/cim-html/2/CIM_VirtualSystemSettingData.html

  4. http://schemas.dmtf.org/wbem/cim-html/2/CIM_ResourceAllocationSettingData.html

  5. http://schemas.dmtf.org/wbem/cim-html/2/CIM_StorageAllocationSettingData.html

  6. http://schemas.dmtf.org/wbem/cim-html/2/CIM_ProcessorAllocationSettingData.html

  7. https://wiki.openstack.org/wiki/File:CIM_namespace.JPG

  8. https://wiki.openstack.org/wiki/File:CIM_namespace1.JPG

  9. https://wiki.openstack.org/wiki/File:CIM_namespace2.JPG

  10. https://wiki.openstack.org/wiki/File:CIM_namespace3.JPG

  11. https://review.openstack.org/#/c/159532/