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
工作项¶
CIM 模式到 json 文件
依赖项¶
无
测试¶
测试以确认我们的解析有效
测试以确认元数据已正确上传到 OpenStack
文档影响¶
需要添加文档说明正在引入 CIM 命名空间。
参考资料¶
http://schemas.dmtf.org/wbem/cim-html/2/CIM_VirtualSystemSettingData.html
http://schemas.dmtf.org/wbem/cim-html/2/CIM_ResourceAllocationSettingData.html
http://schemas.dmtf.org/wbem/cim-html/2/CIM_StorageAllocationSettingData.html
http://schemas.dmtf.org/wbem/cim-html/2/CIM_ProcessorAllocationSettingData.html