我正在尝试获取连接到特定虚拟机的数据磁盘的详细信息。主要目的是在磁盘空间利用率高时收到通知。
我可以使用以下命令获取连接到虚拟机的数据磁盘的名称,但无法获取磁盘大小、分配的空间/剩余磁盘空间等详细信息。
((get-azurermvm -resourcegroupname $vm.resourcegroupname -name $vm.name).StorageProfile).DataDisks
有 New-Azurermvmdatadisk、Set-Azurermvmdatadisk,但没有 Get-Azurermvmdatadisk 之类的东西
有人能帮我一下如何获取数据磁盘详细信息吗?
答案1
Azure Compute 的现有 cmdlet 将检索数据磁盘的最大大小,但不会检索实际使用的大小。我曾向 Microsoft 提出过案例,并了解到此功能尚不可用。这就是为什么我们使用 OMS、datadog 等监控解决方案的原因,这些解决方案在虚拟机内部署代理来提取您要求的详细信息。
答案2
此信息在虚拟机外部不可用;虚拟机管理程序无法知道虚拟机实际使用了分配的磁盘大小的多少空间。顺便说一句,对于任何虚拟机管理程序,可以是 Hyper-V(Azure 基于此)、VMware 或其他。
为了了解实际使用了多少空间或有多少可用空间,您需要查看虚拟机内部;您可以使用监控代理(例如 Azure 中包含的代理),甚至可以运行调用 PowerShell cmdlet 的脚本Get-Volume
。
有几种方法可以在 Azure VM 中运行脚本,其中最简单的可能是Invoke-AzVMRunCommand
在 Azure PowerShell 中。