CN111708719B - 计算机存储加速方法、电子设备及存储介质 - Google Patents
计算机存储加速方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111708719B CN111708719B CN202010470756.8A CN202010470756A CN111708719B CN 111708719 B CN111708719 B CN 111708719B CN 202010470756 A CN202010470756 A CN 202010470756A CN 111708719 B CN111708719 B CN 111708719B
- Authority
- CN
- China
- Prior art keywords
- data
- storage
- nvm
- cache
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0897—Caches characterised by their organisation or structure with two or more cache hierarchy levels
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种计算机存储加速方法、电子设备及存储介质,所述方法包括:通过建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,基于存储体系结构进行数据存储,并根据NVM和DRAM的特性构建不同机制的缓存层,得到多层级缓存存储加速机制,从而能够实现计算机输入输出性能加速以及提高数据的存储性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种计算机存储加速方法、电子设备及存储介质。
背景技术
随着科技的不断发展,计算机得到了广泛应用。计算机服务器节点分为计算节点和IO节点两种类型,其中计算节点专门负责数据处理和分析,IO节点负责传输数据,计算节点通过IO节点对核心存储设备进行读写操作。
然而,在大型的高性能计算集群中,计算密集型和输入输出密集型的计算任务的性能瓶颈通常不在计算节点的计算能力,而是在处理器与内存之间以及与外部设备之间的数据提取能力上。增加计算节点的计算能力并不会加速计算作业的执行效率和缩减计算任务的完成时间。而现有技术中并没有针对计算机的输入输出性能加速以及数据的存储性能形成有效的技术方案。
因此,如何提出一种方法,能够实现计算机输入输出性能加速,提高数据的存储性能,成为亟待解决的问题。
发明内容
针对现有技术中的缺陷,本发明实施例提供一种计算机存储加速方法、电子设备及存储介质。
第一方面,本发明实施例提供一种计算机存储加速方法,包括:
建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,并基于所述存储体系结构进行数据存储;
在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制。
优选地,所述建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,并基于所述存储体系结构进行数据存储,具体包括:
基于计算节点的内存资源,设计基于NVM和RDMA相融合的分布式文件系统,并基于所述分布式文件系统进行数据存储。
优选地,所述基于所述分布式文件系统进行数据存储,具体包括:
通过日志的形式将数据写入至本地的NVM中;
通过RDMA将数据写入至非本地的NVM中。
优选地,所述基于所述分布式文件系统进行数据存储,还包括:
后台服务进程在数据发生更新的时候,采用日志机制在NVM中记录数据的操作日志;
对于输入输出路径,具体包括:写数据时,将数据写入到本地的NVM中,本地的NVM中的数据同步复制到非本地的NVM中;读数据时,从本地的NVM的缓存中读取,若数据不存在,则从非本地的NVM中读取,若非本地的NVM中也不存在的话,则从持久性的外部存储中读取。
优选地,在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,具体包括:
在分布式文件系统的客户端,设计细粒度缓存模型和以三层索引为基础的缓存管理机制;
在分布式文件系统的服务端,设计缓存共享算法;
其中,所述细粒度缓存模型为:将DRAM作为第一级的只读缓存,将本地的NVM作为第二级缓存,将非本地的NVM作为的第三级缓存;所述三层索引为:第一层索引采用哈希表,通过将缓存片段的起始地址或结束地址查找,将整个文件等比例划分为多个数据块;第二层索引采用红黑树,当单个数据块内的单元数量超过限额时,将当前数据块内所有元素按地址排序转换成红黑树,当数据块内单元数量小于限额时,删除原始的红黑树;第三层索引是双向链表,文件片段按照开始索引与结束索引的大小自然排序,每个缓存单元都包含前置指针和后置指针指向前后最近的单元。
优选地,在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,还包括:
将本地的NVM作为缓冲层,针对相同的数据在同一时间窗口多次访问的情况,使用本地的NVM作为通用缓冲层。
优选地,所述方法还包括:
在使用所述分布式文件系统读取数据时,通过POSIX接口与NVM进行数据交互。
优选地,所述方法还包括:
使用基准测试工具Fio和Filebench对读写延时性、吞吐量和数据一致性进行Benchmark测试。
第二方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述第一方面计算机存储加速方法的各个步骤。
第三方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上所述第一方面计算机存储加速方法的各个步骤。
本发明实施例提供的计算机存储加速方法、电子设备及存储介质,通过建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,基于存储体系结构进行数据存储,并根据NVM和DRAM的特性构建不同机制的缓存层,得到多层级缓存存储加速机制,从而能够实现计算机输入输出性能加速以及提高数据的存储性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中计算机存储加速方法的流程示意图;
图2为本发明实施例中NVM和RDMA相融合的存储体系结构图;
图3为本发明实施例中缓存层的层级结构关系图;
图4为本发明实施例中电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在具体介绍本实施例内容之前,先对本实施例的计算存储加速方法的提出背景给予详细介绍。在大型的高性能计算集群中,计算密集型和输入输出密集型的计算任务的性能瓶颈通常不在计算节点的计算能力,而是在处理器与内存之间以及与外部设备之间的数据提取能力上。增加计算节点的计算能力并不会加速计算作业的执行效率和缩减计算任务的完成时间。计算节点只是在闲置的状态中等待存储环节的数据流动。对于这个问题比较成熟的做法是在高性能计算集群中,构建共享的分布式内存存储系统,降低计算节点对本地外部存储以及远程存储的依赖。RDMA的低延迟和高带宽为这种方法的实现提供了物理基础和技术支撑,但是在性能、功耗和成本整体评估和权衡的视角下,并不是最经济的做法。为了解决这个问题,本实施例引入了NVM介质,NVM存储器的带宽和延迟比分布式共享存储的性能指标要好,通过利用非易失性内存存储资源,减少对外部存储设备以及分布式共享存储的消费和调用,是缓解处理器和外部设备之间输入输出性能差距的桥梁。计算节点和存储节点彼此分离的惯用做法可以通过网络挂载存储的方式将存储节点的非易失性存储资源成为计算节点直接可用的存储资源。由此可见,NVM成为重要的存储加速技术,承担起计算和存储加速的角色。认识到把非易失性内存存储器的重要作用,把非易失性内存资源作为一种与计算节点同在的大规模的快速存储空间和形式,能够有效实现计算和存储任务一体化的性能加速。
面向未来高性能计算机规模持续增长的趋势,本实施例研究基于NVM和RDMA相融合的分布式文件系统技术,研究新型存储结构体系下多层级缓存存储加速机制与策略。针对10万以上节点规模系统的要求,设计一套基于NVM和RDMA相融合的存储加速解决方案,构建多层级缓存存储加速机制与策略,突破传统全局共享文件系统的性能瓶颈。本实施例在存储加速解决方案的基础上,构建系统原型,按照64个计算节点的系统规模,展开性能验证,技术成熟度预期达到4级。下面将通过具体的实施例对本发明提供的计算机存储加速方法给予详细的说明。
图1为本发明实施例中计算机存储加速方法的流程示意图,如图1所示,本发明实施例提供的一种计算机存储加速方法,包括:
步骤110、建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,并基于所述存储体系结构进行数据存储;
步骤120、在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制。
具体地,在大型的高性能计算集群中,计算密集型和输入输出密集型的计算任务的性能瓶颈通常不在计算节点的计算能力,而是在处理器与内存之间以及与外部设备之间的数据提取能力上。增加计算节点的计算能力并不会加速计算作业的执行效率和缩减计算任务的完成时间。计算节点只是在闲置的状态中等待存储环节的数据流动。
非易失存储器(Node Version Manager,以下简称NVM)作为新型存储器技术,具有不同于磁盘的性能特点,如低访问延迟、静态零功耗、大容量、字节访问、数据掉电不丢失等,是磁盘存储器的有力替代者。非易失性存储器主要包括两类,即适用于外存的、块寻址的闪存和适用于内存的、字节寻址的持久性内存。非易失性存储器相比于磁盘有延迟低和带宽高的特点。现有存储系统中的硬件接口、通知机制、软硬件接口等均限制了非易失性存储器低延迟与高带宽的发挥。在软件开销上,NVM硬件的开销大幅度降低,软件系统中的开销比例逐渐增大。因此,基于非易失性存储器的存储系统中的软件需要高效的设计。字节寻址的非易失性存储器与动态随机存取存储器(Dynamic Random Access Memory,以下简称DRAM)性能接近,提供了内存级的数据持久性,可在内存级构建持久性存储系统。持久性内存存储系统改变了传统存储系统两级存储的模式,即从易失性内存和非易失性外存两级结构变化至非易失性内存单极结构。
远程直接数据存取(Remote Direct Memory Access,以下简称RDMA)是一种新型的网络技术,相比传统的TCP/IP网络,其具有访问延迟低,读写带宽高等优点。在TCP/IP协议中,套接字通信首先需要将数据从用户态的用户缓冲拷贝到内核的TCP/IP协议缓冲中,然后由网卡驱动将数据从内核缓冲区拷贝到网卡缓冲中,并由网卡将数据发送到网络中,接收端的网卡接受到数据后,由网卡驱动将数据拷贝到内核的缓冲中,最后拷贝到用户态缓冲中。可以发现整个TCP/IP协议数据传输过程中,发送端和接收端都有依次内核数据拷贝的过程。而在RDMA的数据传输中,网卡DMA控制器直接从用户的数据缓冲中读取数据并发送到网络中,接收方网卡接收到数据后由网卡DMA控制器直接将数据写入到用户缓冲中。对比两者的通信过程,可以明显的发现基于RDMA的数据通信内有额外的数据拷贝,相比TCP/IP减少了两次的数据拷贝过程。
在高性能计算集群中,构建共享的分布式内存存储系统,降低计算节点对本地外部存储以及远程存储的依赖。RDMA的低延迟和高带宽提供了物理基础和技术支撑,但是在性能、功耗和成本整体评估和权衡的视角下,为了达到更经济的效果,采用NVM介质来缓解这个问题,NVM存储器的带宽和延迟比分布式共享存储的性能指标要好,通过利用非易失性内存存储资源,减少对外部存储设备以及分布式共享存储的消费和调用,是缓解处理器和外部设备之间输入输出性能差距的桥梁。
计算节点和存储节点彼此分离的惯用做法可以通过网络挂载存储的方式将存储节点的非易失性存储资源成为计算节点直接可用的存储资源。将非易失性内存资源作为一种与计算节点同在的大规模的快速存储空间和形式,实现计算和存储任务一体化的性能加速。
基于计算节点的内存资源,设计和实现基于NVM和RDMA相融合分布式文件系统原型,满足存储加速的需求。根据DRAM与NVM不同的技术特点,在存储系统体系结构中,构建不同机制的缓存层,实现多层级缓存存储加速机制与方案,优化输入输出数据读写的路径。
基于内存块的数据存储形式和基于RDMA的数据传输机制为基础,设计和实现一个面向高性能计算机结构和资源特点的分布式内存文件系统。分布式内存文件系统充分利用高性能计算机集群中计算节点的内存资源,缓解存储系统导致的I/O瓶颈,并改善I/O密集型应用的执行效率。
本发明实施例提供的基于NVM和RDMA相融合的分布式文件系统存储结构体积,以及存储结构体系下多层级缓存存储加速机制,可以满足10万以上节点规模系统的要求,突破了传统全局共享文件系统的性能瓶颈。针对高性能计算存储系统存在的“I/O墙”的问题,借助非易失性内存存储器和远程直接内存访问技术,依托高性能计算机集群中计算节点的内存资源,构建分布式文件系统与缓存层,实现存储系统的性能提升与优化,缓解高性能计算系统中计算与存储之间的性能鸿沟。
本发明实施例提供的计算机存储加速方法,通过建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,基于存储体系结构进行数据存储,并根据NVM和DRAM的特性构建不同机制的缓存层,得到多层级缓存存储加速机制,从而能够实现计算机输入输出性能加速以及提高数据的存储性能。
基于上述实施例的内容,作为一种可选实施例,所述建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,并基于所述存储体系结构进行数据存储,具体包括:
基于计算节点的内存资源,设计基于NVM和RDMA相融合的分布式文件系统,并基于所述分布式文件系统进行数据存储。
在本实施例中,面对高性能计算系统存在的“I/O墙”以及可扩展性的问题,分析分散的、异地的文件存储模式存在的性能制约因素,构建基于计算节点本地的文件存储加速模式。将非易失性内存存储器与计算节点并存,实现应用的输入输出性能加速,解决数据的存储性能,与此同时,借助非易失性内存空间实现数据读写的容错性和一致性。为了实现这一目标,通过持久性、复制性缓存一致性协议来管理分布在不同计算节点上的非易失性内存存储资源,成为底层的存储资源层,以此为基础,构建分布式文件系统。在分布式文件系统,以字节可寻址的粒度来进行字节流的读写。远处的节点充当本地非易失性存储和外部存储的之间的中介和缓存。
具体地,在高性能的计算体系中,由于计算节点和存储节点之间的距离问题,计算节点通常会成为输入输出与存储性能的瓶颈,需要结构与层级的设计来实现存储的加速。本发明实施例采用硬件和软件相结合的方法来实现高性能计算机系统的存储加速。硬件包括非易失性内存存储器和远程直接内存访问网络介质,软件是设计和实现一种充分利用计算节点内存存储资源的新型分布式文件系统。
在充分的考虑将计算节点的计算能力与非易失性存储能力作为一个整体对待的基础上,研究不同的输入输出接口,文件系统、内存类型三者之间的契合以及存储性能得到加速和提高的方法和模式。在存储的技术堆栈模型中,研究如何通过单一层级的调整,三者层级的同时调整以及增加新的层次来分析各自的性能表现,实证利用非易失性内存实现存储性能的可能路径和最优方法。
将非易失性内存存储器与计算节点并存,实现应用的输入输出性能加速,解决数据的存储性能,与此同时,借助非易失性内存空间实现数据读写的容错性和一致性。因此,通过持久性、复制性缓存一致性协议来管理分布在不同计算节点上的非易失性内存存储资源,成为底层的存储资源层,以此为基础,构建分布式文件系统。在分布式文件系统,以字节可寻址的粒度来进行字节流的读写。远处的节点充当本地非易失性存储和外部存储的之间的中介和缓存。
本发明实施例中的NVM和RDMA相融合分布式文件系统既利用了分布式文件系统的特点,又结合考虑了性能、可用性、可扩展性等方面的问题,具体如下:
(1)高性能:充分发挥计算节点内存和节点间高速互联的性能优势,并且能够支持大量节点的并发访问,同时具备较高的吞吐率。
(2)高可用性:高性能的要求建立在高可用性的前提下,无论是输出传输或者内存异常导致的数据错误,还是节点故障或者重启导致的数据丢失,都会造成数据不可用,进而严重影响应用运行的连续性和正确性。因此,需要引入数据冗余和容错机制,以保证系统的高可用性。
(3)弹性扩展:由于单个计算节点共享的内存容量有限,而且面临动态变化或者发生故障的情形,因此需要在结构设计上既能够充分利用有效的内存空间,又尽可能减少节点变化带来的影响,实现系统的弹性扩展。
图2为本发明实施例中NVM和RDMA相融合的存储体系结构图,如图2所示,NVM和RDMA相融合的存储体系结构由三个部分组成:
(1)集群管理服务模块:负责管理整个文件系统,包括节点的状态和元数据信息的维护,管理数据服务等。
(2)数据服务模块:数据服务模块接受集群管理模块的管理,协调文件的读写,控制数据迁移和同步复制,向文件调用接口提供文件访问服务。
(3)文件服务调用模块:实现POSIX标准接口,应用可以使用开发的软件调用接口为直接访问分布式文件系统。
本发明实施例提供的计算机存储加速方法,基于计算节点的内存资源,设计基于NVM和RDMA相融合的分布式文件系统,并基于所述分布式文件系统进行数据存储,充分发挥了计算节点内存和节点间高速互联的性能优势,保证系统的高可用性以及弹性扩展。
基于上述实施例的内容,作为一种可选实施例,所述基于所述分布式文件系统进行数据存储,具体包括:
通过日志的形式将数据写入至本地的NVM中;
通过RDMA将数据写入至非本地的NVM中。
在本实施例中,使用集群管理服务管理分散的非易失性内存资源,实现数据在非易失性内存存储器之间的同步和复制。文件缓存一致性服务会将文件系统的状态信息缓存到本地的非易失性内存空间中,这个缓存可以通过函数接口特殊的后台进程被应用所访问。这个后台进程实例被集群管理器集中管理,相互之间通过协作和同步来实现本地非易失性内存的更新以及不同节点存储器之间的复制。
具体地,在使用分布式文件系统读取文件数据的时候,需要去提取分散的元数据以及聚合分散的文件数据。倘若耗时过多,会导致计算处理单元和存储处理单元速率不一致和不匹配的问题。另外,基于分页的块数据内存分配粒度对小幅度的输入输出操作存在巨大的成本。针对上述问题,本发明实施例中的分布式文件系统通过POSIX接口来使用非易失性存储资源。将本地的文件系统的缓存映射到非易失性内存存储器中,而缓存的映射会按照配置的频率同步复制到其他计算节点的非易失性内存存储器中。文件缓存一致性层是为了保证系统崩溃后维护数据的一致性而设计。这一层的服务会将文件系统系统的状态缓存起来,从而确保强的一致性。
文件缓存一致性层可以通过日志的形式将数据写入本地的非易失性内存存储器上,也可以使用远程直接内存访问技术写入到非本地的非易失性内存存储器上。在分布式文件系统的协议下,通过同步复制节点来实现错误转移。
可以把本地非易失性内存作为算法管理的缓冲层来使用,针对相同的数据在同一个时间窗口需要多次访问的情形,使用非易失性内存作为通用的缓冲层会收到更加好的效果。
本发明实施例提供的计算机存储加速方法,通过日志的形式将数据写入至本地的NVM中,通过RDMA将数据写入至非本地的NVM中,从而可以保证系统崩溃后维护数据的一致性。
基于上述实施例的内容,作为一种可选实施例,所述基于所述分布式文件系统进行数据存储,还包括:
后台服务进程在数据发生更新的时候,采用日志机制在NVM中记录数据的操作日志;
对于输入输出路径,具体包括:写数据时,将数据写入到本地的NVM中,本地的NVM中的数据同步复制到非本地的NVM中;读数据时,从本地的NVM的缓存中读取,若数据不存在,则从非本地的NVM中读取,若非本地的NVM中也不存在的话,则从持久性的外部存储中读取。
具体地,分布式缓存一致性层在有关节点崩溃的情况下,提供数据的一致性保护和机制。后台服务进程在数据发生更新的时候,采用日志机制在非易失性内存中记录数据的操作日志。
对于输入输出的路径,写数据的路径流水线为:后台服务进程将数据写入到本地的非易失性内存中,本地的非易失性内存中的数据同步复制到其他节点的非易失性内存中。读数据的时候,只需要从本地的非易失性内存的缓存中读取,如果数据不存在的话,则从其他节点读取,如果还是不存在的话,从持久性的外部存储中读取。
本发明实施例提供的计算机存储加速方法,通过分布式文件系统进行数据存储,从而在有关节点崩溃的情况下,能够提供数据的一致性保护和机制。
基于上述实施例的内容,作为一种可选实施例,在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,具体包括:
在分布式文件系统的客户端,设计细粒度缓存模型和以三层索引为基础的缓存管理机制;
在分布式文件系统的服务端,设计缓存共享算法;
其中,所述细粒度缓存模型为:将DRAM作为第一级的只读缓存,将本地的NVM作为第二级缓存,将非本地的NVM作为的第三级缓存;所述三层索引为:第一层索引采用哈希表,通过将缓存片段的起始地址或结束地址查找,将整个文件等比例划分为多个数据块;第二层索引采用红黑树,当单个数据块内的单元数量超过限额时,将当前数据块内所有元素按地址排序转换成红黑树,当数据块内单元数量小于限额时,删除原始的红黑树;第三层索引是双向链表,文件片段按照开始索引与结束索引的大小自然排序,每个缓存单元都包含前置指针和后置指针指向前后最近的单元。
具体地,分布式存储系统中存在着客户端、元数据服务器和存储节点不同的存储实体。客户端的用户访问存储系统时需首先访问元数据服务器,在获取元数据后访问存储节点。分布式存储中采用多级缓存,如客户端的缓存、服务器端的缓存、存储控制器缓存、高性能存储器的缓存等。
高速网络使得访问远程内存的数据性能比访问本地磁盘的数据快,合作缓存技术就是利用这一特点将网络连接的缓存资源统一管理而构成合作缓存系统。合作缓存增加了全局缓存空间提高全局缓存的命中率进而提高整个外存系统的性能。
在分布式文件系统的客户端,设计细粒度缓存模型和以三层索引为基础的缓存管理机制;在分布式文件系统服务端,设计缓存共享算法,能够为缓存系统提供一种共享策略,满足多个客户调用时的效率与公平,在保证近似公平的基础上最大化全局效益。需要说明的是,本发明实施例是对不同的缓存共享算法做了集成,但也有其它的实现算法,可以根据具体的实际需求,可插拔的替换不同的算法,本发明实施例对此不作具体限定。
图3为本发明实施例中缓存层的层级结构关系图,如图3所示,缓存层的层级结构关系包括以下两个部分:
(1)缓存空间管理层:该层提供索引机制、操作算子、并发管理、数据管理功能。索引机制通过三层索引方案高效存储和查找缓存单元;操作算子模块面向缓存块交叉、重合等场景设计多种算子,进行缓存空间修改查询;并发管理模块使用区间锁和任务锁进行缓存并发读写管理和死锁检查;数据管理通过推送或拉取的方式同步缓存。
(2)方案管理层:该层包括缓存模式和迁移方案。缓存模式提供同步机制和基于自适应滑动窗口的异步机制。迁移方案基于子模优化算法实现,提供提升和替换两种模式。
为了高效地管理变长缓存单元,设计三层索引。第一层索引采用哈希表,通过将缓存片段的起始地址或结束地址查找,将整个文件等比例划分为多个数据块;第二层索引采用红黑树,当单个数据块内的单元数量超过限额时,缓存模型会将当前数据块内所有元素按地址排序转换成红黑树,当数据块内单元数量小于限额时,会删除原始的红黑树。第三层索引是双向链表,文件片段按照开始索引与结束索引的大小自然排序,每个缓存单元都包含前置指针和后置指针指向前后最近的单元。
在分布式文件系统的服务端,缓存系统提供一种共享方案,满足多个客户调用时的效率性与公平性,在保证近似公平的基础上最大化全局效益。与此同时,实现缓存共享方案的可插拔,进而实现缓存共享方案的可替换,保证数据的可靠性和系统的高可用性。
本发明实施例提供的计算机存储加速方法,通过在存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,从而保证数据的可靠性和系统的高可用性。
基于上述实施例的内容,作为一种可选实施例,在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,还包括:
将本地的NVM作为缓冲层,针对相同的数据在同一时间窗口多次访问的情况,使用本地的NVM作为通用缓冲层。
具体地,从缓存的层级结构考虑,设计缓存空间管理与缓存方案。将本地非易失性内存作为算法管理的缓冲层来使用,针对相同的数据在同一个时间窗口需要多次访问的情形,使用非易失性内存作为通用的缓冲层效果更佳。
考虑存储的层级结构,DRAM是第一层的只读缓存,本地的非易失性内存是带有数据更新日志的二级缓存,远程的非易失性内存是第三级缓存。不同的数据缓存之间可以采用不同的数据迁移方案,例如可以采用LRU算法。
本发明实施例提供的计算机存储加速方法,通过在存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,从而保证数据的可靠性和系统的高可用性。
基于上述实施例的内容,作为一种可选实施例,还包括:在使用所述分布式文件系统读取数据时,通过POSIX接口与NVM进行数据交互。
具体地,分布式文件系统读取数据时,通过POSIX接口与NVM进行数据交互。实现POSIX标准接口,应用可以使用开发的软件调用接口为直接访问分布式文件系统。在使用分布式文件系统读取文件数据的时候,需要去提取分散的元数据以及聚合分散的文件数据。倘若耗时过多的话,就会导致计算处理单元和存储处理单元速率不一致和不匹配的问题。另外,基于分页的块数据内存分配粒度对小幅度的输入输出操作存在巨大的成本。针对上述问题,分布式文件系统通过POSIX接口来使用非易失性存储资源。将本地的文件系统的缓存映射到非易失性内存存储器中,而缓存的映射会按照配置的频率同步复制到其他计算节点的非易失性内存存储器。
其中,分布式文件系统将计算机中的数据存储并组织起来,使得数据易于查找和访问,因此文件系统对计算机系统的I/O有重要影响。在多机环境中,并行文件系统通过网络连接多个存储节点,将单个文件的数据采用分条等形式存放于不同的存储节点之上,并提供单一的目录空间,支持多机多个进程的并发存取,因此,它能提供更大的存储容量和聚合I/O带宽,其容量和带宽也可随系统规模的扩大而扩展,缓解了I/O瓶颈问题。主要采取分布式元数据管理缓存锁管理容错技术数据布局以及POSIX文件系统接口扩展等。分布式并行文件系统设计目标是单一文件映像和访问文件并行化,提供一个数据分布均衡、I/O操作并行度高的文件系统。其重点是实现单一文件映像、访问文件的并行化、集中I/O、异步I/O、元数据的分布、元数据的一致性等。
元数据管理技术是文件系统的关键技术。元数据的分布策略主要有:静态子树策略、动态子树策略、随机分布策略等,也可以是其策略的组合应用。目前大部分并行文件系统均采用集中的元数据管理方式。分布式的元数据管理,则使用一个服务器集群存储和管理元数据,利用多台服务器来共同承担元数据访问的负载,可避免出现由单一元数据服务器产生的性能瓶颈问题。
本发明实施例提供的计算机存储加速方法,在使用分布式文件系统读取数据时,通过POSIX接口与NVM进行数据交互,从而能够保证计算处理单元和存储处理单元速率一致和匹配,同时降低输入输出操作存在巨大的成本。
基于上述实施例的内容,作为一种可选实施例,还包括:
使用基准测试工具Fio和Filebench对读写延时性、吞吐量和数据一致性进行Benchmark测试。
具体地,通过Benchmark测试和应用测试全面评估基于计算节点内存的分布式内存文件系统的性能和使用价值。在做基准性能测试的基础之上,与现有的分布式存储系统进行比较,譬如Ceph、NFS、Octopus等,检测在读写延时性、吞吐量、数据一致性上的优良性。使用基准测试工具Fio和Filebench进行Benchmark测试。通过宏观的性能基准测试以及微观的性能基准测试来验证技术方案的正确性和有效性。在证实上述技术方案的基础上,设计高性能计算机系统利用非易失性内存实现存储加速的迁移方法,明确不同的架构类型和布局的迁移模式,为现存的高性能计算系统实现架构、部署重构和过渡提供依据。同时在上述实施例技术方案的基础上,构建系统原型,按照64个计算节点的系统规模,展开性能验证,技术成熟度可以达到4级。
本发明实施例提供的计算机存储加速方法,使用基准测试工具Fio和Filebench对读写延时性、吞吐量和数据一致性进行Benchmark测试,从而实现全面评估基于计算节点内存的分布式内存文件系统的性能和使用价值。
另外,本发明实施例根据高性能计算机的架构体系,归纳非易失性存储器的研究成果和应用水平,分析高性能计算机发展趋势;然后选取高性能计算集群中的计算和存储分离的典型性架构作为研究对象,分析其性能的瓶颈,引入非易失性内存存储设备,设计系统原型,最后对系统原型进行真实场景的测试。
利用计算节点的非易失性内存,消除了计算和永久性存储之间通过网络通信进行数据传输的环节。在计算节点中,将存储节点中的数据预加载到非易失性内存中,使得输入和输出的路径节点移植到本地的内存中。
在软件架构上,开启透明的预定义的进程来处理全局和本地的任务调度和数据迁移。依据现代的Linux的输入输出软件栈,应用通过POSIX接口提供的读写指令通过文件系统来对非易失性内存设备层的文件进行读写。分布式的文件系统可以直接的访问到非易失性内存存储器,并且在应用级别提供访问的管理职能。本发明实施例中分布式文件系统既替代了传统的文件系统,也可以作为对内置非易失性内存存储器直接访问的接口,从而可以确保数据存储的一致性,以便处理在不同的设备和协议之间进行数据转换的开销。
在具体工程实现上,以Strata的代码库为基础,研发相应的功能组件与进程服务,使用的数据结构包括哈希表、链表、红黑树等。分布式文件系统使用libpmem软件包来将数据持久化到非易失性内存存储器上,使用libibverbs来进行与远程直接内存访问相关的操作。通过对一些元器件进行仿真,搭建仿真框架,对环境进行相关配置,构建测试环境。
本发明实施例的技术方案还可以应用于以下方面,具体为:
(1)提高高性能计算机的资源利用率:由于大多数计算节点在运行计算密集型应用时,至少有一半的内存是空闲的,而且计算节点之间的告诉互联带宽没有被充分利用。因此,基于这些内存空闲的计算节点构建的分布式文件系统会极大提高高性能计算机的资源利用率。
(2)缓解现有存储系统的输入输出压力:现有存储系统大多通过输入输出节点或者直连的方式访问存储空间,分布式文件系统建立在数量众多的计算节点上,对于有存储节点的结构可以减少并发输入输出数量,对于直连的结构可以降低存储设备的输入输出访问冲突,会在一定程度上缓解现有存储系统的输入输出压力。
(3)缩小存储系统与计算系统之间的性能差距:由于分布式文件系统以内存作为底层的存储介质,同时利用支持远程直接内存访问的高速互联网络进行数据传输,因而该系统的性能会大幅度优于现有的存储系统,从而缩小存储系统与计算系统之间的性能差距。
(4)改善输入输出密集型应用的执行性能:分布式文件系统比较适合输入输出密集型的高性能计算应用。一方面,方案设计具有通用性,方便应用进行迁移和部署;另一方面,相比于现有存储系统的性能优势可以重点改善数据密集型和输入输出密集型应用的执行。
对高性能计算系统存在的“I/O墙”以及可扩展性的问题,分析分散的、异地的文件存储模式存在的性能制约因素,本发明实施例基于计算节点本地的文件存储加速模式,将非易失性内存存储器与计算节点并存,实现应用的输入输出性能加速,解决数据的存储性能,与此同时,借助非易失性内存空间实现数据读写的容错性和一致性。通过持久性、复制性缓存一致性协议来管理分布在不同计算节点上的非易失性内存存储资源,成为底层的存储资源层,以此为基础,构建分布式文件系统。在分布式文件系统,以字节可寻址的粒度来进行字节流的读写。远处的节点充当本地非易失性存储和外部存储的之间的中介和缓存。
图4为本发明实施例中电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器810可以调用存储器430中的逻辑指令,以执行如上所述计算机存储加速方法的各个步骤。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的计算机存储加速方法。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (6)
1.一种计算机存储加速方法,其特征在于,包括:
建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,并基于所述存储体系结构进行数据存储;
在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制;
所述根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,具体包括:
在分布式文件系统的客户端,设计细粒度缓存模型和以三层索引为基础的缓存管理机制;
在分布式文件系统的服务端,设计缓存共享算法;
其中,所述细粒度缓存模型为:将DRAM作为第一级的只读缓存,将本地的NVM作为第二级缓存,将非本地的NVM作为的第三级缓存;所述三层索引为:第一层索引采用哈希表,通过将缓存片段的起始地址或结束地址查找,将整个文件等比例划分为多个数据块;第二层索引采用红黑树,当单个数据块内的单元数量超过限额时,将当前数据块内所有元素按地址排序转换成红黑树,当数据块内单元数量小于限额时,删除原始的红黑树;第三层索引是双向链表,文件片段按照开始索引与结束索引的大小自然排序,每个缓存单元都包含前置指针和后置指针指向前后最近的单元;
所述建立非易失存储器NVM和远程直接数据存取RDMA相融合的存储体系结构,并基于所述存储体系结构进行数据存储,具体包括:
基于计算节点的内存资源,设计基于NVM和RDMA相融合的分布式文件系统,并基于所述分布式文件系统进行数据存储;
所述基于所述分布式文件系统进行数据存储,具体包括:
通过日志的形式将数据写入至本地的NVM中;
通过RDMA将数据写入至非本地的NVM中;
所述基于所述分布式文件系统进行数据存储,还包括:
后台服务进程在数据发生更新的时候,采用日志机制在NVM中记录数据的操作日志;
对于输入输出路径,具体包括:写数据时,将数据写入到本地的NVM中,本地的NVM中的数据同步复制到非本地的NVM中;读数据时,从本地的NVM的缓存中读取,若数据不存在,则从非本地的NVM中读取,若非本地的NVM中也不存在的话,则从持久性的外部存储中读取。
2.根据权利要求1所述的计算机存储加速方法,其特征在于,在所述存储体系结构中,根据NVM和DRAM的特性构建不同机制的缓存层,以实现多层级缓存存储加速机制,还包括:
将本地的NVM作为缓冲层,针对相同的数据在同一时间窗口多次访问的情况,使用本地的NVM作为通用缓冲层。
3.根据权利要求2所述的计算机存储加速方法,其特征在于,还包括:在使用所述分布式文件系统读取数据时,通过POSIX接口与NVM进行数据交互。
4.根据权利要求1所述的计算机存储加速方法,其特征在于,还包括:
使用基准测试工具Fio和Filebench对读写延时性、吞吐量和数据一致性进行Benchmark测试。
5.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述计算机存储加速方法的步骤。
6.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至4任一项所述计算机存储加速方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470756.8A CN111708719B (zh) | 2020-05-28 | 2020-05-28 | 计算机存储加速方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010470756.8A CN111708719B (zh) | 2020-05-28 | 2020-05-28 | 计算机存储加速方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111708719A CN111708719A (zh) | 2020-09-25 |
CN111708719B true CN111708719B (zh) | 2023-06-23 |
Family
ID=72538715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010470756.8A Active CN111708719B (zh) | 2020-05-28 | 2020-05-28 | 计算机存储加速方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111708719B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112988680B (zh) * | 2021-03-30 | 2022-09-27 | 联想凌拓科技有限公司 | 数据加速方法、缓存单元、电子设备及存储介质 |
CN113220693B (zh) * | 2021-06-02 | 2023-10-20 | 北京火山引擎科技有限公司 | 计算存储分离系统及其数据访问方法、介质和电子设备 |
CN113986134B (zh) * | 2021-10-27 | 2024-02-27 | 北京百度网讯科技有限公司 | 存储数据的方法、读取数据的方法和装置 |
CN114697372B (zh) * | 2022-05-31 | 2022-09-06 | 深圳市泛联信息科技有限公司 | 一种分布式系统中数据传输处理与存储方法、系统及介质 |
CN115033608B (zh) * | 2022-08-12 | 2022-11-04 | 广东采日能源科技有限公司 | 一种储能系统信息的分级处理方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
CN108628775A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种资源管理的方法和装置 |
CN109144413A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种元数据管理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180032249A1 (en) * | 2016-07-26 | 2018-02-01 | Microsoft Technology Licensing, Llc | Hardware to make remote storage access appear as local in a virtualized environment |
-
2020
- 2020-05-28 CN CN202010470756.8A patent/CN111708719B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105786717A (zh) * | 2016-03-22 | 2016-07-20 | 华中科技大学 | 软硬件协同管理的dram-nvm层次化异构内存访问方法及系统 |
CN108628775A (zh) * | 2017-03-22 | 2018-10-09 | 华为技术有限公司 | 一种资源管理的方法和装置 |
CN109144413A (zh) * | 2018-07-27 | 2019-01-04 | 郑州云海信息技术有限公司 | 一种元数据管理方法及装置 |
Non-Patent Citations (2)
Title |
---|
Persistence Parallelism Optimization: A Holistic Approach from Memory Bus to RDMA Network;Xing Hu等;《2018 51st Annual IEEE/ACM International Symposium on Microarchitecture (MICRO)》;IEEE;20181213;第494-506页 * |
面向大数据的混合内存管理关键技术研究;余松平;《中国博士学位论文全文数据库(电子期刊)》;20200215(第2期);第I137-15页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111708719A (zh) | 2020-09-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111708719B (zh) | 计算机存储加速方法、电子设备及存储介质 | |
US11068395B2 (en) | Cached volumes at storage gateways | |
Chen et al. | Flatstore: An efficient log-structured key-value storage engine for persistent memory | |
US10929428B1 (en) | Adaptive database replication for database copies | |
US9274956B1 (en) | Intelligent cache eviction at storage gateways | |
US9268651B1 (en) | Efficient recovery of storage gateway cached volumes | |
US9559889B1 (en) | Cache population optimization for storage gateways | |
US10725666B2 (en) | Memory-based on-demand data page generation | |
US20220114064A1 (en) | Online restore for database engines | |
US10244069B1 (en) | Accelerated data storage synchronization for node fault protection in distributed storage system | |
US10909143B1 (en) | Shared pages for database copies | |
US11455290B1 (en) | Streaming database change data from distributed storage | |
US11741144B2 (en) | Direct storage loading for adding data to a database | |
Paulo et al. | Efficient deduplication in a distributed primary storage infrastructure | |
Yang et al. | Tombolo: Performance enhancements for cloud storage gateways | |
US10387384B1 (en) | Method and system for semantic metadata compression in a two-tier storage system using copy-on-write | |
Shen et al. | Ditto: An elastic and adaptive memory-disaggregated caching system | |
US11803314B2 (en) | Techniques for performing metadata updates | |
US10073874B1 (en) | Updating inverted indices | |
US20230169093A1 (en) | Fast database scaling utilizing a decoupled storage and compute architecture | |
US11698914B1 (en) | Serverless managed bulk import on a global NoSQL database with selective back pressure | |
CN115794819A (zh) | 一种数据写入方法及电子设备 | |
US20220164228A1 (en) | Fine-grained virtualization resource provisioning for in-place database scaling | |
US11886439B1 (en) | Asynchronous change data capture for direct external transmission | |
US11341163B1 (en) | Multi-level replication filtering for a distributed database |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |