Using Symbolic links with local storage to store large amount of data in Windows Azure Application Drive

By default the application drive in Windows Azure VM has maximum size limitation of 1GB with any kind of VM type (small, extra-large). So if you have a large or extra-large VM, and running multiple sites configured in your Web Role, you might want to places lots of data within different sites. For example if your application is based on ASP.NET then you can download lots of ASP templates and dynamic content from Azure blog storage, which must reside inside within the application folder(s) cannot be placed at local storage. In this scenario you might see the 1GB size limitation a serious application design issue.

 

As you may know the Application drive consist your package as a drive and due to limit (under ~400MB) of Azure Package the application drive size 1GB seems quite enough. Because of it, the 1GB size of application drive seems logical and enough.

You may also know that every Azure VM comes with Local Storage space which you can use for any of your application use. The size of Local Storage Space per VM type is as below:

Still if you have a scenario in which you need to place large amount of data in your application drive you can use the following alternative solution:

  1. Use Local Storage in your Windows Azure Application
  2. Download necessary data from Azure Blob Storage in specific folders at local storage during role startup
  3. After you download the blob from Azure Storage, Create symbolic link from your application folder to Azure local storage.
  4. Windows Server 2008 supports Symbolic links and this way even when your files are stored in Local Storage, still they appear to be inside the Application drive.
  5. More information about NTFS Symbolic links is located below: