Azure HPC 缓存的先决条件

创建新的 Azure HPC 缓存之前,请确保环境满足这些要求。

Azure订阅

建议使用付费订阅。

网络基础结构

必须先设置这些与网络相关的先决条件,然后才能使用缓存:

  • Azure HPC 缓存实例的专用子网
  • DNS 支持,以便缓存可以访问存储和其他资源
  • 从子网访问其他Microsoft Azure 基础结构服务,包括 NTP 服务器和 Azure 队列存储服务。

缓存子网

Azure HPC 缓存需要具有以下品质的专用子网:

  • 子网必须至少有 64 个可用 IP 地址。
  • 子网内的通信必须不受限制。 如果对缓存子网使用网络安全组,请确保它允许内部 IP 地址之间的所有服务。
  • 子网无法托管任何其他 VM,即使对于客户端计算机等相关服务也是如此。
  • 如果使用多个 Azure HPC 缓存实例,则每个实例都需要自己的子网。

最佳做法是为每个缓存创建新子网。 可以在创建缓存过程中创建新的虚拟网络和子网。

创建此子网时,请注意其安全设置允许访问本节后面提到的必要基础结构服务。 可以限制出站 Internet 连接,但请确保此处记录的项存在例外情况。

DNS 访问

缓存需要 DNS 才能访问其虚拟网络外部的资源。 根据所使用的资源,可能需要设置自定义 DNS 服务器并在该服务器和 Azure DNS 服务器之间配置转发:

  • 若要访问 Azure Blob 存储终结点和其他内部资源,需要基于 Azure 的 DNS 服务器。
  • 若要访问本地存储,需要配置可以解析存储主机名的自定义 DNS 服务器。 在创建缓存之前,必须执行此操作。

如果仅使用 Blob 存储,则可以将默认的 Azure 提供的 DNS 服务器用于缓存。 但是,如果需要访问 Azure 外部的存储或其他资源,则应创建自定义 DNS 服务器并将其配置为将任何特定于 Azure 的解析请求转发到 Azure DNS 服务器。

若要使用自定义 DNS 服务器,需要在创建缓存之前执行以下设置步骤:

  • 创建将托管 Azure HPC 缓存的虚拟网络。

  • 创建 DNS 服务器。

  • 将 DNS 服务器添加到缓存的虚拟网络。

    按照以下步骤将 DNS 服务器添加到 Azure 门户中的虚拟网络:

    1. 在 Azure 门户中打开虚拟网络。
    2. 从边栏中的“设置”菜单中选择 DNS 服务器。
    3. 选择“自定义”
    4. 在字段中输入 DNS 服务器的 IP 地址。

还可以使用简单的 DNS 服务器在所有可用的缓存装入点之间对客户端连接进行负载均衡。

详细了解 Azure 虚拟网络和 DNS 服务器配置,请参阅 Azure 虚拟网络中资源的名称解析

NTP 访问

HPC 缓存需要访问 NTP 服务器才能正常操作。 如果限制来自虚拟网络的出站流量,请确保允许流量到至少一个 NTP 服务器。 默认服务器 time.windows.com,缓存会联系 UDP 端口 123 上的此服务器。

在缓存网络的 网络安全组中 创建一个规则,允许出站流量发到 NTP 服务器。 该规则可以只允许 UDP 端口 123 上的所有出站流量,或具有更多限制。

此示例显式打开到 IP 地址 168.61.215.74 的出站流量,这是 time.windows.com 使用的地址。

Priority Name 港口 协议 来源 目的地 Action
200 NTP 任意 UDP 任意 168.61.215.74 允许

确保 NTP 规则的优先级高于广泛拒绝出站访问的任何规则。

有关 NTP 访问的更多提示:

  • 如果 HPC 缓存和 NTP 服务器之间存在防火墙,请确保这些防火墙也允许 NTP 访问。

  • 可以在 “网络 ”页上配置 HPC 缓存使用的 NTP 服务器。 有关详细信息,请阅读 “配置其他设置 ”。

Azure 队列存储访问

缓存必须能够从专用子网内安全地访问 Azure 队列存储服务 。 Azure HPC 缓存使用队列服务来传递配置信息和状态信息。

如果缓存无法访问队列服务,则创建缓存时可能会看到 CacheConnectivityError 消息。

可通过两种方法提供访问权限:

  • 在缓存子网中创建 Azure 存储服务终结点。 有关添加 Microsoft.Storage 服务终结点的说明,请阅读“添加虚拟网络子网”。

  • 单独配置对网络安全组或其他防火墙中的 Azure 存储队列服务域的访问权限。

    添加规则以允许在这些端口上访问:

    • TCP 端口 443,用于保护域 queue.core.windows.net(*.queue.core.windows.net)中任何主机的安全流量。

    • TCP 端口 80 - 用于验证服务器端证书。 这有时称为证书吊销列表(CRL)检查和联机证书状态协议(OCSP)通信。 所有 *.queue.core.windows.net 都使用相同的证书,因此使用相同的 CRL/OCSP 服务器。 主机名存储在服务器端 SSL 证书中。

    有关详细信息,请参阅 NTP 访问 中的安全规则提示。

    此命令列出了需要允许访问的 CRL 和 OCSP 服务器。 这些服务器必须由 DNS 解析,并且可从缓存子网访问端口 80。

    
    openssl s_client -connect azure.queue.core.windows.net:443 2>&1 < /dev/null | sed -n '/-----BEGIN/,/-----END/p' | openssl x509 -noout -text -in /dev/stdin |egrep -i crl\|ocsp|grep URI
    
    

    输出如下所示,如果 SSL 证书更新,则可以更改:

    OCSP - URI:http://ocsp.msocsp.com
    CRL - URI:http://mscrl.microsoft.com/pki/mscorp/crl/Microsoft%20RSA%20TLS%20CA%2002.crl
    CRL - URI:http://crl.microsoft.com/pki/mscorp/crl/Microsoft%20RSA%20TLS%20CA%2002.crl
    

可以通过从子网内的测试 VM 使用此命令检查子网的连接:

openssl s_client -connect azure.queue.core.windows.net:443 -status 2>&1 < /dev/null |grep "OCSP Response Status"

成功的连接提供此响应:

OCSP Response Status: successful (0x0)

事件服务器访问

Azure HPC 缓存使用 Azure 事件服务器终结点监视缓存运行状况并发送诊断信息。

确保缓存可以安全地访问域 events.data.microsoft.com 中的主机,具体来说,打开 TCP 端口 443 以允许流量到达 *.events.data.microsoft.com

权限

在开始创建缓存之前,请检查这些与权限相关的先决条件。

  • 缓存实例需要能够创建虚拟网络接口(NIC)。 创建缓存的用户必须在订阅中具有足够的权限才能创建 NIC。

  • 如果使用 Blob 存储,Azure HPC 缓存需要授权才能访问存储帐户。 使用 Azure 基于角色的访问控制(Azure RBAC)授予缓存对 Blob 存储的访问权限。 需要两个角色:存储帐户参与者和存储 Blob 数据参与者。

    按照 “添加存储目标” 中的说明添加角色。

存储基础结构

缓存支持 Azure Blob 容器、NFS 硬件存储导出和 NFS 装载的 ADLS Blob 容器。 创建缓存后添加存储目标。

每种存储类型都有特定的先决条件。

Blob 存储要求

如果要将 Azure Blob 存储与缓存配合使用,则需要一个兼容的存储帐户和一个空 Blob 容器,或者使用 Azure HPC 缓存格式化数据填充的容器,如 将数据移动到 Azure Blob 存储中所述。

注释

不同的要求适用于 NFS 装载的 Blob 存储。 有关详细信息 ,请阅读ADLS-NFS 存储要求

在尝试添加存储目标之前创建帐户。 添加目标时,可以创建新容器。

若要创建兼容的存储帐户,请使用以下组合之一:

性能 类型 复制 访问级别
标准 StorageV2 (常规用途 v2) 本地冗余存储(LRS)或区域冗余存储(ZRS)
高级 块 Blob 本地冗余存储 (LRS)

必须可从缓存的专用子网访问存储帐户。 如果帐户使用专用终结点或限制为特定虚拟网络的公共终结点,请确保启用从缓存子网进行访问。 ( 不建议 使用开放的公共终结点。

阅读 “使用专用终结点” ,获取有关将专用终结点与 HPC 缓存存储目标配合使用的提示。

最好在缓存所在的同一 Azure 区域中使用存储帐户。

此外,还必须提供缓存应用程序对 Azure 存储帐户的访问权限,如上述 “权限”中所述。 按照 “添加存储目标” 中的过程为缓存提供所需的访问角色。 如果你不是存储帐户所有者,请让所有者执行此步骤。

NFS 存储要求

如果使用 NFS 存储系统(例如本地硬件 NAS 系统),请确保它满足这些要求。 可能需要与存储系统(或数据中心)的网络管理员或防火墙管理器合作,以验证这些设置。

注释

如果缓存对 NFS 存储系统的访问权限不足,则创建存储目标将失败。

NAS 配置和 NFS 存储目标问题疑难解答中包含了详细信息。

  • 网络连接:Azure HPC 缓存需要缓存子网与 NFS 系统数据中心之间的高带宽网络访问。 建议使用 ExpressRoute 或类似的访问。 如果使用 VPN,可能需要将其配置为将 TCP MSS 固定为 1350,以确保不会阻止大型数据包。 读取 VPN 数据包大小限制 ,以进一步帮助排查 VPN 设置问题。

  • 端口访问:缓存需要访问存储系统上的特定 TCP/UDP 端口。 不同类型的存储具有不同的端口要求。

    若要检查存储系统的设置,请遵循此过程。

    • rpcinfo向存储系统发出命令以检查所需的端口。 以下命令列出了表中相关结果的端口和格式。 (使用系统的 IP 地址代替 <storage_IP> 术语。

      可以从安装了 NFS 基础结构的任何 Linux 客户端发出此命令。 如果使用群集子网内的客户端,它还可以帮助验证子网与存储系统之间的连接。

      rpcinfo -p <storage_IP> |egrep "100000\s+4\s+tcp|100005\s+3\s+tcp|100003\s+3\s+tcp|100024\s+1\s+tcp|100021\s+4\s+tcp"| awk '{print $4 "/" $3 " " $5}'|column -t
      

    确保 rpcinfo 查询返回的所有端口都允许来自 Azure HPC 缓存子网的流量不受限制。

    • 如果无法使用 rpcinfo 此命令,请确保这些常用端口允许入站和出站流量:

      协议 港口 服务
      TCP/UDP 111 rpcbind
      TCP/UDP 2049 NFS
      TCP/UDP 4045 nlockmgr
      TCP/UDP 4046 装载
      TCP/UDP 4047 状态

      某些系统对这些服务使用不同的端口号 - 请参阅存储系统的文档以确保。

    • 检查防火墙设置,确保它们允许所有这些所需端口上的流量。 请务必检查 Azure 中使用的防火墙以及数据中心内的本地防火墙。

  • NFS 后端存储必须是兼容的硬件/软件平台。 存储必须支持 NFS 版本 3(NFSv3)。 有关详细信息,请联系 Azure HPC 缓存团队。

NFS 挂载的 blob(ADLS-NFS)存储要求

Azure HPC 缓存还可以使用随 NFS 协议一起装载的 Blob 容器作为存储目标。

详细了解 Azure Blob 存储中的 NFS 3.0 协议支持中的此功能。

ADLS-NFS blob 存储目标和标准 Blob 存储目标的存储帐户要求不同。 按照装载 Blob 存储中的说明,使用 网络文件系统 (NFS) 3.0 协议 仔细创建和配置已启用 NFS 的存储帐户。

这是步骤的一般概述。 这些步骤可能会更改,因此请始终参阅有关当前详细信息 的ADLS-NFS 说明

  1. 请确保所需的功能在计划工作的区域中可用。

  2. 为订阅启用 NFS 协议功能。 在创建存储帐户 之前 执行此操作。

  3. 为存储帐户创建安全虚拟网络(VNet)。 应为已启用 NFS 的存储帐户和 Azure HPC 缓存使用相同的虚拟网络。 (不要使用与缓存相同的子网。

  4. 创建存储帐户。

    • 请按照 使用指南中的说明进行操作,而不要使用存储帐户设置来配置标准 Blob 存储帐户。 支持的存储帐户类型可能因 Azure 区域而异。

    • 在“网络”部分中,选择创建的安全虚拟网络(建议)中的专用终结点,或从安全 VNet 中选择具有受限访问权限的公共终结点。

      阅读 “使用专用终结点” ,获取有关将专用终结点与 HPC 缓存存储目标配合使用的提示。

    • 不要忘记完成“高级”部分,可在其中启用 NFS 访问。

    • 如上述 “权限”中所述,为缓存应用程序授予对 Azure 存储帐户的访问权限。 首次创建存储目标时,可以执行此操作。 按照 “添加存储目标” 中的过程为缓存提供所需的访问角色。

      如果你不是存储帐户所有者,请让所有者执行此步骤。

详细了解如何将 ADLS-NFS 存储目标与 Azure HPC 缓存配合使用,请参阅 在 Azure HPC Cache 中使用通过 NFS 装载的 Blob 存储

使用专用终结点

Azure 存储支持专用终结点,以允许安全数据访问。 可以将私有终结点与 Azure Blob 或 NFS 挂载的 Blob 存储目标配合使用。

详细了解专用终结点

专用终结点提供 HPC 缓存用于与后端存储系统通信的特定 IP 地址。 如果该 IP 地址发生更改,缓存无法自动重新建立与存储的连接。

如果需要更改专用终结点的配置,请按照此过程避免存储和 HPC 缓存之间的通信问题:

  1. 暂停存储目标(或暂停使用此专用端点的所有存储目标)。
  2. 对专用终结点进行更改,并保存这些更改。
  3. 使用“resume”命令将存储目标放回服务。
  4. 刷新存储目标的 DNS 设置。

阅读 查看和管理存储目标 ,了解如何为存储目标暂停、恢复和刷新 DNS。

设置 Azure CLI 访问(可选)

若要从 Azure CLI 创建或管理 Azure HPC 缓存,需要安装 Azure CLI 和 hpc 缓存扩展。 按照 为 Azure HPC 缓存设置 Azure CLI 中的说明操作。

后续步骤