更新 IoT Edge for Linux on Windows
适用于: IoT Edge 1.1
重要
IoT Edge 1.1 终止支持日期为 2022 年 12 月 13 日。 请查看 Microsoft 产品生命周期,了解此产品、服务、技术或 API 的受支持情况。 有关更新到最新版本的 IoT Edge 的详细信息,请参阅 更新 IoT Edge。
当 IoT Edge for Linux on Windows (EFLOW) 应用程序发布新版本时,可能需要更新 IoT Edge 设备,使其获得最新功能并改善安全性。 本文提供有关在新版本推出时如何更新 IoT Edge for Linux on Windows 设备的信息。
借助 IoT Edge for Linux on Windows,IoT Edge 可以在 Windows 设备上托管的 Linux 虚拟机中运行。 此虚拟机预安装了 IoT Edge,并且没有包管理器,因此不能手动更新或更改任何 VM 组件。 相反,虚拟机使用 Microsoft Update 进行管理,可以自动使组件保持最新。
EFLOW 虚拟机旨在通过 Microsoft Update 可靠地更新。 虚拟机操作系统具有 A/B 更新分区方案,利用其中的一部分来确保每个更新的安全,并在更新过程中出现任何问题时启用回退到以前的版本。
每个更新都包含两个主要组件,这些组件可能更新到最新版本。 第一个是 EFLOW 虚拟机和内部组件。 有关 EFLOW 的详细信息,请参阅 Azure IoT Edge for Linux on Windows 组件。 此外,还包括虚拟机基础操作系统。 EFLOW 虚拟机基于 Microsoft CBL-Mariner,每个更新都提供性能和安全修补程序,以将 OS 与最新的 CVE 修补程序一起使用。 作为 EFLOW 发行说明的一部分,版本指示使用的 CBL-Mariner 版本,用户可以检查 CBL-Mariner 版本 以获取每个版本的 CES 固定列表。
第二个组件是与 EFLOW 虚拟机运行和互操作所需的 Windows 运行时组件组。 虚拟机生命周期和互操作通过不同的组件进行管理:WSSDAgent、EFLOWProxy 服务和 PowerShell 模块。
EFLOW 更新是有序的,你需要按顺序更新到每个版本,这意味着为了访问最新版本,必须使用最新可用版本执行全新安装,或将以前的所有服务更新应用到所需版本。
若要查找最新版本的 Azure IoT Edge for Linux on Windows,请参阅 EFLOW 版本。
使用 Microsoft Update 进行更新
若要接收 IoT Edge for Linux on Windows 更新,应将 Windows 主机配置为接收其他 Microsoft 产品的更新。 默认情况下,将在 EFLOW 安装过程中启用 Microsoft 更新。 如果在 EFLOW 安装后需要自定义配置,可以按照以下步骤打开/关闭此选项:
在 Windows 主机上打开“设置”。
选择“更新和安全性”。
选择“高级选项”。
将“更新 Windows 时接收其他 Microsoft 产品的更新”按钮切换到“开”。
使用 Windows Server Update Services (WSUS) 更新
IoT Edge for Linux on Windows 更新支持使用 WSUS 的本地更新。 有关 WSUS 的详细信息,请参阅设备管理概述 - WSUS。
脱机手动更新
在某些情况下,如果 Internet 连接受限或有限,可能需要脱机手动应用 EFLOW 更新。 这可以使用 Microsoft 更新脱机机制。 可以通过以下步骤,手动下载和安装 IoT Edge for Linux on Windows 更新:
查看当前安装的 EFLOW 版本。 打开 “设置”,选择“ 应用 ->应用”和“功能 ”搜索 Azure IoT Edge LTS。
从 EFLOW 搜索并下载所需的更新 - Microsoft 更新目录。
从下载的 .cab 文件中提取 AzureIoIf you're updating a Windows Server SKU device previous toTEdge.msi。
安装提取的 AzureIoTEdge.msi。
管理 Microsoft 更新
如前所述,IoT Edges for Linux on Windows 更新是使用 Microsoft 更新通道提供服务的,因此,必须打开/关闭 EFLOW 更新才能管理 Microsoft 更新。 下面列出了自动打开/关闭 Microsoft 更新的一些方法。 有关管理 OS 更新的详细信息,请参阅 OS 更新。
CSP 策略 - 使用 Update/AllowMUUpdateService CSP 策略 - 有关 Microsoft 更新 CSP 策略的详细信息,请参阅CSP 策略 - MU 更新。
手动管理 Microsoft 更新 - 有关如何选择加入 Microsoft 更新的详细信息,请参阅 “选择加入 Microsoft 更新”。
特殊情况:从 HCS 迁移到服务器 SKU 上的 VMMS
如果要将某个 Windows Server SKU 设备从早于 IoT Edge for Linux on Windows 1.1.2110.03111 的版本更新到最新可用版本,需要执行手动迁移。
更新 1.1.2110.0311 引入了对用于 EFLOW Windows Server 部署的 VM 技术的更改(HCS 到 VMMS)。 可以通过以下步骤执行 VM 迁移:
使用 Microsoft 更新,下载并安装 1.1.2110.0311 更新(与任何其他 EFLOW 更新相同,只要打开了 EFLOW 更新,就无需手动按装)。
完成 EFLOW 更新后,打开权限提升后的 PowerShell 会话。
运行迁移脚本:
Migrate-EflowVmFromHcsToVmms
注意
在 Windows Server SKUS 上安装新的 EFLOW 1.1.2110.0311 msi 将导致使用 VMMS 技术执行 EFLOW 部署,因此无需迁移。
在 EFLOW 1.1LTS 和 EFLOW 1.4LTS 之间迁移
IoT Edge for Linux on Windows 不支持在不同版本训练之间进行迁移。 如果要从 1.1LTS 或 1.4LTS 版本移动到连续版本 (CR) 版本,则必须卸载当前版本并安装新的所需版本,反之亦然。
EFLOW 1.1LTS 到 EFLOW 1.4LTS 之间的迁移是 EFLOW 1.1LTS (1.1.2212.12122) 更新的一部分。 此迁移将处理从 1.1LTS 版本到 1.4LTS 版本的 EFLOW VM 迁移,包括以下内容:
- IoT Edge 运行时
- IoT Edge 配置
- 容器
- 网络和 VM 配置
- 存储的文件
若要在 EFLOW 1.1LTS 到 EFLOW 1.4LTS 之间迁移,请使用以下步骤。
获取最新的 Azure EFLOW 1.1LTS (1.1.2212.12122) 更新。 如果使用 Windows 更新,请检查更新以获取最新的 EFLOW 更新。
对于自动下载迁移(需要 Internet 连接),请跳过此步骤。 如果 EFLOW VM 没有 Internet 访问权限或受到限制,请在开始迁移之前下载必要的文件。
打开权限提升的 PowerShell 会话
启动 EFLOW 迁移
注意
使用单个 cmdlet 进行迁移,方法是将
-autoConfirm
标志与Start-EflowMigration
cmdlet 结合使用。 如果已指定,则无需调用Confirm-EflowMigration
即可继续进行 1.4 迁移。- 如果使用自动下载迁移选项,请运行以下 cmdlet
Start-EflowMigration
- 如果在步骤 2上下载 MSI,请使用下载的文件应用迁移
Start-EflowMigration -standaloneMsiPath "<path-to-folder>\AzureIoTEdge_LTS_1.4.2.12122_X64.msi"
- 如果使用自动下载迁移选项,请运行以下 cmdlet
确认 EFLOW 迁移
- 如果使用自动下载迁移选项,请运行以下 cmdlet
Confirm-EflowMigration
- 如果在步骤 2上下载 MSI,请使用下载的文件应用迁移
Confirm-EflowMigration -updateMsiPath "<path-to-folder>\AzureIoTEdge_LTS_Update_1.4.2.12122_X64.msi"
- 如果使用自动下载迁移选项,请运行以下 cmdlet
如果迁移由于任何原因而失败,EFLOW VM 将还原到其原始 1.1LTS 版本。
如果要取消迁移,可以使用以下 cmdlet Start-EflowMigration
,然后使用 Restore-EflowPriorToMigration
有关详细信息,请使用 Get-Help <cmdlet> -full
命令查看 Start-EflowMigration
、Confirm-EflowMigration
和 Restore-EflowPriorToMigration
cmdlet 文档。