iSCSI vs. NFS – which one is better choice for Instant VM?
Occasionally I come across a discussion about which approach is better to serve backup data to an Instant VM – iSCSI or NFS, or any others?
Those who advocate NFS quite often say that if the target hypervisor supports NFS storage and the vendor has done a good job providing backup data as NFS storage – there is no difference.
From a user perspective, both approaches give the same VM as a result; with the same potential bottlenecks such as CPU, RAM, bandwidth etc.
Citrix, RedHat Virtualisation, KVM, MS Hyper-V, VMware ESXi – all of them can work with NFS storage today.
Why do some vendors stick to NFS while others offer iSCSI?
NFS (Network File System) has been around since 1984 and was originally developed by Sun Microsystems as a distributed file system protocol.
iSCSI (Internet Small Computer Systems Interface) was born in 2003 to provide block-level access to storage devices by carrying SCSI commands over a TCP/IP network.
“Block-level access to storage” is the one we are after, the one we need to serve to an Instant VM (a VM which runs directly from a data set, in our case directly from backup).
“SCSI commands over a TCP/IP network” – yeah, this is exactly what we need!
Anyone developing an “Instant-VM” solution between 1984 and 2003 really had no choice but to employ an NFS protocol.
VMware is probably the best but not the only example.
In other words, the sooner an “Instant-VM” had emerged – the greater the likelihood that this solution would be based on NFS.
So, NFS is not a real advantage, but rather an indication of when the decision had been made.
iSCSI has broader coverage across hypervisors and has in fact been one of the firm standard means to provide storage devices for VMs; reaching the widest variety of systems as possible with the best API support.
Taking the iSCSI approach means less hassle in the long run.
For others, maintaining the NFS approach may mean increasing investment in development with time or switching to iSCSI to stay relevant to targeted environments.
iSCSI protocol remains actively maintained/enhanced/enforced by standards, while NFS went off focus a while ago due to a lack of in-demand features in areas where it shined earlier such as distributed file system.
Some of iSCSI’s clear advantages over NFS and others:
1. It is supported in almost every hypervisor and OS out there today.
2. Mature technology with clear up-to-date standards
3. Works across the network very well, even in relatively high latency/low bandwidth scenarios
4. Great performance.
5. Removes reliance on kernel drivers
6. For a vendor employing iSCSI approach it often means one component to serve all products needs
From a commercial product owner’s perspective, iSCSI approach is more promising, with a brighter future and more possibilities.
iSCSI is better match for the task since iSCSI had been designed to provide block devices from day 1.
NFS had originally been designed to share file/folder content over a network, hence requires some extra tweaks to make it suitable.
It gradually loses focus since NFS had never been considered to primarily serve block storage.
If future iterations of well-known or new hypervisors will drop support for NFS I will not be surprised.