SMB Azure 文件共享

适用于: ✔️ SMB 文件共享

Azure 文件存储提供两种用于装载 Azure 文件共享的行业标准协议:服务器消息块 (SMB) 协议和网络文件系统 (NFS) 协议。 Azure 文件存储可让你选择最适合你工作负载的文件系统协议。 尽管可以在同一存储帐户中创建 SMB 和 NFS 文件共享,但 Azure 文件共享不支持同时使用 SMB 和 NFS 协议访问单个 Azure 文件共享。 对于所有文件共享,Azure 文件存储提供企业级文件共享,这些共享可以纵向扩展以满足你的存储需求,并且可同时由数千个客户端访问。

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

常见方案

SMB 文件共享用于许多应用程序,包括支持数据库和应用程序的最终用户文件共享和文件共享。 SMB 文件共享通常用于以下场景:

  • 最终用户文件共享,如团队共享和主目录
  • 支持基于 Windows 的应用程序的存储,例如为 Win32 或 .NET 本地文件系统 API 编写的 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 文件同步缓存在本地

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

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

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 Files仅支持 SSD 文件共享上的 SMB 多通道

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

3Microsoft对 Windows 7、Windows 8 和 Windows Server 2008 R2 的支持已结束。 我们强烈建议迁移离开这些操作系统。

SMB 协议设置

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

SMB 持续可用性

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

持续可用性提供的内容

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

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

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

持续可用性的工作原理

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

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

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

连接丢失期间的超时行为

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

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

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

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

SMB 多通道

SMB 多通道使 SMB 3.x 客户端能够与 SMB 文件共享建立多个网络连接。 Azure 文件支持 SSD 文件共享上的 SMB 多通道。 对于 Windows 客户端,SMB 多通道现在在所有 Azure 区域中默认启用。

若要查看 SMB 多通道的状态,请导航到包含 SSD 文件共享的存储帐户,并在存储帐户目录的数据存储标题下选择文件共享。 应在 “文件共享设置” 部分下看到 SMB 多通道的状态。 如果未看到,请确保存储帐户是 FileStorage 帐户类型。

存储帐户中文件共享部分的屏幕截图,其中突出显示了 SMB 多通道设置。

若要启用或禁用 SMB 多通道,请选择当前状态(“已启用”或“已禁用”,具体取决于状态) 。 生成的对话框提供用于启用或禁用 SMB 多通道的切换开关。 选择所需状态,然后选择“保存”。

用于启用/禁用 SMB 多通道功能的对话框的屏幕截图。

在较旧的操作系统上启用 SMB 多通道

若要在 Azure 文件存储中支持 SMB 多通道,需要确保 Windows 应用了所有相关的修补程序。 某些较旧的 Windows 版本(包括 Windows Server 2016、Windows 10 版本 1607 和 Windows 10 版本 1507)要求为所有相关 SMB 多通道修补程序设置额外的注册表项才能应用于完全修补的安装。 如果运行的 Windows 版本高于上述三个版本,则无需执行其他操作。

Windows Server 2016 和 Windows 10 版本 1607

要为 Windows Server 2016 和 Windows 10 版本 1607 启用所有 SMB 多通道修复,请运行以下 PowerShell 命令:

Set-ItemProperty `
    -Path "HKLM:\SYSTEM\CurrentControlSet\Policies\Microsoft\FeatureManagement\Overrides" `
    -Name "2291605642" `
    -Value 1 `
    -Force

Windows 10 版本 1507

要为 Windows 10 版本 1507 启用所有 SMB 多通道修复,请运行以下 PowerShell 命令:

Set-ItemProperty `
    -Path "HKLM:\SYSTEM\CurrentControlSet\Services\MRxSmb\KBSwitch" `
    -Name "{FFC376AE-A5D2-47DC-A36F-FE9A46D53D75}" `
    -Value 1 `
    -Force

SMB 安全设置

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

Azure Files 提供以下设置:

  • 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 Files。 不支持以下功能:

区域可用性

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

后续步骤