In NAS, I/O requests are made to the file system, which in turn issues the specific block requests and reads or writes to the storage volume. With object-based access, data that is stored via unique address identifiers is read and written to actual storage as blocks of data. Block-level access more closely aligns to the logical and physical data layout of the underlying storage subsystem.
In a SAN environment, a client could make a request to a database server that in turn would retrieve the specific blocks of data on behalf of the client. One of the challenges of block storage, however, is that it requires a level of serialization to maintain data consistency and coherency particularly for concurrent access. This is where file systems and NAS-based file access comes into play to serve as the serialization software for access to the block data.
In the past it was not recommended to put certain applications like database on NAS due to performance and integrity of the storage interfaces (network link). This has changed and now with proper configuration and design, databases are supported using NAS-based storage as are applications like Microsoft Exchange. For many applications, file-based access using NAS is just fine, but applications with serialized access to storage performance can be enhanced by not having to go through a NAS layer. After all, eventually NAS will perform a block I/O.
Read Randy Kerns' answer to this question.
This was first published in September 2004