Introduction
Many words were said about NFS (Network File System), but what exactly NFS can give us? In general, NFS used as the ISO library or just simple network file share with easy access from any Windows or Linux based machine. However, starts from NFS 3.0 protocol can give us the good performance and can be as the shared storage for ESXi or any Linux based Hypervisors. In this article I will create the NFS share on the Windows Server 2016 and then mount NFS share on the ESXi 6.5 and will create the VM on it.
Creating NFS File Share on Windows 2016
First of all, we need to install the Server Roles on the Windows-based server, such as File Server, Fileserver Resource Monitor and NFS server.
Then we can create the NFS share in Server Manager’s Shares tab. I decided to create “Advanced NFS Share” to specify more properties for share.
Select Server and specify the disk for NFS share
In this window, we should specify the share name.
In this step, we need to specify the Authentication method for our share. You are free to use any of them. In my case, I have created simple NFS share with no server authentication and unmapped user access (Note: to mount the NFS share on the Linux-based machine you must use “Unmapped user access by UID/GID”).
Click “Add” to specify the Share Permissions. You can either specify the Host IP with Language encoding and read/write permissions or allow the access for each machine in network.
In next 3 steps you can specify the local Windows Permissions, Management Properties and Quota for NFS share by your requirements and needs.
Click “Create” to complete the Wizard and let’s mount this NFS Share in our ESXi 6.5 Hypervisor
Mounting NFS to ESXi and creating the VM
In ESXi console, navigate to Storage tab and click “Add datastore”
Then select “Mount NFS datastore”
Specify the Name for Datastore, IP/FQDN/Server Name of NFS server and actual name of the share.
Disclaimer:
Windows Server 2016 supports all NFS protocols including NFS 4.1. I have tried to add my share as NFS 4.1 share and it was successfully mounted, but while creating the VM I have received an error that ESXi can’t create vmx files on it.
The quick research showed that some people encountered the same issue while mounting NFS share from Linux-based machine as well – https://communities.vmware.com/thread/553432
First thought I had that it could be an issue with web-based GUI on Standalone ESXi 6.5, so I deployed vCenter and tried one more time. No luck.
Then I have tried to create the VM on the local datastore and migrate it over to the NFS share. Once again, the same issue.
I’ve thought that the issue can be on Microsoft level. So, I deployed Ubuntu 16.04 LTS and install the nfs-kernel-server, created share folder called nfs at /var/ directory and started the sharing.
I mounted Linux-based NFS share on ESXi 6.5 and finally I was able to mount NFS share via protocol NFS4.1 and create the VM on top of the NFSv4 share.
So, it is looks like the ESXi can work with Microsoft NFS shared folder only via NFSv3 protocol.
Now in Datastores tab we can see our NFS share. In the next steps, we will create the Test VM on this NFS share.
Click “Create/Register VM” in Virtual Machine tab and choose “Create a new Virtual Machine” option.
Specify the name for VM and Guest OS.
Select our newly mounted NFS datastore and click “Next”.
Specify the settings for your VM.
We have the VM which is located on NFS datastore. We can mount the same NFS datastore on other ESXi Server and register the same VM. Moreover, the NFS datastore can be used as the shared storage on multiple ESXi hosts.
Conclusion
As a result, you have the NFS shared storage-based on Microsoft Windows Server 2016 for your VMs in ESXi. Speaking of availability, you can achieve the High Availability with StarWind VSAN and Microsoft Failover Cluster for your NFS server and improve the availability for your data inside the NFS share.