跳转到: 导航, 搜索

Ceilometer/blueprints/vmware-vcenter-server

对 VMware vCenter Server 的支持

虽然 Nova 提供了对 VMware vCenter Server 的支持,但 Ceilometer 却没有。它不会收集部署在 VMware 虚拟化平台上的虚拟机的指标。因此,有必要扩展 Ceilometer 的此支持。目标是实现一个轮询代理,从 VMware vCenter Server 查询样本

  1. 用于现有的计量单位。
  2. 在 Ceilometer 中创建新的计量单位,用于 VMware vCenter Server 提供的的数据。

架构决策

插件的性质

Ceilometer 代理可以是以下类型之一(有关更多详细信息,请参阅 此处

  • 总线监听代理 - 被监控的产品本身生成事件并在 Oslo 通知总线上发布,Ceilometer 将从中提取事件。
  • 推送代理 - 位于被监控的产品旁边,从产品获取数据并将其推送到总线上。
  • 轮询代理 - 位于被监控的产品外部,轮询其公开的一些 API 并将其通信给 Ceilometer 收集代理。

对于总线监听或推送代理,我们需要对 VC 进行更改以推送/发布性能样本,这是不可能的。因此,我们正在采用 轮询代理 范例,其中我们有一个 pollster 用于从 VC 查询“性能”统计信息。pollster 将被插入到 Ceilometer 插件的现有框架中。

执行 VC API

  • PyspherePyVmomi 由于许可问题目前不是一个选项。
  • VC 的 Nova 驱动程序使用 SUDS(一个 SOAP 客户端)库来执行 VC API。vSphere WSDL 定义作为输入提供给 SUDS,它负责将响应编组为 Python 对象。
  • 相同的实用程序文件被 VMware 驱动程序用于 Cinder 和 Glance。目前,由于缺乏通用模块,每个模块都复制了文件。因此,Ceilometer 的 VMware 驱动程序也必须这样做。
  • 目前正在进行一项内部工作,以将实用程序提取到通用模块。在可用之后,所有 VMware 驱动程序都将开始使用通用模块中的实用程序。

Ceilometer 指标与 VC 计数器的映射

否。
姓名
类型
单位
VC 计数器
VC 单位
转换因子
VC 级别
笔记
1
instance
Gauge(计量表)
instance
--

--

无需从 VC 实际映射即可计算
2
instance:<type>
Gauge(计量表)
instance
--

--

无需从 VC 实际映射即可计算
3
memory
Gauge(计量表)
MB
mem.consumed.average
KB
除以 1024
1

4
cpu
累积
纳秒
使用 cpu.Usagemhz.average 计算
Mhz
乘以采样间隔
1

5
cpu_util
Gauge(计量表)
 %
cpu.usage.average
percent
1
1

6
vcpus
Gauge(计量表)
vcpu
cpu.corecount.provisioned.average
number
1
1

7
disk.read.requests
累积
request
disk.numberReadAveraged.average
平均读取请求数/秒
添加到先前保存的指标值
1

8
disk.write.requests
累积
request
disk.numberWriteAveraged.average
平均读取请求数/秒
添加到先前保存的指标值
1

9
disk.read.bytes
累积
B
disk.read.average
kiloBytesPerSecond
添加到先前保存的指标值
2

10
disk.write.bytes
累积
B
disk.write.average
kiloBytesPerSecond
添加到先前保存的指标值
1

11
disk.root.size
Gauge(计量表)
GB
disk.capacity.provisioned
kiloBytes
除以 1024*1024
3

12
disk.ephemeral.size
Gauge(计量表)
GB
--
--
--

VC 中没有临时磁盘
13
network.incoming.bytes
累积
B
使用 network.bytesRx 计算
kiloBytesPerSecond
乘以采样间隔并除以 1000
2

14
network.outcoming.bytes
累积
B
使用 network.bytesTx 计算
kiloBytesPerSecond
乘以采样间隔并除以 1000
2

15
network.incoming.packets
累积
packets network.broadcastRx
number

2

16
network.outgoing.packets
累积
packets
network.broadcastTx
number

2