What differences are between a NAS, a shared disk file system on a SAN, and a distributed filesystem?

Solution 1:

Nowadays the border between NAS and SAN is unclear especially for SMB products. Historically NAS devices consist of the bunch of disks arranged in some RAID to maximize the overall performance and achieve the required data redundancy. These devices have core operating systems aboard. Those OS do all low-level processing and file systems maintenance. File systems, in their turn, share disks content over the network on the file level. NAS present the storage over high-level protocols like SMB, NFS, AFP, etc. Modern NAS can also present block storage (iSCSI) and have basic SAN features like replication, snapshots, etc. If you need just “small” capacity (up to 100TB) and storage high availability is not required, modern NAS would be a best suitable option.

SAN is historically a block-level storage system that can be accessed via such fast protocols as FCoE, iSCSI, Fibre Channel, etc. Mostly SAN includes not only disk redundancy, but also controller redundancy and may allow active (or passive) replication between SAN boxes. SAN has flexible scalability option. And certainly, all enterprise level SAN know file protocols like CIFS and NFS.

Article regarding SAN and NAS - https://www.hyper-v.io/san-nas-public-cloud-lets-pick-secondary-storage/

Distributed filesystem is not a storage, but just a method how the storage access is organized and how the storage is presented. Actually, you can deploy distributed file system over (many) SAN/NAS devices. Here is an article with more explanations: https://www.quora.com/What-is-a-distributed-file-system-and-what-is-it-used-for

Solution 2:

It varies, but a NAS typically exposes file level storage rather then block level storage. Many NAS's are a variant of Linux or Another Unix variants running Windows file sharing (SMB) and Unix filesharing (NFS). It may be possible to do block level sharing, but I don't believe its a particularly common use case.

A SAN typically provides block level storage rather then file level storage.

A distributed filesystem is where the files are spread over many computers but behave as file storage.

Solution 3:

SAN: filesystem - > network - > block device

NAS: network - > filesystem - > block device

IOW, SAN makes block devices accessible over the network. The storage server stores only blocks without any knowledge how they build a filesystem, if at all. In opposite, NAS makes filesystem accessible over the network. The NAS server exports it's local file system.

Often, NAS servers use SAN to store the data. For example, an NFS server can export local XFS file system wich is attached by iSCSI.