VMware vSphere Web Services SDK编程指南(七)- 7 属性收集器(Property Collector)

7 属性收集器 (Property Collector)


vSphere 服务器为数据访问和变化监控提供了 PropertyCollector 服务。使用 PropertyCollector 可获取到托管对象的引用,获取托管对象属性的值,并监控和获取修改后的属性值。

本章包括以下主题:

7.1 PropertyCollector 介绍
7.2 用于属性收集的 vSphere 数据对象
7.3 用于属性收集的 vSphere 方法
7.4 PropertyCollector 示例 (RetrievePropertiesEx)
7.5 清单遍历
7.6 客户端数据同步(WaitForUpdatesEx)
7.7 服务器数据传输
7.8 PropertyCollector 性能
7.9 SearchIndex


7.1 PropertyCollector 介绍

PropertyCollector 服务接口提供了一种监控和获取托管对象信息的方法。
例如,一个虚拟机是否上电或一个在集群中的主机是否脱机。

PropertyCollector 使用一个或多个过滤器收集的范围及获取数据的方法。过滤器使用一组指定以下信息的数据对象:

■ 在收集期间清单遍历的起点

■ 清单遍历路径

■ 所要收集数据的对象及属性

vSphere 服务器为每个会话创建一个默认的 PropertyCollector,并允许你创建多个额外的 PropertyCollector 对象,创建额外的 PropertyCollector 对象,每个使用一个线程,执行相互独立的集合操作。

数据提取
这里有两种提取数据的方法:

■ 把属性提取作为单个操作,使用 RetrievePropertiesEx 和 ContinueRetrievePropertiesEx 方法,这些方法执行单个收集操作。

■ 增量属性提取(也被称为属性监控),使用 WaitForUpdatesEx 方法,对该方法的初始调用将提取托管对象属性值的基线集,随后的调用将获取自上次提取以来的属性值的更改。
可使用 WaitForUpdatesEx 方法来监控清单或任何托管对象属性的变化。

清单遍历和对象选择
PropertyCollector 过滤器属性识别对象属性和定义清单遍历的路径。
例如,你可以获取一个 VirtualMachine 对象的属性并使用 VirtualMachine.network 属性指定遍历路径,从而可以获取相关联的 Network 对象属性。

可以在过滤器中使用 vSphere view 对象(如 ContainerView)来简化遍历参数,一个 view 维护了一个清单对象的子集,因此,如果清单层次结构发生了变化,你不必重新创建视图。
使用一个视图来指定 PropertyCollector 可用于收集数据的一组对象。

想了解更多的 vSphere 清单信息, 可查阅上一章节 Datacenter Inventory

7.2 用于属性收集的 vSphere 数据对象

下表提供了一个 PropertyCollector 数据对象的概览。

PropertyCollector 数据对象

数据对象 描述
PropertyFilterSpec 提供对对象和属性选择数据的访问,一个PropertyFilterSpec 必须至少有一个ObjectSpec 和一个 PropertySpec 数据对象
ObjectSpec 标识属性收集的起始对象,ObjectSpec还标识了用于收集的其他对象
TraversalSpec 标识属性收集的对象类型,也提供一个或多个清单遍历路径
SelectionSpec 充当一个到TraversalSpec 的占位符引用
PropertySpec 标识收集的属性
View objects 标识vSphere清单对象的一个子集


7.3 用于属性收集的 vSphere 方法

PropertyCollector 支持以下从服务器获取对象和属性的方法:

■ 如果你的客户端应用程序不保持服务器状态的同步表示,那么使用 RetrievePropertiesEx 方法,RetrievePropertiesEx 实例化一个过滤器,收集指定对象和属性,并作为一个 ObjectContent 数据对象返回数据到你的客户端程序。
服务器没有添加过滤器到 PropertyCollector.filter 数组,返回结果到你的客户端后,服务器就销毁这个过滤器了。

■ 如果你的应用程序维护了一个服务器状态的同步表示,那么使用 CreateFilter 和 WaitForUpdatesEx 方法,WaitForUpdatesEx 返回属性变更的描述,由属性定义的过滤器组织。

在这两种情况下,你都要创建 PropertyFilterSpec 数据对象指定你想从服务器检索的对象和属性

下表显示了 PropertyCollector 由你使用它们的上下文所组织的方法。

PropertyCollector 方法
这里写图片描述


原文:
VMware vSphere 6.5 Documentation Center:Property Collector