Azure File storage offers file shares in the Azure Cloud using standard SAMBA protocol (SMB 3.0). FileCloud running on Azure VMs can mount the file shares created on Azure Files storage and use it as a main storage path for FileCloud. You can also use the same fileshare to store the MongoDB data files. Azure Files storage is built on the same technology as Blob, Table, and Queue storage. When you create the storage account in Azure portal you can choose what type of redundancy you would like to have (Local or geo-redundancy). By storing both files and the database db files in Azure Files Storage you will get the same scalability, durability, reliability and geo-redundancy of Azure storage infrastructure. One can also easily scale FileCloud by running multiple app nodes while pointing to the same Azure Files Storage location for storing files and database data files.
We have tested FileCloud with Azure Files storage backend using few million files and the setup has worked great. This configuration gives the scalability and data redundancy without any complicated setup. If you have any questions please feel free to contact us at firstname.lastname@example.org.
Step by Step Instructions to Integrate FileCloud with Azure File Storage
- Create a storage account in Azure Portal and choose the storage account type (depending on your redundancy requirements). In this exercise, we have chosen a locally redundant storage account type. We recommend to choose the location same as where FileCloud VM is located.
2. Create a File Share under Storage Account as shown below. One can also choose the storage quota. Maximum storage for a File Share is 5120 GB.
3. Create a local user in FileCloud VM with the same name as the storage account name that you have created in step 1. For password, please use the access key of Azure Files Storage.
4. Make the local user created in step 3 as part of Administrators group.
5. Run the Apache and MongoDB service using the local user account created in the previous step.
Note: We do this step for Apache and MongoDB to have the read, write access permissions to the file shares we created on Azure storage. By using the storage account name as a local user name and access key as the password, this local user will get complete access to the file shares.
6. Copy the file share path of file share created in step 2 from the Azure Portal ("\\filecloudazurefiles.file.core.windows.net\fileclouddata")
7. Set the share path("\\filecloudazurefiles.file.core.windows.net\fileclouddata") as Storage Path in Managed Storage Settings.
8. Open the C:\xampp\mongodb\bin\mongodb.conf file. Edit the dbpath to point to the file share path you created in Azure Files storage.
Note: Before editing the mongodb.conf file make sure you have stopped the database and the webserver from the FileCloud Control Panel.
9. Restart the Webserver and the Database from the FileCloud Control Panel. Now all your files and the database data files will be stored in Azure Files Storage.