配置 CIFS 和 SMB2/SMB3 加速
CIFS 加速功能为基于 CIFS(Windows 和 Samba)的文件传输和目录浏览提供了一套协议特定的性能增强功能,包括 CIFS 传输和相关协议(如 DCERPC)的增强功能。
CIFS 加速有三个部分:
-
TCP 流量控制加速 — 无论协议版本(SMB1、SMB2 或 SMB3)或身份验证和加密程度如何,都会对所有加速 CIFS 连接执行此操作。
-
CIFS 协议加速 — 这些优化通过减少运行 CIFS 命令所需的往返次数来提高 CIFS 性能。在 SMB1 和 SMB2 CIFS 连接上自动执行这些优化,这些连接要么不使用 CIFS 数据包身份验证(“签名”),要么使用签名并且设备已加入 Windows 域中的 “安全委托” 角色。
-
CIFS 压缩 — 只要 CIFS 连接满足 CIFS 协议加速要求,就会自动压缩它们。此外,SMB3 连接在未签名和解密时进行压缩。
在启用了 CIFS 签名的网络上,CIFS 协议加速和压缩要求您禁用 CIFS 数据包身份验证(签名),或者让数据中心设备加入 Windows 域,并在数据中心设备和远程设备之间创建安全的对等关系和 Citrix SD-WAN WANOP 插件。
表 1. CIFS 加速功能,按 SMB 协议版本以及设备是否已加入 Windows 域。
SMB 版本 | TCP 流控制 | 压缩 | 协议加速 |
---|---|---|---|
禁用签名 | |||
SMB 1.0 | Y | Y | Y |
SMB 2.0 | Y | Y | Y |
SMB 2.1 | Y | Y | N |
SMB 3.0 | Y | Y | N |
启用签名,Citrix SD-WAN WANOP 已加入域 ** | |||
SMB 1.0 | Y | Y | Y |
SMB 2.0 | Y | Y | Y |
SMB 2.1 | Y | Y | Y |
SMB 3.0 | Y | Y | Y * |
启用签名,Citrix SD-WAN WANOP 尚未加入域 | |||
SMB 1.0 | Y | N | N |
SMB 2.0 | Y | N | N |
SMB 2.1 | Y | N | N |
SMB 3.0 | Y | N | N |
* SMB 3.0 支持已在 7.4.2 版中添加。
** Citrix SD-WAN WANOP 不支持 NTLMv2 身份验证 (默认适用于 Windows 7) 与 SMB 1/SMB 2/SMB 3 和 NetApp 服务器。启用 Kerberos 身份验证允许加速。
表 2. 客户端和服务器操作系统使用哪个 SMB 协议版本。
客户端/服务器OS | Windows 8、Windows 10 或 Windows Server 2012 | Windows 7 或 Windows Server 2008 R2 | Windows Vista 或 Windows Server 2008 | 早期版本的 Windows |
---|---|---|---|---|
Windows 8、Windows 10 或 Windows Server 2012 | SMB 3.0 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows 7 或 Windows Server 2008 R2 | SMB 2.1 | SMB 2.1 | SMB 2.0 | SMB 1.0 |
Windows Vista 或 Windows Server 2008 | SMB 2.0 | SMB 2.0 | SMB 2.0 | SMB 1.0 |
早期版本的 Windows | SMB 1.0 | SMB 1.0 | SMB 1.0 | SMB 1.0 |
支持的 CIFS 版本:
并非每个 CIFS 实现都使用设备识别的请求模式。这些不受支持的版本在所有情况下都无法实现加速,如下表所示。
表 3. Citrix SD-WAN WANOP 支持 CIFS 服务器和客户端。
产品 | 服务器 | 客户端 |
---|---|---|
Windows Server 2003-2012 | 是* | 是* |
Windows XP、Vista 7、8、2000 | 是* | 是* |
NetApp | 是** | 不适用 |
日立 | 是** | 不适用 |
Windows NT | 是 | 否 |
Windows ME 及更早版本 | 否 | 否 |
注意:大多数第三方 CIFS 实现模拟上面列出的服务器或客户端之一。在仿真成功的范围内,流量会加速或不加速,如上表所示。如果仿真的行为与 CIFS 加速器期望的行为不同,则该连接将终止 CIFS 加速。
在对给定 CIFS 实现的 CIFS 加速行为进行测试之前,无法确定知道。
CIFS 加速模式如下:
-
大文件读取和写入
-
小文件读取和写入
-
目录浏览。
大型文件读取和写入— 这些 SMB1 优化适用于至少 640 KB 的文件传输。安全预读和后写技术用于流式传输数据,而不会暂停每次传输(传输不超过 64 KB)。
只有当传输具有 BATE 或独占锁并且 “简单” 时,才会启用这些优化。“ 文件副本总是简单的。通过应用程序打开的文件可能是也可能不是,具体取决于它们在应用程序中的处理方式。
CIFS 加速可以很容易地获得 10 倍的加速比,前提是您的链路和磁盘速度足以容纳当前传输速度的十倍。如有必要,可以获得 50 倍的加速,但由于内存消耗,通常不能启用。如果 10 倍不够,请联系您的 Citrix 代表。
小文件读取和写入— 小文件增强更多地围绕元数据(目录)优化,而不是围绕数据流。本机 CIFS 不会以高效的方式组合元数据请求。CIFS 加速是如此。与大文件加速一样,除非它们是安全的,否则不会执行这些优化(例如,如果 CIFS 客户端未被授予目录上的排他锁,则不会执行这些优化)。 使用 SMB2 协议时,文件元数据将在本地缓存,以便进行更大的改进。
目录浏览— 标准 CIFS 客户端以极低效率的方式执行目录浏览,需要大量往返打开远程文件夹。CIFS 加速度将往返次数减少到 2 或 3 次。使用 SMB2 协议时,目录数据会在本地缓存,以进行更大的改进。
CIFS 协议加速
所有型号都支持 CIFS 加速。CIFS 是一种基于 TCP 的协议,并从流量控制中受益。然而,CIFS 的实施方式在长途网络上效率很低,需要过多的往返旅行才能完成一项业务。由于协议对链路延迟非常敏感,因此完全加速必须具有协议感知。
CIFS 加速度通过各种技术减少往返行程次数。分析来自客户端的请求模式,并预测其下一个操作。在许多情况下,即使预测错误,也可以安全地采取行动,这些安全操作是许多优化的基础。
例如,SMB1 客户端以非重叠的方式发出顺序文件读取,等待每个 64KB 读取完成,然后再发出下一个读取。通过实现预读,设备可以通过提前获取预期数据来安全地提供高达 10 倍的加速度。
其他技术可加速目录浏览和小文件操作。加速不仅应用于 CIFS 操作,还应用于相关的 RPC 操作。
必备条件
所有型号都支持 CIFS 加速。CIFS 是一种基于 TCP 的协议,并从流量控制中受益。然而,CIFS 的实施方式在长途网络上效率很低,需要过多的往返旅行才能完成一项业务。由于协议对链路延迟非常敏感,因此完全加速必须具有协议感知。
CIFS 加速度通过各种技术减少往返行程次数。分析来自客户端的请求模式,并预测其下一个操作。在许多情况下,即使预测错误,也可以安全地采取行动,这些安全操作是许多优化的基础。
例如,SMB1 客户端以非重叠的方式发出顺序文件读取,等待每个 64KB 读取完成,然后再发出下一个读取。通过实现预读,设备可以通过提前获取预期数据来安全地提供高达 10 倍的加速度。
其他技术可加速目录浏览和小文件操作。加速不仅应用于 CIFS 操作,还应用于相关的 RPC 操作。
如果您的网络使用 CIFS 签名,则设备必须是域的受信任成员。要使设备成为域的受信任成员,请参阅将 Citrix SD-WAN WANOP 设备添加到 Windows 安全基础结构。
配置 CIFS 协议加速
默认情况下,对于不使用 CIFS 签名的连接,将启用 CIFS 加速。如果您的网络使用签名,则可以禁用该签名,也可以禁用服务器端设备加入 Windows 域。
禁用 CIFS 签名
根据其安全设置,Windows Server 或域服务器可能需要调整其安全设置。
图 1. Windows Server 安全选项、Windows Server 2003 和 Windows Server 2008。
Windows 文件服务器有两种安全模式:“密封”和“签名”。
密封加密数据流并完全防止 CIFS 协议加速。
签名将身份验证数据添加到每个数据包,而无需加密数据流。这可以防止加速,除非您已经实施了中描述的过程将 Citrix SD-WAN WANOP 设备添加到 Windows 安全基础结构。满足此要求时,签名将自动加速。否则,必须禁用签名(如果尚未禁用签名)才能进行协议加速。
默认情况下,Windows 文件服务器提供签名,但不需要签名,域服务器除外,默认情况下需要签名。
要使用当前需要签名的系统实现 CIFS 加速,您必须更改系统安全设置以禁用此要求。您可以在文件服务器上的本地安全设置或组策略中执行此操作。以下示例(对于 Windows Server 2003 和 Windows Server 2008)显示了本地设置。当然,集团政策的变化几乎完全相同。
Citrix SD-WAN WANOP
更改服务器设置以允许 CIFS 加速
-
导航到系统的 “本地安全设置” 页面。
-
设置域成员:数字加密或签署安全通道数据(始终)为禁用。
-
将 Microsoft 网络客户端:将通信数字签名(始终)设置为禁用。
-
将 Microsoft 网络服务器:将通信数字签名(始终)设置为已禁用。
解释 CIFS 统计数据
监视:文件系统 (CIFS/SMB) 页面显示了加速 CIFS 连接的列表。这些连接分为 “优化” 和 “非优化” 连接。因为所有这些连接都加速(使用流量控制和压缩),所以 “优化” 连接除了流量控制和压缩外还具有 CIFS 优化,而 “非优化” 连接仅具有流量控制和压缩。
CIFS 管理摘要
-
即使在相对较短的链路距离下,CIFS 加速也能显著提高。
-
CIFS 加速在客户端首次访问文件系统时开始。如果在文件服务器和客户端已启用并正在运行的情况下启用了加速,则在多分钟内不会发生加速,直到预先存在的 CIFS 连接完全关闭。CIFS 连接是非常持久的,并且在关闭自身之前持续很长时间,即使在空闲时也是如此。这种行为在测试期间很烦人,但在正常部署中没有什么重要性。
-
卸载和重新装载 Windows 中的文件系统不会关闭 CIFS 连接,因为 Windows 不会真正卸载文件系统。重新启动客户端或服务器的工作。对于侵入性较小的措施,请使用 Windows 命令行中的 NET USE 设备名称 /DELETE 命令完全卸载卷。在 Linux 中,smbmount 和卸载完全卸载卷。
-
在设备上禁用然后重新启用 CIFS 读取和写入优化会引起类似的问题。启用 CIFS 时,现有连接不会加速,并且 “监视:文件系统 (CIFS/SMB) 页面上检测到的协议错误” 数量会短暂增加。
-
CIFS 统计信息可能会令人困惑,因为只有离文件服务器最远的设备才会报告 CIFS 加速时使用完整统计信息。另一个设备将其视为普通加速度。
-
在代理模式下不支持 CIFS 加速。
-
如果 Windows Server 没有进行 CIFS 加速,请检查服务器的安全设置。