你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Blob 存储现在支持网络文件系统 (NFS) 3.0 协议。 此支持在对象存储规模和价格上提供了 Linux 文件系统兼容性,并使 Linux 客户端可以从 Azure 虚拟机 (VM) 或本地计算机中,将容器装载在 Blob 存储中。
运行大规模的旧工作负载始终是一项挑战,例如云中的高性能计算 (HPC)。 一个原因是应用程序经常使用传统文件协议(如网络文件系统 (NFS)来访问数据。 此外,本机云存储服务侧重于具有平面命名空间和大量元数据的对象存储,而不是提供分层命名空间和高效元数据操作的文件系统。
Blob 存储现在支持分层命名空间,并且当 Azure 与 NFS 3.0 协议支持相结合时,Azure 使得在大规模云对象存储之上运行旧版应用程序变得更加容易。
适用于将 NFS 3.0 与 Blob 存储配合使用的应用程序和工作负荷
NFS 3.0 协议功能针对具有顺序 I/O 的高吞吐量、大规模读取密集型工作负荷进行优化。 它非常适合涉及多个读取器和大量线程的方案,其中吞吐量比低延迟更重要。 常见示例包括:
高性能计算(HPC) - HPC作业通常涉及数千个核心同时读取相同的大型数据集。 NFS 3.0 协议功能使用对象存储吞吐量来消除传统的文件服务器瓶颈。 示例:
基因组学序列化:处理大规模DNA数据集。
财务风险建模:蒙特卡洛对历史数据的模拟。
地震分析:油气勘探地质数据。
天气预报:为气候和风暴预测的大气数据建模。
大数据和分析 (Data Lake) - 许多分析工具需要分层目录。 BlobNFS(通过 Azure Data Lake Storage Gen2)提供此结构,同时支持标准文件协议。 示例:
机器学习:使用标准文件 I/O 将训练数据馈送到 GPU 群集。
Log Analytics:聚合来自数千个源的日志。
高级驾驶辅助系统(ADAS) - ADAS 工作流生成数 PB 的顺序传感器数据,例如 LiDAR 点云和高分辨率相机数据,必须高效地摄取并在大规模环境中进行模拟和模型训练分析。 示例:
- 使用 NFS 3.0 存储来自自主测试车辆的原始 LiDAR 扫描和多相机视频流,然后跨数千个计算节点运行大规模重播模拟,以验证感知算法。
媒体和娱乐 - 渲染场需要高效访问大型资产库。 Blob 上的 NFS 3.0 为需要文件路径的旧呈现工具提供文件接口。 示例:
视频呈现:分布式节点读取源资产。
转码:将大型原始视频文件转换为流格式。
数据库备份 - 此功能提供经济高效的高吞吐量 NFS 3.0 目标,无需复杂的连接器或昂贵的快照。 示例:
- Oracle RMAN 可以将大型备份片段直接写入用于长期存档,并支持从任何通过 NFS 装载的 Linux VM 直接还原。
何时不使用 NFS 3.0 与 Blob 存储
由于对象存储的特性,对于常规用途的文件共享或事务性工作量应避免使用。
| 工作负荷类型 | Reason | 更好的替代方法 |
|---|---|---|
| 事务数据库 | 需要精细锁定、子毫秒延迟和频繁的随机写入。 | 托管磁盘或 Azure NetApp 文件或 Azure 文件 |
| 就地文件编辑 | 对文件进行编辑会强制完整 Blob 重写,导致操作效率低下。 | Azure 文件存储 |
NFS 3.0 和分层命名空间
NFS 3.0 协议支持要求将 blob 组织到分层命名空间中。 创建存储帐户时,可以启用分层命名空间。 Azure Data Lake Storage 引入了使用分层命名空间的功能。 它将对象(文件)组织到目录和子目录的层次结构中,就像组织计算机上的文件系统一样。 分层命名空间以线性方式缩放,并且不会降低数据容量或性能。 不同协议从分层命名空间扩展而来。 NFS 3.0 协议是可用的协议之一。
存储为块 Blob 的数据
当应用程序使用 NFS 3.0 协议发出请求时,该请求将转换为块 Blob 操作的组合。 例如,NFS 3.0 读取远程过程调用 (RPC) 的请求被转换为获取 Blob 操作。 NFS 3.0 写入 RPC 的请求被转换为获取块列表、放置块和放置块列表的组合。
块 Blob 经过优化,可以有效地处理大量读取繁重的数据。 块 blob 由多个块组成。 每个块由块 ID 标识。 一个块 blob 最多可包含 5 万个块。 块 Blob 中的每个块可以有不同的大小,最大可以达到帐户使用的服务版本所允许的最大值。
常规工作流:装载存储帐户容器
Linux 客户端可以从 Azure 虚拟机 (VM) 或本地计算机中,将容器装载在 Blob 存储中。 若要装载存储帐户容器,必须执行这些步骤。
创建 Azure 虚拟网络 (VNet)。
配置网络安全。
创建并配置仅接受来自 VNet 的流量的存储帐户。
在存储帐户中创建容器。
装载容器。
有关分步指南,请参阅使用网络文件系统 (NFS) 3.0 协议装载 Blob 存储。
网络安全
流量必须源自 VNet。 VNet 使客户端可以安全地连接到存储帐户。 保护帐户中数据的唯一方法是使用 VNet 和其他网络安全设置。 用于保护数据的任何其他工具都无法用于授权 NFS 3.0 请求,这些工具包括帐户密钥授权、Microsoft Entra 安全性和访问控制列表 (ACL)。
若要了解详细信息,请参阅 Blob 存储的网络安全建议。
受支持的网络连接
客户端可以通过公共终结点或专用终结点进行连接,并且可以从以下任意网络位置进行连接:
为存储帐户配置的 VNet。
在本文中,我们将该 VNet 称为主 VNet。 有关详细信息,请参阅允许从虚拟网络进行访问。
与主 VNet 位于同一区域的对等 VNet。
必须配置存储帐户以允许访问此对等 VNet。 有关详细信息,请参阅允许从虚拟网络进行访问。
使用 VPN 网关或 ExpressRoute 网关连接到主 VNet 的本地网络。
若要了解详细信息,请参阅配置从本地网络的访问。
连接到对等网络的本地网络。
这可以通过使用 VPN 网关或 ExpressRoute 网关以及网关传输来实现。
重要说明
NFS 3.0 协议使用端口 111 和 2048。 如果要从本地网络进行连接,请确保客户端允许通过这些端口进行传出通信。 如果已授予对特定 VNet 的访问权限,请确保与这些 VNet 关联的网络安全组都不包含阻止通过这些端口进行传入通信的安全规则。
已知问题和限制
有关当前版本的 NFS 3.0 支持的问题和限制的完整列表,请参阅已知问题一文。
定价
有关数据存储和交易成本的信息,请参阅 Azure Blob 存储定价页。