使用 NFS 协议访问 Azure Blob 存储中的数据

已完成

你的公司应用程序当前使用的是传统的文件协议(例如 NFS),他们想要使用 NFS 客户端来访问 Blob 存储中的数据。 使用 NFS 客户端还有额外的好处,例如,从对象存储帐户进行处理并确保高吞吐量和高伸缩性。

Azure Blob 存储中的 NFS 3.0 协议支持

Blob 存储支持 NFS 3.0 协议,该协议为用户提供以下好处:

  • 可使用启用了 NFS 的应用程序直接访问对象存储中的数据。
  • 可从介质处理中获益,这通常需要高吞吐量和高伸缩性。
  • Linux 客户端可在 Blob 存储中无缝装载容器。

注意

Windows 客户端尚不支持 NFS。

要使 Blob 存储支持 NFS 3.0 协议,需要一个分层命名空间 - 这由 Azure Data Lake Storage Gen2 提供。 Azure 会将已启用 NFS 3.0 支持的存储帐户中的所有数据都存储为块 blob。

若要优化性能,可以使用具有足够网络带宽和多个装入点的虚拟机。 确保通过 NFS 3.0 协议访问内容的应用程序支持多线程和大型块。 如果你的应用程序需要低延迟和高吞吐量,可将存储帐户与 Azure HPC 缓存结合使用。

在 Azure Blob 存储中启用 NFS 支持

执行以下任务,在 Azure Blob 存储中启用 NFS 支持:

  1. 在订阅中启用 NFS 3.0 协议支持。 为此,请在 Azure CLI 中输入以下命令:

       az feature register --namespace Microsoft.Storage --name AllowNFSV3
    
       az feature register --namespace Microsoft.Storage --name PremiumHns
    
  2. 从虚拟网络内启用 Blob 存储访问来保护数据访问。 可使用专用终结点,它们将专用 IP 分配给存储帐户,并通过专用链接帮助保护 NFS 客户端与存储帐户之间的所有流量。

  3. 在存储帐户中创建一个容器,然后使用支持 NFS 3.0 协议的客户端装载该容器。

  4. 使用以下代码通过 NFS 3.0 客户端装载容器。 将 <nameofthestoraggeaccount> 和 <nameofthecontainer> 的值替换为与环境对应的名称。

    Sudo mount -o sec=sys,vers=3,nolock,proto=tcp <nameofthestorageaccount>.blob.core.windows.net:/<nameofthestorageaccount>/<nameofthecontainer>  /mnt/blob
    

    备注

    创建 NFS 3.0 存储帐户时,不支持 GRS、GZRS 和 RA-GRS 冗余选项。

可添加更多客户端或使用 Azure 高级块 blob 存储帐户来优化 NFS 客户端使用的存储请求的性能。