VMFS vs NFS: A Comprehensive Guide to VMware Storage Solutions

Introduction
Choosing the right storage protocol for your VMware infrastructure is crucial for optimal performance, scalability, and management efficiency. Two primary storage solutions dominate the VMware vSphere ecosystem: VMFS (Virtual Machine File System) and NFS (Network File System). This comprehensive guide explores both technologies, their differences, use cases, and includes a practical lab tutorial to help you implement both solutions.
This guide combines theoretical knowledge with practical, tested configurations.
What is VMFS?
VMFS (Virtual Machine File System) is VMware’s proprietary clustered file system specifically designed for storing virtual machine files. Developed and optimized by VMware, VMFS provides high-performance storage with features tailored for virtualized environments.
Key Characteristics of VMFS
- Block-level storage protocol: Works with FC, FCoE, and iSCSI
- Clustered file system: Multiple ESXi hosts can access simultaneously
- VMDK file format: Stores virtual disks as files
- Native locking mechanisms: Prevents data corruption in multi-host environments
- Current version: VMFS-6 (as of vSphere 6.5+)
VMFS Technical Specifications
- Maximum datastore size: 64 TB
- Maximum file size: 62 TB
- Block size: 1 MB (unified in VMFS-6)
- Supports: Storage vMotion, snapshots, thin provisioning, array-based replication
What is NFS?
NFS (Network File System) is a distributed file system protocol that allows ESXi hosts to mount remote file systems over a network. Originally developed by Sun Microsystems, NFS has become a standard protocol supported across multiple platforms.
Key Characteristics of NFS
- File-level storage protocol: Operates over TCP/IP networks
- Industry-standard protocol: Widely supported across vendors
- Simplified management: File-level operations, easier provisioning
- Version support: NFS v3 and NFS v4.1 in VMware environments
- No formatting required: Direct mounting of shared folders
NFS Technical Specifications
- Maximum datastore size: Depends on underlying storage (typically 64 TB for VMware)
- Protocol versions: NFSv3 (UDP/TCP) and NFSv4.1 (TCP only)
- Authentication: Kerberos support in NFSv4.1
- Features: Storage vMotion, snapshots, thin provisioning, cloning
VMFS vs NFS: Detailed Comparison
| Feature | VMFS | NFS |
|---|---|---|
| Protocol Type | Block-level | File-level |
| Storage Types | FC, FCoE, iSCSI | NAS/File servers |
| Setup Complexity | Moderate (requires formatting) | Simple (mount and use) |
| Performance | Generally higher for random I/O | Efficient for sequential I/O |
| Snapshots | Array-based or VM-level | Simpler array-based snapshots |
| Over-provisioning | More complex | Easier to implement |
| Multipathing | Built-in (MPIO) | Limited options |
| Deduplication | Depends on array | Often native at file level |
| Use Cases | High-performance databases, VDI | General workloads, development |
When to Use VMFS vs NFS
Choose VMFS When:
- Performance is critical: High-transaction databases, latency-sensitive applications
- Using SAN infrastructure: Existing FC or iSCSI investments
- Advanced features needed: VAAI (vStorage APIs for Array Integration) offloading
- Mixed workloads: Running both large and small VMs with varied I/O patterns
- RDM requirements: Need raw device mapping for specific applications
Choose NFS When:
- Simplicity matters: Quick provisioning and easier management
- Using NAS infrastructure: Leveraging existing file-server investments
- Storage efficiency: Need easier thin provisioning and cloning
- Development environments: Non-production or test/dev workloads
- Cost considerations: NAS solutions often more cost-effective for smaller deployments
Click here to download VMware ESXi 8.0 iso
Lab Tutorial: Configuring VMFS and NFS Datastores
Lab Environment Overview
- ESXi Host: 192.168.91.129
- vCenter Server: 192.168.91.130
- Windows Server 2022 (NFS Server): 192.168.91.131
- Domain: vmorecloud.com
Note: I’ve corrected the Windows Server IP to 192.168.91.131 to avoid conflicts with the ESXi host IP.
Prerequisites
- ESXi 7.0 or later installed and configured
- vCenter Server deployed and accessible
- Windows Server 2022 with administrative access
- Network connectivity between all components
- Sufficient storage space on ESXi host for VMFS
- Shared folder available on Windows Server for NFS
Part 1: Creating a VMFS Datastore
Step 1: Access vCenter Web Client
- Open your web browser and navigate to
https://192.168.91.130 - Log in with your administrator credentials
- Navigate to Hosts and Clusters view
Step 2: Add Storage Device (if using local disk)
- Select your ESXi host (192.168.91.129)
- Click the Configure tab
- Under Storage, select Storage Devices
- Verify available disks are visible
Step 3: Create VMFS Datastore
- Select your ESXi host
- Click the Configure tab
- Under Storage, select Datastores
- Click New Datastore button
- Select VMFS as the datastore type
- Click Next
Step 4: Configure VMFS Datastore
- Name and device selection:
- Name:
VMFS-Datastore-01 - Select an available disk device
- Click Next
- Name:
- VMFS version:
- Select VMFS 6 (recommended)
- Click Next
- Partition configuration:
- Choose Use full disk (for lab purposes)
- Or customize partition size if needed
- Click Next
- Review configuration and click Finish
Step 5: Verify VMFS Datastore
- Navigate to Storage view
- Locate your new
VMFS-Datastore-01 - Verify capacity and free space
- Check datastore is accessible from ESXi host
Expected Result: You now have a functioning VMFS datastore capable of hosting virtual machines.
Part 2: Configuring NFS Storage
Step 1: Configure Windows Server 2022 as NFS Server
Install NFS Server Feature
- Log in to Windows Server 2022 (192.168.91.131)
- Open Server Manager
- Click Manage → Add Roles and Features
- Click Next through wizard until Server Roles
- Expand File and Storage Services → File and iSCSI Services
- Check Server for NFS
- Click Next and Install
Create and Configure NFS Share
- Open File Explorer
- Create a new folder:
C:\NFSShare - Right-click the folder → Properties
- Go to NFS Sharing tab
- Click Manage NFS Sharing
- Check Share this folder
- Configure share settings:
- Share name:
NFSDatastore - Encoding: UTF-8
- Click Permissions
- Share name:
Configure NFS Permissions
- In Permissions dialog, click Add
- Configure access:
- Host:
192.168.91.129(ESXi host IP) - Type of access: Read-Write
- Allow root access: Checked
- UID: 0 (root)
- GID: 0 (root)
- Host:
- Click OK to save
- Click OK to close NFS Sharing dialog
Configure Windows Firewall
- Open Windows Defender Firewall with Advanced Security
- Click Inbound Rules → New Rule
- Create rule for NFS:
- Rule Type: Port
- Protocol: TCP
- Port: 2049
- Action: Allow the connection
- Profile: All
- Name: NFS Server
- Repeat for UDP port 2049
- Also allow ports 111, 1039, 1047, 1048 (RPC services)
Step 2: Mount NFS Datastore on ESXi
Enable NFS Client on ESXi
- SSH into ESXi host (192.168.91.129) or use ESXi Shell
- Verify NFS client is enabled:
esxcli system module list | grep nfs
Mount NFS via vCenter
- Log in to vCenter (https://192.168.91.130)
- Navigate to Hosts and Clusters
- Select ESXi host (192.168.91.129)
- Click Configure tab
- Under Storage, select Datastores
- Click New Datastore
Step 3: Configure NFS Datastore
- Select datastore type:
- Choose NFS
- Click Next
- Select NFS version:
- Choose NFS 3 (better compatibility with Windows NFS)
- Click Next
- Configure NFS settings:
- Name:
NFS-Datastore-01 - NFS Server:
192.168.91.131 - Folder:
/NFSDatastore - Click Next
- Name:
- Select hosts to mount datastore:
- Select your ESXi host (192.168.91.129)
- Click Next
- Review configuration and click Finish
Step 4: Verify NFS Datastore
- Navigate to Storage view in vCenter
- Locate
NFS-Datastore-01 - Verify:
- Status shows Normal
- Capacity is displayed correctly
- Type shows NFS
- Test by browsing datastore files
Expected Result: You now have a functioning NFS datastore mounted from your Windows Server.
Conclusion
Both VMFS and NFS remain viable, production-ready storage solutions for VMware vSphere environments. Your choice depends on specific requirements:
- Choose VMFS for performance-critical workloads, existing SAN infrastructure, and when advanced features like VAAI are needed
- Choose NFS for simplified management, cost-effective storage, and environments where file-level operations provide advantages
As virtualization technologies evolve, understanding these foundational storage protocols remains essential for VMware administrators. Whether you’re building a new infrastructure or optimizing an existing one, VMFS and NFS provide reliable, scalable storage options.
- Design


