title | description | author | manager | ms.author | ms.date | ms.topic | ms.service | services |
---|---|---|---|---|---|---|---|---|
Nested virtualization for Azure IoT Edge for Linux on Windows | Microsoft Docs |
Learn about how to navigate nested virtualization in Azure IoT Edge for Linux on Windows. |
fcabrera |
kgremban |
fcabrera |
2/24/2021 |
conceptual |
iot-edge |
iot-edge |
[!INCLUDE iot-edge-version-all-supported]
There are three forms of nested virtualization compatible with Azure IoT Edge for Linux on Windows. Users can choose to deploy through a local virtual machine (using Hyper-V hypervisor), VMware Windows virtual machine or Azure Virtual Machine. This article will provide users clarity on which option is best for their scenario and provide insight into configuration requirements.
Note
Ensure to enable one networking option for nested virtualization. Failing to do so will result in EFLOW installation errors.
This is the baseline approach for any Windows VM that hosts Azure IoT Edge for Linux on Windows. For this case, nested virtualization needs to be enabled before starting the deployment. Read Run Hyper-V in a Virtual Machine with Nested Virtualization for more information on how to configure this scenario.
If you're using Windows Server, make sure you install the Hyper-V role.
Both Intel-based VMware ESXi 6.7 and 7.0 versions support nested virtualization needed for hosting Azure IoT Edge for Linux on Windows on top of a Windows virtual machine.
To set up an Azure IoT Edge for Linux on Windows on a VMware ESXi Windows virtual machine, use the following steps:
- Create a Windows virtual machine on the VMware ESXi host. For more information about VMware VM deployment, see VMware - Deploying Virtual Machines.
Note
If you're creating a Windows 11 virtual machine, ensure to meet the minimum requirements by Microsoft to run Windows 11. For more information about Windows 11 VM VMware support, see Installing Windows 11 as a guest OS on VMware.
- Turn off the virtual machine created in previous step.
- Select the Windows virtual machine and then Edit settings.
- Search for Hardware virtualization and turn on Expose hardware assisted virtualization to the guest OS.
- Select Save and start the virtual machine.
- Install Hyper-V hypervisor. If you're using Windows client, make sure you Install Hyper-V on Windows 10. If you're using Windows Server, make sure you install the Hyper-V role.
Note
For VMware Windows virtual machines, if you plan to use an external virtual switch for the EFLOW virtual machine networking, make sure you enable Promiscious mode. For more information, see Configuring promiscuous mode on a virtual switch or portgroup. Failing to do so will result in EFLOW installation errors.
Azure IoT Edge for Linux on Windows isn't compatible on an Azure VM running the Server SKU unless a script is executed that brings up a default switch. For more information on how to bring up a default switch, see Create virtual switch for Linux on Windows.
Note
Any Azure VMs that is supposed to host EFLOW must be a VM that supports nested virtualization. Also, Azure VMs do not support using an external virtual switch.