我想查找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。