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.
What is Azure File Storage?
Azure File Storage is one of the four services that an Azure storage account can offer:
- Block blobs: File data, including Azure Backup.
- Table & queues: NoSQL storage for huge amounts of unstructured data.
- Page blobs and disks: Optimized for random read/writes, and how Azure virtual machine VHDs are stored.
- File storage: Persistent storage using a file share.
Each of these services are delivered by a storage account. In the case of File Storage, you will:
- Create a storage account
- Use the storage account name and an access key to create a file share
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:
- Storage Account: A storage account will host the Azure Files service.
- Share: You create a share, which is very similar in concept to a share you would create on a file server, even if it’s intended for a smaller set of functions. Note that throughput for a single share is limited to 60 MB per second, and the maximum storage capacity of a single share is 5 TB.
- Directory: You can create a hierarchy of directories or folders to logically store files.
- File: This is the data you store and share. A single file may be up to 1 TB in size. You can have any number of files in a single share, but remember that the maximum capacity of the share is 5 TB.
Note: This Microsoft page is the source of these supported maximum metrics.
What Can You Use Azure Files For?
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:
- There is reduced complexity and management overhead.
- The cost of Azure File Storage is much lower than virtual machines.
Migrating Legacy Services to Azure
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.
Share Data between On-Premises and the Cloud
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.
Integrate Cloud and Legacy Applications
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.
Simplify Hosting High Availability
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.
A File Server for End User Files?
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.