介绍
随着互联网的爆炸性增长及其在我们日常生活中日益重要的作用,互联网上的流量急剧增加,每年增加一倍多。在这种情况下,大量数字数据被认为是提升存储需求(包括容量、性能和服务质量)的关键驱动因素。由于数据的爆炸式增长,为了满足不断增长的存储需求,采用了三种典型的存储系统体系结构,即直连存储(DAS)、存储区域网络(SAN)、,和网络连接存储(NAS)(Deng等人,2005年,Deng等人(2006年);Gibson和Meter,2000年;Mesnier等人,2003年;Patterson等人,1988年;Riedel,2003年,Varki等人,2004年)。每个存储体系结构的不同实现对总体系统性能和应用程序环境有不同的影响。无法扩展DAS,因为可以连接到服务器的存储设备的数量和类型有限。由于服务器和连接的存储设备之间的存储转发数据复制,服务器也可能很快成为主要的系统瓶颈(Deng等人,2005年)。许多研究表明,复杂的管理和成本是采用SAN解决方案的关键障碍。面向服务的存储(Chuang and Sirbu,2000)和存储网格(Deng et al.,2008a;Deng and Wang,2007)也正在成为新的存储系统体系结构,以满足大规模、地理分布的存储需求。然而,它仍处于起步阶段。
NAS最近得到了普遍接受,因为它可以轻松管理,并且可以在运行不同操作系统的许多客户端之间共享文件。它还提供了一些其他优势,如并行I/O、增量可扩展性和较低的操作成本(Sohan和Hand,2005)。千兆以太网和高速传输协议的出现进一步促进了NAS的采用。最近,社区非常积极地设计一个包含多个NAS节点的大型存储系统,同时提供可扩展性和简化的存储管理。X-NAS(Yasuda等人,2003)是一种高度可扩展的分布式文件系统,旨在将多个NAS系统虚拟化为不同类型客户端的单个文件系统视图。NAS交换机(Katsurashima等人,2003)被提议并设计为客户端和NAS系统之间的带内交换机,为用户和管理员提供单一虚拟NAS系统。Bright和Chandy(2003)设计了一个群集存储系统,该系统在多个NAS节点上具有统一的文件系统映像。该系统提供了简化的存储管理和可扩展的性能。CoStore(Chen等人,2003)是一种无服务器存储群集体系结构,它在所有协作NAS节点上均匀分配系统职责,而无需单独的中央文件管理器。该体系结构有潜力提供可扩展的性能和存储容量,并具有强大的可靠性和可用性。RISC(Deng,2008)将存储节点划分为多个分区,以便于数据访问本地性。在任意两个存储节点之间使用多个备用链路,以提供强大的恢复能力,以减少链路、交换机和存储节点故障的影响。通过插入额外的交换机和存储节点而无需重新配置整个系统,可以保证可扩展性。Qin等人(2005a)提出了两种支持I/O的负载平衡方法,以提高运行I/O密集型应用程序的集群系统的整体性能。提出的方法动态识别集群节点上的I/O负载不平衡,并确定是否将一些I/O负载从过载节点迁移到其他负载不足的节点,以缓解系统瓶颈。传统的负载平衡方法通常使用静态配置来确定资源的权重。无法针对动态工作负载自动调整这些方法。提出了一种反馈控制机制,以提高具有I/O密集型和内存密集型工作负载的集群的整体性能(Qin等人,2005b)。但是,NAS群集的总体性能可以由单个NAS节点的性能决定。
人们在设计和开发性能优化方法方面投入了大量的研究工作,这些方法可能能够提高NAS的性能。建议使用TCP卸载将整个TCP/IP堆栈卸载到网络适配器。该方法可以减少中断和TCP复制校验和的开销(Mogul,2003;Sarkar等人,2003)。远程直接内存访问(RDMA)将数据直接从一台计算机的内存移动到另一台计算机内存中,而不涉及双方的操作系统。零拷贝用于在应用程序内存和网络适配器之间直接传输数据。VI架构(Compaq、Intel、Microsoft,1997)是一种用户级内存映射架构。通过避免内核参与,该体系结构旨在消除传统通信模型带来的软件开销,从而实现低延迟和高带宽。DAFS(Magotis等人,2002)是一种网络文件系统,允许应用程序传输数据,同时绕过操作系统控制、缓冲、网络协议等潜在的性能瓶颈。DAFS与支持虚拟接口(VI)(包括光纤通道和以太网)的任何互连一起工作。Brustoloni(1999)研究了一种解决方案,该解决方案允许数据在网络和文件系统之间传递,而无需复制,也无需更改现有接口。Sohan和Hand(2005)指出,当前NAS体系结构的性能较差,主要原因是多个数据副本、内核资源记帐较差、进程隔离不足以及应用程序定制设施较差。他们提出并设计了一种用户级NAS体系结构,在用户空间中进行所有文件和缓冲层处理,而无需任何特定硬件支持。实验结果表明,该体系结构比传统体系结构具有更好的性能。由于传统NAS采用通用的计算机系统体系结构,因此NAS还可以受益于其他通用的性能增强方法,如智能调度、缓存和预取。
NAS的一个显著特征是,NAS同时涉及网络I/O和文件I/O。千兆以太网进一步推动了NAS的广泛采用。由于涉及千兆网络,通过网络提供存储的性能要求似乎不应该成为问题。现代操作系统倾向于在不同的、自包含的层中构建,层间状态或数据共享很少。层之间的通信使用定义良好的接口,很难绕过(Sohan和Hand,2005)。NAS通常由几个关键层组成,包括存储设备、逻辑卷管理器、本地磁盘文件系统和网络文件系统。系统中的每一层都会从下面的层获得其截止性能。每一层都有一定的开销,这会降低系统的下一个更高层的性能(Riedel,2003)。由于NAS系统的复杂性,如何识别系统瓶颈并采用最有效的方法消除瓶颈并提高性能是一个具有挑战性的问题。
本文讨论了一个典型NAS的系统架构,并通过跟踪数据流来隔离NAS中的一些关键组件。我们使用各种基准来探索分层NAS体系结构中涉及的开销,并确定系统瓶颈,因为我们只需要加快整个系统的一小部分(系统瓶颈),即可根据Amdahl定律实现最大性能增益。本文的主要贡献是从大量优化方法中找出一些能够提高NAS性能的经济高效的方法。
本文的其余部分组织如下。第2节介绍了典型NAS的体系结构和数据流。第3节详细描述了试验台和性能测量。第4节对工作和未来研究的迹象进行了一些讨论。第5节对论文进行了总结,并对论文的贡献进行了评论。