On-premises NAS migration to Azure Files

Here’s a concise, structured summary of the article β€œUse DataBox to migrate from Network Attached Storage (NAS) to Azure file shares.” Links are preserved.

What this guide covers

  • Scenario: Migrate files from on-premises NAS to native Azure file shares using Azure DataBox for offline bulk transport and RoboCopy for catch-up. Not intended for Azure File Sync (no caching on-prem).

  • Goals: Move NAS shares to Azure file shares with integrity and minimal downtime.

Applies to

  • SMB file shares only (Standard GPv2 and Premium FileStorage supported). NFS not supported.

High-level migration phases

  1. Identify how many Azure file shares you need

  2. Deploy Azure storage resources

  3. Determine how many Azure DataBox appliances you need

  4. Provision temporary Windows Server(s) for RoboCopy

  5. Prepare networking, authentication, and authorization for Azure file shares

  6. Copy data onto DataBox

  7. Catch-up RoboCopy from NAS and cut over users/apps

Phase highlights and guidance

Phase 1 β€” Mapping shares

  • Choose 1:1 mapping (one Azure file share per on-prem share) for small numbers, or share grouping (combine related on-prem shares into one Azure file share) for many shares.

Phase 2 β€” Deploy Azure storage

  • Create storage accounts and file shares (storage account is the scale target for performance for standard shares).

  • Consider pooling shares into accounts for low-activity/archive shares; isolate highly active shares into their own accounts. Premium FileStorage is provisioned per share.

  • Note: 250 storage accounts per subscription per region.

  • See: Create an SMB file share (link preserved).

Phase 3 β€” DataBox sizing and limits

  • Any DataBox can move data into up to 10 storage accounts.

  • Choose DataBox option(s) based on usable capacity and share sizes.

  • Primary recommended option: DataBox appliance (usable ~80 TiB). Data Box Disks is not recommended β€” it doesn't preserve ACLs and some metadata.

  • Plan mapping of which DataBox writes to which storage account; do not split a single file share across two DataBoxes.

Phase 4 β€” Temporary Windows Server(s)

  • Deploy Windows Server(s) to copy files onto DataBox and later to run catch-up RoboCopy.

  • RoboCopy throughput depends on IOPS (source/target), network bandwidth, and ability to enumerate/process namespace. Size RAM and CPU accordingly.

Phase 5 β€” Prepare Azure file shares for use

  • Key decisions: Networking (SMB routing), Authentication (Kerberos/AD integration via AD Connect and domain-joining storage account), Authorization (share-level ACLs + NTFS ACLs), Business continuity (consider DFS-Namespace to preserve share addresses).

  • Complete these before mounting Azure shares.

Phase 6 β€” Copy files onto DataBox

  • Follow DataBox setup docs (links preserved).

  • DataBox will expose SMB shares pre-provisioned for the storage accounts you specified. For standard accounts, use the shares ending with _AzFiles; ignore block/page blob shares.

  • Recommended to use RoboCopy to preserve full fidelity. The article gives a higher-fidelity RoboCopy example to use when copying onto DataBox: Robocopy /MT:32 /NP /NFL /NDL /B /MIR /IT /COPY:DATSO /DCOPY:DAT /UNILOG: <Dest.Path>

  • As alternative, Data Box provides a data copy service (link preserved). If using it, ensure you target the correct Azure file share.

Phase 7 β€” Catch-up RoboCopy and cut-over

  • Needed if NAS remained writable during transport. Run repeated RoboCopy /MIR passes to catch changes; final run occurs during downtime/failover.

  • Steps to start a catch-up copy (converted to stepper):

1

Prepare source and target

  • Identify the NAS source location and its matching Azure file share.

2

Mount Azure file share

  • Mount the Azure file share as a network drive on your temporary Windows Server. Ensure Phase 5 tasks are complete first.

  • See: Use an Azure file share with Windows (link preserved).

3

Run RoboCopy

  • Run RoboCopy using the recommended options (see RoboCopy section).

4

Repeat and finalize

  • Run repeated RoboCopy passes until ready to cut over. Remove user access to NAS, run a final RoboCopy, then point users/apps to the Azure file share (adjust DFS-N or share paths as needed).

RoboCopy: recommended command and key switches

  • Recommended catch-up command example: robocopy <Dest.Path> /MT:20 /R:2 /W:1 /B /MIR /IT /COPY:DATSO /DCOPY:DAT /NP /NFL /NDL /XD "System Volume Information" /UNILOG:

  • Important switches explained (summary):

    • /MT:n β€” multithread; helps saturate bandwidth (tests favor 8–20, up to 64 or more dependent on CPU).

    • /R:n and /W:n β€” retry count and wait between retries.

    • /B β€” backup mode to copy files that current user lacks permissions for (requires elevated prompt).

    • /MIR β€” mirror source to target (be careful: mismatched folder levels can delete data).

    • /IT β€” helps preserve certain changes (ACL + attribute scenarios).

    • /COPY:DATSO and /DCOPY:DAT β€” copy data, attributes, timestamps, security, owner, and directory attributes.

    • /NP /NFL /NDL β€” suppress progress and name logging to improve performance.

    • /UNILOG β€” Unicode log file (overwrites existing log).

    • /L β€” test run (list only), /Z and /ZB β€” restart modes (use cautiously; slow).

Operational tips and troubleshooting

  • Use Windows Server 2022 recommended; for Windows Server 2019 ensure latest patches or KB5005103.

  • Migration speed limited by slowest of source IOPS, target IOPS, or network. Consider network QoS and inter-packet delay (/IPG:n) to avoid saturating production resources.

  • Processing many small files is CPU/namespace-enumeration bound; increase /MT threads for initial runs and scale back for subsequent runs to match CPU threads.

  • Avoid large-scale namespace changes (moving files, mass ACL changes) during migration because they can create excessive rework and longer RoboCopy runs.

  • Use reasonable retry/wait settings (example: /R:5 /W:5) so failed files are retried but runs are not stalled excessively.

  • Expect to run multiple RoboCopy passes; each subsequent pass typically finishes faster.

See also / links

  • Migration overview (link preserved)

  • Networking considerations for direct access (link preserved)

  • Azure file share snapshots (link preserved)

  • DataBox docs and specific Quickstart/setup links are preserved within the original article.

Last updated: 12/23/2025

If you want, I can:

  • Produce a one-page checklist for each phase (deployment, DataBox prep, RoboCopy commands and logs).

  • Convert the RoboCopy switch table into a collapsible/expandable section for GitBook. Which would you prefer?

Was this helpful?