azure-sdk-for-python:获取磁盘的 LUN



如何获取磁盘的 LUN?我当前的代码如下所示:

compute_client = get_client_from_cli_profile(ComputeManagementClient)
virtual_machines = compute_client.virtual_machines
# Search VMs for the one I'm looking for
machines = virtual_machines.list_all()
for machine in machines:
if machine.vm_id == my_vm_id:
managed_id = machine.id
break
# Search disks for those matching my VM
disks = compute_client.disks.list()
disks = filter(lambda disk :  
disk.managed_by and disk.managed_by.lower() == managed_id.lower(), 
disks)
return disks

问题是这会生成一个磁盘对象列表,其中包含一些有用的信息,但不包含磁盘 LUN 之类的内容。

我看到数据磁盘对象包含 LUN,但不知道如何获取。

如何获取磁盘及其名称和 LUN 的列表?

(顺便说一句,除了有条不紊地搜索订阅中的所有 VM 和所有磁盘之外,是否有更好的方法可以从 VM ID 或 VM 的附加磁盘列表中获取 VM?

如何获取磁盘及其名称和 LUN 的列表?

实际上,LUN 是 VM 磁盘的属性,而不是磁盘的属性。因此,需要通过虚拟机信息获取数据盘 LUN 和名称。此处的示例代码:

compute_client = ComputeManagementClient(credential, Subscription_Id)
vm = compute_client.virtual_machines.get(vmGroup, vmName)
dataDisks = vm.storage_profile.data_disks
for disk in dataDisks:
print(disk.lun)

有关更多详细信息,请参阅虚拟机的存储配置文件类。

我认为,如果要获取全部附加到 VM 的磁盘,则只需要获取 VM 信息,然后从中获取 VM 磁盘。这是建议。此外,还需要搜索订阅中的所有 VM,但只想搜索特殊 VM。

最新更新