改进计算数据模型¶
https://blueprints.launchpad.net/watcher/+spec/improve-compute-data-model
问题描述¶
Watcher ComputeNode 中的字段(vcpus、memory 和 disk_capacity)对应于 Nova API list-hypervisors-details 中的字段(vcpus、memory_mb 和 local_gb)。不幸的是,这些字段没有考虑用于超卖的分配比例,因此可能与已用数量存在差异。
用例¶
作为 Watcher 用户,我希望 Watcher 能够在超卖资源(cpu、memory 和 disk)的情况下正确工作。
提议的变更¶
现在 Watcher 已经添加了 Placement helper。Watcher 可以从 API list resource provider inventories 获取资源信息,例如总量、分配比例和保留信息。
Watcher ComputeNode¶
我们需要在 Watcher ComputeNode 中添加一些字段
vcpu_reserved:节点为其自身保留的 cpu 数量。
vcpu_ratio:CPU 分配比例。
memory_mb_reserved:节点为其自身保留的 memory 数量。
memory_ratio:Memory 分配比例。
disk_gb_reserved:节点为其自身保留的 disk 数量。
disk_ratio:Disk 分配比例。
我们可以通过总量、保留量和分配比例来计算总资源容量。
公式:vcpu 容量 = (vcpus-vcpu_reserved)*vcpu_ratio
例如,对于 vcpu 资源,
vcpus = 8
vcpu_reserved = 2
vcpu_ratio = 5.0
vcpu 容量为 (8 - 2) * 5.0 = 30。
我们还向 Watcher ComputeNode 添加一些新的属性
vcpu_capacity:vcpu 的数量,考虑分配比例,但不包括保留量。
memory_mb_capacity:memory 的数量,考虑分配比例,但不包括保留量。
disk_gb_capacity:disk 的数量,考虑分配比例,但不包括保留量。
计算数据模型¶
CDM(计算数据模型)将在创建审计时构建,并在接收 Nova 通知时更新。因此,在构建和更新 CDM 时,我们需要从 Placement API 获取资源信息。
备选方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
无
开发人员影响¶
无
实现¶
负责人¶
- 主要负责人
licanwei
工作项¶
向 Watcher ComputeNode 添加新字段
更新计算收集器
更新关于 Nova 通知处理
依赖项¶
无
测试¶
添加单元测试
文档影响¶
无
参考资料¶
历史¶
发布名称 |
描述 |
|---|---|
Train |
引入 |