我想问一个关于精简配置的问题。 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/