【发布时间】:2017-09-11 02:34:29
【问题描述】:
Azure 中是否有方法可以查找 Azure 中的 VM 是否使用托管/非托管磁盘创建?
【问题讨论】:
标签: azure azure-storage azure-blob-storage
Azure 中是否有方法可以查找 Azure 中的 VM 是否使用托管/非托管磁盘创建?
【问题讨论】:
标签: azure azure-storage azure-blob-storage
我们可以使用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 门户的另一个区域也提供此信息。转到门户中的“虚拟机”列表,单击“列”按钮,然后添加一个名为“使用托管磁盘”的列。
【讨论】:
如果寻找操作系统磁盘,这将工作。可以修改数据盘。
$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 的 answer,但如果您只是转到 VM > 磁盘 > 选择磁盘,它会打开一个显示磁盘信息的刀片。如果它是非托管的,则在此刀片的顶部,“(非托管)”会显示在磁盘名称之后。如果是托管的,则不会显示任何内容。
【讨论】:
这是我找到的一种方法,请按照以下步骤确定磁盘类型:
非托管磁盘的 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
【讨论】: