Print Email PDF

Server-Side Copy over SMB

IN THIS ARTICLE 

Outlines how to use Server Side Copy (SSC) and Offloaded Data Transfer (ODX) over SMB in Qumulo Core

REQUIREMENTS

  • Cluster running Qumulo Core version 3.0.0 or above
  • Command line (CLI) tools installed via API & Tools tab

OVERVIEW

Qumulo Core supports two server-side copy operations over the SMB protocol. Server-Side Copy (SSC or SMB2 FSCTL_SRV_COPYCHUNK) lets you copy chunks from one file to another (and it can be called on the same file) without the client reading the data, while Offloaded Data Transfer (ODX or FSCTL_OFFLOAD_WRITE) lets you generate a token representation of a file and perform a write to another file even if the token was used for a different SMB share. 

Clients that are able to send Server-Side Copy requests can experience significant performance improvements from avoiding network latencies, as file data does not need to be read to the client then sent back to the server. From our internal test results, SSC is 4 times faster than the regular copy, while ODX is 7 times faster than the usual READ/WRITE sequence when copying a file to another location on the same server. Clients should generally attempt ODX first, then fallback to SSC, then READ/WRITE for the fastest copy performance.

IMPORTANT! Keep in mind that the cluster SKU, cluster size, and network configuration will play a role in how much copy performance you experience on your cluster.

Common Use Cases

The table below summarizes support for ODX or SSC in some of the most commonly seen clients.

Client/OS

Application

ODX-Capable

SSC-Capable

Windows

File Explorer drag/drop

yes

yes

Windows

Xcopy

yes

yes

Windows

Robocopy

yes

yes

macOS

Finder

no

yes

Linux

CIFS mount

no

no

NOTE: Both of these operations are enabled by default as long as the client is capable of sending the appropriate requests. Clients that support ODX will use it by default for files that are 256KiB or larger; smaller files will be copied via SSC.

Server-Side Copy via the QQ CLI

Copying from one file to another location on the same cluster (SSC) can be done over the REST API and qq command-line interface.

Use the following qq command and include the absolute paths of the source and target files you wish to copy:

qq fs_copy /SOURCE /TARGET

Optional arguments for this command include the following:

OPTIONAL ARGUMENTS
 --source-snapshot SOURCE_SNAPSHOT
Snapshot ID to copy from
--overwrite
Overwrite an existing target file
--quiet
Do not show progress bar

Below is an example of copying the data from a snapshot to a specified target file:

qq fs_copy [--source-snapshot SOURCE_SNAPSHOT] [--overwrite] [--quiet] 
/SOURCE /TARGET

TROUBLESHOOTING

If copying is unsuccessful on your Windows client, follow the steps below to turn off filters that don’t support ODX from the command prompt.

  • Run the following command:
 fltmc instances

fltmc_instances.png

  • Remove any filter drivers that have 0 supported bits for ODX read and write in the SprtFtrs column. In this example, we would run the following command to remove the npsvctrig filter:
fltmc unload npsvctrig

RESOLUTION 

You should now have an overall understanding of Server Side Copy (SSC) and Offloaded Data Transfer (ODX) over SMB in Qumulo Core

ADDITIONAL RESOURCES  

QQ CLI: File System

 

Like what you see? Share this article with your network!

Was this article helpful?
0 out of 0 found this helpful

Comments

0 comments

Please sign in to leave a comment.

Have more questions?
Open a Case
Share it, if you like it.