File Storage and Access
Below is a very basic introuction to the various options availbe to those who wish to remotely access their data. This is only intended to give a brief outline of the various protocols which can be utilised in pursuit of remote file access......
SMB – Server Message Block
SMB is a file sharing protocol that was
invented by IBM in the 1980s. It’s purpose is to allow computers to read and
write files to a remote host over a local area network (LAN). The directories
on the remote hosts made available via SMB are called “shares.”
CIFS
– Common Internet File System
NAS
file level protocol. Used in Windows. Works on a client/server relationship. CIFS
is a particular implementation of the SMB protocol.
NFS – Network
File System
NAS
file level protocol. Used in Linux. Works on a client/server relationship.
NTFS – New Technology File System
This is not actually related to
any of the above since they are all ways of remotely access data. New
Technology File System on the other hand is the file system Windows uses for
storage. NTFS has nothing to do with remote access of files/shares.
iSCI vs NFS
The most predominant difference
between iSCSI and NFS is that iSCSI is block level and NFS is file based. With
NFS, the filesystem is managed by the NFS server, for example, a Netapp Storage
System and with iSCSI the filesystem is managed by the guest Operating System. Neither
is really better than the other. Block based protocols where the guest os
manages the filesystem allows you to take advanced of tools like snap manager
for (exchange, oracle, SAP, sql, etc). To put as simply as possible with snap manager,
the guest OS, application and storage system all work together and ensure the
file system is in a consistent state when snapshots occur. On the other hand,
typically with NFS, 50 or more virtual machines live inside the same volume and
are deduplciated against each other. Deduplication on a volume with a single
lun inside of it only finds duplicate blocks within a single filesystem. It is
possible to place more than one iSCSI lun inside the same volume, but best
practice is a 1-1 relationship.
NFS vs CIFS
They are both NAS file level
protocols. CIFS is the Windows flavour and NFS is for Linus/Unix, but there is some
degree of interoperability. Samba is a linux/unix implementation of a CIFS
server, and it is possible to mount NFS storage on a windows system with a UNIX
utilities package. The ACL translations can be tricky and not fully functional
when crossing OS. Netapp does some nifty stuff to separate the protocol layer
from the filesystem that allows you to do cool things like share the same
volume out through CIFS and NFS. Again, some gotchas with ACLs. You want to
pick NTFS or unix ACLs, there is a mixed mode, but it is...well, kind of an
administrative headache in my opinion. Don't use mixed mode unless you know
what you are getting into and have a specific use case.
SMB vs CIFS
Essentially
this is one in the same. The two are interchangeable not only in discussion,
but also in application – i.e., a client speaking CIFS can talk to a server
speaking SMB and vice versa. Why? Because CIFS is a form of SMB. In today’s workplace
environment, chances are you’ll want to use SMB as the CIFS implementation of
SMB is rarely used these days. Under the covers, most modern storage systems no
longer use CIFS, they use SMB 2 or SMB 3. In the Windows world, SMB 2 has been
the standard as of Windows Vista (2006) and SMB 3 is part of Windows 8 and
Windows Server 2012.