Azure HPC 缓存的先决条件

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

Azure 订阅

建议使用付费订阅。

网络基础结构

需要先设置以下与网络相关的必备组件,然后才能使用缓存:

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

缓存子网

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

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

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

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

DNS 访问

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

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

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

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

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

  • 创建 DNS 服务器。

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

    在 Azure 门户中遵循以下步骤将 DNS 服务器添加到虚拟网络:

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

也可以使用一个简单的 DNS 服务器对所有可用缓存装入点中的客户端连接进行负载均衡。

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

NTP 访问

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

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

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

优先级 名称 端口 协议 目标 操作
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.chinacloudapi.cn (*.queue.core.chinacloudapi.cn) 中的任何主机。

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

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

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

    
    openssl s_client -connect azure.queue.core.chinacloudapi.cn: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.chinacloudapi.cn:443 -status 2>&1 < /dev/null |grep "OCSP Response Status"

成功的连接会给出以下响应:

OCSP Response Status: successful (0x0)

事件服务器访问

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

确保缓存可以安全地访问域 events.data.microsoft.com 中的主机 - 也就是说,为到 *.events.data.microsoft.com 的流量打开 TCP 端口 443。

权限

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

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

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

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

存储基础结构

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

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

Blob 存储要求

若要将 Azure Blob 存储与缓存配合使用,需要一个兼容的存储帐户,以及一个空的 Blob 容器,或者一个已按照将数据移到 Azure Blob 存储中所述填充了 Azure HPC 缓存格式的数据的容器。

注意

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

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

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

性能 类型 复制 访问层
标准 StorageV2(常规用途 v2) 本地冗余存储 (LRS) 或区域冗余存储 (ZRS)
Premium 块 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 mountd
      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 存储目标的存储帐户要求不同。 请仔细按照使用网络文件系统 (NFS) 3.0 协议装载 Blob 存储中的说明创建并配置支持 NFS 的存储帐户。

下面是步骤的一般性概述。 这些步骤可能有变化,因此请始终参阅 ADLS-NFS 说明了解最新详细信息。

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

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

  3. 为存储帐户创建安全虚拟网络 (VNet)。 应该对支持 NFS 的存储帐户和 Azure HPC 缓存使用同一个虚拟网络。 (不要使用缓存所用的同一个子网。)

  4. 创建存储帐户。

    • 不要使用标准 Blob 存储帐户的存储帐户设置,而是按照操作指南文档中的说明操作。 支持的存储帐户类型可能根据 Azure 区域而异。

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

      有关将专用终结点用于 HPC 缓存存储目标的提示,请参阅使用专用终结点

    • 请记得完成“高级”部分,需在其中启用 NFS 访问。

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

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

若要详细了解如何将 ADLS-NFS 存储目标与 Azure HPC 缓存配合使用,请参阅将 NFS 装载的 Blob 存储与 AZURE HPC 缓存配合使用

使用专用终结点

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-cache 扩展。 请按照安装用于 Azure HPC 缓存的 Azure CLI 中的说明操作。

后续步骤