2

我正在尝试在我的 vCenter 中获取已注册虚拟机的列表(按其名称)。我有很多虚拟机(~5K)的问题,我做了很多次(O(1000)/小时)。

我正在使用的 SDK 导致大量流量(1-2MB/请求):

  1. pysphere:它要求所有虚拟机和客户端过滤器。

  2. pyVmomi,需要使用递归来列出所有虚拟机(我SI.content.searchIndex.FindByDnsNamereboot_vm.py看到过,但我的机器的 DNS 配置不正确)

查看 SOAP 文档没有帮助(进入RetrievePropertiesEx.objectSet但它看起来没有过滤任何内容),并且新的 REST(v6.5)也没有帮助(因为我需要获取它的“数据存储路径”,以及所有我能得到的是名字)

4

2 回答 2

2

您是否尝试过使用属性收集器,例如pyVmomi.vmodl.query.PropertyCollector.FilterSpec

pyVmomi 社区示例包含使用此 API 的示例,例如 https://github.com/vmware/pyvmomi-community-samples/blob/master/samples/filter_vms.py

于 2017-07-19T12:43:02.083 回答
0

vAPI是基于REST的,更何况每次都是做网络请求,所以会很慢。另一种方法是使用 VCDB,所有虚拟机都存储在哪里(我们有这样的,但我不能在这里为您提供更多帮助),请参阅https://pubs.vmware.com/vsphere-4-esx-vcenter/index.jsp ?topic=/com.vmware.vsphere.installclassic.doc_41/install/prep_db/c_preparing_the_vmware_infrastructure_databases.htmlhttps://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1025914

于 2017-06-08T11:24:49.943 回答