第5章网络附接存 储 5.1 NAS 概述 网络附接存储(networkatachedstorage,NAS)是网络存储基于标准网络协议实现数据传输,是一 种文件共享服务,拥有自己的文件系统,通过NFS 、SMB 、CIFS 、FTP等协议对外提供文件级共享和数 据备份。第一代NAS产品于1999年在市场上出现,由于当时NAS技术相对不够成熟,产品的功能比 较有限,性能也不够稳定。2000年之后,第二代NAS产品开始出现。由于广泛采用了RAID 、磁盘镜 像、双机热备等新型技术,同时支持HTTP 、FTP 、SMB 、AFP 、CIFS等多种协议,并增强网络的安全认 证机制,使得产品的性能得到了大幅提升。 NAS包括硬盘阵列、DVD驱动器、磁带驱动器或可移动硬盘等存储器件以及专用服务器。安装有 专门操作系统的专用服务器,可充当远程文件服务器,利用NFS 、SMB/CIFS 、FTP等协议对外提供文 件级的访问服务,典型拓扑如图5-1所示。 图5- 1 NAS网络拓扑图 152 NAS 是一种利用可直接与网络介质相连的特殊设备实现数据存储的机制。由于这些设备都分配 有IP 地址,所以客户机通过充当数据网关的服务器可以对其进行存取访问,在某些情况下,甚至不需要 任何中间介质客户机也可以对其进行直接访问。 NAS 设备可实现集中存储与备份,具有如下主要特点。 (1)提供了一个高效、低成本的资源应用系统。由于NAS 本身就是一套独立的网络服务器,可以 使NAS 主机、客户机和其他设备广泛分布在整个企业的网络环境中,提供可靠的文件级数据整合。可 以基于已有的企业网络方便接入,具有非常好的可扩展性。 (2)适用于需要通过网络将文件数据传送到多台客户机上的用户。在数据必须长距离传送的环境 中,NAS 设备可以很好地发挥作用。 (3)应用于高效的文件共享任务中,例如UNIX 中的NFS 和Windows中的CIFS,其中基于网络的 文件级锁定提供了高级并发访问保护的功能。采用NFS 、SMB/CIFS 提供异构网络之间的文件共享, 屏蔽了操作系统和文件系统的差异。 (4)提供灵活的个人磁盘空间服务。NAS 可以为每个用户创建个人的磁盘使用空间,方便用户查 找和修改自己创建的数据资料。 (5)有效保护资源数据。NAS 具有自动日志功能,可自动记录所有用户的访问信息。嵌入式的操 作管理系统能够保证系统永不崩溃,以保证连续的资源服务,并有效保护资源数据的安全。 (6)实现了多服务器之间的存储共享。文件共享(即文件服务器)是NAS 最基本的应用。文件服 务器通过一个文件系统管理磁盘阵列,存取磁盘阵列上的文件,并管理相应的网络安全和访问授权。 (7)提供数据在线备份的环境。NAS 支持外接的磁带机,能有效地将数据从服务器中传送到外挂 的磁带机上,保证数据安全、快捷备份。 (8)备份和容灾。NAS 网络存储器的另一项重要功能是备份和容灾,大多数NAS 都具有多种备 份功能,包括本地备份(将计算机上的数据通过局域网备份到NAS 中)、异地备份(将异地计算机上的数 据通过广域网备份到NAS 中)和NAS 间备份(NAS 与NAS 之间复制数据)等。部分NAS 还具有一键 备份功能,可将闪盘和外置硬盘等USB 存储设备插入NAS 的特定USB 接口,通过备份按钮就能把 USB 存储设备上的文件备份到NAS 中。此外,具有两个硬盘位的NAS 可以组建RAID0 和RAID1 系统,其中RAID0 系统具有较好的磁盘性能,RAID1 系统具有较好的安全性。具有4个硬盘位的 NAS 则可以组建更高级的RAID5 系统,在保障数据安全的同时还能提高磁盘性能。 NAS 可以利用现有的IP 网络设施,以网络共享的方式(如CIFS 和NFS)为终端客户机提供一致的 文件系统,所以NAS 存储解决方案在数据中心是一个极佳的选择。伴随着万兆以太网的出现和投入商 用,存储网络带宽大大提高了NAS 存储的性能。NAS 摆脱了服务器和异构化架构的桎梏,在解决了足 够的存储和扩展空间的同时,还提供极高的性价比。 5.2 NAS 的存储架构 5.1 整体结构 2. NAS 包括核心处理器,文件服务管理工具,一个或者多个的硬盘驱动器。NAS 强调的是网络和存 储功能,所以在构造硬件结构中只考虑网络和存储两方面的问题。 NAS 在一个LAN 中占有自己的结点。NAS 设备包括存储器件和集成在一起的简易服务器(功能 服务器), 可用于实现涉及文件存取及管理的所有功能。NAS 基本硬件结构如图5-2所示。 存储子系统主要是提供对IDE 、SCSI 、SATA 技术的支持,提供工业标准EIDE 控制器、SCSI 控制 153 图5- 2 NAS 基本硬件结构 器、阵列控制器,使得系统可以连接光碟塔、磁盘阵列等各种设备。 网络控制模块用于实现网络适配器的功能,主要进行数据帧的生成、识别与传输、数据编译、地址译 码、数据传输的出错检测和硬件故障的检测等。它最终提供一个普通网络连接口和高速光纤通道连接 口,传输速率不低于100MB/s,可使系统方便地与以太网相连或挂接在由高速光纤通道连成的SAN 上。系统的核心操作系统和相关系统软件都可以固化在ROM 或者闪存上,供系统启动时读取。 由于去掉了系统中不必要的系统控制以及处理功能,从而减少了系统的成本,提高了存储系统的吞 吐率和通信能力。 5.2 NAS 软件构成 2. NAS 系统软件可划分为五大模块:操作系统、卷管理器、文件系统、网络文件共享和Web管理,如 图5-3所示。 图5- 3 网络存储服务器软件组成 154 1.操作系统 NAS不依赖通用的操作系统,而是采用一个面向用户的、专门用于数据存储的简化操作系统,由于 其中内置了与网络连接所需的协议,所以可使整个系统的管理和设置较为简单。NAS操作系统通常需要 实现4方面的功能:设备驱动功能、设备管理功能、文件共享服务功能和应用系统功能。NAS操作系统是 为文件做了优化的,具有多线程、I 多任务的高稳定内核。和一般服务器相比,/O操作要优越很多。 2.卷管理器 卷管理器主要是进行磁盘和分区管理,包括磁盘监测、异常处理和逻辑卷的配置管理,一般应支持 磁盘的热插拔、热替换等功能和RAID0 、RAID1 、RAID5逻辑卷。 3.文件系统 NAS文件系统能支持多用户,具备日志文件系统功能,在系统崩溃或掉电重启后能迅速恢复文件 系统的一致性和完整性。 4.网络文件共享 网络文件共享一般支持FTP 、HTTP 、NFS(UNIX )、CIFS(Windows系统)、NCP(Novel 系统)、 AFP(Apple产品)等文件传输和共享协议。 5.Web管理 Web管理主要是包括远程监控和管理NAS设备的系统参数,例如网络配置、用户与组管理、卷以 及文件共享权限等。 NAS并不像普通PC系统一样拥有标准化的软件组件可供选择,NAS厂商必须根据硬件自行设计 软件系统。尽管设计工作是在已有资源的基础上进行的,但是难度也相当大。NAS厂商必须对Linux 内核进行裁剪或修改,使之可以在自身硬件上运行,同时必须自行编写设备的驱动程序和应用软件,工 作量不亚于独立开发一套嵌入式操作系统。 为了提高系统性能并进行不间断的用户访问,NAS常采用专业化的操作系统用于网络文件的访 问,这些操作系统既支持标准的文件访问,也支持相应的网络协议。NAS只保留了通用操作系统中用 于数据共享的文件系统和网络连接协议,使CPU 、内存和I/O总线等系统资源完全用于信息资源的存 储、管理和共享,使NAS的数据吞吐量比通用服务器大幅提高。 5.3 NAS的实现架构 2. NAS的实现架构分为集成式NAS架构和网关式NAS架构。集成式NAS的控制器和存储设备是 使用DAS连接方式,而网关式NAS的控制器和存储设备是使用SAN连接方式。 1.集成式NAS架构 集成式NAS架构为“NAS头+SAN”。控制器部分俗称NAS头,是指将传统NAS机头的存储服 务管理功能独立出来成为专门的存储服务器,通过基于IP或FC的接口和后端的存储区域网(SAN)直 接相连,将访问频繁的数据存入FC磁盘,不太活跃的数据存入SATA磁盘,在一定程度上解决了成本 和性能的矛盾,如图5-4所示。注意,后端的存储网络是非共享的(不需要经过交换机),可以将后端存 储网络当成本地硬盘,将IP和FC接口当成总线接口,这也是集成式的NAS架构和网关式的NAS架 构的主要差异。 2.网关式NAS架构 网关式NAS架构为“NAS网关+SAN”,是指将传统NAS机头的存储服务管理功能独立出来成为 155 图5- 4 集成式NAS 架构 专门的存储服务器,前端连接应用服务器设备,后端通过存储交换机(基于IP 或FC)和共享的SAN 相 连,初步实现NAS 和SAN 的融合,如图5-5所示。这也正迎合了目前各个主流存储厂商号称“统一存 储”的提法。 图5- 5 网关式NAS 架构 网关式NAS 是由一个独立的控制器即NAS 头和若干存储阵列组成。NAS 头具有网关的功能,它 可以访问SAN 环境中的存储资源。这种方案的最大优势是,客户机可以通过IP 网络访问SAN 的存储 资源,NAS 可以通过NFS 和CIFS 协议处理来自客户端的文件级I/O请求。当网关收到客户端发来的 文件级I/O请求,便将该请求转化为块级I/O请求发送到SAN 环境中的存储阵列,存储阵列处理该请 求后又发给网关,网关将块级I/O转换成文件级I/O,再发给客户端,对于客户端来说,整个过程是透明 的。网关式NAS 可以充分利用SAN 存储资源,可扩展性很强,存储阵列和NAS 头可以根据需要独立 地扩展升级。 当存储资源出现紧缺时,可对连接NAS 头的后端进行扩容,增添存储设备。当NAS 的处理能力需 加强时,NAS 处理器可以独立升级。总之,两者之间是相对独立。 无论是集成式NAS 架构还是网关式NAS 架构,都需要将传统NAS 机头的存储服务管理功能独 立出来成为专门的存储服务器,而NAS 系统即为独立存储服务器的管理系统。 156 作为独立存储服务器的管理系统,NAS系统承载着所有的存储服务管理功能。存储服务的管理主 要涉及用户和用户组管理、底层逻辑卷资源管理、文件系统管理、共享文件夹管理、用户对资源的配额管 理、用户对共享文件夹的权限管理、用户的接入认证管理、系统日志管理,以及系统状态监控等。 由于NAS系统一般是使用特别处理的剪裁后的操作系统,因此NAS的系统一般都没有其他的过 于多余的功能,紧凑、高效,并且也将不必要的外部设备去掉,做到设备最大的精简,并对于存储文件、网 络传输部分有所增强,如去掉显示设备、取消打印口、采用万兆以太网卡等。 5.3 NAS 协议 NAS使用了传统的以太网协议,由于都是基于操作系统的文件共享协议,所以其性能特点适合进 行小文件数量级的共享存取。提供各种应用领域的异种文件共享和文件服务功能,包括内容传送和分 发、统一的存储管理、技术计算以及服务。它允许企业在不使服务器停机的前提下做扩容动作,甚至可 以不停机进行物理迁移。 NAS协议是用于实现网络文件系统功能的协议。网络文件系统的逻辑不是在本地运行,而是在网 络上的其他远程主机结点上运行,本地端通过外部网络将读写文件的信息传递给运行在远端的文件 系统。 5.1 NFS协议 3. NFS(networkfilesystem,网络文件系统)是当前主流的异构平台共享文件系统之一,主要应用于 UNIX 、Linux环境,是一种实现UNIX系统之间磁盘文件共享的方法。NFS协议是一种支持客户端的 应用程序通过网络存取服务器磁盘中数据的一种文件系统协议,最早是由Sun和IBM公司共同开发, 现在已支持在不同类型的系统之间通过网络进行文件共享,被广泛应用于FreBSD 、SCO 、Solaris等异 构操作系统通过网络彼此共享目录和文件。 通过使用NFS,用户和程序可以像访问本地文件一样远程访问其他系统上的文件,使每个计算机 结点都能像使用本地资源一样方便地使用网络上的资源。换言之,NFS可实现操作系统、网络架构和 传输协议等不同的计算机在网络环境下进行文件远程访问和共享。 5.2 SMB/CFS协议 3.I CIFS(commonInternetfilesystem,通用互联网文件系统)是当前主流异构平台共享文件系统之 一,主要用于在Windows环境中连接Windows客户机和服务器。CIFS是微软公司整合了SMB (servermesageblock,服务器信息块)协议后的成果,可使程序远程访问Internet上计算机的文件并申 请此计算机的服务。CIFS可与支持SMB的服务器进行通信,实现共享。因此,为了让使用Windows 操作系统的计算机可以和使用UNIX 、Linux操作系统的计算机相互进行文件访问,CIFS协议是必 要的。 CIFS采用客户-服务器模型,是在Windows系统中部署NAS设备时最常用的两种协议之一。其 工作原理是让CIFS协议运行于TCP/IP之上,客户端请求远程服务器上的服务器程序为它提供服务, 服务器收到请求并返回响应。 3.文件传输协议 5.3 文件传输协议(FTP)用于在Internet上控制文件的双向传输。FTP的主要作用是让用户连接一个 远程计算机并查看该机上的文件,然后将其从远程计算机下载到本地计算机,或把本地计算机的文件上 157 传到远程计算机。 NAS 系统最核心的功能是对外提供文件共享服务,因此几乎所有与HTTP(超文本传送协议)等文 件传输相关的协议均可作为NAS 协议应用于NAS 系统中。 异构平台之间的文件共享服务需要网络文件系统的支持,网络文件系统共享协议(如NFS 、SMB 、 CIFS)是NAS 协议的根本和基础,FTP 、HTTP 等其他文件传输相关的协议只是应用的补充。 5.4 NAS 文件系统 虽然NAS 设备常被认为是一种存储架构,但是NAS 设备最核心的功能是文件管理服务。至于通 过NFS/CIFS 共享文件,完全属于高层协议通信,根本就不在数据I/O路径上,所以数据的传输不可能 以块来组织。正是由于这种功能上的重叠,在SAN 出现以后,NAS 头(或NAS 网关)设备逐渐发展起 来,NASoverSAN 的方案越来越多,NAS 回归了其文件服务的本质。 由此可知,NAS 与一般的应用主机在网络层次上的位置是相同的,为了在磁盘中存储数据,就必须 建立文件系统。有的NAS 设备采用专有文件系统,而有的NAS 设备则直接借用其操作系统支持的文 件系统。由于不同的操作系统平台之间文件系统不兼容,所以NAS 设备和客户端之间就采用通用的 NFS 或CIFS 来共享文件。 NAS 服务器可以看成一个专门的文件管理器,主要由专为提供文件服务而优化的操作系统、相关 系统软件和相关硬件组成。图5-6所示为NAS 数据访问层次,前端应用服务器(UNIX 、Linux或 图5- 6 NAS 数据访问层次 158 WindowsNT 服务器)利用网络文件系统(NFS 、SMB 或CIFS)映射NAS 服务器端(即存储端)的本地 文件系统(Ext3、Ext4、ReiserFS 、XFS 、JFS 等)到应用服务器端自己的操作系统中,这样应用服务器端 就可以像访问自己的本地磁盘空间一样访问远程NAS 服务器端的存储空间。 NAS 通过NFS 和CIFS 协议管理远程文件系统上的I/O请求处理,NAS 的I/O过程与块级的 I/O过程不同。首先,请求者把一个I/O请求封装成TCP/IP 报文,在网络协议栈转发,直到NAS 设备 从网络上接受这个I/O请求。其次,接到这个I/O请求后,NAS 设备将它解包转换成一种块级请求,即 一种对应的物理存储请求,然后对物理资源存储池进行相对应的操作。最后,数据从物理存储池返回 时,NAS 设备将块级的I/O封装成相应的文件协议然后把文件协议与相应的操作封装在TCP/IP 中, 最后通过网络转发出去。 5.5 NAS 资源 文件系统是操作系统用于在存储介质上组织和管理文件的方法,是负责管理和存储文件信息的软 件系统。文件系统的载体为存储介质,在NAS 系统中即为NAS 资源,NAS 系统支持的NAS 资源主要 有磁盘及分区、磁盘阵列,以及逻辑卷。 5.1 磁盘及分区 5. 传统NAS 机头的存储池一般为直接用IDE 、SATA 或SCSI 总线连接的本地磁盘。本地磁盘首先 需要经过分区,然后每个分区才能被格式化为指定的文件系统为NAS 系统所用。一个磁盘,既可以整 体划分为一个分区,也可以划分为多个分区,分区的划分需要考虑“3P+1E”的原则(即3个主分区+1 个扩展分区,此处的P代表primary,E代表extended)。 由于目前单个磁盘的容量已经突破了1TB,所以简易的NAS 系统可以只是独立的存储服务器,直 接利用本地磁盘作为NAS 资源,而不用后端的SAN 存储池构建的磁盘阵列。 5.2 磁盘阵列 5. 在网关式NAS 架构中,NAS 服务器的后端通过存储交换机(基于IP 或FC)和共享的SAN 相连, SAN 网络的存储池提供给NAS 主机的,实际就是一些未建立文件系统的“虚拟磁盘”。这里的“虚拟磁 盘”为根据不同的RAID 策略,采用多块物理磁盘组成的磁盘阵列。 RAID 技术可将多个单独的磁盘以不同的组合方式形成一个逻辑硬盘,从而提高磁盘读取的性能 和数据的安全性。不同的组合方式用RAID 级别来标识。 RAID 技术经过不断的发展,现已拥有RAID0~RAID5 共6种RAID 级别标准。另外,其他还有 6、7、10(RAID1 与RAID0 的组合)、01(RAID0 与RAID1 的组合)、30(RAID3 与RAID0 的组合)、 50(RAID0 与RAID5 的组合)等级别,不同RAID 级别代表着不同的存储性能、数据安全性和存储 成本。 5.逻辑卷 5.3 逻辑盘卷管理是Linux环境下对磁盘分区进行管理的一种机制,具有强大磁盘管理功能,它巧妙地 把传统的物理分区转换成逻辑分区,使管理人员从传统的分区管理中彻底解放出来。通过LVM 系统, 逻辑卷管理将若干个磁盘分区连接为一个整块的卷组,形成一个存储池。管理员在卷组上随意创建逻 辑卷,可以方便实现文件系统跨越不同磁盘和分区。 无论是磁盘还是磁盘阵列对象,若直接对其划分物理分区,则将来要在这些分区上新增或减少磁盘 159 空间会非常麻烦;此外,物理分区的读写模式是线性模式,性能也不高。 逻辑卷的思想就是将多个物理磁盘分区,甚至磁盘阵列对象组合起来,形成一个独立的虚拟大磁 盘,然后在虚拟磁盘空间上动态地划分需要的空间建立逻辑卷。 目前,虚拟磁盘技术和LVM(逻辑卷管理)技术都支持逻辑卷,如图5-7和图5-8所示。不同的是, LVM 最大的用途是灵活地管理磁盘的容量,让逻辑分区可以随时放大或缩小,便于更好地利用剩余的 磁盘空间;而虚拟磁盘技术由于以RAID 为基础,更强调性能与备份。 图5- 7 从虚拟磁盘创建逻辑卷 图5- 8 由LVM 创建逻辑卷 5.6 集群NAS 存储系统 目前的存储设备中,NAS 技术的使用存在一定的局限性。首先,NAS 存在性能缺陷,在NAS 系统 中,对NAS 的请求和对应用服务器的请求将很有可能同时竞争有限的带宽,即使在万兆以太网中,这种 冲突依然存在;其次,NAS 是基于文件访问的,它很难做到像SAN 那样基于块设备的高速访问。 NAS 很难避免“信息孤岛”的出现,如果在一个企业中存在多个NAS,很有可能在一个NAS 上的 160 数据同时出现在另一个NAS 上,并与此同时,各个NAS 之间无法做到相互沟通,相互共享资源。 NAS 容易出现单点失效的局面,由于NAS 没有像SAN 那样在链路上的冗余,不能有效避免单点 失效。NAS 集群技术可以一定程度解决这些问题,用多台NAS 组成一个大容量、高可用性、高性能、高 扩展性的存储系统。 集群(cluster)是由多个结点构成的一种松散耦合的计算结点集合,协同起来对外提供服务。集群 NAS 是指协同多个NAS 结点(即通常所称的NAS 机头)对外提供高性能、高可用和高负载均衡的 NAS(NFS 、CIFS 、FTP)服务。有别于传统的SAN 和NAS,集群NAS 是一种横向扩展(scaleout)存储 架构,主要面向文件级别的存储,具有独立升级、线性扩展(容量增加不会带来性能瓶颈)的优势,已经得 到了全球市场的广泛认可,成为了主流的存储技术之一。 集群NAS 的整体架构由存储子系统、NAS 机头(集群)、客户端以及网络组成。存储子系统可以采 用存储区域网(SAN )、直接附接存储(DAS)或者面向对象存储设备(OSD)的存储架构。根据所采用的 后端存储子系统的不同,可以把集群NAS 分为SAN 共享存储架构、集群文件系统架构和pNFS/NFS v4. 1架构3种技术架构。 5.1 SAN 共享存储架构 6. 在SAN 共享存储架构中,前端的NAS 结点通过光纤连接至后端SAN 共享存储设备,采用SAN 并行文件系统管理数据并对外提供POSIX 接口,其架构如图5-9所示。元数据则有专用元数据服务器 (MDC)和分布到SAN 客户端两种方式。要实现对SAN 共享存储的并发访问,只需要在集群NAS 上 安装SAN 文件系统客户端即可,用户客户端的数据访问通过NFS 或CIFS 协议进行。 图5- 9 SAN 共享存储集群NAS 架构 由于SAN 共享存储架构是基于高性能的SAN 存储,所以这种架构可以提供稳定的带宽和性能,并 通过存储磁盘阵列和NAS 结点的添加进行拓展。SAN 共享存储架构的缺点是,SAN 存储网络和并行 文件系统的成本都比较高,SAN 架构本身还存在部署管理复杂、拓展规模有限的问题。