What’s the difference between file services SAMBA, CIFS, and NFS?

SAMBA.ORG

Today, I had a customer ask me which file service I would prefer he setup for data migration purposes. I responded with SAMBA or NFS, and he did not like this. He wanted a specific recommendation. The server I’m migrating data from is an older 2003 server, and we are trying to decide whether to migrate it to Server 2008R2 or Server 2012. So, I did some googling, and became more aware of the following Microsoft support matrix:

MS Server 2003 and 2008 R2 = native support for NFS version 3.
MS Server 2012 = native support for NFS version 4.1

CIFS = ancient SMB0 that was part of Microsoft Windows NT 4.0 in 1996. SMB1 supersedes this version.
SMB 1.0 (or SMB1) = used in Windows 2000, Windows XP, Windows Server 2003 and Windows Server 2003 R2
SMB 2.0 (or SMB2) = used in Windows Vista SP1 (or later) and Windows Server 2008
SMB 2.1 (or SMB2.1) = used in Win7 and Windows Server 2008 R2
SMB 3.0 (or SMB3) = used in Win8 and Windows Server 2012
SMB 3.1 (or SMB3.1) = used in Win8.1 and Windows Server 2012R2

SAMBA version 3.2 and 3.2.1 = support for SMB 1.0
SAMBA version 3.6 = support for SMB 1.0 and 2.0
SAMBA version 4.0 = support for SMB 1.0 and 2.0 and 2.1 and 3.0

So, basically, for Windows 2003, NFS version 3 or SAMBA version 3.2+ is good. I am skipping Server 2008R1 because only folks who needed 32-bit application support run it. For Windows 2008R2, NFS version 3 or SAMBA version 4.0+ is good. For Windows 2012, NFS version 4.1 or SAMBA 4.0+ is good. Note that SAMBA has not currently implemented SMB 3.1 support, so that although you can use it with Server 2012R2, some new features in Microsoft’s operating system are not supported.

Need even more information? Try the following references:

https://www.samba.org

https://wiki.samba.org/index.php/Samba3/SMB2

A quote I particularly appreciated, from wiki, was the following,

The Samba project originated with the aim of reverse engineering the SMB protocol and implementing an SMB server to allow PC clients running the DEC Pathworksclient to access files on SunOS machines.[14][11] Because of the importance of the SMB protocol in interacting with the widespread Microsoft Windows platform, Samba became a popular free software implementation of a compatible SMB client and server to allow non-Windows operating systems, such as Unix-like operating systems, to interoperate with Windows.

–— see https://en.wikipedia.org/wiki/Server_Message_Block.