我有一个脚本可以检索我的 vCenter 集群中所有虚拟机的详细信息。本质上Get-VM | Get-Harddisk
。
我也可以获取Provisioned Space
和Used Space
值,但这些仅适用于整个 VM,我想在实际 SAN 上获取每个 VMDK 文件。
我有一些运气,($vm.extensiondata.layoutex.file|?{$_.name -contains $harddisk.filename.replace(".","-flat.")}).size/1GB
但这并没有检索到我所有虚拟机的详细信息,我无法锻炼,为什么?
更新 1:
所以我发现这些信息可以通过$vm.ExtensionData.Storage.PerDatastoreUsage
. 这将返回每个数据存储的详细信息数组,并显示使用了多少磁盘。现在的问题是我不知道如何计算哪个条目与哪个磁盘相关(除了手动检查)。如果每个磁盘都在不同的数据存储上,这很好,但是当它们都在相同且大小相同时(即,我们有一个 Windows VM,在同一数据存储上具有 2 个 100GB 精简磁盘),它被证明更具挑战性。
我最终在 VMware 社区网站上找到了这篇文章https://communities.vmware.com/message/1816389#1816389,它提供了以下代码作为我可以调整的解决方案:
我通过社区网站被引导到优秀的博客http://www.lucd.info/2010/03/23/yadr-a-vdisk-reporter/,它的解决方案也包括快照的大小