在 Hyper-V Inspector 中添加磁盘 IOPS 指标实现¶
https://blueprints.launchpad.net/ceilometer/+spec/hyper-v-disk-iops-metrics
I/O 请求之间的高延迟可能是问题的征兆。收集磁盘延迟指标可以帮助我们检测这些问题。Hyper-V Inspector 可以收集这些指标。
问题描述¶
目前,在检查磁盘指标时,Hyper-V Inspector 无法发布 read_requests 或 write_requests 的任何值,因为 Hyper-V 不支持这种类型的指标。相反,Hyper-V Inspector 可以收集磁盘 IOPS 指标,这将为用户提供一个有用的替代方案。
提议的变更¶
添加 DiskIOPSPollster 和 PerDeviceDiskIOPSPollster 轮询器,它们创建具有以下属性的样本:* name: ‘disk.iops’ * type: ‘gauge’ * unit: ‘count/second’
创建命名元组 DiskIOPSStats,包含字段 ‘iops_count’。
在 Inspector 中添加方法 ‘inspect_disk_iops’ 并将其在 HyperVInspector 中实现。该方法将返回一个 DiskIOPSStats 对象。
指标值将从 Hyper-V 虚拟机中获取,位于与虚拟机关联的 Msvm_AggregationMetricValue 对象(以下简称指标对象)中。指标对象的 ‘MetricDefinitionId’ 必须等于具有 Caption ‘Average Normalized Disk Throughput’ 的 Msvm_AggregationMetricDefinition 对象的 ‘Id’。
Hyper-V 磁盘指标是在 Windows / Hyper-V Server 2012 R2(内核版本 6.3)中引入的。它们在早期版本中不受支持。
替代方案¶
无
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
Pipeline 影响¶
用户需要在 pipeline.yaml 中的 disk_source 源中添加指标 ‘disk.iops’,而不是 ‘disk.read.requests’ 和 ‘disk.write.requests’。
在 pipeline.yaml 中包含 ‘disk.read.requests’ 和 ‘disk.write.requests’ 没有效果,HyperVInspector 将为这些指标返回零,因为 Hyper-V 无法收集这些指标,因此需要 ‘disk.iops’ 指标。
其他最终用户影响¶
无
性能/可扩展性影响¶
无
其他部署影响¶
默认情况下,Nova 中启用了磁盘使用情况指标收集,我们只需要从 Hyper-V API 中收集数据即可。
开发者影响¶
无
实现¶
负责人¶
- 主要负责人
工作项¶
添加 DiskIOPSPollster 和 PerDeviceDiskIOPSPollster 轮询器
在 DiskStats 中添加 ‘iops_count’。
添加命名元组 ‘DiskIOPSStats’,包含字段 ‘iops_count’。
在 Inspector 中添加方法 ‘inspect_disk_iops’ 并将其在 HyperVInspector 中实现。该方法将返回一个 DiskIOPSStats 对象。
添加相关的单元测试。
更新 ceilometer 测量文档。
未来生命周期¶
一旦此功能启用,需要在接下来的 2 个版本中进行测试和错误修复,以避免回归。
依赖项¶
无
测试¶
需要单元测试来测试新的轮询器以及 Hyper-V 侧的实现。
文档影响¶
添加的指标需要在 测量部分中记录。
参考资料¶
无