如何才能在特定设备上find虚拟机的文件系统使用情况?

我想查找VM文件系统的使用情况,但只能在特定设备上具有vmdk的VM上使用。 VM主机可以有多个设备的存储,例如EMC和IBM设备。 我只想知道在IBM设备上具有存储的虚拟机使用的空间量。

我正在尝试使用powercli来查找这些信息,但我不能将这些信息“捆绑”在一起。 我不是VMWarepipe理员,所以我很难find相关性(如果我的术语不正确,对此感到抱歉)。

我只能用以下命令findIBM磁盘:

Get-VMHost <host> | Get-VMHostHba -type FibreChannel | Get-ScsiLun -CanonicalName eui* -LunType disk 

我也可以通过以下方式获取文件系统的使用情况:

 $AllVMs = Get-VMHost <host> | Get-VM ForEach ($VM in $AllVMs) { $Views = $VM | Get-View ForEach ($View in $Views) { Foreach ($Disk in $View.Guest.Disk) { $disk.DiskPath ([math]::Round($disk.Capacity/ 1MB)) ([math]::Round($disk.FreeSpace / 1MB)) } } } 

但是,如何确保host1上的c:\位于IBMarrays上,而不是EMCarrays上?

你正在寻找的连接是数据存储; IBM SAN上的每个LUN都被VMware格式化为“数据存储”,用于存储虚拟硬盘。

不幸的是,你最终得到的DiskInfo对象没有关于它驻留在哪个数据存储区的信息。在我看来这是相当薄弱的。

我没有安装PowerCLI的系统来testing这个在这秒,而不是枚举Guest.Disk ,请尝试由Get-VM返回的对象的HardDisk 属性 。 它的Filename属性应该给你一些指示它驻留在哪个数据存储上,即使它只是一个唯一的ID。

我可以在以下链接find答案:

http://communities.vmware.com/thread/240466

从那里,我能够将VMHost和磁盘绑定到VM和访客信息。