vmware 精简磁盘使用 powercli

vmware 精简磁盘使用 powercli

我想问一个关于精简配置的问题。 get-vm命令行可以轻松告诉我们虚拟机实际使用的空间。假设您有一个虚拟机,它有多个精简磁盘。如果我们想获得更多详细信息,以便计算每个磁盘实际使用的空间,哪个 powercli 命令可以做到这一点?出于性能问题,我不喜欢通过数据存储浏览器获取它。

答案1

无需单独访问数据存储区即可检索实际使用的磁盘空间,但您不会在磁盘对象中找到该信息,而是在 VM 对象中找到该信息。它隐藏在 中$vm.ExtensionData.LayoutEx.File,其中包含与 VM 相关的所有文件的信息,而不仅仅是磁盘文件。因此,诀窍是获取与查询磁盘相关的文件信息。

如果您只想要实际尺寸,而不需要其他任何尺寸,您可以像这样快速完成:

(get-vm vmname).ExtensionData.LayoutEx.File |
    Where-Object { $_.name -like '*-flat.vmdk' } |select Name,Size

Name                                                        Size
----                                                        ----
[Datastore1] vmname/vmname-flat.vmdk                 53895368934
[Datastore1] vmname/vmname_1-flat.vmdk               73348843320
[Datastore1] vmname/vmname_2-flat.vmdk              268902888606
[Datastore1] vmname/vmname_3-flat.vmdk               37724234832

如果您想了解有关磁盘的更多信息:

get-vm $vmname |Get-HardDisk |
    Select name,capacitygb,StorageFormat,@{name="UsedSpaceGB";e={ 
        $disk=$_;
        [math]::Round(($disk.Parent.ExtensionData.LayoutEx.File |
            Where-Object {
                $_.name -eq $disk.Filename.Replace(".","-flat.")
            }).Size/1GB,2) 
    }}

Name        CapacityGB    StorageFormat UsedSpaceGB
----        ----------    ------------- -----------
Hard disk 1         50 EagerZeroedThick       50,19
Hard disk 2        100             Thin       68,31
Hard disk 3        300             Thin      250,44
Hard disk 4         60             Thin       35,13

答案2

我找到了以下解决方案:

(Get-VM -Name $YourVmName).Extensiondata.Guest.Disk

此命令将为您提供此虚拟机的所有磁盘的配置大小和可用空间 - 您可以使用它们来计算实际使用的大小。

来源(附有列出所有磁盘的完整脚本):http://www.vstrong.info/2014/03/28/vmware-powercli-script-to-list-thin-provisioned-virtual-disks-vmdk/

相关内容