SMB Azure 文件共享

适用于: ✔️ SMB 文件共享

Azure 文件存储提供企业级文件共享,这些共享可以纵向扩展以满足你的存储需求,并且可同时由数千个客户端访问。 Azure 文件存储提供了两种用于装载Azure文件共享的行业标准协议:Server Message Block (SMB) 协议和 Network 文件系统 (NFS) 协议。 选择最适合工作负荷的协议。 Azure 文件存储不支持使用 SMB 和 NFS 协议访问单个Azure文件共享,尽管可以在同一存储帐户中创建 SMB 和 NFS 经典文件共享。

本文将介绍 SMB Azure 文件共享。 有关 NFS Azure 文件共享的信息,请参阅 NFS Azure 文件共享

常见方案

对许多应用程序(包括最终用户文件共享和支持数据库和应用程序的文件共享)使用 SMB 文件共享。 在以下方案中使用 SMB 文件共享:

  • 最终用户文件共享,如团队共享和主目录
  • Windows 系统应用程序(例如 SQL Server 数据库或业务线应用程序)的后端存储
  • 新的应用程序和服务开发,特别是如果需要随机 IO 和分层存储

功能

Azure 文件存储支持 SMB 和 Azure 的主要功能,这些功能是 SMB 文件共享的生产部署所需的:

  • SMB 持续可用性 (CA)
  • AD 域加入和自由访问控制列表(DACL)
  • 将无服务器备份与 Azure 备份集成
  • 使用 Azure 专用终结点进行网络隔离
  • 使用 SMB 多通道实现高网络吞吐量(仅适用于 SSD 文件共享)
  • SMB 通道加密,包括 AES-256-GCM、AES-128-GCM 和 AES-128-CCM
  • 通过 VSS 集成共享快照支持以前的版本
  • Azure 文件共享上的自动软删除以防止意外删除
  • 可以选择通过 Internet 安全的 SMB 3.0+ 进行访问的文件共享

可以直接装载 SMB 文件共享,也可以使用 Azure 文件同步 在本地装载 SMB 文件共享。

Windows SMB 支持和 Azure 文件存储功能

下表显示了 Windows 对于安装 Azure 文件共享时支持的 SMB 版本、SMB 多通道1和 SMB 通道加密的支持。 使用此表来确定访问Azure文件共享的客户端操作系统的功能支持和安全要求。 将最新的 KB 用于Windows版本。

Windows 版本 SMB 版本 SMB 多通道(仅限 SSD) 最大 SMB 通道加密
Windows Server 2025 SMB 3.1.1 是的 AES-256-GCM
Windows 11,版本 24H2 SMB 3.1.1 是的 AES-256-GCM
Windows 11 版本 23H2 SMB 3.1.1 是的 AES-256-GCM
Windows 11 版本 22H2 SMB 3.1.1 是的 AES-256-GCM
Windows 10 版本 22H2 SMB 3.1.1 是的 AES-128-GCM
Windows Server 2022 SMB 3.1.1 是的 AES-256-GCM
Windows 11 版本 21H2 SMB 3.1.1 是的 AES-256-GCM
Windows 10 版本 21H2 SMB 3.1.1 是的 AES-128-GCM
Windows 10,版本 21H1 SMB 3.1.1 是,具有 KB5003690 或更新的版本 AES-128-GCM
Windows Server,版本 20H2 SMB 3.1.1 是,具有 KB5003690 或更新的版本 AES-128-GCM
Windows 10 版本 20H2 SMB 3.1.1 是,具有 KB5003690 或更新的版本 AES-128-GCM
Windows Server 版本 2004 SMB 3.1.1 是,具有 KB5003690 或更新的版本 AES-128-GCM
Windows 10 版本 2004 SMB 3.1.1 是,具有 KB5003690 或更新的版本 AES-128-GCM
Windows Server 2019 SMB 3.1.1 是,具有 KB5003703 或更新的版本 AES-128-GCM
Windows 10 版本 1809 SMB 3.1.1 是,具有 KB5003703 或更新的版本 AES-128-GCM
Windows Server 2016 SMB 3.1.1 是,具有 KB5004238 或更高版本并且应用了注册表项 AES-128-GCM
Windows 10 版本 1607 SMB 3.1.1 是,具有 KB5004238 或更高版本并且应用了注册表项 AES-128-GCM
Windows 10 版本 1507 SMB 3.1.1 是,拥有 KB5004249 或更新版本且应用了注册表项 AES-128-GCM
Windows Server 2012 R22 SMB 3.0 AES-128-CCM
Windows Server 20122 SMB 3.0 AES-128-CCM
Windows 8.13 SMB 3.0 AES-128-CCM
Windows Server 2008 R23 SMB 2.1 不支持
Windows 73 SMB 2.1 不支持

1Azure 文件存储仅支持 SSD(高级)文件共享上的 SMB 多通道

2Windows Server 2012 和 Windows Server 2012 R2 的常规Microsoft支持已结束。 只能通过 扩展安全更新(ESU)计划购买对安全更新的其他支持。

3Microsoft对 Windows 7、Windows 8.1 和 Windows Server 2008 R2 的支持已结束。 迁离这些操作系统。

SMB 协议设置

Azure 文件存储提供多个设置,这些设置会影响 SMB 协议的行为、性能和安全性。 这些配置用于Azure存储帐户内所有Azure经典文件共享。

SMB 持续可用性

Azure 文件存储支持 SMB 持续可用性(CA),以帮助应用程序在暂时性基础结构事件期间保持可用状态。 持续可用性是 SMB 协议的一项功能,可在短暂中断(例如服务器故障转移或短网络中断)期间保持打开的文件句柄处于活动状态。 默认情况下,所有 SMB Azure文件共享都持续可用。 无法禁用此设置。

持续可用性提供的内容

持续可用性提供以下优势:

  • 在暂时性故障中幸存下来的持久性文件句柄
  • 故障转移后 I/O操作的透明恢复
  • 基础结构转换期间的数据一致性
  • 降低应用程序中断的风险

如果发生短暂的连接中断,SMB 客户端会自动重试作并重新建立对打开文件的访问权限,而无需应用程序重新打开这些文件。 对于维护长时间运行的文件会话的工作负荷,此行为尤其重要。

持续可用性的工作原理

持续可用性依赖于持久性 SMB 句柄。 在暂时性中断(通常持续几分钟)期间,以下语句适用:

  • 打开的文件句柄仍然有效。
  • SMB 客户端重试挂起的 I/O 操作。
  • Azure 文件存储在连接恢复后会透明地恢复操作。

由于 Azure 文件存储 优先考虑正确性和持久性,因此客户端会等待和重试,而不是让操作立即失败。

连接丢失期间的超时行为

由于持续可用性需要重试行为,SMB 操作在网络中断期间可能需要更长的时间才能发生超时。

例如,可能会遇到以下情况:

  • Windows SMB 客户端可能会在返回错误之前重试操作几分钟。
  • 重新建立连接时,应用程序可能暂时暂停。

此行为是设计造成的,因为它有助于保持处理完整性并防止数据损坏。 频繁断开连接的工作负载(例如漫游笔记本电脑或不稳定的网络连接)在返回故障之前可能会经历较长的等待时间。

SMB 多通道

SMB 多通道使 SMB 3.x 客户端能够与 SMB 文件共享建立多个网络连接。 Azure 文件存储仅支持 SSD(高级)文件共享上的 SMB 多通道。 对于Windows客户端,SMB 多通道默认在所有Azure区域中启用。 在大多数情况下,尤其是在多线程任务负载中,客户端可以观察到使用 SMB 多通道会提高性能。 但是,对于某些特定方案(例如单线程工作负载或出于测试目的),可能需要禁用 SMB 多通道。 有关更多详细信息,请参阅 SMB 多通道

安全性

Azure 文件存储使用Azure存储服务加密(SSE)加密静态所有数据。

静止数据加密

存储服务加密在 Windows 上的工作方式与 BitLocker 类似:它会加密文件系统级别下的数据。 由于数据在Azure文件共享的文件系统下加密,因为它编码为磁盘,因此无需访问客户端上的基础密钥,才能读取或写入Azure文件共享。

SMB 安全设置

Azure 文件存储公开可以切换的设置,以使 SMB 协议更兼容或更安全,具体取决于组织的要求。 默认情况下,Azure 文件存储配置为最大兼容,因此请记住,限制这些设置可能会导致某些客户端无法连接。

Azure 文件存储 提供以下设置:

  • SMB 版本:允许哪些 SMB 版本。 支持的协议版本为 SMB 3.1.1、SMB 3.0 和 SMB 2.1。 默认情况下,允许所有 SMB 版本,尽管如果启用了“需要安全传输”,则不允许 SMB 2.1,因为 SMB 2.1 不支持传输中的加密。
  • 身份验证方法:允许哪些 SMB 身份验证方法。 支持的身份验证方法是 NTLMv2(仅存储帐户密钥)和 Kerberos。 默认情况下,允许所有的身份验证方法。 如果删除了 NTLMv2,则无法使用存储帐户密钥装载 Azure 文件共享。 Azure 文件存储不支持对域凭据使用 NTLM 身份验证。
  • Kerberos 票证加密:允许哪些加密算法。 支持的加密算法是 AES-256(强烈建议)和 RC4-HMAC。
  • SMB 通道加密:允许哪些 SMB 通道加密算法。 支持的加密算法为 AES-256-GCM、AES-128-GCM 和 AES-128-CCM。 如果仅选择 AES-256-GCM,则需要通过在每个客户端上以管理员身份打开 PowerShell 终端并运行 Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false来告知连接客户端使用它。 在早于 Windows 11/Windows Server 2022 的 Windows 客户端上,不支持使用 AES-256-GCM。

可以使用Azure门户、Azure PowerShell或Azure CLI查看和更改 SMB 安全设置。 选择所需的选项卡以查看有关如何获取和设置 SMB 安全设置的步骤。 请注意,在建立 SMB 会话时会检查这些设置,如果未满足,SMB 会话设置将失败并出现错误 STATUS_ACCESS_DENIED

若要使用 Azure 门户查看或更改 SMB 安全设置,请执行以下步骤:

  1. 登录到 Azure 门户并搜索 存储帐户。 选择要查看或更改 SMB 安全设置的存储帐户。

  2. 在服务菜单中,选择 “数据存储>文件共享”。

  3. 在“文件共享设置”下选择与“安全性”关联的值。

    显示查看和更改 SMB 安全设置的位置的屏幕截图。

  4. 在“配置文件”下,选择“最大兼容性”、“最大安全性”或“自定义”。 选择“自定义”可让你为 SMB 协议版本、SMB 通道加密、身份验证机制和 Kerberos 票证加密创建自定义配置文件。

    重要

    选择 “最大安全性 ”或使用自定义设置可能会导致某些客户端无法连接。 例如,从 Windows Server 2022 和 Windows 11 开始,引入了 AES-256-GCM 作为 SMB 通道加密的一种选项。 这意味着不支持 AES-256-GCM 的旧客户端无法连接。 如果仅选择 AES-256-GCM,则需要告知Windows Server 2022和Windows 11客户端仅使用 AES-256-GCM,方法是在每个客户端上以管理员身份打开 PowerShell 终端,并运行 Set-SmbClientConfiguration -EncryptionCiphers "AES_256_GCM" -Confirm:$false

    显示用于更改 SMB 协议版本、SMB 通道加密、身份验证机制和 Kerberos 票证加密的 SMB 安全设置的对话框的屏幕截图。

输入所需的安全设置后,选择“ 保存”。

限制

SMB Azure文件共享支持 SMB 协议和 NTFS 文件系统支持的功能子集。 尽管大多数用例和应用程序不需要这些功能,但如果某些应用程序依赖于不支持的功能,则某些应用程序可能无法正常使用Azure 文件存储。 不支持以下功能:

区域可用性

SMB Azure 文件共享在每个 Azure 区域中可用。 SSD 文件共享在 区域子集中可用。

后续步骤