我正在尝试使用 Azure python SDK 获取连接到 Azure 中 VM 的磁盘的某些详细信息。我了解到:
VM 在创建时将附加两个磁盘:
- OS 磁盘(默认情况下,OS 磁盘附加在驱动器号 C: 上)
- 临时磁盘(临时磁盘默认附加驱动器号为 D:)
除此之外,如果需要,我们可以向虚拟机添加额外的数据磁盘。问题是,当我们添加数据磁盘时,我们不知道哪个字母连接到该磁盘。
我从 Azure 日志分析中获取了磁盘的磁盘利用率详细信息及其驱动器号,但没有在该日志中获取磁盘名称。因此,我无法识别它们是哪个磁盘的利用率日志。
使用 Azure 的 Python sdk,我能够获取磁盘名称和磁盘大小,但无法获取磁盘字母。
我想知道磁盘的字母,以便了解特定磁盘的使用情况。有人能帮我吗?
答案1
正如评论中提到的,无法在单个脚本中将 Azure 磁盘与 Windows Guest 磁盘映射。
您可以使用磁盘的 LUN 来获取两者的映射。
步骤1 :远程进入虚拟机,打开 powershell 并运行以下命令:
`get-disk | format-list number, path`
您将获得驱动器列表及其驱动器号(插槽)和虚拟机中的路径。
对于数据磁盘,路径将类似于: ?\scsi#磁盘&ven_msft&prod_virtual_disk#
000001
#{57f56307-b6bf-19d0-94f2-00a0c91efb8b}
笔记 :磁盘#000001# 是 LUN 部分。在本例中,它是 LUN 1。
或者
- 连接到虚拟机并打开磁盘管理
- 在下方窗格中,右键单击任意磁盘并选择“属性”
- LUN 将在“常规”选项卡上的“位置”属性中列出
第2步 :现在要获取 Azure 磁盘的详细信息,您可以运行以下命令命令行界面:
`az vm show -g myResourceGroup -n myVM --query "storageProfile.dataDisks"`
或者
使用 Powershell:
$vm = Get-AzVM -ResourceGroupName myResourceGroup -Name myVM
$vm.StorageProfile.DataDisks | ft
或者
使用 Python SDK:
from azure.mgmt.compute import ComputeManagementClient
from azure.identity import AzureCliCredential
credential = AzureCliCredential()
rg = 'ResourceGroupName'
name = 'VMName'
subscription_id = "SubID"
compute_client = ComputeManagementClient(credential, subscription_id)
vm = compute_client.virtual_machines.get(rg,name)
##get OS disk size(GB)
print (vm.storage_profile.os_disk.name,vm.storage_profile.os_disk.disk_size_gb)
datadisks = vm.storage_profile.data_disks
##get data disk size(GB)
for i in datadisks:
print (i.lun,i.name,i.disk_size_gb)
参考:
如何将 Azure 磁盘映射到 Windows VM 来宾磁盘 - Azure 虚拟机 | Microsoft Docs