如何获取 Azure 中数据磁盘的驱动器号?

如何获取 Azure 中数据磁盘的驱动器号?

我正在尝试使用 Azure python SDK 获取连接到 Azure 中 VM 的磁盘的某些详细信息。我了解到:

VM 在创建时将附加两个磁盘:

  1. OS 磁盘(默认情况下,OS 磁盘附加在驱动器号 C: 上)
  2. 临时磁盘(临时磁盘默认附加驱动器号为 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

相关内容