如何查找虚拟机是否正在使用 Azure 中的 managed/Unmanaged 个磁盘

How to find if a Virtual Machine is using managed/Unmanaged disks in Azure

Azure 中是否有一种方法可以确定 Azure 中的 VM 是否使用 Managed/Unmanaged 个磁盘创建?

我们可以使用PowerShell 列出Azure VM 的信息。

这是 非托管磁盘 VM 输出:

PS C:\Users> (get-azurermvm -ResourceGroupName jasonvn -Name jasonvm1).StorageProfile.OsDisk
 StorageProfile and NetworkProfile, respectively.


OsType             : Linux
EncryptionSettings :
Name               : jasonvm1
Vhd                : Microsoft.Azure.Management.Compute.Models.VirtualHardDisk
Image              :
Caching            : ReadWrite
CreateOption       : FromImage
DiskSizeGB         :
ManagedDisk        :

这是 托管磁盘 VM 输出:

PS C:\Users> (get-azurermvm -ResourceGroupName jasonvn -Name jasonvm).StorageProfile.OsDisk
 StorageProfile and NetworkProfile, respectively.


OsType             : Linux
EncryptionSettings :
Name               : jasonvm
Vhd                :
Image              :
Caching            : ReadWrite
CreateOption       : FromImage
DiskSizeGB         : 30
ManagedDisk        : Microsoft.Azure.Management.Compute.Models.ManagedDiskParameters

另一种方法,我们可以使用 Azure 新门户检查自动化脚本来找到它:

要添加 Jason Ye 的答案,您还可以 运行 Azure CLI 2.0 中的类似命令。命令为:

az vm show -g rg_name -n vm_name

非托管磁盘的输出是:

  ...
  "osDisk": {
      "caching": "ReadWrite",
      "createOption": "fromImage",
      "diskSizeGb": 32,
      "encryptionSettings": null,
      "image": null,
      "managedDisk": null,
      "name": "rhel-un",
      "osType": "Linux",
      "vhd": {
        "uri": "https://storageaccountname.blob.core.windows.net/vhds/....vhd"
      }

对于托管磁盘:

...
"osDisk": {
  "caching": "ReadWrite",
  "createOption": "fromImage",
  "diskSizeGb": 32,
  "encryptionSettings": null,
  "image": null,
  "managedDisk": {
    "id": "/subscriptions/sub_id/resourceGroups/rg_name/providers/Microsoft.Compute/disks/rhel_OsDisk_1...",
    "resourceGroup": "rg_name",
    "storageAccountType": "Standard_LRS"
  },
  "name": "rhel_OsDisk_1...",
  "osType": "Linux",
  "vhd": null
}

Azure 门户的另一个区域也提供了此信息。转到门户中的 'Virtual machines' 列表,单击 'Columns' 按钮,然后添加名为 "Uses Managed Disks" 的列。

如果要查找 OS 磁盘,这会起作用。可以mod换数据盘

$VmName="vmNameHere" #vmNameHere
$RGName="rgnameHere" #resourceGroupname

if((Get-AzureRmVM -Name $VmName -ResourceGroupName $RGName).StorageProfile.OsDisk.ManagedDisk -like ''){"$vmName,OS Disk,Unmanaged"}else{"$Vmname,OS Disk,Managed"}

类似于 Scottge 的 ,但如果您只是转到 VM > 磁盘 > select 磁盘,它会打开一个显示磁盘信息的边栏选项卡。如果磁盘是非托管的,则在此边栏选项卡的顶部,“(非托管)”会显示在磁盘名称之后。管理的话什么都不显示

这是我找到的一种方法,按照以下步骤确定磁盘类型:

  • 登录到 Azure 门户。
  • Select 有问题的 VM。 Select
  • 要检查的磁盘。查看磁盘的URL.

非托管磁盘的 URL 看起来像:

/storage_account_name.blob.core.windows.net/VM_name/VM_name.vhd

托管磁盘的 URL 将如下所示:

/subscriptions/0cbded86-6088-430c-a320-xxxxxxxxxxxx/resourceGroups/Resource_Group_name/providers/Microsoft.Compute/disks/Disk_name