What’s the Difference Between NFS and iSCSI?

Network File System (NFS) and Internet Small Computer System Interface (iSCSI) are data sharing protocols. Sharing data effectively over a network is essential for any organization’s day-to-day operations. NFS enables remote data sharing at the file level. A user (or client device) can use NFS to connect to a network server and access files on the server. Multiple client machines (users) can share the same file without data conflicts. Similarly, iSCSI also allows remote data sharing but at the block level. It enables data exchange between multiple client machines and a block storage device (or block server), which is accessed similarly to a local disk drive.

How they work: NFS vs. iSCSI

Both Network File System (NFS) and Internet Small Computer System Interface (iSCSI) are used to share data in a client-server relationship across a network or virtual network. These have been popular protocols in remote enterprise communications.

How NFS works

The NFS protocol was designed as a client-server file sharing protocol for Unix systems in the 1980s. It remains active through various updates, most recently NFS version 4. It’s a popular protocol for a distributed file system.

The NFS protocol works as follows:

  1. The client requests access to a resource on a remote NFS server
  2. The server mounts the resource remotely on the client.
  3. NFS data store appears and acts like a local resource on the client
  4. Read resources are stored in the file system cache on the client for fast access

Access to the resource—such as a file or directory—is shared through a virtual connection. It uses remote procedure calls (RPCs) as the underlying communication technology. 

How iSCSI works

The original Small Computer System Interface (SCSI) protocol was designed for data sharing over a local area network (LAN). The iSCSI protocol was developed in the late 1990s to allow the SCSI protocol over a TCP/IP network.

It’s a transport layer protocol designed to provide seamless access to storage devices across a network. The name iSCSI was used to indicate that the original protocol was modified and encapsulates SCSI commands in TCP/IP packets. 

The iSCI architecture is client-server. The client is known as an initiator, and a server is known as an iSCSI target. The block storage device is known as a logical unit, and an iSCSI target may have many logical units. Each has a designated logical unit number (LUN).

The iSCI protocol works as follows:

  1. The initiator connects to a target using the Challenge-Handshake Authentication Protocol (CHAP).
  2. After connection, the storage device appears as a local disk drive on the client.

Key differences: NFS vs. iSCSI

While they’re both data sharing protocols, Network File System (NFS) and Internet Small Computer System Interface (iSCSI) operate quite differently. We outline some of their distinct features next.

Performance

Because the iSCSI protocol works at the block level, it can generally provide higher performance than NFS by manipulating the remote disk directly.

NFS adds a layer of file system abstraction, with manipulation on a file-by-file basis.

Conflict resolution

When multiple clients are trying to access or write to the same file, a conflict resolution technique or file-locking technique is required.

NFS has built-in conflict resolution for the distributed file system

iSCSI doesn’t have built-in conflict resolution. In this case, another software must be layered over the top to prevent unstable operations.

Ease of configuration

While NFS is built for Unix and is commonly available out-of-the-box in Linux distributions, it can also be used on other operating systems by installing packages. For Linux clients and servers, the setup and configuration are relatively fast and straightforward.

iSCSI is available on a range of different operating systems. It may come built-in on certain storage devices, but it always requires installation of iSCSI initiator software on client machines. 

When to use: NFS vs. iSCSI

Network File System (NFS) remains a popular choice of sharing protocol in local area networks (LANs) that run Unix machines. It’s also useful where a remote network-attached storage (NAS) is a Unix machine. For more information, read about NAS.

NFS is available out of the box on most Linux distributions, so it’s considered the default file sharing protocol on these systems. Though, it can be installed on other operating systems. NFS is typically found in large organizational environments that require collaborative work, such as enterprise, education, and government.

Internet Small Computer System Interface (iSCSI) has been a common protocol in enterprise private-networked environments where multiple on-premises or remote storage arrays require client access. This protocol is a direct competitor to fiber-to-the-data-center network configurations.

Both NFS and iSCSI can be integrated into hybrid cloud environments, as many organizations reassess their storage needs and configurations. In cloud storage architectures, the details of network protocol implementations are abstracted away in favor of managed access and clean interfaces. While cloud storage may be NFS or iSCSI underneath, this isn’t exposed to the user, who is offered a range of communication types.

Summary of differences: NFS vs. iSCSI

 

NFS

iSCSI

What is it?

Network File System.

Internet Small Computer System Interface.

Level of operation

Application layer protocol.

Transport layer protocol.

Best suited for

Linux-based network architectures.

Private storage area network architectures.

Shared resources

Files and directories.

I/O devices, typically storage devices.

Access level

File-based.

Block-based.

File locking

Built-in and handled by the client.

Not built-in and must be handled by other systems.

Operates through

RPC over TCP or UDP.

SCSI over TCP/IP.

Ease of configuration

Relatively fast and straightforward in Linux environments.

Can take longer as all clients require iSCSI initiator software installation.

How AWS can help with your NFS and iSCSI requirements?

Amazon FSx makes it easy to integrate or migrate on-premises or owned file sharing storage infrastructure to the cloud. You can launch, run, and scale feature-rich, high-performance file systems in the cloud easily and cost-effectively.

As a fully managed service, Amazon FSx has the following benefits:

  • Uses the latest Amazon Web Services (AWS) compute, networking, and disk technologies to provide high performance at a lower cost.
  • Handles hardware provisioning, patching, and backups. This frees you up to focus on your applications, end users, and business.
  • Supports four widely used file systems: NetApp ONTAP, OpenZFS, Windows File Server, and Lustre. 

Its reliability, security, scalability, and broad capabilities manage a wide range of workloads. For example, Amazon FSx for NetApp ONTAP lets you make your data available to a comprehensive set of workloads and users through industry-standard data protocols. These include Network File System (NFS), Server Message Block (SMB), and Internet Small Computer System Interface (iSCSI).

Get started with networked storage and file sharing on AWS by creating an account today.

Next Steps with AWS

Start building with NFS

Learn how to get started with NFS on AWS

Learn more 
Start building with iSCSI

Learn how to get started with iSCSI on AWS

Learn more