iSCSI vs NFS | What’s the Difference and How to Configure
Both iSCSI and NFS can be used in virtual environments, but which is the right choice for you? This article introduces them respectively to help you make the choice.
Case: VM storage NFS vs iSCSI?
It was recently postulated to me that I should explore using NFS instead of iSCSI for space for my VM disks as it would result in better performance. I have not yet been successful at finding conclusive results in either direction on this matter. So for the various purposes, including hosting VM disks, iSCSI vs NFS which one have better performance?
- Question from www.reddit.com
Every day you work you generate large amounts of data. They need to be securely stored, backed up, and managed so that they are available when you need them. This is why various network storage and sharing systems have emerged, such as remote storage solutions NAS storage, iSCSI and NFS.
Both iSCSI and NFS can be used in virtual environments, and how to choose between them is always a hot topic. In fact, it depends largely on the type of data being used.
This article will introduce what iSCSI and NFS are respectively, compare iSCSI vs NFS speed and other performance, and steps of how to configure iSCSI in VMware ESXi 6.7 as an example.
What is iSCSI
As SCSI is a data access protocol, iSCSI (Internet Small Computer System Interface) is also a transport layer protocol that defines how data is transferred between host systems and storage devices.
iSCSI enables block-level data transfer between the iSCSI initiator on server and the iSCSI target on storage device by carrying SCSI commands over the TCP/IP network. It can be used to transmit data over local area networks (LANs), wide area networks (WANs), or the Internet, and can enable location-independent data storage and retrieval.
The iSCSI protocol encapsulates SCSI commands and assembles the data in packets for the TCP/IP layer. Packets are sent from an iSCSI initiator to an iSCSI storage target using a point-to-point connection. Upon arrival, the iSCSI protocol disassembles the packets, separating the SCSI commands so the operating system will see the storage as if it was a locally connected SCSI device that can be formatted as usual.
iSCSI also supports high-level encryption of the data packets that are been transferred and decryption on the arrival of data packets at the target side. In a virtualized environment, the storage pool is accessible to all the hosts within the cluster and the cluster nodes communicate with the storage pool over the network through the use of the iSCSI protocol. Therefore, due to the way server virtualization makes use of storage pools, iSCSI is popular in small to midsize businesses.
What is NFS
NFS (Network File System) is a distributed file system protocol allows a user on a client computer to access files over a network in the same way they would access a local storage file. You can access remote data from any remote device that links to the network, all people within the network will also have access to the same files. And because it is an open standard, anyone can implement the protocol.
The way how NFS works varies based on what version you use. There are 3 versions of NFS for use, and each having different standards for how it operates.
- NFS version 2 (NFSv2): the oldest and the most widely supported format. It operates with the User Datagram Protocol or UDP through an IP network, makes it easier for connections to work in less time and more stable.
- NFS version 3 (NFSv3): supports asynchronous writes, which allows the server to dictate the right policies for synchronizing data and handles errors more effectively. NFSv3 can handle 64-bit file sizes, meaning a user can access about 2 GB of file content on average.
- NFS version 4 (NFSv4): the most recent version of the NFS protocol that can work on the internet and through firewalls, or run in more places. NFSv4 provide high performance enhancements and prominent file security.
iSCSI vs NFS: Key differences
After understanding what NFS and iSCSI are respectively, to make the right choice between them, you may also want to make a comparison, such as iSCSI vs NFS speed and other performance, and how about VM storage NFS vs iSCSI. Here I will show you a chart of their key differences.
iSCSI | NFS |
sharing the data between single-channel architecture(client-server). | used to share data among multiple client machines concurrently. |
for Windows OS. | for Linux or Windows OS. |
block-level sharing. | file-level sharing. |
guest OS takes care of File System. | NFS server takes care of File System. |
enables a single client for each volume on the block level. | enables files to be shared among multiple servers. |
the File system is placed at the client level, so both data and metadata can be read. | the File system is placed at the server level. |
need to configure hosts, storage options, VLANS, etc. | it is easy for client or user to implement it as it is a shared protocol. |
As for iSCSI vs NFS speed, it depends on various factors. In general, NIC teams makes iSCSI faster performance than NFS, however, you still need to consider the storage array vendor. So as VM storage NFS vs iSCSI, what are the differences between them in VMware? You can refer to the following chart.
How to configure iSCSI in VMware ESXi 6.7
With the software-based iSCSI implementation, you can use standard NICs to connect your host to a remote iSCSI target on the IP network. The software iSCSI adapter that is built into ESXi communicates with the physical NICs through the network stack. Next, I will show you the steps of how to configure iSCSI in VMware ESXi 6.7 as an example.
Before you can use the software iSCSI adapter, you must set up networking, activate the adapter, and configure parameters such as CHAP. For details you can refer to the official document: Best Practices for Configuring Networking with Software iSCSI
1. Access VMware ESXi web client, and navigate to Storage > Adapters.
2. Click Software iSCSI to open a Configure iSCSI wizard.
3. Change iSCSI enable to Enabled. And then add the IP address of your iSCSI storage and the connection port in Dynamic targets. ESXi will scan all iSCSI targets on the storage and display them in the Static Targets list.
Note: by default, the TCP Port 3260 is used for the iSCSI traffic.
4. (Optional) Configure the parameters and components that you want to change, for example, the CHAP authentication.
5. Click Save configuration. Now you can find the iSCSI software adapter HBA in Adapters tab.
Summary
Both iSCSI and NFS can be used in virtual environments. But VM storage NFS vs iSCSI, how to choose from them? This article introduced what iSCSI and NFS are respectively, and compared iSCSI vs NFS speed to help you make a right choice.
While NFS is more stable and easier to configure, iSCSI is of better performance. If performance is important to you, you can try iSCSI, and add NAS to VMware ESXi if you need. This article showed the brief steps of how to configure iSCSI in VMware ESXi 6.7 as an example.