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. .
These are not the file systembut these are protocols that work at application layer to establish synchronized communication between applications and storage, via the file system, whatever it is 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 typically used with NAS file access storage systems, not SAN block storage, which can access blocks in files.
NFS: roots under Linux/Unix
NFS is primarily 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 local network. Administrators can define which files can be accessed by whom (including via access control tools such as Active Directory) and NFS tracks data synchronization between machines.
NFS could work on the Internet, in theory, but it doesn’t have the ability to handle complex routing instructions, and it’s 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: Windows side
SMB is primarily used in Windows environments and is the basis of Microsoft’s Distributed File System.
IBM originally developed SMB in 1983 as a way to provide shared access to files and printers on a network. Microsoft picked it up later. The company used it in LAN Manager for IBM OS/2 in 1987, then rolled it into Windows NT 3.1 and has kept it in its operating systems ever since.
SMB clients are mounted to files and directories via the computer’s hostname or IP address (NFS uses the Unix command line). SMB can also be used in Unix and Linux environments and is somewhat easier to use in hybrid environments (Windows and Linux/Unix) than NFS.
SMB 1.0 arrived in 1983 with some encryption and running NetBIOS, with a lot of chatter that was later toned down in SMB 2.0. File locking in SMB – so-called opportunistic locking – arrived with version 2.0.
SMB 3.0 brought the SMB pass-through protocol to provide RDMA (direct memory access) functionality, along with security enhancements such as end-to-end encryption. The latest version – 3.1.1 – further strengthens security. Samba and others are reverse-engineered third-party versions of SMB developed during their proprietary days.
The 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 primarily used with NetBIOSbased on transports – which can get cumbersome on larger, busier networks – and focused on small LAN files, prints, and application access to storage. For this reason, it has been less scalable than NFS. CIFS is considered chatty, buggy, and less secure than SMB.