Evaluate performance, permissions, networking, security, and cost considerations before migrating file shares to Azure
Key Considerations Before Migrating
File Shares to Azure
Moving file shares to Azure is not a copy job — it is an infrastructure transformation. The organizations that get it right spend more time planning than executing. The ones that get it wrong discover post-cutover that their ACLs didn't migrate, their performance tier was wrong for the workload, or their users can't authenticate. This guide covers every decision you need to make before writing the first RoboCopy command.
The decision to migrate file shares to Azure is usually straightforward. The execution is not. Unlike server migrations — where a VM is lifted and shifted relatively intact — a file share migration involves decisions about protocols, performance tiers, authentication models, network paths, and copy tool behavior, all of which interact in ways that are not obvious until something breaks. This guide structures those decisions into ten considerations you must work through before any data movement begins. Each consideration is a decision point — not a task. The tasks come after.
The most common cause of migration projects running over time and budget is an inaccurate inventory. Organizations consistently underestimate share count, total data size, and — critically — the number of small files. A 5 TB share containing 50 large files migrates in hours. A 5 TB share containing 50 million small files takes days. Azure Migrate now supports agentless discovery of SMB and NFS file shares across Windows and Linux servers, delivering a migration-ready inventory in hours rather than days of manual scripting.
What to capture for each share: total size in GiB, file count (not just folder count), average file size, oldest and newest file timestamps, protocol (SMB 2.x / 3.x / NFS), host OS, authentication model (NTLM, Kerberos, local accounts), whether the share is accessed by applications via hardcoded UNC paths, peak concurrent users, and observed IOPS and throughput during business hours. For environments over 100 TiB, Microsoft recommends Komprise — a third-party tool providing deep access-pattern analytics, file age distribution, and data temperature analysis across the estate.
Deploy or Update the Azure Migrate Appliance
Deploy the Azure Migrate appliance in your on-premises environment. If already deployed for server migration, update it to the latest version — file share discovery requires an updated agent released in early 2026. The appliance discovers SMB and NFS shares automatically and agentlessly — no agent installation on file servers required. Discovery typically completes within 2–6 hours depending on environment size.
Review Inventory and Export for Stakeholder Sign-Off
Review the inventory in the Azure Migrate portal via both the Per-Server view and the Infrastructure view. Export to Excel — this is your official migration scope baseline. Have stakeholders sign off on the scope before designing the target architecture. Shares discovered but not in scope need a documented decision: migrate, retire, or archive.
Run Azure Files Assessment for Right-Sizing Recommendations
After discovery, run an Azure Files assessment in Azure Migrate. Configure your target region, pricing preference, and redundancy. The assessment analyses actual usage and recommends the correct tier for each share — preventing Premium over-provisioning where Standard is sufficient and under-provisioning where latency matters. Download the assessment as your official sizing document.
Identify Application-Owned Shares and Hidden Dependencies
Identify which shares are accessed by applications via hardcoded UNC paths — these require DFS-Namespace redirection or application reconfiguration at cutover, not just a share move. Identify shares accessed by scheduled tasks, backup agents, or monitoring systems. These dependencies are invisible in a share inventory but become critical blockers at cutover if not planned for in advance.
Azure Files can be deployed in two fundamentally different models. Direct mount replaces your on-premises file server entirely — users and applications mount the Azure file share directly over SMB or NFS. Azure File Sync keeps an on-premises Windows Server as a local cache while syncing all data to Azure in the background — users connect to the local server at LAN speed, while Azure holds the authoritative copy with optional cloud tiering of cold data.
Direct mount requires all clients to have reliable, low-latency connectivity to Azure — typically only acceptable for Azure-hosted workloads or users connected via ExpressRoute or high-bandwidth VPN. Azure File Sync is the right choice for branch offices, remote sites, or any environment where local file access performance is a hard requirement. The two models are not interchangeable and cannot be swapped post-migration without re-architecting.
| Factor | Direct Mount | Azure File Sync (Hybrid) |
|---|---|---|
| On-premises server | Not required | Required (Windows Server 2016+) |
| User access latency | Azure network RTT applies to all reads/writes | LAN speed for cached files; recall delay for cold data |
| Protocol support | SMB 3.x and NFS 4.1 | SMB only — no NFS sync |
| Share limit per server | No practical limit | 30 sync endpoints per server endpoint |
| Cloud tiering | Not applicable | Available — cold data recalled on demand |
| Best for | Azure VMs, AVD, ExpressRoute offices, new greenfield deployments | Branch offices, NAS replacement, large estates with cold data |
Azure Files supports two protocols: SMB 3.x for Windows clients and NFS 4.1 for Linux and POSIX workloads. The protocol choice is typically driven by client OS, but the differences in authentication and network access have significant migration design implications.
SMB 3.x supports identity-based authentication through AD DS, Azure AD DS, or Entra ID Kerberos. It works on port 445 — frequently blocked by ISPs and firewalls. SMB supports full Windows NTFS ACLs on files and directories enabling per-user permissions that migrate from on-premises servers. SMB over QUIC (port 443) provides a VPN-free option for Windows 11 clients where port 445 is blocked.
NFS 4.1 does not authenticate — access is controlled entirely by VNet and subnet restrictions. Every client in the allowed subnet has access to the NFS share. NFS requires a Premium SSD storage account and is accessible only from private networks. Never expose an NFS share on a public endpoint — there is no authentication mechanism to protect it. If your workload uses Windows ACLs and per-user permissions, choose SMB. If it runs on Linux with POSIX permissions, choose NFS.
Verify port 445 from every client location before committing to a migration timeline. Run: Test-NetConnection -ComputerName <account>.file.core.windows.net -Port 445 from Azure VMs, from on-premises machines, and from a remote worker's machine. Any failure here must be resolved before cutover. If port 445 is blocked and cannot be unblocked, plan for SMB over QUIC (Windows 11 only), Azure Virtual Desktop, or a VPN requirement for remote users.
Azure Files offers four tiers in 2026. Choosing the wrong tier is the most common cause of both performance problems and unnecessary cost after migration. The Azure Migrate assessment provides tier recommendations based on observed usage — always validate these against peak load requirements, not just average metrics. Premium SSD uses a provisioned billing model — you pay for GiB allocated, not GiB used. Over-provisioning Premium wastes money; monitor actual usage and right-size down periodically after migration.
| Tier | Media | Billing | Max IOPS | Best For |
|---|---|---|---|---|
| Standard HDD Hot | HDD | Pay-as-you-go (consumed GiB + transactions) | ~10,000 | General-purpose user file shares, mixed daily access |
| Standard HDD Cool | HDD | Lower capacity cost, higher transaction cost | ~10,000 | Shares accessed less than once per week — archival-leaning |
| Standard Tx Optimised | HDD | Lower transaction cost, higher capacity cost | ~10,000 | High-transaction, low-data workloads |
| Premium SSD | SSD | Provisioned GiB (pay for allocated, not used) | Up to 100,000+ | SAP HANA, SQL on Linux (NFS), VDI user profiles, sub-ms latency |
Network configuration is the most technically complex migration consideration and the one most likely to surprise you post-cutover. Azure Files must be reachable from every client type before the share can serve as the production replacement. The required configuration depends on the protocol and endpoint type.
Create Private Endpoint for the File Sub-Resource
Create a Private Endpoint targeting the file sub-resource (not blob). Allow the portal to auto-create the Private DNS Zone privatelink.file.core.windows.net and link it to your VNet. Test: Resolve-DnsName <account>.file.core.windows.net from inside the VNet should return a private IP (10.x.x.x), not a public IP. Only disable public access after confirming the private path works.
Configure DNS Forwarding for On-Premises Clients
On-premises DNS must forward the privatelink.file.core.windows.net zone to Azure's Private DNS Resolver. Without this, on-premises clients resolve to the public IP even with a Private Endpoint configured. Use Azure Private DNS Resolver (2022+) to handle forwarding without deploying custom DNS forwarder VMs.
Verify Port 445 from Every Client Type
Test-NetConnection -ComputerName <account>.file.core.windows.net -Port 445 from: (a) an Azure VM in the same VNet, (b) an on-premises machine over ExpressRoute or VPN, and (c) a remote worker's machine. Any failure must be resolved before cutover — it will not fix itself. Document the result of each test as part of your pre-migration go/no-go checklist.
Authentication for Azure Files determines whether users can access their files after migration — and it is the consideration most commonly deferred until it becomes an emergency. Azure Files supports four methods, but only two are recommended for new deployments in 2026: Entra ID Kerberos for cloud-native or hybrid environments without on-premises AD DS, and Active Directory Domain Services (AD DS) for environments with existing on-premises domain controllers as the authoritative identity source.
The authentication method determines how file and folder ACLs are interpreted. If users access the Azure file share using the same Active Directory identities they use on-premises, and the storage account is joined to the same AD DS domain, NTFS ACLs migrate faithfully — the SIDs in the ACLs match the SIDs of authenticated users. If the authentication model changes during migration (for example, moving from on-premises AD DS to Entra ID Kerberos), ACLs must be re-evaluated because SIDs may not match.
| Auth Method | Requires | ACL Support | Recommended For |
|---|---|---|---|
| AD DS (on-prem) | On-premises domain controller with line of sight | Full NTFS ACLs, per-user | Hybrid environments keeping on-prem AD DS as identity source |
| Entra ID Kerberos | Entra ID only — no on-prem DC needed | Full NTFS ACLs, per-user | Cloud-native environments, new deployments in 2026 |
| Azure AD DS | Azure AD DS managed domain | Full NTFS ACLs, per-user | Managed domain without on-prem DC |
| Storage Account Key | Always available (account key) | Share-level only — no file-level ACLs | Break-glass only. Never as primary auth in production. |
If migrating from on-premises file servers to Azure Files, set the ACLs for the root directory of the file share before copying any files. If you copy millions of files first and then change root-level permissions, the ACL propagation must recurse through every child object — on a multi-million file share this takes hours and blocks user access during propagation. Set root directory permissions first, confirm they are correct, then begin the copy job.
File fidelity is the completeness of what your copy tool preserves from source to destination. Users notice missing timestamps immediately. Applications that rely on ACLs break silently. Compliance systems that depend on last-modified dates report incorrect audit trails. Understanding what your chosen copy tool preserves — and what it drops — is essential before any data movement begins.
| File Attribute | Migration Risk if Lost | Preserved by |
|---|---|---|
| Data stream | File is unreadable. All copy tools preserve this. | All tools |
| NTFS ACLs | All users get the same access level. Security model breaks. | RoboCopy /COPYALL, Azure Storage Mover |
| Creation timestamp | All files show migration date as creation date. Affects compliance and archiving. | RoboCopy /COPYALL |
| Last modified timestamp | Most impactful for users and applications that sort by modified date. | RoboCopy /COPYALL, AzCopy /PreserveSMBInfo |
| File attributes | Read-only files become writable. Hidden files become visible. | RoboCopy /COPYALL |
| Owner SID | Ownership audit reports are incorrect. Required for some backup agents. | RoboCopy /COPYALL with SeBackupPrivilege |
RoboCopy /COPYALL copies Data, Attributes, Timestamps, NTFS ACLs, Owner, and Auditing. However, it requires the running account to have SeBackupPrivilege and SeRestorePrivilege Windows privileges to preserve ownership and full ACL fidelity. Run RoboCopy as a local Administrator or as a service account with these privileges explicitly granted. Running as a standard domain user with /COPYALL will silently skip ACL and owner preservation on files where the running account lacks permission — without any error message.
No single tool is best for all scenarios. The right choice depends on the source environment, target architecture, data volume, and file fidelity requirements. The table below maps source scenarios to recommended tools with key trade-offs.
| Tool | Best For Source | Key Advantage | Key Limitation |
|---|---|---|---|
| Azure Storage Mover | NFS shares on Linux/NAS, SMB shares | Managed Azure service, no infrastructure to maintain, incremental copy support | Newer tool. No Windows NTFS ACL preservation for SMB source. |
| RoboCopy | Windows file servers, DFS shares | Full Windows file fidelity (/COPYALL). Widely understood. Multi-threaded (/MT). | Requires mounted share. Sensitive to network latency on large file counts. |
| Azure File Sync | Windows Server shares of any size | Continuous bidirectional sync — no fixed cutover window. Built for hybrid. | SMB only. Windows Server required. 30-share-per-server limit. |
| AzCopy | Azure Blob, S3, other cloud storage | Very fast parallel transfers. Best for cloud-to-cloud migrations. | Limited Windows ACL preservation. Better suited for Blob than Azure Files from on-premises. |
| Azure Data Box | Very large datasets (100 TB+) with limited bandwidth | Physical appliance eliminates bandwidth constraint for massive migrations. | 7–14 day device round-trip. Last-mile delta sync still needed over network. |
The cutover window is the period between making the source share read-only and confirming all users can access the destination Azure file share. The goal is to make this window as short as possible by completing as much data movement as possible beforehand through incremental delta syncs.
Set Root ACLs on Azure Share Before Any Data Copy
Before running the first RoboCopy job, set the root directory ACLs on the Azure file share to match the source share's root permissions. This is critical — attempting to change root ACLs after a large file migration triggers recursive ACL propagation that can take hours and blocks user access during propagation.
Run Bulk Copy Then Daily Delta Syncs
Run the initial bulk copy without a time constraint. After it completes, run daily delta syncs with RoboCopy /XO to copy only files changed since the previous run. Each delta run should be shorter than the last as the change backlog shrinks. Measure each run's duration — the final delta duration equals your cutover downtime.
Open the Cutover Window: Freeze Source, Run Final Delta
At the scheduled cutover window, make the source share read-only — remove write permissions from all users or redirect DFS-N to a non-existent path. Run the final RoboCopy delta. The duration equals your downtime. If it takes longer than expected, assess whether to continue or defer.
Update DFS-Namespace and Keep Source Read-Only for 48 Hours
Update the DFS-N target from the old on-premises UNC path to the Azure file share UNC path. This switches all users simultaneously without requiring drive remapping. Keep the source share read-only for 48 hours as a rollback option — if a critical issue is found, redirect DFS-N back to source within minutes. Decommission the source only after 48 hours of successful Azure operation.
Validation confirms every aspect of the migration met its requirements before the source is decommissioned. Run through every item on this checklist — do not skip items because they seem obvious. The issues that cause post-migration incidents are almost always the ones that "seemed fine" and were not explicitly tested.
- Connectivity verified from all client types. Azure VMs, on-premises machines, and remote workers can all reach the Azure file share. Test-NetConnection port 445 succeeds from each location.
- Authentication working. Users authenticate via Entra ID Kerberos or AD DS credentials — no prompts for storage account keys or anonymous access dialogs.
- ACLs verified. Spot-check representative folders: read-only users cannot write, write-permitted users can create and modify, users outside the permitted group receive access denied.
- File count parity confirmed. Run robocopy /L /E /LOG:verify.txt between source and destination after the final delta — file counts must match. Any discrepancy must be investigated before decommissioning the source.
- Timestamps preserved. Spot-check creation and modification timestamps on a representative sample. Timestamps should match the source, not the migration date.
- All applications tested. Every application that accessed the old share has been tested against the Azure share. UNC paths, configuration files, and connection strings updated where required.
- Performance baseline passed. Open and save representative large files from the highest-latency user locations. Compare to pre-migration baseline. Escalate if response time exceeds the agreed SLA.
- Soft delete enabled. Soft delete configured with at least a 14-day retention period — protecting against accidental share or file deletion in the first weeks of production.
- Diagnostic logging active. StorageFileLogs flowing to a Log Analytics workspace. Verify by checking for authentication events in the logs within 24 hours of go-live.
- Defender for Storage enabled. Microsoft Defender for Storage configured on the storage account for malware scanning and anomalous access alerting from day one of production use.
Migration Planning Summary: The Non-Negotiables
Frequently Asked Questions
Related FAVRITE Articles
- Designing a Secure File Storage Architecture in Azure
- Azure Files vs Azure NetApp Files: Which Should You Choose?
- Azure Blob Storage Explained: Complete Beginner-to-Advanced Guide
- ADLS Gen2 vs Blob Storage: Choosing the Right Storage for AI Workloads