Why pick a NAS over NFS?
Solution 1:
A NAS (Networked Attached Storage) is a device serving files via the network. One protocol to accomplish this is NFS. So a NAS can use the NFS protocol (or another protocol).
So a Linux server providing NFS exports is, in effect, a NAS device.
Is there a good reason to pick a NAS filer over just running NFS on servers?
The appliance has the advantage of being pre-packaged and ready out of the box and probably has a web gui to make changes a little more admin friendly. A disadvantage to the appliance is that recovery of the data could be more difficult, if you get in that spot, as the underlying filesystem could be proprietary.
Solution 2:
This is an oddly-worded question - it's like saying "What's the difference between fruit and an apple" - one is a class, one is a member of that class.
NAS contribute to a general-purpose network by only sharing one or more protocols that can include NFS.
NFS is a protocol that can be shared from one or more devices on a general purpose network, these devices can share only using NFS or simultaneously with other protocols.
True SANs contribute to storage-specific networks.
iSCSI blurs the issue as it can share over a general-purpose network (i.e. NAS-like bahaviour) but at the block level (usually a trait of SANs).
To answer your final question more directly, pick a NAS where you want a single, often more highly-available (i.e. dual-controllers, PSUs, storage-path, NIC), centralised, and importantly centrally-managed, solution and use a multi-point NFS solution where budgets are perhaps tighter, data availability is perhaps lower and skills to manage across multiple machines is available.
Solution 3:
The "real" difference between NAS and NFS is that the NAS is a technology and NFS is a protocol.
NAS:
Network-attached storage (NAS) is file-level computer data storage connected to a computer network providing data access to heterogeneous network clients.
NFS:
Network File System (NFS) is a network file system protocol originally developed by Sun Microsystems in 1984,[1] allowing a user on a client computer to access files over a network in a manner similar to how local storage is accessed. NFS, like many other protocols, builds on the Open Network Computing Remote Procedure Call (ONC RPC) system. The Network File System is an open standard defined in RFCs, allowing anyone to implement the protocol.
Solution 4:
A NAS is just a server, but it may be running a proprietary or carefully-tuned (or both) operating system and provide you with a nice GUI.
When you buy a NAS, you’re paying for somebody to do the hard work of picking the appropriate hardware, OS, on-disk file system, build in monitoring and fault tolerance, and wrap it all up with an administrative interface to manage and configure it.
There’s nothing to say that you couldn’t do something similar yourself, or build a server and deploy something like FreeNAS on it (or, in the case of OpenSolaris, something as simple as zfs set sharenfs=on
), if you have a good reason to think you’ll get better bang for your buck than buying an off-the-shelf NAS. For most consumers, it’s almost always going to be tilted in favour of “buy a NAS”. If you have a bunch of well-specified servers which can be easily deployed as file-servers, then the benefit of buying a NAS diminishes rapidly.
Solution 5:
"A Linux box running NFS" vs. a dedicated NAS appliance is not the same thing: it's like saying "A FreeBSD box running pf is the same as a Cisco PIX firewall" -- sure they're both doing the basic task of packet filtering, but there's alot of differences in features that may be deal-breakers, depending on what you need or want your firewall to do.
For example NetApp's range of NAS devices feature deduplication technology to minimize the amount of redundant data you may have, which is particularly useful in a virtualized environment if you're storing alot of redundant VM templates, ISOs, etc. data. As far as I know, there's no open source equivalent.
On the other hand, a Linux NFS file server could also be configured in a dual role as a backup server, FTP server, database server, etc. because you have a complete Linux server platform, vs. a single-purpose storage device like a NAS utilizing NFS.