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

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

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

我尝试使用 powercli 查找这些信息,但无法将这些信息“联系”在一起。我不是 VMWare 管理员,因此很难找到关联(如果我的术语不正确,请见谅。)

我使用以下命令只能找到 IBM 磁盘:

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:\ 位于 IBM 阵列上而不是 EMC 阵列上?

答案1

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

不幸的是,磁盘信息您最终得到的对象没有关于它驻留在哪个数据存储上的信息......在我看来,这有点弱。

我手头没有安装 PowerCLI 的系统,所以现在无法测试,不过我不用枚举Guest.Disk,而是尝试HardDisk 财产返回的对象Get-VM。它的Filename属性应该会给你一些指示,表明它位于哪个数据存储区,即使它只是一个唯一的 ID。

答案2

我能够在以下链接中找到答案:

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

从那里,我能够将 VMHost 和磁盘与 VM 和 Guest 信息绑定在一起。

相关内容