TL/DR: If this is possible, it's hard. I was unable to achieve the goal in reasonable time.
When we work with Azure Data Lake Storage Gen2 (ADLS), it feels pretty much like working with any other kind of file system, it’s just online. We have directories and files. We can organize them into a hierarchy of subdirectories. We can remove whole directories, including their content, in a single operation.
It would be a bit of a stretch to say that it’s somewhat similar to services like OneDrive, Google Drive, Dropbox, or even Azure Files. ADLS is not intended to be a general-purpose online drive. It is a specialized kind of storage optimized to store large amounts of data and works best with large files.
But what if we could mount it like a normal drive anyway? That would bring some convenience for developers. We could easily navigate through folders. We could open files in our favorite programs, even if the file would have to be downloaded under the hood before it’s actually opened.
So, can we mount ADLS Gen2 in Windows just like a local (or a network) drive?
What do the docs say?
The most promising document I found is the one that explains How to Mount Azure Blob Storage using NFS 3.0 protocol. This could work, as ADLS Gen2 is just a feature set on a Storage Account. Moreover, Windows can mount NFS 3.0 drives if we enable it.
But the documentation also focuses on Linux clients, and does not go straight to the point, so I’ll try to document my attempt here.
How I tried to mount ADLS Gen2 as a drive in Windows
The first issue, and the biggest disappointment for me, is that NFS access needs to be enabled when we create a Storage Account. There is no way to enable it later:
In practice, this means I will not be able to access Data Lake Storage instances I work with daily. I could therefore stop here, but for education, let’s see what would happen if I did enable NFS access.
I therefore created a new storage account, and this time enabled NFS access. When I did that, it revealed another problem. If we enable NFS, we can no longer access Data Lake Storage from the public internet. We need to place the storage account in a Virtual Network. This is where it starts to look like we won’t be able to access it from a typical developer machine.
But let’s take it further, just as an exercise. What if the setup where our Windows machine is indeed in the same Virtual Network as storage works for us? Maybe we already use Virtual Network Gateway and have a VPN connection that gives us secure acceess to the storage. Would it be easy to mount ADLS Gen2 as a drive in such situation?
To test it, I created a Windows-based VM in the same Virtual Network as storage. I enabled the NFS feature and rebooted:
And then I tried to mount the drive. I found no instruction for Windows on how to do it, so I was mostly guessing the correct URL based on conventions used by Azure Files:
After several attempts from the UI and console (
net use z: \\xxx.blob.core.windows.net\...) which didn’t work, I decided to give up. It was not fun anymore.
It’s definitely not as easy as with File Shares. I wasn’t able to do it in reasonable time. Even if this can be done, it wouldn’t be practical in the setup I use. When I’m writing this, there’s no documentation on how this could be done in Windows.
Sorry to disappoint! But if you are determined enough, and you succeed with mounting ADLS as Windows drive, don’t forget to let us know in the comments!