适用于 Internet 服务提供商的 Microsoft 连接缓存 (早期预览版)

重要提示

本文档适用于 Microsoft 连接缓存 (早期预览版) 。 适用于 ISP 的 Microsoft 连接缓存现已推出公共预览版 - 对于我们的早期预览版客户,我们强烈建议你将缓存节点迁移到我们的公共预览版。 请参阅下面 有关如何迁移的说明

概述

Microsoft 连接的缓存 (MCC) 预览版是一种纯软件缓存解决方案,可在运营商网络中提供 Microsoft 内容。 MCC 可以根据需要部署到任意数量的物理服务器或 VM,并从云门户进行管理。 Microsoft 云服务处理使用者设备到缓存服务器的路由,以便进行内容下载。

Microsoft 连接缓存是一个混合应用程序,它混合了本地和云资源。 它由部署到服务器的 Docker 兼容 Linux 容器和云管理门户组成。 Microsoft 选择 Azure IoT Edge 作为安全可靠的控制平面。 有关IoT Edge的详细信息,请参阅附录。 即使你的方案与 IoT 无关,Azure IoT Edge也是我们安全的 Linux 容器部署和管理基础结构。

MCC 的工作原理

Microsoft 连接缓存工作原理的数据流图。

以下步骤介绍了如何预配和使用 MCC:

  1. Azure 管理门户用于创建和管理 MCC 节点。

  2. shell 脚本用于预配服务器和部署 MCC 应用程序。

  3. Azure 管理门户和 shell 脚本的组合用于配置 Microsoft 传递优化服务,以将流量路由到 MCC 服务器。

    • 在门户中配置了服务器的可公开访问 IPv4 地址。

    • 手动路由: 提供表示客户端 IP 地址空间的 CIDR 块,这些空间应路由到 MCC 节点。

    • BGP 路由: shell 脚本用于启动与运营商网络中路由器的对等互连会话,操作员与 MCC 节点启动会话。

      注意

      目前仅支持 IPv4 地址。 输入 IPv6 地址将导致错误。

  4. Microsoft 最终用户设备 (客户端) 定期与 Microsoft 传递优化服务连接,并且服务将客户端的 IP 地址与相应 MCC 节点的 IP 地址相匹配。

  5. Microsoft 客户端对 MCC 节点中的内容发出范围请求。

  6. MCC 节点从 CDN 获取内容,为其存储在磁盘上的本地缓存种子,并将内容传送到客户端。

  7. 来自最终用户设备的后续内容请求将从缓存提供。

  8. 如果 MCC 节点不可用,客户端将从 CDN 获取内容,以确保订阅者服务不间断。

MCC 的 ISP 要求

适用于 Internet 服务提供商的 Microsoft 连接缓存现已推出公共预览版! 若要开始,请访问 Azure 门户 注册适用于 Internet 服务提供商的 Microsoft 连接缓存。 有关注册和载入要求的详细信息,请参阅 Microsoft 连接缓存的操作员 注册和服务载入。

验证 MCC 服务器是否正常运行

验证客户端

登录到连接的缓存服务器或使用 SSH。 从终端运行以下命令,查看正在运行的模块 (容器) :

sudo iotedge list

iotedge list 命令的终端输出的屏幕截图,其中显示了正在运行的容器。

如果它列出了 edgeAgentedgeHub 容器,但不包括 MCC,请使用 命令查看IoT Edge安全管理器的状态:

sudo journalctl -u iotedge -f

例如,此命令提供容器的启动和停止或容器拉取和启动的当前状态:

iotedge 的 journalctl 命令的终端输出。

验证服务器端

部署容器可能需要几分钟时间。

若要验证 MCC 正常运行,请在缓存服务器的终端或网络中的任何设备中运行以下命令。 将 替换为 <CacheServerIP> 缓存服务器的 IP 地址。

wget http://<CacheServerIP>/mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com

以下屏幕截图显示了成功的测试结果:

使用 wget 命令验证 Microsoft 连接缓存的成功测试结果的终端输出的屏幕截图。

同样,在网络上任何设备上的 Web 浏览器中输入以下 URL:

http://<CacheServerIP>/mscomtest/wuidt.gif?cacheHostOrigin=au.download.windowsupdate.com

如果测试失败,有关详细信息,请参阅 常见问题 部分。

常见问题

注意

本部分仅列出常见问题。 有关配置IoT Edge时可能遇到的其他问题的详细信息,请参阅IoT Edge故障排除指南

使用以下命令检查IoT Edge日志:

sudo journalctl -u iotedge -f

需要配置 DNS

运行以下IoT Edge安装状态检查:

sudo iotedge check --verbose

如果发现端口 5671、443 和 8883 出现问题,IoT Edge设备需要更新 Docker 的 DNS。

若要将设备配置为使用 DNS,请使用以下步骤:

  1. 使用 ifconfig 查找相应的 NIC 适配器名称。

    ifconfig
    
  2. 运行 nmcli device show <network adapter name> 以显示以太网适配器的 DNS 名称。 例如,若要显示 eno1 的 DNS 信息,

    nmcli device show eno1 
    

    用于显示网络适配器信息的 nmcli 命令的示例输出的屏幕截图。

  3. 打开或创建用于配置 DNS 服务器的 Docker 配置文件。

    sudo nano /etc/docker/daemon.json
    
  4. 将以下字符串粘贴到 daemon.json 文件中,并包含相应的 DNS 服务器地址。 例如,在上一张屏幕截图中, IP4.DNS[1]10.50.10.50

    { "dns": ["x.x.x.x"]}
    
  5. 将更改保存到daemon.json。 如果需要更改对此文件的权限,请使用以下命令:

    sudo chmod 555 /etc/docker/daemon.json
    
  6. 重启 Docker 以选取新的 DNS 设置。 然后重启IoT Edge。

    sudo systemctl restart docker
    sudo systemctl daemon-reload
    sudo restart IoTEdge
    

将 MCC 迁移到公共预览版

注意

请注意,如果重新启动服务器,当前所在的版本将不再有效,之后需要迁移到新版本。

建议立即迁移到新版本,以访问这些权益,并确保不会停机。

若要迁移,请使用以下步骤:

  1. 导航到要迁移的缓存节点,并使用页面顶部的按钮 选择“下载迁移包 ”。
  2. 按照 Azure 门户 中“连接的缓存迁移脚本”部分下的说明进行操作。 Azure 门户的屏幕截图,其中显示了将缓存节点从早期预览版迁移到公共预览版的迁移说明。
  3. 转到https://portal.azure.com并导航到资源,检查迁移的缓存节点。

卸载 MCC

在安装程序 zip 文件中,你将找到 文件 uninstallmcc.sh。此脚本卸载 MCC 和所有相关组件。 在运行此脚本之前,请联系 MCC 团队。 仅在遇到 MCC 安装问题时运行它。

警告

在运行此脚本之前请谨慎。 它还将擦除此 VM 中的现有 IoT 工作流。

uninstallmcc.sh 脚本删除以下组件:

  • IoT Edge
  • Edge 代理
  • Edge Hub
  • MCC
  • Moby CLI
  • Moby 引擎

若要运行脚本,请使用以下命令:

sudo chmod +x uninstallmcc.sh
sudo ./uninstallmcc.sh

附录

获取 Azure 订阅 ID 的步骤

  1. 登录到Azure 门户
  2. 选择“ 订阅”。 如果未看到 “订阅”,请在搜索栏中键入 “订阅 ”。 开始键入时,列表会根据输入进行筛选。
  3. 如果已有 Azure 订阅,请跳到步骤 5。 如果没有 Azure 订阅,请选择左上角的“ + 添加 ”。
  4. 选择“ 即用即付 ”订阅。 系统会要求你输入信用卡信息,但不会因使用 MCC 服务而向你收费。
  5. “订阅 ”页上,可以找到有关当前订阅的详细信息。 选择订阅名称。
  6. 选择订阅名称后,会在“ 概述 ”选项卡中找到订阅 ID。选择“订阅 ID”旁边的“ 复制到剪贴板” 图标以复制该值。

虚拟环境中的 MCC 性能

在虚拟环境中,缓存服务器出口峰值约为 1.1 Gbps。 如果要在虚拟环境中最大化出口,请务必更改以下两个设置:

  1. 在以下三个位置启用 SR-IOV

    • MCC VM 的 BIOS
    • MCC VM 的网络卡属性
    • MCC VM 的虚拟机监控程序

    Microsoft 发现这些设置在使用Microsoft Hyper-V部署时传出量翻倍。

  2. 在 BIOS 中启用“高性能”,而不是节能。 Microsoft 发现此设置在Microsoft Hyper-V部署中几乎翻了一番。

授予其他用户管理 MCC 的权限

可以授予更多用户管理 Microsoft 连接缓存的权限,即使他们没有 Azure 帐户也是如此。 在门户中创建第一个缓存节点后,可以将其他用户添加为 Microsoft 连接缓存资源组和 Microsoft 连接缓存资源的 所有者

有关如何将其他用户添加为所有者的详细信息,请参阅使用 Azure 门户授予用户对 Azure 资源的访问权限。 请确保对 MCC 资源和 MCC资源组执行此操作。

在 Windows Server 上设置 VM

可以使用本机运行 Ubuntu 20.04 LTS 的硬件,也可以运行 Ubuntu VM。 以下步骤介绍如何在 Hyper-V 上设置 VM。

  1. 下载 ISO。 可以使用 Ubuntu Desktop 或 Ubuntu Server。

  2. 在 Hyper-V 中启动 “新建虚拟机向导 ”。

    Hyper-V 新建虚拟机向导的“开始前”页的屏幕截图。

  3. 指定名称并选择位置。

    Hyper-V 新建虚拟机向导中“指定名称和位置”页的屏幕截图。

  4. 选择“ 第 2 代”。 以后无法更改此设置。

    Hyper-V 新建虚拟机向导中“指定生成”页的屏幕截图。

  5. 指定启动内存。

    Hyper-V 新建虚拟机向导的“分配内存”页的屏幕截图。

  6. 选择网络适配器连接。

    Hyper-V 新建虚拟机向导的“配置网络”页的屏幕截图。

  7. 设置虚拟硬盘参数。 应为 OS 和要缓存的内容指定足够的空间。 例如, 1024 GB 为 1 TB。

    Hyper-V 新建虚拟机向导的“连接虚拟硬盘”页的屏幕截图。

  8. 从可启动映像文件选择“安装 OS”,并浏览到之前下载的 ISO for Ubuntu 20.04 LTS。

    Hyper-V 新建虚拟机向导的“安装选项”页的屏幕截图。

  9. 查看设置并选择“ 完成 ”以创建 Ubuntu VM。

    在 Hyper-V 上完成“新建虚拟机向导”的屏幕截图。

  10. 在启动 Ubuntu VM 之前,请禁用 安全启动 并将多个核心分配给 VM。

    1. 在 Hyper-V 管理器中, 打开 VM 的设置。

      Hyper-V 管理器中 VM 设置的屏幕截图。

    2. 选择“ 安全性”。 禁用 “启用安全启动”选项。

      Hyper-V 管理器中 VM 设置中安全页的屏幕截图。

    3. 选择“ 处理器”。 增加虚拟处理器的数量。 此示例显示 12,但配置可能会有所不同。

      Hyper-V 管理器中 VM 设置中的处理器页的屏幕截图。

  11. 启动 VM 并选择“ 安装 Ubuntu”。

    GNU GRUB 屏幕的屏幕截图,其中选择了“安装 Ubuntu”。

  12. 选择默认语言。

    Ubuntu 安装的语言选择页的屏幕截图。

  13. 选择用于安装更新和第三方硬件的选项。 例如,下载更新并安装第三方软件驱动程序。

  14. 选择 “擦除磁盘”并安装 Ubuntu。 如果已安装以前版本的 Ubuntu,建议擦除并安装 Ubuntu 16.04。

    “Ubuntu 安装类型”页的屏幕截图,其中选择了“擦除磁盘并安装 Ubuntu”选项。

    查看有关将更改写入磁盘的警告,然后选择“ 继续”。

    Ubuntu 安装的“将更改写入磁盘”警告的屏幕截图。

  15. 选择时区。

    Ubuntu 安装的“你在哪里”页的屏幕截图,用于指定时区。

  16. 选择键盘布局。

    Ubuntu 安装的“键盘布局”页的屏幕截图。

  17. 指定你的名称、计算机名称、用户名和强密码。 选择“ 需要我的密码才能登录”选项。

    提示

    在 Linux 中,所有内容都区分大小写。

    Ubuntu 安装的“你是谁”屏幕的屏幕截图。

  18. 若要完成安装,请选择“ 立即重启”。

    Ubuntu 安装的“安装已完成,立即重启”屏幕的屏幕截图。

  19. 计算机重启后,使用用户名和密码登录。

    重要提示

    如果显示升级可用,请选择“ 不升级”。

    Ubuntu 安装的“升级可用”提示的屏幕截图,其中选中了“不升级”。

Ubuntu VM 现在已准备好安装 MCC。

IoT Edge运行时

Azure IoT Edge运行时在IoT Edge设备上启用自定义和云逻辑。 运行时位于 IoT Edge 设备上,执行管理和通信操作。 运行时执行以下功能:

  • (设备上的 Docker 容器) 安装和更新工作负载。
  • 维护设备上的 Azure IoT Edge安全标准。
  • 确保 (Docker 容器) IoT Edge模块始终运行。
  • 报表模块 (Docker 容器) 运行状况到云进行远程监视。
  • 管理IoT Edge设备和云之间的通信。

有关 Azure IoT Edge的详细信息,请参阅 Azure IoT Edge 文档

Microsoft Connected Cache 概述

Microsoft 联网缓存简介