Network-Attached Storage (NAS)
Network-attached storage involves the use of specialized storage devices or servers connected to a network (hence the “network-attached” part of the name). Their resources are shared by and accessible to the other devices and users in the network. NAS is file-based storage, and the protocols used are the NFS and SMB/CIFS, as the underlying transport protocol is usually the TCP.
An NAS device usually has multiple physical hard drives. The storage controllers on that device or server support virtualization technologies, such as RAID, to manage the physical drives, create logical volumes from them, and provide the needed levels of redundancy and data protection.
Figure 10-6 illustrates the concept of the NAS infrastructure.
Figure 10-6 Network-Attached Storage
On NAS devices is an operating system. It might be a general one, such as a Microsoft Server or Linux/Unix, or a specialized one, but there is always software responsible for the configuration, management, communication, and monitoring of the device. The data on an NAS device is stored as files. It uses the usual hierarchical structure with directories and subdirectories. When there is a request for a file or files to be read, the NAS device must go to the directory, list it, locate the file, check permissions, and then transfer the file. If the file is stored in a directory several levels under the root directory, these operations must be repeated for each of the levels until the file is reached. This can be heavy on the network communication side, and it can be overcome with fine-tuning TCP.
The speed with which the data can be accessed and transferred depends on both the hardware resources and configuration of the physical hard drives on the NAS side as well as the capacities and the speed of the networks.
These characteristics of NAS make it suitable for sharing files and directories with multiple users, where speed is not of critical importance. However, NAS is not suitable for the purposes of running mission- and latency-critical applications, as it does not have the needed scalability, secure data transfer, and secure storage that block-based storage does.