和上一遍所述的SAN一样,网络接入存储(NAS,network attached storage)也是一个传统的技术,不过它和SAN最大的区别在于提供的存储服务不同,SAN是面向块级别的,NAS是面向文件级别的。从SAN系统的组成来讲,它也可以分为三个部分:存储端、网络和服务器端,如下图:
NAS的存储端主要是由虚拟化的存储资源池、控制器和接口组成。存储资源池的具体实现一般是采用磁盘阵列,也可以采用SAN。NAS存储端的控制器功能比较强大,它拥有独立的处理器单元、内存、I/O处理模块和文件系统管理功能,负责将磁盘阵列的虚拟磁盘挂载到自己的文件系统上。通过这个文件系统,NAS存储端可以很好地管理数据共享,避免读写不一致,这也是和SAN的重要区别之一。在后面的内容里,我们还将对分布式文件系统作重点介绍。存储端的接口负责将内部的文件I/O和网络I/O连接起来,并且通过以太网卡将该文件系统暴露给外界。
NAS的网络协议栈以网络层为界,分为上下两层。下层的实现有以太网/IP、ATM或FDDI,通过网络交换机实现互联,上层采用NFS或CIFS协议实现文件级网络数据共享。在NAS的初期,带宽一直是该技术性能上的瓶颈,不过,随着IP技术的发展以及千兆以太网乃至万兆以太网的出现,NAS的性能得到极大的改善。另外,NAS的网络采用廉价而技术成熟的以太网/IP,并不需要专门的存储网络,可以很容易地被中小型企业接受。至于上层协议,NFS和CIFS都提供了基于网络的文件系统,它和存储端的控制器配合能够支持文件和数据的共享和并发读写保护。
由于NAS存储端有专门的处理控制器来维护和管理文件系统,服务器端就变得非常简单,往往只需要普通的以太网卡以及操作系统支持NFS或者CIFS协议,最终NAS的网络文件系统通过某个挂载点被挂载到服务器虚拟文件系统(VFS)上。
最后,要让NAS支持云存储服务,还需要赋予它可扩展的能力来支持大规模的数据访问和读写。具体而言,需要对NAS存储端的控制器以及文件系统改进和优化,来支持底层磁盘阵列的动态扩展以及维护统一的命名空间。IBM的SONAS就是一款这样的产品,它能够帮助企业搭建私有的文件存储云。