valentinT - Fotolia
Network file system (NFS), server message block (SMB) and common internet file system (CIFS) are all file access storage protocols, used to access files on remote servers and storage servers (such as NAS storage) as if they were local files.
They are not the file system, but they are protocols that operate at the application layer to establish synchronised communication between applications and storage, via the file system, whichever one may be in use. As application layer protocols, they are of the same order as HTTP, FTP, POP, and SMTP, for example.
NFS, SMB and CIFS are generally used with NAS file access storage systems, not SAN block storage, which can access blocks within files.
NFS: roots in Linux/Unix
NFS is mostly used with Linux and Unix operating systems. It was originally developed by Sun Microsystems in 1984 and is now at version 4, with parallel file access functionality (pNFS, used in scale-out NAS).
NFS uses a client-server architecture to make files accessible to multiple computers on a LAN. Admins can set which files are accessible by who (including via access control tools such as Active Directory) and NFS keeps up with synching data between machines.
NFS could run on the internet, in theory, but it lacks the ability to handle complex routing instructions and it is not encrypted by default.
Although developed by a Unix vendor and often used for Unix and Linux, NFS can also be used in Windows environments.
SMB: on the Windows side
SMB is primarily used in Windows environments and it forms the basis for Microsoft’s distributed file system.
IBM developed SMB originally in 1983 as a way of providing shared access to files and printers across a network. Microsoft picked it up later. The company used it in LAN Manager for IBM OS/2 in 1987 and subsequently built it into Windows NT 3.1 and has retained it in its operating systems since then.
SMB clients mount to files and directories via computer hostname or IP address (NFS uses the Unix command line). SMB can also be used in Unix and Linux environments and is a little easier to use in hybrid (Windows and Linux/Unix) environments than NFS.
Summary: NFS versus SMB
- NFS better for Unix/Linux, while SMB better for Windows.
- NFS requires extra tools to support Apple, but SMB does not.
- NFS runs in Unix/Linux and Windows; SMB needs Samba to do so.
- NFS file locking is mandatory or advisory, but SMB locking is mandatory.
- NFS has no fast file find; SMB has fast find.
- NFS no server and printer browsing, while SMB has server and printer browsing.
- NFS slower reads and writes; SMB faster.
- NFS better with small files, while SMB fine with small files but better with large files.
SMB 1.0 arrived in 1983 with some encryption and running NetBIOS, with a great deal of chattiness that was later mitigated in SMB 2.0. File locking in SMB – so-called opportunistic locking – came in with version 2.0.
SMB 3.0 brought the SMB direct Protocol to give RDMA (direct access to memory) functionality, plus security enhancements such as end-to-end encryption. The latest version – 3.1.1 – beefs up security even further. Samba and others are third-party, reverse-engineered version of SMB developed back when it was proprietary.
Common internet file system (CIFS) is an implementation, or “dialect” of SMB, first introduced as a version of SMB 1.0 in 1996. It is mostly used with NetBIOS-based transports – which can get cumbersome on bigger, busier networks – and was focused on small LAN file, print and application access to storage. For that reason, it has been less scalable than NFS. CIFS is considered chatty, buggy and less than optimally secure compared to SMB.
Read more about file storage
- File, block and object: Storage fundamentals in the cloud era. We look at the three basic ways that storage accesses data – via file, block and object – as well as the ways in which the rise of the cloud and distributed systems have brought changes to them.
- Five things you need to know about cloud file services. We look at cloud file services, which provide a file system-like architecture that gives users access to file data wherever they are, just as if it were a local NAS filer.