Skip to content

Commit 83a38ea

Browse files
Merge pull request #277209 from PatAltimore/patricka-freshness
Freshness
2 parents af0b609 + 02436fa commit 83a38ea

5 files changed

+42
-43
lines changed

articles/iot-edge/how-to-share-windows-folder-to-vm.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
---
2-
title: Share a Windows folder with Azure IoT Edge for Linux on Windows | Microsoft Docs
3-
description: How to share a Windows folder with the Azure IoT Edge for Linux on Windows virtual machine
2+
title: Share Windows folder with Azure IoT Edge for Linux on Windows
3+
description: How to share a Windows folders and files with the Azure IoT Edge for Linux on Windows virtual machine.
44
author: PatAltimore
55
ms.reviewer: fcabrera
66
ms.service: iot-edge
77
ms.custom: linux-related-content
88
services: iot-edge
9-
ms.topic: conceptual
10-
ms.date: 11/1/2022
9+
ms.topic: how-to
10+
ms.date: 06/04/2024
1111
ms.author: patricka
1212
---
1313

@@ -22,22 +22,22 @@ This article shows you how to enable the folder sharing between the Windows host
2222
## Prerequisites
2323
- Azure IoT Edge for Linux on Windows 1.4.4 LTS update or higher. For more information about EFLOW release notes, see [EFLOW Releases](https://aka.ms/AzEFLOW-Releases).
2424
- A machine with an x64/x86 processor.
25-
- Windows 10/11 (21H2) or higher with [November 2022](https://support.microsoft.com/en-us/topic/november-15-2022-kb5020030-os-builds-19042-2311-19043-2311-19044-2311-and-19045-2311-preview-237a9048-f853-4e29-a3a2-62efdbea95e2) update applied.
25+
- Windows 10/11 (21H2) or higher with [November 2022](https://support.microsoft.com/topic/november-15-2022-kb5020030-os-builds-19042-2311-19043-2311-19044-2311-and-19045-2311-preview-237a9048-f853-4e29-a3a2-62efdbea95e2) update applied.
2626

27-
If you don't have an EFLOW device ready, you should create one before continuing with this guide. Follow the steps in [Create and provision an IoT Edge for Linux on Windows device using symmetric keys](how-to-provision-single-device-linux-on-windows-symmetric.md) to install, deploy and provision EFLOW.
27+
If you don't have an EFLOW device ready, you should create one before continuing with this guide. Follow the steps in [Create and provision an IoT Edge for Linux on Windows device using symmetric keys](how-to-provision-single-device-linux-on-windows-symmetric.md) to install, deploy, and provision EFLOW.
2828

2929
## How it works?
3030

3131
The Azure IoT Edge for Linux on Windows file and folder sharing mechanism is implemented using [virtiofs](https://virtio-fs.gitlab.io/) technology. *Virtiofs* is a shared file system that lets virtual machines access a directory tree on the host OS. Unlike other approaches, it's designed to offer local file system semantics and performance. *Virtiofs* isn't a network file system repurposed for virtualization. It's designed to take advantage of the locality of virtual machines and the hypervisor. It takes advantage of the virtual machine's co-location with the hypervisor to avoid overhead associated with network file systems.
3232

3333
:::image type="content" source="media/how-to-share-windows-folder-to-vm/folder-sharing-virtiofs.png" alt-text="Screenshot of a Windows folder shared with the EFLOW virtual machine using Virtio-FS technology.":::
3434

35-
Only Windows folders can be shared to the EFLOW Linux VM and not the other way. Also, for security reasons, when setting the folder sharing mechanism, the user must provide a _root folder_ and all the shared folders must be under that _root folder_.
35+
Only Windows folders can be shared to the EFLOW Linux VM and not the other way. Also, for security reasons, when setting the folder sharing mechanism, the user must provide a *root folder* and all the shared folders must be under that *root folder*.
3636

3737
Before starting with the adding and removing share mechanisms, let's define four concepts:
3838

3939
- **Root folder**: Windows folder that is the root path containing subfolders to be shared to the EFLOW VM. The root folder isn't shared to the EFLOW VM. Only the subfolders under the root folder are shared to the EFLOW VM.
40-
- **Shared folder**: A Windows folder that's under the _root folder_ and is shared with the EFLOW VM. All the content inside this folder is shared with the EFLOW VM.
40+
- **Shared folder**: A Windows folder that's under the *root folder* and is shared with the EFLOW VM. All the content inside this folder is shared with the EFLOW VM.
4141
- **Mounting point**: Path inside the EFLOW VM where the Windows folder content is placed.
4242
- **Mounting option**: *Read-only* or *read and write* access. Controls the file access of the mounted folder inside the EFLOW VM.
4343

@@ -49,25 +49,25 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
4949
5050
1. Start by creating a new root shared folder. Go to **File Explorer** and choose a location for the *root folder* and create the folder.
5151

52-
For example, create a *root folder* under _C:\Shared_ named **EFLOW-Shared**.
52+
For example, create a *root folder* under *C:\Shared* named **EFLOW-Shared**.
5353

54-
:::image type="content" source="media/how-to-share-windows-folder-to-vm/root-folder.png" alt-text="Screenshot of the Windows root folder.":::
54+
:::image type="content" source="media/how-to-share-windows-folder-to-vm/root-folder.png" alt-text="Screenshot of the C:\Shared folder that includes EFLOW-Shared folder.":::
5555

5656
1. Create one or more *shared folders* to be shared with the EFLOW virtual machine. Shared folders should be created under the *root folder* from the previous step.
5757

5858
For example, create two folders one named **Read-Access** and one named **Read-Write-Access**.
5959

60-
:::image type="content" source="media/how-to-share-windows-folder-to-vm/shared-folders.png" alt-text="Screenshot of Windows shared folders.":::
60+
:::image type="content" source="media/how-to-share-windows-folder-to-vm/shared-folders.png" alt-text="Screenshot of Windows shared folders Read-Access and Read-Write-Access.":::
6161

62-
1. Within the _Read-Access_ shared folder, create a sample file that we'll later read inside the EFLOW virtual machine.
62+
1. Within the *Read-Access* shared folder, create a sample file that we'll later read inside the EFLOW virtual machine.
6363

64-
For example, using a text editor, create a file named _Hello-World.txt_ within the _Read-Access_ folder and save some text in the file.
64+
For example, using a text editor, create a file named *Hello-World.txt* within the *Read-Access* folder and save some text in the file.
6565

6666
1. Using a text editor, create the shared folder configuration file. This file contains the information about the folders to be shared with the EFLOW VM including the mounting points and the mounting options. For more information about the JSON configuration file, see [PowerShell functions for IoT Edge for Linux on Windows](reference-iot-edge-for-linux-on-windows-functions.md).
6767

6868
For example, using the previous scenario, we'll share the two *shared folders* we created under the *root folder*.
69-
- _Read-Access_ shared folder will be mounted in the EFLOW virtual machine under the path _/tmp/host-read-access_ with *read-only* access.
70-
- _Read-Write-Access_ shared folder will be mounted in the EFLOW virtual machine under the path _/tmp/host-read-write-access_ with *read and write* access.
69+
- *Read-Access* shared folder is mounted in the EFLOW virtual machine under the path */tmp/host-read-access* with *read-only* access.
70+
- *Read-Write-Access* shared folder is mounted in the EFLOW virtual machine under the path */tmp/host-read-write-access* with *read and write* access.
7171

7272
Create the JSON configuration file named **sharedFolders.json** within the *root folder* *EFLOW-Shared* with the following contents:
7373

@@ -91,9 +91,9 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
9191
]
9292
```
9393

94-
1. Open an elevated _PowerShell_ session by starting with **Run as Administrator**.
94+
1. Open an elevated *PowerShell* session by starting with **Run as Administrator**.
9595

96-
1. Create the shared folder assignation using the configuration file (_sharedFolders.json_) previously created.
96+
1. Create the shared folder assignation using the configuration file (*sharedFolders.json*) previously created.
9797

9898
```powershell
9999
Add-EflowVmSharedFolder -sharedFoldersJsonPath "C:\Shared\EFLOW-Shared\sharedFolders.json"
@@ -104,7 +104,7 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
104104
Connect-EflowVm
105105
```
106106

107-
1. Go to the _Read-Access_ shared folder (mounted under _/tmp/host-read-access_) and check the content of the _Hello-World.txt_ file.
107+
1. Go to the *Read-Access* shared folder (mounted under */tmp/host-read-access*) and check the content of the *Hello-World.txt* file.
108108

109109
>[!NOTE]
110110
>By default, all shared folders are shared under *root* ownership. To access the folder, you should log in as root using `sudo su` or change the folder ownership to *iotedge-user* using `chown` command.
@@ -114,15 +114,15 @@ The following steps provide example EFLOW PowerShell commands to share one or mo
114114
cd /tmp/host-read-access
115115
cat Hello-World.txt
116116
```
117-
If everything was successful, you should be able to see the contents of the _Hello-World.txt_ file within the EFLOW virtual machine. Verify write access by creating a file inside the _/tmp/host-read-write-access_ and then checking the contents of the new created file inside the _Read-Write-Access_ Windows host folder.
117+
If everything was successful, you should be able to see the contents of the *Hello-World.txt* file within the EFLOW virtual machine. Verify write access by creating a file inside the */tmp/host-read-write-access* and then checking the contents of the new created file inside the *Read-Write-Access* Windows host folder.
118118

119119
## Check shared folders
120120
The following steps provide example EFLOW PowerShell commands to check the Windows shared folders and options (access permissions and mounting point) with the EFLOW virtual machine.
121121

122122
1. Open an elevated PowerShell session by starting with **Run as Administrator**.
123123

124124
1. List the information of the Windows shared folders under the *root folder*.
125-
For example, using the scenario in the previous section, we can list the information of both _Read-Access_ and _Read-Write-Access_ shared folders.
125+
For example, using the scenario in the previous section, we can list the information of both *Read-Access* and *Read-Write-Access* shared folders.
126126
```powershell
127127
Get-EflowVmSharedFolder -sharedfolderRoot "C:\Shared\EFLOW-Shared" -hostFolderPath @("Read-Access", "Read-Write-Access")
128128
```
@@ -135,7 +135,7 @@ The following steps provide example EFLOW PowerShell commands to stop sharing a
135135

136136
1. Open an elevated PowerShell session by starting with **Run as Administrator**.
137137

138-
1. Stop sharing the folder named _Read-Access_ under the **Root folder** with the EFLOW virtual machine.
138+
1. Stop sharing the folder named *Read-Access* under the **Root folder** with the EFLOW virtual machine.
139139
```powershell
140140
Remove-EflowVmSharedFolder -sharedfolderRoot "C:\Shared\EFLOW-Shared" -hostFolderPath "Read-Access"
141141
```

articles/iot-edge/iot-edge-as-gateway.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
title: Gateways for downstream devices - Azure IoT Edge | Microsoft Docs
3-
description: Use Azure IoT Edge to create a transparent, opaque, or proxy gateway device that sends data from multiple downstream devices to the cloud or processes it locally.
2+
title: Gateways for downstream devices - Azure IoT Edge
3+
description: Use Azure IoT Edge to create a transparent, opaque, or proxy gateway device that sends data from multiple downstream devices to the cloud or processes locally.
44
author: PatAltimore
55

66
ms.author: patricka
7-
ms.date: 06/27/2022
7+
ms.date: 06/04/2024
88
ms.topic: conceptual
99
ms.service: iot-edge
1010
services: iot-edge
@@ -65,7 +65,7 @@ IoT Edge devices can be both parents and children in transparent gateway relatio
6565

6666
#### Gateway discovery
6767

68-
A child device needs to be able to find its parent device on the local network. Configure gateway devices with a **hostname**, either a fully qualified domain name (FQDN) or an IP address, that its child devices will use to locate it.
68+
A child device needs to be able to find its parent device on the local network. Configure gateway devices with a **hostname**, either a fully qualified domain name (FQDN) or an IP address, that its child devices use to locate it.
6969

7070
On downstream IoT devices, use the **gatewayHostname** parameter in the connection string to point to the parent device.
7171

articles/iot-edge/iot-edge-for-linux-on-windows-benefits.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
2-
title: Why use Azure IoT Edge for Linux on Windows? | Microsoft Docs
3-
description: Benefits - Azure IoT Edge for Linux on Windows
2+
title: Why use Azure IoT Edge for Linux on Windows?
3+
description: Benefits for using Azure IoT Edge for Linux on Windows (EFLOW) to deploy production Linux-based cloud-native workloads on Windows devices.
44
author: PatAltimore
5-
ms.author: fcabrera
6-
ms.date: 04/15/2022
5+
ms.author: patricka
6+
ms.date: 06/04/2024
77
ms.topic: conceptual
88
ms.service: iot-edge
99
ms.custom: linux-related-content

articles/iot-edge/iot-edge-for-linux-on-windows-networking.md

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
---
22
title: Azure IoT Edge for Linux on Windows networking
3-
description: Overview of Azure IoT Edge for Linux on Windows networking
3+
description: Overview of Azure IoT Edge for Linux on Windows networking between the Windows host OS and the IoT Edge for Linux on Windows (EFLOW) virtual machine.
44
author: PatAltimore
55

6-
# this is the PM responsible
76
ms.reviewer: fcabrera
87
ms.service: iot-edge
98
ms.custom: linux-related-content
109
services: iot-edge
1110
ms.topic: conceptual
12-
ms.date: 11/15/2022
13-
ms.author: fcabrera
11+
ms.date: 06/04/2024
12+
ms.author: patricka
1413
---
1514

1615
# IoT Edge for Linux on Windows networking
@@ -22,7 +21,7 @@ ms.author: fcabrera
2221
## Networking
2322
To establish a communication channel between the Windows host OS and the EFLOW virtual machine, we use Hyper-V networking stack. For more information about Hyper-V networking, see [Hyper-V networking basics](/windows-server/virtualization/hyper-v/plan/plan-hyper-v-networking-in-windows-server#hyper-v-networking-basics). Basic networking in EFLOW is simple; it uses two parts, a virtual switch and a virtual network.
2423

25-
The easiest way to establish basic networking on Windows client SKUs is by using the [**default switch**](https://techcommunity.microsoft.com/t5/virtualization/hyper-v-virtual-machine-gallery-and-networking-improvements/ba-p/382375) already created by the Hyper-V feature. During EFLOW deployment, if no specific virtual switch is specified using the `-vSwitchName` and `-vSwitchType` flags, the virtual machine will be created using the **default switch**.
24+
The easiest way to establish basic networking on Windows client SKUs is by using the [**default switch**](https://techcommunity.microsoft.com/t5/virtualization/hyper-v-virtual-machine-gallery-and-networking-improvements/ba-p/382375) already created by the Hyper-V feature. During EFLOW deployment, if no specific virtual switch is specified using the `-vSwitchName` and `-vSwitchType` flags, the virtual machine is created using the **default switch**.
2625

2726
On Windows Server SKUs devices, networking is a bit more complicated as there's no **default switch** available. However, there's a comprehensive guide on [Azure IoT Edge for Linux on Windows virtual switch creation](./how-to-create-virtual-switch.md).
2827

@@ -82,7 +81,7 @@ By default, the EFLOW VM DNS configuration file contains the local stub *127.0.0
8281
8382
It's possible to configure the EFLOW virtual machine to use a specific DNS server, or list of servers. To do so, you can use the `Set-EflowVmDnsServers` PowerShell cmdlet. For more information about DNS configuration, see [PowerShell functions for IoT Edge for Linux on Windows](./reference-iot-edge-for-linux-on-windows-functions.md#set-eflowvmdnsservers).
8483
85-
To check the DNS servers assigned to the EFLOW VM, from inside the EFLOW VM, use the command: `resolvectl status`. The command's output will show a list of the DNS servers configured for each interface. In particular, it's important to check the *eth0* interface status, which will be the default interface for the EFLOW VM communication. Also, make sure to check the IP addresses of the **Current DNS Server**s and **DNS Servers** fields of the list. If there's no IP address, or the IP address isn't a valid DNS server IP address, then the DNS service won't work.
84+
To check the DNS servers assigned to the EFLOW VM, from inside the EFLOW VM, use the command: `resolvectl status`. The command's output shows a list of the DNS servers configured for each interface. In particular, it's important to check the *eth0* interface status, which is the default interface for the EFLOW VM communication. Also, make sure to check the IP addresses of the **Current DNS Server**s and **DNS Servers** fields of the list. If there's no IP address, or the IP address isn't a valid DNS server IP address, then the DNS service won't work.
8685
8786
![Screenshot of console showing sample output from resolvectl command.](./media/iot-edge-for-linux-on-windows-networking/resolvctl-status.png)
8887
@@ -95,14 +94,14 @@ Get-EflowVmAddr
9594

9695

9796
### Multiple Network Interface Cards (NICs)
98-
There are many network virtual appliances and scenarios that require multiple NICs. The EFLOW virtual machine supports attaching multiple NICs. With multiple NICs you can better manage your network traffic. You can also isolate traffic between the frontend NIC and backend NICs, or separating data plane traffic from the management plane communication.
97+
There are many network virtual appliances and scenarios that require multiple NICs. The EFLOW virtual machine supports attaching multiple NICs. With multiple NICs, you can better manage your network traffic. You can also isolate traffic between the frontend NIC and backend NICs, or separating data plane traffic from the management plane communication.
9998

10099
For example, there are numerous of industrial IoT scenarios that require connecting the EFLOW virtual machine to a demilitarized zone (DMZ), and to the offline network where all the OPC UA compliant devices are connected. This is just one of the multiple scenarios that can be supported by attaching multiple NICs to the EFLOW VM.
101100

102101
For more information about multiple NICs, see [Multiple NICs support](https://github.com/Azure/iotedge-eflow/wiki/Multiple-NICs).
103102

104103
>[!WARNING]
105-
>When using EFLOW multiple NICs feature, you may want to set up the different routes priorities. By default, EFLOW will create one default route per _ehtX_ interface assigned to the VM and assign a random priority. If all interfaces are connected to the internet, random priorities may not be a problem. However, if one of the NICs is connected to an offline network, you may want to prioritize the online NIC over the offline NIC to get the EFLOW VM connected to the internet. For more information about custom routing, see [EFLOW routing](https://github.com/Azure/iotedge-eflow/tree/main/samples/networking/routing).
104+
>When using EFLOW multiple NICs feature, you may want to set up the different routes priorities. By default, EFLOW will create one default route per *ehtX* interface assigned to the VM and assign a random priority. If all interfaces are connected to the internet, random priorities may not be a problem. However, if one of the NICs is connected to an offline network, you may want to prioritize the online NIC over the offline NIC to get the EFLOW VM connected to the internet. For more information about custom routing, see [EFLOW routing](https://github.com/Azure/iotedge-eflow/tree/main/samples/networking/routing).
106105
107106
## Next steps
108107

0 commit comments

Comments
 (0)