Azure Files - File Shares in the Cloud

There’s a great Azure tool that I don’t see used enough. It’s Azure Files along with Azure Sync. This workload can create a share accessible via SMB that is based in the Azure Cloud. The users for this application are as varied as any user you can think of for a typical network share or mount point. I’ll give a few examples of its usefulness.

I’ll start with Azure Files ability to create a file share in the cloud. This is simple enough in that you create a directory and give it access via either the internet or the LAN. To create the Azure Files share you’ll need to have a storage account. You can create this file share in either the Azure portal, Powershell, or via CLI. Since the transfer protocol is SMB 3.0, it is encrypted and available to either Windows, Linux, or Mac. The connection details differ between the OS’s obviously but the exciting detail is that the drive mapping can be configured to be persistent. To any user, this can be utilized just like a local file share on your LAN. The obvious uses here are file storage, file transfer between OS’s, sharing data between users with a central access point, or even use as a backup data target. Consider the example of a lowly SMB Database administrator who just wants to offsite their flat file exports. It’s now possible to do that easily by using the Azure Files share as a backup target. The backup data is now written offsite, to Azure Cloud storage, as it’s written to the share.

Which brings us to Azure File Sync. This wonderful feature allows you to leverage the benefits of on-premise storage and utilize the redundancy and accessibility of Cloud storage. The way this works is that the admin will configure an Azure Files share as detailed above on a Windows server. You then install the Azure File Sync agent on the server. This allows the server to host data within the share locally. You heard this right! The data is shared locally. It is also synced with the Azure Cloud share. There are now two copies, one on-premise and the other in the Azure Cloud storage. The server is now an endpoint for the Azure Files share. You also have the option of using Cloud Tiering with this share. This allows the server to locally retain a subset of frequently accessed files while creating pointer records to the files stored in the cloud, if those files in the cloud are accessed locally on the endpoint server. The server will then download a copy to local disk and share it from that location. Administrators also have the option of creating a sync group of servers. This means that you can have centralized storage of an Azure Files share in the cloud that is accessed and synced to many different servers locally sharing the stored data. The Azure replication options available with this are LRS, ZRS, GRS, and RA-GRS. Another benefit of this configuration is that if your server encounters a problem causing it to be offline you can then create another server on-premise, install Azure Files sync, join it to the sync group, and start accessing your share immediately.

Performance targets for Azure Files are impressive. We’ve already discussed the replication options available. Azure files have a max share size of 5TB’s currently. The max size of a file in the share is 1TB. Max IOPS for Premium file shares is 5120 IOPS baseline with 15,360 IOPS with a burst. Access control lists are supported. Azure Files will store up to 200 share snapshots for each share. This allows for using the Windows “Previous Versions” backup and restore option within the file share for any files corrupted or accidentally deleted. This can be utilized at the file share or directory level. Linux can take advantage of these features using Azure CLI 2.0 for Azure Files.

The benefits of this technology are plain. This would allow users at geographically separated sites to utilize the same shared data. This would satisfy Disaster Recovery offsite requirements for intellectual property or user data. I’ve mentioned how this could be used as a backup target for various backup operations. Azure Files could be used as a data migration tool for a server move. This is a very powerful tool with universal use thanks to its ubiquitous transfer protocol. It’s an exciting development regarding data storage within Azure. Its tight integration with windows and universal connectivity with Linux and Mac increases its appeal and utility. I can see this workload as a solution to many existing enterprise opportunities.