Getty Images

NFS vs. CIFS vs. SMB: What are the differences?

There are stark differences among file sharing protocols NFS, CIFS and SMB. Compare access, application deployment, configuration and security, among other key features.

NFS and CIFS are the most common file systems used in NAS. These file-sharing protocols enable a client system to view and access files and directories stored on a remote server or a PC.

They provide a similar experience to users, who consume file data as though it were local storage. The NFS and CIFS protocols are similarly designed on client-server programming, with some significant differences.

Microsoft created CIFS as an open source dialect of the SMB protocol for Windows shops. SMB is widely supported on most enterprise storage systems. CIFS and SMB are interchangeable, although CIFS implementations of SMB are rarely used in modern storage systems.

What is NFS?

NFS is a distributed file system that makes it easier for users to access files on remote servers and share them with other users. Users access and consume files on remote client machines as local storage.

The NFS client-server software invokes daemons to perform functional tasks, including checking the client status and verifying user permissions. NFS uses a centralized file system to reduce system overhead. NFS version 4 is the most recent iteration.

Among the benefits of NFS are the following:

  • Configuration and setup based on mature IP infrastructure.
  • Centralized management.
  • Ease of use.
  • Low-cost implementation.
  • Support of Linux and Windows.

Drawbacks of NFS include the following:

  • Network performance can suffer under high demand.
  • NFS does not provide requirement sessions.
  • Setting up NFS caching and file locking is complex.
  • File sharing depends on the Remote Procedure Call (RPC) protocol, a known attack surface for IP spoofing.

Subsequent versions of NFS added stronger security features. NFSv4 mandates the Generic Security Services (GSS) API to govern security in client-server interactions. The GSS framework supports authentication, integrity and privacy protections as mandates. Additionally, NFSv4 supports Kerberos, Low Infrastructure Public Key Mechanism and Simple Public Key Mechanism security enforcement.

What is CIFS?

CIFS connects Windows clients to servers but extends sharing beyond files to include printers and other peripherals.

CIFS provides clients with managed, concurrent access to files and directories hosted on server systems. It also facilitates access to print queues and interprocess communication services over a network.

The strengths of CIFS include the following:

  • Microsoft's massive installed base.
  • Strong native security features for file sharing.
  • Updates when files are modified across the network.

A big downside to CIFS is that modern storage systems rarely support it.

Microsoft stopped using the term CIFS in favor of SMB version 1, starting with implementations in Windows 2000.

NFS will likely continue to be used primarily in Linux environments, while SMB will remain the dominant choice for Windows.

Compare NFS vs. CIFS/SMB

Access and sharing

The CIFS domain lets client machines access files and share network peripherals, such as printers.

NFS restricts its domain to file sharing.

Application deployment

NFS often deploys mission-critical enterprise applications, such as Oracle databases and VMware virtualized infrastructure. NFS enables client machines to nondisruptively reconnect following reboots due to server maintenance or failover.

CIFS/SMB initially focused on shared file and print services and applications used in small LANs. Microsoft did not add support for transparent reconnects until the third version of the SMB protocol.

Configuration

Users configure NFS by following a straightforward set of commands.

Configuring CIFS can be complex and difficult to troubleshoot.

Legacy file names that have different characters on Windows and Unix systems need to undergo filename conversion for access by CIFS clients.

Operating environments

NFS and CIFS/SMB protocols can work with any OS and hardware.

In practice, however, organizations commonly implement NFS as a NAS deployment on dedicated Linux and Unix systems, while also providing support for Microsoft Windows.

CIFS/SMB is typically confined to Windows environments, in part because the applications developed to work with those OSes expect a certain set of predictable file system properties.

NFS client software must be loaded individually on each networked computer.

CIFS is a native OS that encapsulates all network resources as available services.

Scalability and security

NFS is a highly reliable protocol, but it was not initially designed with special security features.

CIFS offers lower scalability than NFS, but CIFS integrates advanced security features, including Kerberos, Lightweight Directory Access Protocol support and authenticated RPC file transfer.

Transports

Both protocols are transport-independent. CIFS is a stateful sharing protocol used most commonly with direct hosting and NetBIOS-based transports, such as NetBIOS over TCP/IP.

CIFS is a chattier protocol than NFS. It requires more touchpoints along the network when it routes data requests.

NFS is stateless and uses TCP/IP or User Datagram Protocol to deliver independent transmission.

History of NFS

Sun Microsystems -- acquired by Oracle in 2010 -- developed NFS in the mid-1980s to share file system resources across a network at speeds comparable to local file access. With NFS, a user or a system administrator can mount all or a portion of a file system.

In 1989, Sun released the NFS protocol specification as an open standard available from the Internet Engineering Task Force (IETF). Sun also commercially licensed a reference implementation of the NFS source code. Vendors such as IBM wrote their own NFS-based version. NFSv2 was the first version released outside of Sun. Open source versions of NFS first appeared in FreeBSD and later in Linux, which is the predominant NFS implementation.

In 1998, Sun ceded control of NFS maintenance to IETF. Technologists affiliated with a wide range of vendors contribute to the ongoing development of the NFS protocol.

History of CIFS/SMB

CIFS originated in the SMB protocol created at IBM in the early 1980s. That protocol was used in DOS, OS/2 and early versions of Windows to enable file and device sharing across a network. Vendors that worked on enhancements to SMB included Intel, 3Com and, notably, Microsoft.

In the 1990s, Microsoft introduced CIFS to describe a version of the SMB protocol based on the Windows NT OS.

The term CIFS was also sometimes used to refer to all the dialects of the SMB protocol and, more broadly, to Windows File Services.

Why CIFS/SMBv1 is outdated

The term CIFS is outdated because it applies to OSes that Microsoft no longer supports. SMBv1 has not been in use since Microsoft discontinued support of Windows 2000. Version 2 of SMB was an entirely new file-sharing protocol that Microsoft based on SMB concepts, and subsequent Microsoft SMB updates were built on that revision.

SMBv2 was designed for more secure user access to files and applications with greater efficiency and performance in WANs and large LANs than earlier versions. The most recent version, SMBv3, supports block infrastructure data center workloads operating at scale over remote direct memory access networks, plus highly secure file access scenarios. End-to-end encryption and transparent failover are among numerous features Microsoft rolled out in SMBv3.

NFS, SMB feature parity

Microsoft provides NFSv2 and NFSv3 clients in all the supported versions of Windows and NFSv4.1 servers starting with Windows Server 2012. Likewise, Linux supports an SMB client. Open source Samba software enables CIFS/SMB on Linux and Unix. Apple's Mac OSes primarily use SMB, but they also support NFS. Enterprise storage systems often support both NFS and SMB for file access.

NFS has evolved over time and become more like SMB in many ways through the addition of features such as asynchronous writes on the server to improve performance, access control lists and a new version of file locks. NFSv4.2 is fully stateful in contrast to earlier NFS versions that were designed for use in implementations where the server did not need to maintain the state of any clients to function. But NFS still handles server reboots and recovers state to enable its continued use for persistent, data-critical applications.

With the respective evolution of the protocols, NFSv4 and SMBv3 have become more similar in functionality than they have ever been. NFS will likely continue to be used primarily in Linux environments, while SMB will remain the dominant choice for Windows.

Dig Deeper on Primary storage devices