Description of problem: Instance failed to spawn: UnsupportedHardware: Requested hardware 'e1000e' is not supported by the 'kvm' virt driver Version-Release number of selected component (if applicable): qemu/kvm version 2.12.0-18.el7_6.1 How reproducible: Every time you try and run a windows server 2012 or windows server 2016 Steps to Reproduce: 1.Start win2012 instance 2. 3. Actual results: 2020-05-22 16:54:52.886 1 INFO nova.virt.libvirt.driver [req-25aeea48-0db8-4d1e-bcf0-8eab4ae44a79 60ff6613541a554c5924cd66912b877b50ce354929ca546d4ea13210f084095c d441429d70a04daf869a3d701460c712 - b9cfb7d35ccf4d2f877dbf533b4c764d b9cfb7d35ccf4d2f877dbf533b4c764d] Configuring timezone for windows instance to localtime 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [req-25aeea48-0db8-4d1e-bcf0-8eab4ae44a79 60ff6613541a554c5924cd66912b877b50ce354929ca546d4ea13210f084095c d441429d70a04daf869a3d701460c712 - b9cfb7d35ccf4d2f877dbf533b4c764d b9cfb7d35ccf4d2f877dbf533b4c764d] [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] Instance failed to spawn: UnsupportedHardware: Requested hardware 'e1000e' is not supported by the 'kvm' virt driver 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] Traceback (most recent call last): 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2273, in _build_resources 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] yield resources 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/compute/manager.py", line 2053, in _build_and_run_instance 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] block_device_info=block_device_info) 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 3110, in spawn 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] mdevs=mdevs) 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5429, in _get_guest_xml 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] context, mdevs) 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 5226, in _get_guest_config 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] flavor, virt_type, self._host) 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/vif.py", line 680, in get_config 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] vnic_type) 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/vif.py", line 640, in _get_config_os_vif 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] host) 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] File "/usr/lib/python2.7/site-packages/nova/virt/libvirt/vif.py", line 156, in get_base_config 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] virt=virt_type) 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] UnsupportedHardware: Requested hardware 'e1000e' is not supported by the 'kvm' virt driver 2020-05-22 16:54:53.266 1 ERROR nova.compute.manager [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] 2020-05-22 16:54:53.268 1 INFO nova.compute.manager [req-25aeea48-0db8-4d1e-bcf0-8eab4ae44a79 60ff6613541a554c5924cd66912b877b50ce354929ca546d4ea13210f084095c d441429d70a04daf869a3d701460c712 - b9cfb7d35ccf4d2f877dbf533b4c764d b9cfb7d35ccf4d2f877dbf533b4c764d] [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] Terminating instance 2020-05-22 16:54:53.302 1 INFO nova.virt.libvirt.driver [-] [instance: dfc6f01a-d5d4-4bbe-a2d9-dd89b89f64df] Instance destroyed successfully. 2020-05-22 16:54:53.401 1 INFO os_vif [req-25aeea48-0db8-4d1e-bcf0-8eab4ae44a79 60ff6613541a554c5924cd66912b877b50ce354929ca546d4ea13210f084095c d441429d70a04daf869a3d701460c712 - b9cfb7d35ccf4d2f877dbf533b4c764d b9cfb7d35ccf4d2f877dbf533b4c764d] Successfully unplugged vif VIFBridge(active=False,address=fa:16:3e:26:c7:24,bridge_name='qbr783e39d1-d9',has_traffic_filtering=True,id=783e39d1-d9af-4e69-9ad1-d3835a48529c,network=Network(e15c9d6c-6fa6-45b1-a39f-49e5ff071a56),plugin='ovs',port_profile=VIFPortProfileOpenVSwitch,preserve_on_delete=False,vif_name='tap783e39d1-d9') Expected results: Running Windows server 2012 instance Additional info:
It looks like nova internal test for supported network device models in qemu\kvm is failing: Those are the supported models (E1000E is not one of them for some reason): nova/virt/libvirt/vif.py:92 SUPPORTED_VIF_MODELS = { 'qemu': [ network_model.VIF_MODEL_VIRTIO, network_model.VIF_MODEL_NE2K_PCI, network_model.VIF_MODEL_PCNET, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000, network_model.VIF_MODEL_LAN9118, network_model.VIF_MODEL_SPAPR_VLAN], 'kvm': [ network_model.VIF_MODEL_VIRTIO, network_model.VIF_MODEL_NE2K_PCI, network_model.VIF_MODEL_PCNET, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000, network_model.VIF_MODEL_SPAPR_VLAN], 'xen': [ network_model.VIF_MODEL_NETFRONT, network_model.VIF_MODEL_NE2K_PCI, network_model.VIF_MODEL_PCNET, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000], 'lxc': [], 'uml': [], 'parallels': [ network_model.VIF_MODEL_VIRTIO, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000], } Then, I assume, for some reason, Windows Server guests are configured to use e1000e and are failing the following test: nova/virt/libvirt/vif.py:199 if not is_vif_model_valid_for_virt(virt_type, model): raise exception.UnsupportedHardware(model=model, virt=virt_type) Also, it looks like there was some similar case (it is marked as “Solution verified”). Unfortunately, I don’t have the credentials to access full information. https://access.redhat.com/solutions/3947641 So either e1000e should be added as a supported network device for QEMU\KVM or Window Server configuration should be edited to use virtio or e1000.
This appears to a valid issue. For reference, based on a quick bit of research, libosinfo is configuring VIF type because Windows does not provide virtio drivers out-of-the-box. The e1000e is the PCIe variant of the e1000 NIC and therefore requires the Q35 machine type. Since libvirt supports this for the QEMU/KVM backend, there should be no reason nova does not. The fact we don't appears to have been an oversight.
(In reply to Yan Vugenfirer from comment #2) ... > Also, it looks like there was some similar case (it is marked as “Solution > verified”). Unfortunately, I don’t have the credentials to access full > information. > https://access.redhat.com/solutions/3947641 The solution suggests editing instance records in the DB as a workaround. This should be a last-resort and I'll seek to have this advice removed. The correct solution is to address the issue at root, as you've suggested. This is in progress now.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (openstack-nova bug fix advisory), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2020:4393