Product Documentation

Configuring CIFS and SMB2 Acceleration

Dec 09, 2014

The CIFS acceleration feature provides a suite of protocol-specific performance enhancements to CIFS-based (Windows and Samba) file transfer and directory browsing, including enhancements to CIFS transport and to related protocols such as DCERPC.

CIFS acceleration has three parts:
  • TCP flow-control acceleration—This is performed on all accelerated CIFS connections, regardless of protocol version (SMB1, SMB2, or SMB3) or degree of authentication and encryption.
  • CIFS protocol acceleration—These optimizations increase CIFS performance by reducing the number of round trips needed for running a CIFS command. These optimizations are performed automatically on SMB1 and SMB2 CIFS connections that either do not use CIFS packet authentication ("signing"), or where signing is used and the appliances have joined the Windows domain in a "security delegate" role.
  • CIFS compression—CIFS connections are compressed automatically whenever they meet the requirements for CIFS protocol acceleration. In addition, SMB3 connections are compressed when unsigned and unsealed.

On networks where CIFS signing is enabled, CIFS protocol acceleration and compression require that you either disable CIFS packet authentication (signing), or have your datacenter appliances join the Windows domain, and create a secure peer relationship between the datacenter appliances and your remote appliances and CloudBridge Plug-ins.

Table 1. CIFS acceleration features, by SMB protocol version and whether the appliance has joined the Windows domain.
SMB Version TCP Flow Control Compression Protocol Acceleration
Signing disabled
SMB 1.0 Y Y Y
SMB 2.0 Y Y Y
SMB 2.1 Y Y N
SMB 3.0 Y Y N
Signing enabled, CloudBridge has joined domain
SMB 1.0 Y Y Y
SMB 2.0 Y Y Y
SMB 2.1 Y Y N
SMB 3.0 Y Y N
Signing enabled, CloudBridge has not joined domain
SMB 1.0 Y N N
SMB 2.0 Y N N
SMB 2.1 Y N N
SMB 3.0 Y N N
Table 2. Which SMB protocol version is used, by client and server operating system
Client/Server OS Windows 8 Windows Server 2012 Windows 7 Windows Server 2008 R2 Windows Vista Windows Server 2008 Earlier versions of Windows
Windows 8 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
Previous versions of Windows SMB 1.0 SMB 1.0 SMB 1.0 SMB 1.0

Supported Versions of CIFS

Not every CIFS implementation uses request patterns that are recognized by the appliance. These unsupported versions do not achieve acceleration in the full range of cases, as shown in the following table.

Table 3. CloudBridge Support for CIFS Servers and Clients
Product Server Client
Windows Server 2003-2012 Yes* Yes*
Windows XP, Vista, 7, 8, 2000 Yes* Yes*
NetApp Yes N/A
Hitachi Yes N/A
Windows NT Yes No
Windows ME and earlier No No
Others See Note

* Newer Windows versions use the SMB3 protocol when both client and server support it. Protocol acceleration is not supported for SMB3, so protocol acceleration with an SMB 3-capable OS occurs only when communicating with an earlier operating system.

Note: Most third-party CIFS implementations emulate one of the servers or clients listed above. To the extent that the emulation is successful, traffic is accelerated, or not, as shown in the above table. If the emulation behaves differently from what the CIFS accelerator expects, CIFS acceleration is terminated for that connection.

The behavior of CIFS acceleration with a given CIFS implementation cannot be known for certain until it has been tested.

The modes of CIFS acceleration are:
  • Large file reads and writes
  • Small file reads and writes
  • Directory browsing.

Large file reads and writes—These SMB1 optimizations are for file transfers of at least 640 KB. Safe read-ahead and write-behind techniques are used to stream the data without pauses for every transfer (a transfer is 64 KB or less).

These optimizations are enabled only if the transfer has a BATCH or EXCLUSIVE lock and is "simple." File copies are always simple. Files opened through applications might or might not be, depending on how they are handled within the application.

Speedup ratios of 10x are readily obtainable with CIFS acceleration, provided that your link and disks are fast enough to accommodate ten times your current transfer speeds. 50x speedup can be obtained if necessary, but is not normally enabled, because of memory consumption. Contact your Citrix representative if 10x is not sufficient.

Small file reads and writes—Small-file enhancements center more around metadata (directory) optimizations than around data streaming. Native CIFS does not combine metadata requests in an efficient way. CIFS acceleration does. As with large-file acceleration, these optimizations are not performed unless they are safe (for example, they are not performed if the CIFS client was not granted an exclusive lock on the directory.) When the SMB2 protocol is used, file metadata is cached locally for even greater improvements.

Directory Browsing—Standard CIFS clients perform directory browsing in an extremely inefficient way, requiring an enormous number of round trips to open a remote folder. CIFS acceleration reduces the number of round trips to 2 or 3. When the SMB2 protocol is used, directory data is cached locally for even greater improvements.