Microsoft recently announced the general availability of Azure File Storage. In this post I’ll explain what this service is, what you’ll use File Storage (also referred to as Azure Files) for, and what you should not use the service for.
Azure File Storage is one of the four services that an Azure storage account can offer:
Each of these services are delivered by a storage account. In the case of File Storage, you will:
This file share uses the same SMB protocol that is used by Windows for file shares. Azure Files supports SMB 2.1 for legacy applications and operating systems, and SMB 3.0 for optimum performance for Windows 8 and Windows Server 2012 or later. Note that the preview of Azure Files did not offer SMB 3.0 support.
The components of Azure Files should be fairly familiar, even to those that are new to Azure:
Note: This Microsoft page is the source of these supported maximum metrics.
More C-level executives are deciding every day that they want to become more agile and embrace the benefits of the cloud, so they tell the operations and engineering people to move machines to clouds like Azure. For lots of reasons (see SLA for virtual machines for an important one), you can’t just lift-and-shift a simple file server and you can’t deploy a ‘simple’ file server cluster in Azure. Azure File Storage offers an alternative to those legacy file servers:
One of my pet-peeves as a sys admin was when developers insisted on storing application data in file shares instead of a database. These are the sort of applications that become critical to the business and live on for decades. If you need to move such application to Azure, then you can replace the file server part of the architecture with Azure File Storage.
This scenario has all sorts of interesting possibilities. Maybe you have a web application hosted in Azure that can share data with on-premises servers for batch consumption? Or maybe your backup server (that doesn’t support Azure Backup or Block Blobs) can storage data on SMB 3.0 shares in Azure? Note that this sort of solution will work best with ExpressRoute where the SLA will offer uptime and performance guarantees.
Your organization might be developing born-in-the-cloud applications now, but 10 years ago, things were very different. The business doesn’t care about developer practices, they want services to be integrated. You can do this by using REST APIs with Azure File Storage for modern services, and SMB 3.0 for legacy services.
Applications such as SQL Server and IIS can leverage SMB 3.0 to store configuration and data in Azure Files; this solution offers a simple to deploy (a couple of PowerShell cmdlets) file share that offers the HA that a virtual machine-based complex cluster would have otherwise offered.
I guarantee that most people who read about Azure File Storage for the first time will think that they’ve found a new alternative to machine-based file servers for sharing end user files. And a large percentage of those readers will stop before they read what comes next.
Azure File Storage, as it is now, is not to be used for end user file sharing.
That’s it; it’s that simple. The message is clear. Just don’t do it. If you listen to that advice you’ll stay out of trouble, you won’t get fired, you won’t get sued for doing something stupid — OK, there’s lots of other stupid things you might do to get in trouble, but you’ll have avoided this bear trap.