【问题标题】:using pyVmomi to configure SRIOV on VM使用 pyVmomi 在 VM 上配置 SRIOV
【发布时间】:2014-10-21 04:53:14
【问题描述】:

使用 Python 2.7.6

我正在寻找从 OVF 部署 VM,然后在其上配置 SRIOV 网络设备的功能(类似于使用 vsphere web ui -> 添加网络适配器 -> 将网络适配器类型更改为 SRIOV) 这需要两件我找不到的事情:

1) 查询 ESXi 主机本身并了解哪些 NIC 支持 SRIOV 以及它们公开了多少虚拟功能(可能查询 vcenter)

2) 使用这种类型的 SRIOV 网络适配器配置 vm 本身(从 OVF 部署之后)

我查看了 git 示例和 vsphere sdk 文档,但找不到如何执行此操作,而且关于 pyVmomi 的文档似乎很少

谢谢

【问题讨论】:

  • 我觉得它的工作方式可能存在一些错误。我认为这是因为有一个名为 HostSriovInfo 的数据对象,但它不是任何东西的属性,所以我不知道如何您将访问该数据对象。我在 github 上打开了一个问题,所以也许有人可以在那里清除它。如果您找到这个答案,请随时在那儿插话。一旦有人在那里回答我,我会将这些信息带回这里并与小组分享。 github.com/vmware/pyvmomi/issues/164

标签: python vmware esxi ovf


【解决方案1】:

好的,回答我自己的问题(供后代使用)

devices = []
network_name = "Data"
vnic_label = "pyvmomi sriov nic1"

content = si.content
vm = get_obj(content, [vim.VirtualMachine], vm_name)
nic = vim.vm.device.VirtualDeviceSpec()

# VM device
nic.operation = vim.vm.device.VirtualDeviceSpec.Operation.add
nic.device = vim.vm.device.VirtualSriovEthernetCard()
nic.device.addressType = 'assigned'
nic.device.key = 13016
nic.device.deviceInfo = vim.Description()
nic.device.deviceInfo.label = vnic_label
nic.device.deviceInfo.summary = network_name
nic.device.backing = vim.vm.device.VirtualEthernetCard.NetworkBackingInfo()
nic.device.backing.network = get_obj(content, [vim.Network], network_name)
nic.device.backing.deviceName = network_name
nic.device.backing.useAutoDetect = False
nic.device.connectable = vim.vm.device.VirtualDevice.ConnectInfo()
nic.device.connectable.startConnected = True
nic.device.connectable.allowGuestControl = True

nic.device.sriovBacking = vim.vm.device.VirtualSriovEthernetCard.SriovBackingInfo()
nic.device.sriovBacking.physicalFunctionBacking = vim.vm.device.VirtualPCIPassthrough.DeviceBackingInfo()
nic.device.sriovBacking.physicalFunctionBacking.id = '84:00.1'
nic.device.sriovBacking.virtualFunctionBacking = vim.vm.device.VirtualPCIPassthrough.DeviceBackingInfo()
nic.device.sriovBacking.virtualFunctionBacking.id = '84:11.1'

devices.append(nic)

vmconf = vim.vm.ConfigSpec(deviceChange=devices)
task = vm.ReconfigVM_Task(vmconf)

【讨论】:

  • 似乎不起作用 - 我收到“重新配置虚拟机 Card1 设备 '0' 的配置无效。”我错过了什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-24
  • 2021-06-21
  • 2020-04-22
  • 2016-10-23
  • 2016-07-23
  • 2016-05-27
  • 2014-07-22
相关资源
最近更新 更多