规划 Azure 文件部署

Azure 文件存储的部署主要有两种方式:直接装载无服务器 Azure 文件共享,或使用 Azure 文件同步功能在本地缓存 Azure 文件共享。所选择的部署方式决定了规划部署时需要考虑的事项。

  • 直接装载 Azure 文件共享:由于 Azure 文件存储提供服务器消息块 (SMB) 或网络文件系统 (NFS) 访问,因此你可以使用 OS 中提供的标准 SMB 或 NFS(预览版)客户端在本地或云中装载 Azure 文件共享。 由于 Azure 文件共享是无服务器的,因此针对生产方案进行部署不需要管理文件服务器或 NAS 设备。 这意味着无需应用软件修补程序或换出物理磁盘。

  • 使用 Azure 文件同步在本地缓存 Azure 文件共享:借助 Azure 文件同步,可以在 Azure 文件存储中集中管理组织的文件共享,同时又能保留本地文件服务器的灵活性、性能和兼容性。 Azure 文件同步可将本地(或云中的)Windows Server 转换为 Azure SMB 文件共享的快速缓存。

本文主要阐述有关部署可供本地或云客户端直接装载的 Azure 文件共享时的部署注意事项。 若要规划 Azure 文件同步部署,请参阅规划 Azure 文件同步部署

可用的协议

Azure 文件存储提供两种用于装载 Azure 文件共享的行业标准协议:服务器消息块 (SMB) 协议和网络文件系统 (NFS) 协议。 Azure 文件存储可让你选择最适合你工作负载的文件系统协议。 尽管可以在同一存储帐户中创建 SMB 和 NFS Azure 文件共享,但 Azure 文件共享不支持在同一个文件共享中同时使用 SMB 和 NFS 协议。 目前只有新的 FileStorage 存储帐户类型中支持 NFS 4.1(仅限高级文件共享)。

对于 SMB 和 NFS 文件共享,Azure 文件存储提供企业级文件共享,这些共享可以纵向扩展以满足你的存储需求,并且可同时由数千个客户端访问。

功能 SMB NFS(预览版)
支持的协议版本 SMB 3.1.1、SMB 3.0、SMB 2.1 NFS 4.1
推荐的操作系统
  • Windows 10 版本 21H1+
  • Windows Server 2019+
  • Linux 内核版本 5.3+
Linux 内核版本 4.3+
可用层 高级、事务优化、热和冷 高级
计费模式 预配的容量
冗余 LRS、GRS LRS
文件系统语义 Win32 POSIX
身份验证 基于标识的身份验证 (Kerberos)、共享密钥身份验证 (NTLMv2) 基于主机的身份验证
授权 Win32 样式访问控制列表 (ACL) UNIX 样式权限
事例敏感性 不区分大小写,但保留大小写 区分大小写
删除或修改打开的文件 仅使用锁定
文件共享 Windows 共享模式 字节范围的公告网络锁管理器
硬链接支持 不支持 支持
符号链接支持 不支持 支持
(可选)可通过 Internet 访问 是(仅限 SMB 3.0+)
支持 FileREST 子网:

管理概念

Azure 文件共享将部署到存储帐户。存储帐户是代表存储共享池的顶级对象。 此存储池可用于部署多个文件共享和其他存储资源,例如 Blob 容器、队列或表。 部署到存储帐户中的所有存储资源共享应用于该存储帐户的限制。 若要了解当前存储帐户限制,请参阅 Azure 文件存储的可伸缩性和性能目标

对于 Azure 文件存储部署,将使用两种主要类型的存储帐户:

  • 常规用途版本 2 (GPv2) 存储帐户:使用 GPv2 存储帐户可以在标准的/基于硬盘(基于 HDD)的硬件上部署 Azure 文件共享。 除了存储 Azure 文件共享以外,GPv2 存储帐户还可以存储其他存储资源,例如 Blob 容器、队列或表。
  • FileStorage 存储帐户:使用 FileStorage 存储帐户可以在高级/基于固态磁盘(基于 SSD)的硬件上部署 Azure 文件共享。 FileStorage 帐户只能用于存储 Azure 文件共享;其他存储资源(Blob 容器、队列、表等)都不能部署在 FileStorage 帐户中。 只有 FileStorage 帐户可同时部署 SMB 和 NFS 文件共享。

在 Azure 门户、PowerShell 或 CLI 中,可能会遇到一些其他的存储帐户类型。 两种存储帐户类型(BlockBlobStorage 和 BlobStorage 存储帐户)不能包含 Azure 文件共享。 可能会看到的其他两个存储帐户类型为常规用途版本 1 (GPv1) 和经典存储帐户,二者都可以包含 Azure 文件共享。 尽管 GPv1 和经典存储帐户可以包含 Azure 文件共享,但 Azure 文件存储的大多数新功能只能在 GPv2 和 FileStorage 存储帐户中使用。 因此,我们建议仅将 GPv2 和 FileStorage 存储帐户用于新部署,而升级 GPv1 和经典存储帐户的前提是它们已经存在于环境中。

将 Azure 文件共享部署到存储帐户时,我们建议:

  • 仅将 Azure 文件共享部署到已包含其他 Azure 文件共享的存储帐户。 尽管 GPv2 存储帐户允许使用混合用途的存储帐户,但由于 Azure 文件共享和 Blob 容器等存储资源共享存储帐户的限制,因此,将资源混合在一起可能会导致将来更难以排查性能问题。

  • 部署 Azure 文件共享时请注意存储帐户的 IOPS 限制。 理想情况下,应该以 1:1 的形式将文件共享与存储帐户相映射,但由于组织和 Azure 施加的各种限制和制约,不一定总能实现这种映射。 无法在一个存储帐户中部署一个文件共享时,请考虑哪些共享高度活跃,哪些共享不够活跃,以确保不会将访问量最大的文件共享一起放到同一存储帐户中。

  • 仅部署 GPv2 帐户和 FileStorage 帐户,在环境中找到 GPv1 帐户和经典存储帐户时对其进行升级。

标识

若要访问某个 Azure 文件共享,该文件共享的用户必须完成身份验证,并已获得授权。 这种授权是根据访问文件共享的用户的标识完成的。 Azure 文件存储与三个主要标识提供者集成:

  • 本地 Active Directory 域服务(AD DS 或本地 AD DS) :Azure 存储帐户可以是已加入客户拥有的 Active Directory 域服务的域,例如 Windows Server 文件服务器或 NAS 设备。 你可以在本地、在 Azure VM 中部署域控制器,甚至可以部署为其他云服务提供商中的 VM;Azure 文件存储与域控制器的托管位置无关。 存储帐户加入域后,最终用户可以使用其登陆电脑的用户帐户装载文件共享。 基于 AD 的身份验证使用 Kerberos 身份验证协议。
  • Azure Active Directory 域服务 (Azure AD DS) :Azure AD DS 提供了可用于 Azure 资源的 Microsoft 托管域控制器。 将你的存储帐户加入 Azure AD DS 的域,可获得加入客户拥有的 Active Directory 的域类似的好处。 此部署选项最适用于需要基于 AD 的权限的应用程序直接迁移方案。 由于 Azure AD DS 提供了基于 AD 的身份验证,因此选项还使用 Kerberos 身份验证协议。
  • Azure 存储帐户密钥:还可以使用 Azure 存储帐户密钥装载 Azure 文件共享。 若要以这种方式装载文件共享,需使用存储帐户名称作为用户名,使用存储帐户密钥作为密码。 使用存储帐户密钥装载 Azure 文件共享实际上是一项管理员操作,因为装载的文件共享对其上的所有文件和文件夹拥有完全权限,即使对这些文件和文件夹应用了 ACL。 使用存储帐户密钥通过 SMB 装载时,将使用 NTLMv2 身份验证协议。

对于从本地文件服务器迁移的客户,或在 Azure 文件存储中创建新的文件共享旨在使其行为方式类似于 Windows 文件服务器或 NAS 设备,建议选择将存储帐户加入到“客户拥有的 Active Directory”域。 若要详细了解如何将存储帐户“域加入”到客户拥有的 Active Directory,请参阅 Azure 文件存储 Active Directory 概述

如果要使用存储帐户密钥来访问 Azure 文件共享,我们建议使用网络部分所述的服务终结点。

网络

可在任意位置通过存储帐户的公共终结点访问 Azure 文件共享。 这意味着,已经过身份验证的请求(例如已由用户登录标识授权的请求)可以安全地从 Azure 内部或外部发起。 在许多客户环境中,最初在本地工作站上装载 Azure 文件共享的操作会失败,尽管可以成功地从 Azure VM 装载。 其原因是,许多组织和 Internet 服务提供商 (ISP) 阻止 SMB 用来通信的端口 445。 如需大致了解允许或禁止从端口 445 进行访问的 ISP,请访问 TechNet

若要取消阻止对 Azure 文件共享的访问,可以采用两种做法:

  • 对组织的本地网络取消阻止端口 445。 在外部,只能使用 Internet 安全协议(例如 SMB 3.x 和 FileREST API)通过公共终结点访问 Azure 文件共享。 这是从本地访问 Azure 文件共享的最简单方法,因为它不需要进行高级网络配置,而只需更改组织的出站端口规则;但是,我们建议删除传统的已弃用版本的 SMB 协议,即 SMB 1.0。 若要了解如何执行此操作,请参阅保护 Windows/Windows Server保护 Linux

  • 通过 ExpressRoute 或 VPN 连接访问 Azure 文件共享。 通过网络隧道访问 Azure 文件共享时,可以像装载本地文件共享一样装载 Azure 文件共享,因为 SMB 流量不会通过组织边界。

尽管从技术角度讲,通过公共终结点装载 Azure 文件共享要容易得多,但我们预期大多数客户会选择通过 ExpressRoute 或 VPN 连接装载其 Azure 文件共享。 可以通过 SMB 和 NFS 共享来装载这些选项。 为此,需要为环境配置以下设置:

  • 使用 ExpressRoute、站点到站点或点到站点 VPN 的网络隧道:通过隧道连接到虚拟网络后,即使端口 445 已被阻止,也能从本地访问 Azure 文件共享。
  • 专用终结点:专用终结点在虚拟网络的地址空间中为存储帐户指定了一个专用 IP 地址。 这样,无需打开本地网络就可以通过网络隧道连接到 Azure 存储群集拥有的所有 IP 地址范围。
  • DNS 转发:配置本地 DNS,以将存储帐户 (storageaccount.file.core.chinacloudapi.cn) 的名称解析为专用终结点的 IP 地址。

若要规划与 Azure 文件共享部署相关的网络,请参阅 Azure 文件存储网络注意事项

Encryption

Azure 文件存储支持两种不同类型的加密:传输中加密(与装载/访问 Azure 文件共享时使用的加密相关),以及静态加密(与存储在磁盘中的数据的加密方式相关)。

传输中加密

重要

本部分介绍 SMB 共享的传输中加密详细信息。 有关通过 NFS 共享进行传输中加密的详细信息,请参阅安全性和网络

默认情况下,所有 Azure 存储帐户均已启用传输中加密。 即通过 SMB 装载文件共享或通过 FileREST 协议(例如,通过 Azure门户、PowerShell/CLI 或 Azure SDK)访问文件共享时,Azure 文件存储仅允许通过加密或 HTTPS 使用 SMB 3.x 及更高版本建立的连接。 如果启用了传输中加密,则不支持 SMB 3.x 的客户端或支持 SMB 3.x 但不支持 SMB 加密的客户端将无法装载 Azure 文件共享。 要详细了解哪些操作系统支持具有加密功能的 SMB 3.x,请参阅适用于 WindowsmacOSLinux 的详细文档。 PowerShell、CLI 和 SDK 的所有当前版本均支持 HTTPS。

可以为 Azure 存储帐户禁用传输中加密。 禁用加密后,Azure 文件存储还将允许没有加密功能的 SMB 2.1、SMB 3.x,以及通过 HTTP 进行的未加密 FileREST API 调用。 禁用传输中加密的主要原因是为了支持必须在更低版本的操作系统(例如,Windows Server 2008 R2 或更低版本的 Linux 发行版)上运行的旧版应用程序。 Azure 文件存储仅允许在与 Azure 文件共享相同的 Azure 区域内建立 SMB 2.1 连接;Azure 文件共享的 Azure 区域之外的 SMB 2.1 客户端(例如,本地或其他 Azure 区域)将无法访问文件共享。

强烈建议启用传输中数据加密。

有关传输中加密的详细信息,请参阅要求在 Azure 存储中进行安全传输

静态加密

使用 Azure 存储服务加密 (SSE) 对存储在 Azure 文件存储中的所有数据进行静态加密。 存储服务加密的工作方式类似于 Windows 上的 BitLocker:在文件系统级别下对数据进行加密。 由于数据在 Azure 文件共享的文件系统下加密,因此,在将数据编码到磁盘时,无需访问客户端上的基础密钥即可读取或写入 Azure 文件共享。 静态加密同时适用于 SMB 和 NFS 协议。

默认情况下,Azure 文件存储中存储的数据使用 Microsoft 管理的密钥进行加密。 使用 Microsoft 托管密钥,Azure 保存用于加密/解密数据的密钥,并负责定期轮换这些密钥。 你还选择管理你自己的密钥,这让你能够控制密钥轮换过程。 如果你选择使用客户管理的密钥来加密你的文件共享,则 Azure 文件存储可访问你的密钥来执行来自你的客户端的读取和写入请求。 通过客户管理的密钥,你可随时撤销此授权,但撤销意味着将无法再通过 SMB 或 FileREST API 访问你的 Azure 文件共享。

Azure 文件存储预其他 Azure 存储服务(例如 Azure Blob 存储)使用相同的机密方案。 要详细了解 Azure 存储服务加密 (SSE),请参阅针对静态数据的 Azure 存储加密

数据保护

Azure 文件有一种多层方法来确保数据得到备份、恢复以及不受安全威胁。

软删除

Azure 文件共享的软删除(预览版)是一种存储帐户级别设置,使你在意外删除文件共享时对其进行恢复。 已删除的文件共享会过渡到软删除状态,而非被永久擦除。 可配置软删除数据被永久删除前的可恢复时间,并在此保留期内随时取消删除共享。

我们建议对大多数文件共享启用软删除。 如果你的工作流中共享删除是常见且预期的,那么你可能会决定很短的保留期,或者根本不启用软删除。

有关软删除的详细信息,请参见防止意外数据删除

备份

可以通过共享快照备份 Azure 文件共享,这些快照是共享的只读时间点副本。 快照是增量的,这意味着它们只包含自上一个快照以来更改的数据量。 每个文件共享最多可以有 200 个快照,并将其保留长达 10 年。 可以通过 PowerShell 或命令行界面 (CLI) 在 Azure 门户中手动获取这些快照。 快照存储在文件共享中,这意味着如果删除文件共享,快照也将删除。 若要保护快照备份不被意外删除,请确保为共享启用软删除。

存储层

Azure 文件存储提供了四种不同的存储层(高级、事务优化、热和冷存储层),因此你能够根据方案的性能和价格要求定制共享:

  • Premium:高级文件共享由固态磁盘 (SSD) 提供支持;对于 IO 密集型工作负载,它们提供稳定的高性能和低延迟(大多数 IO 操作的延迟低至几毫秒)。 高级文件共享适合各种各样的工作负载,例如数据库、网站托管和开发环境。 高级文件共享既可用于服务器消息块 (SMB) 协议,也可用于网络文件系统 (NFS) 协议。
  • 事务优化:事务优化文件共享可实现事务繁重的工作负载,这些工作负荷不需要高级文件共享提供的延迟。 可在由硬盘驱动器 (HDD) 提供支持的标准存储硬件上使用事务优化文件共享。 虽然事务优化一直被称为“标准”层,但这指的是存储介质类型而不是层本身(热和冷存储层也是“标准”层,因为它们位于标准存储硬件上)。
  • Hot:热文件共享提供针对常规用途文件共享方案(如团队共享)优化的存储。 可在由 HDD 提供支持的标准存储硬件上使用热文件共享。
  • Cool:冷文件共享提供针对在线存档存储方案优化的经济高效的存储。 可在由 HDD 提供支持的标准存储硬件上使用冷文件共享。

高级文件共享是在 FileStorage 存储帐户中部署的,仅可在预配账单模型中使用。 有关高级文件共享的预配计费模型的详细信息,请参阅了解预配高级文件共享。 标准文件共享(包括事务优化、热和冷文件共享)部署在常规用途版本 2 (GPv2) 存储帐户类型中,以即用即付计费的形式提供。

为工作负载选择存储层时,请考虑你的性能和使用要求。 如果工作负载要求延迟低至个位数,或者你正在使用本地 SSD 存储媒体,则可能最适合使用高级层。 如果低延迟不太重要,例如在使用从 Azure 本地装载或通过 Azure 文件同步本地缓存的团队共享时,则从成本的角度来看,标准存储可能更加适合。

在存储帐户中创建文件共享后,无法将该共享移动到专用于其他存储帐户类型的层级。 例如,若要将事务优化文件共享移到高级层,必须在 FileStorage 存储帐户中创建一个新的文件共享,然后再将原始共享中的数据复制到 FileStorage 帐户中的这个新的文件共享。 建议在 Azure 文件共享之间使用 AzCopy 来复制数据,但你也可使用工具,例如适合 Windows 的 robocopy,或者适合 macOS 和 Linux 的 rsync

无需创建新的存储帐户和迁移数据,即可在标准层(事务优化、热和冷)之间移动 GPv2 存储帐户中部署的文件共享,但在更改层级时将产生事务成本。 在将共享从更热的冷移动到更冷的层时,共享中每个文件将产生更冷层的写入事务费用。 如果将文件共享从更冷的层移动到更热的层,则共享中每个文件将更冷层的读取事务费用。

有关详细信息,请参阅了解 Azure 文件存储计费

限制

具有 100 TiB 容量的标准文件共享存在一定限制。

  • 目前仅支持本地冗余存储 (LRS) 帐户。
  • 启用大型文件共享后,不能将存储帐户转换为异地冗余存储 (GRS) 帐户。
  • 启用大型文件共享后,不能禁用。

冗余

为了在 Azure 文件共享中保护数据以防数据丢失或损坏,所有 Azure 文件共享都在写入每个文件时存储了该文件的多个副本。 可以根据工作负载的要求选择额外的冗余度。 Azure 文件存储目前支持以下数据冗余选项:

  • 本地冗余:本地冗余存储(通常称为 LRS)表示每个文件在 Azure 存储群集中存储三次。 这可以防止由于硬件故障(例如磁盘驱动器损坏)而导致数据丢失。
  • 异地冗余:异地冗余存储(通常称为 GRS)类似于本地冗余存储,因为文件在主要区域的 Azure 存储群集内存储三次。 然后,所有写入都将异步复制到 Azure 定义的次要区域。 异地冗余存储在两个 Azure 区域之间提供 6 个数据副本。 如果发生重大灾难(例如,由于自然灾害或其他类似事件而导致 Azure 区域永久性丢失),Azure 会执行故障转移,使次要区域实际上成为主要区域,为所有操作提供服务。 由于主要区域和次要区域之间的复制是异步的,因此,在发生重大灾难时,尚未复制到次要区域的数据将会丢失。 还可以执行异地冗余存储帐户的手动故障转移。

标准 Azure 文件共享支持这两种冗余类型。

常规用途版本 2 (GPv2) 存储帐户提供 Azure 文件存储不支持的额外冗余选项:读取访问异地冗余存储,通常称为“RA-GRS”。 可以在存储帐户中使用这些选项集预配 Azure 文件共享,但 Azure 文件存储不支持从次要区域读取。 部署到读取访问异地冗余存储帐户中的 Azure 文件共享会按异地冗余存储计费。

迁移

在很多情况下,你不想要为组织建立全新的文件共享,而是将现有文件共享从本地文件服务器或 NAS 设备迁移到 Azure 文件存储。 为你的场景选择正确的迁移策略和工具对于迁移的成功非常重要。

迁移概述文章简要介绍了基础知识,并包含一个表格,指引你查看适用于你的方案的迁移指南。

后续步骤