2

I'm trying to diagnose a slow file copy issue but am a bit perplexed by the "behind the scenes" flow of data and am looking for clarification.

The server in question is a Windows 2012 server and it has a dedicated iSCSI NIC on the same subnet as the iSCSI target.

We are seeing appalling file transfer speeds from one volume to another - both of which are LUNs on the same storage array behind the same iSCSI target.

Can anyone explain how the flow of data should go for a copy job initiated by the server, from one volume to the other?

Will the server essentially pull in every byte from the relevant LUN and then spit the same bytes back out to the iSCSI target?

So, for a 20gb file copy - would it essentially download and reupload all 20gb (whether all at once or bit-by bit)?

5
  • 3
    "Will the server essentially pull in every byte from the relevant LUN and then spit the same bytes back out to the iSCSI target?" - yes.
    – Chopper3
    Jun 11, 2019 at 14:04
  • Thanks @Chopper3 - I don't suppose you have any links that back this up? I just can't seem to find anything definitive.
    – triphazard
    Jun 11, 2019 at 14:20
  • Well iSCSI is just block storage, it doesn't care what the blocks are, one file, a million files, when you move data around with iSCSI they're just blocks, it's not 'file aware' so the options are limited.
    – Chopper3
    Jun 11, 2019 at 14:59
  • 2
    AFAIK the iSCSI protocol does not offer a method for offloading (file) copy actions to a storage server, that happens completely on the client. Rather than a block storage protocol that probably also requires a file sharing protocol such as SMB2 which provides the specific FSCTL_SRV_COPYCHUNK command for that.
    – HBruijn
    Jun 11, 2019 at 15:11
  • There's a couple of methods of doing offloaded server-side iSCSI copies, but I've only ever seen them used for VMware's vmotion stuff: EXTENDED COPY and WRITE USING TOKEN. Jun 28, 2019 at 22:19

1 Answer 1

2

Windows Server 2012 and newer has a feature Windows Offloaded Data Transfers (ODX), which can offload while copy or move between iSCSI-target.

This is enabled by default. You control it by setting the registry key

hklm:\system\currentcontrolset\control\filesystem\FilterSupportedFeaturesMode

0 is enabled (default), 1 is disabled. No reboot is needed when changing the key.

At least with a QNAP NAS I noticed no network activity while copy large files between two LUNs (iSCSI to iSCSI copy). The performance of the QNAP was likely limited to 45 mb/s. After disabling ODX (copy to the server and back) the transfer was running with 250 mb/s (gigabit ethernet).

So disabling ODX may improve performance, depending on hardware and network.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .