CN112214178B - 一种存储***、数据读取方法及数据写入方法 - Google Patents
一种存储***、数据读取方法及数据写入方法 Download PDFInfo
- Publication number
- CN112214178B CN112214178B CN202011273132.3A CN202011273132A CN112214178B CN 112214178 B CN112214178 B CN 112214178B CN 202011273132 A CN202011273132 A CN 202011273132A CN 112214178 B CN112214178 B CN 112214178B
- Authority
- CN
- China
- Prior art keywords
- data
- pool
- osd
- ssd
- read
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请实施例提供了一种存储***、数据读取方法及数据写入方法,涉及存储技术领域。存储***包括缓存池和后端池,缓存池中的OSD用于查询缓存池中是否存在待读取数据的对象;若是,从缓存池中读取待读取数据;若否,则向后端池转发数据读取请求;后端池中的OSD用于查询后端池的SSD中是否存在待读取数据的对象;若是,从后端池的SSD中读取待读取数据;若否,从后端池的HDD中读取待读取数据;缓存池中的OSD还用于查询缓存池的SSD中是否存在待写入数据的对象;若是,将待写入数据写入缓存池的SSD;若否,向后端池转发数据写入请求;后端池中的OSD还用于将待写入数据写入后端池的SSD和HDD。可以提高数据读写性能。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种存储***、数据读取方法及数据写入方法。
背景技术
随着大数据的兴起,数据存储变得尤为重要,由于机械硬盘(Hard Disk Drive,HDD)具有成本低的优势,所以目前通常使用HDD存储海量数据。然而HDD的数据读写性能有限,在HDD中存储有海量数据的情况下,若接收到数据读写(I/O)请求,则需从海量数据中查找需读写的数据的存储位置,存在较长的处理时延,数据读写性能较差。
发明内容
本发明实施例的目的在于提供一种存储***、数据读取方法、数据写入方法,以提高数据读写性能。具体技术方案如下:
第一方面,本申请实施例提供一种存储***,所述存储***包括缓存池和后端池,所述缓存池中包括多个对象存储设备OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘HDD;
所述缓存池中的OSD,用于接收客户端发送的针对待读取数据的数据读取请求,查询所述缓存池的SSD中是否存在所述待读取数据的对象;若存在,则基于所述待读取数据的对象从所述缓存池的SSD中读取所述待读取数据;若不存在,则向所述后端池中的OSD转发所述数据读取请求;
所述后端池中的OSD,用于接收所述数据读取请求,通过flashcache模块查询所述后端池的SSD中是否存在所述待读取数据的对象;若存在,则基于所述待读取数据的对象从所述后端池的SSD中读取所述待读取数据;若不存在,则从所述后端池的HDD中读取所述待读取数据;
所述缓存池中的OSD,还用于接收客户端发送的针对待写入数据的数据写入请求,查询所述缓存池的SSD中是否存在所述待写入数据的对象;若存在,则基于所述待写入数据的对象将所述待写入数据写入所述缓存池的SSD;若不存在,则向所述后端池中的OSD转发所述数据写入请求;
所述后端池中的OSD,还用于接收所述数据写入请求,将所述待写入数据写入所述后端池的SSD和HDD。
在一种可能的实现方式中,所述后端池中的OSD,还用于在从所述后端池的HDD中读取所述待读取数据后,将读取到的数据缓存于所述后端池的SSD中。
在一种可能的实现方式中,所述后端池中的OSD,还用于在将所述待写入数据写入所述后端池的SSD和HDD之后,向所述缓存池中的OSD发送数据写入响应,所述数据写入响应中携带此次写入的数据;
所述缓存池中的OSD,用于接收所述缓存池中的OSD发送的数据写入响应,将所述数据写入响应中携带的数据缓存于所述缓存池的SSD。
第二方面,本申请实施例提供一种数据读取方法,所述方法应用于存储***的缓存池中的对象存储设备OSD,所述存储***还包括后端池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘HDD,所述方法包括:
接收客户端发送的针对待读取数据的数据读取请求;
查询所述缓存池的SSD中是否存在所述待读取数据的对象;
若存在,则基于所述待读取数据的对象从所述缓存池的SSD中读取所述待读取数据;
若不存在,则向所述后端池中的OSD转发所述数据读取请求,以使得所述后端池中的OSD通过flashcache模块查询所述后端池的SSD中是否存在所述待读取数据的对象;若存在,则基于所述待读取数据的对象从所述后端池的SSD中读取所述待读取数据;若不存在,则从所述后端池的HDD中读取所述待读取数据。
第三方面,本申请实施例提供一种数据读取方法,所述方法应用于存储***的后端池中的对象存储设备OSD,所述存储***还包括缓存池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘,所述方法包括:
接收所述缓存池中的OSD发送的数据读取请求;
通过flashcache模块查询所述后端池的SSD中是否存在所述待读取数据的对象;
若存在,则基于所述待读取数据的对象从所述后端池的SSD中读取所述待读取数据;
若不存在,则从所述后端池的HDD中读取所述待读取数据。
在一种可能的实现方式中,在从所述后端池的HDD中读取所述待读取数据之后,所述方法还包括:
将读取到的数据缓存于所述后端池的SSD中。
第四方面,本申请实施例提供一种数据写入方法,所述方法应用于存储***的缓存池中的对象存储设备OSD,所述存储***还包括后端池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘HDD,所述方法包括:
接收客户端发送的针对待写入数据的数据写入请求;
查询所述缓存池的SSD中是否存在所述待写入数据的对象;
若存在,则基于所述待写入数据的对象将所述待写入数据写入所述缓存池的SSD;
若不存在,则向所述后端池中的OSD转发所述数据写入请求,以使得所述后端池中的OSD将所述待写入数据写入所述后端池的SSD和HDD。
在一种可能的实现方式中,在向所述后端池中的OSD转发所述数据写入请求之后,所述方法还包括:
接收所述后端池中的OSD发送的数据写入响应,所述数据写入响应中携带此次写入的数据;
将所述数据写入响应中携带的数据缓存于所述缓存池的SSD。
第五方面,本申请实施例提供一种数据写入方法,所述方法应用于存储***的后端池中的对象存储设备OSD,所述存储***还包括缓存池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘,所述方法包括:
接收所述缓存池中的OSD发送的针对待写入数据的数据写入请求;
将所述待写入数据写入所述后端池的SSD和HDD。
在一种可能的实现方式中,在将所述待写入数据写入所述后端池的SSD和HDD之后,所述方法还包括:
向所述缓存池中的OSD发送数据写入响应,所述数据写入响应中携带此次写入的数据,以使得所述缓存池中的OSD将所述数据写入响应中携带的数据缓存于所述缓存池的SSD。
第六方面,本发明实施例还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第二方面所述的数据读取方法步骤,和/或上述第四方面所述的数据写入方法步骤。
第七方面,本发明实施例还提供一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第三方面所述的数据读取方法步骤,和/或上述第五方面所述的数据写入方法步骤。
第八方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第二方面所述的数据读取方法,和/或上述第四方面所述的数据写入方法。
第九方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第三方面所述的数据读取方法,和/或上述第五方面所述的数据写入方法
第十方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面所述的数据读取方法,和/或上述第四方面所述的数据写入方法。
第十一方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第三方面所述的数据读取方法,和/或上述第五方面所述的数据写入方法。
采用上述技术方案,可以优先从缓存池的SSD中读取数据或者写入数据,因SSD具有读写速度快的特点,所以从缓存池的SSD中读取数据或者写入数据的速度较快,可以提高数据读写效率。若缓存池的SSD中不存在待读取数据的对象,还可以进一步从后端池的SSD中查找待读取数据的对象,因本申请的存储***具有两级缓存,提高了从缓存中读取数据的命中率,相比于现有技术,采用本申请实施例的存储***进行数据读写操作的数据读写性能较好。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种存储***的结构示意图;
图2为本申请实施例提供的一种数据读取方法的流程图;
图3为本申请实施例提供的另一种数据读取方法的流程图;
图4为本申请实施例提供的一种数据写入方法的流程图;
图5为本申请实施例提供的另一种数据写入方法的流程图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请实施例提供一种存储***,如图1所示,该存储***包括缓存池和后端池,缓存池中包括多个对象存储设备(Object Storage Device,OSD)和每个OSD对应的SSD,后端池中包括固态硬盘(Solid State Disk,SSD)、多个OSD和每个OSD对应的HDD。
其中,缓存池中的SSD和后端池中的SSD均用于缓存数据,后端池中的HDD用于存储数据。缓存池中的OSD与SSD之间具有映射关系,缓存池中的OSD可对与自身具有映射关系的SSD进行数据读写操作。后端池中的OSD与HDD之间具有映射关系,后端池中的OSD可对与自身具有映射关系的HDD进行数据读写操作。
缓存池中的OSD,用于接收客户端发送的针对待读取数据的数据读取请求,查询缓存池中的SSD中是否存在待读取数据的对象;若存在,则基于待读取数据的对象从缓存池的SSD中读取待读取数据;若不存在,则向后端池中的OSD转发数据读取请求。
后端池中的OSD,用于接收数据读取请求,通过flashcache(闪存缓存)模块查询后端池的SSD中是否存在待读取数据的对象;若存在,则基于待读取数据的对象从后端池的SSD中读取待读取数据;若不存在,则从后端池的HDD中读取待读取数据。
缓存池中的OSD,还用于接收客户端发送的针对待写入数据的数据写入请求,查询缓存池的SSD中是否存在待写入数据的对象;若存在,则基于待写入数据的对象将待写入数据写入缓存池的SSD;若不存在,则向后端池中的OSD转发数据写入请求。
后端池中的OSD,用于接收数据写入请求,将待写入数据写入后端池的SSD和HDD。
其中,flashcache模块是基于Linux的内核模块,用于将SSD作为缓存,将热门数据缓存到该SSD上,从而加速数据处理速度。
采用上述技术方案,可以优先从缓存池的SSD中读取数据或者写入数据,因SSD具有读写速度快的特点,所以从缓存池的SSD中读取数据或者写入数据的速度较快,可以提高数据读写效率。若缓存池的SSD中不存在待读取数据的对象,还可以进一步从后端池的SSD中查找待读取数据的对象,因本申请的存储***具有两级缓存,提高了从缓存中读取数据的命中率,相比于现有技术,采用本申请实施例的存储***进行数据读写操作的数据读写性能较好。
在一种实施方式中,缓存池中的OSD,还用于在确定缓存池的SSD中不存在待读取数据的对象的情况下,计算后端池中用于处理数据读取请求的主OSD,向该主OSD转发数据读取请求。相应地,后端池中的主OSD接收该数据读取请求,并按照上述记载的方式处理该数据读取请求。计算用于处理数据读取请求的主OSD的方法可参考相关技术中的描述,此处不再赘述。
可选地,后端池中的OSD,还用于在从后端池的HDD中读取待读取数据后,将读取到的数据缓存于后端池的SSD中。
采用本申请实施例,将此次读取到的数据缓存于后端池中的SSD中后,若后续再次收到针对该数据的数据读取请求,可以从该SSD中读取数据,相比于从HDD中读取数据可以提高读取效率,可以提高存储***的数据读取性能。
在本申请另一实施例中,后端池中的OSD,在将待写入数据写入后端池的SSD和HDD后,向缓存池中的OSD发送数据写入响应,数据写入响应中携带此次写入的数据;
缓存池中的OSD,用于接收缓存池中的OSD发送的数据写入响应,将数据写入响应中携带的数据缓存于缓存池的SSD。
采用本申请实施例,将数据写入响应中携带的数据缓存于缓存池的SSD,在后续写入数据时,可以提高在缓存池的SSD中写成功的概率,提高数据写入效率。
在本申请实施例中,为避免缓存池中缓存的数据过多,可以周期性将缓存池的SSD中缓存的数据写入后端池的HDD;或者,在缓存池中的SSD缓存的数据量达到一定阈值后,将缓存池的SSD中缓存的数据写入后端池的HDD。
基于此,缓存池中的OSD,还用于向后端池中的OSD发送刷盘请求。
后端池中的OSD,还用于接收刷盘请求,响应于该刷盘请求,向缓存池中的OSD发送数据获取请求。其中,该数据获取请求用于请求获取缓存池的SSD中被写入的数据。
缓存池中的OSD,还用于接收数据获取请求,并向后端池的OSD发送缓存池中的SSD缓存的数据。
后端池中的OSD,还用于将接收到的数据存储于后端池中的HDD。
采用上述技术方案,可以实现flashcache模块和缓存池的结合,在SSD和HDD共存的场景下,可以缓解刷盘操作对数据读写性能的影响,通过该存储***可以降低刷盘时延,且提高数据读写效率。
在图1所示的存储***的基础上,本申请实施例还提供了一种数据读取方法及一种数据写入方法,以下对数据读取方法和数据写入方法进行详细说明。
如图2所示,本申请实施例提供了一种数据读取方法,该方法应用于存储***的缓存池中的OSD,该方法包括:
S201、接收客户端发送的针对待读取数据的数据读取请求。
S202、查询缓存池的SSD中是否存在待读取数据的对象。若是,则执行S203;若否,则执行S204。
其中,缓存池中的OSD与SSD之间具有映射关系,缓存池中的OSD具体可查询与自身具有映射关系的SSD中是否存在待读取数据的对象。
S203、基于待读取数据的对象从缓存池的SSD中读取待读取数据。
其中,缓存池中的OSD从缓存池的SSD读取待读取数据后,可向客户端返回读取到的数据。
S204、向后端池中的OSD转发数据读取请求,以使得后端池中的OSD通过flashcache模块查询后端池的SSD中是否存在待读取数据的对象;若存在,则基于待读取数据的对象从后端池的SSD中读取待读取数据;若不存在,则从后端池的HDD中读取待读取数据。
其中,缓存池中的OSD在确定缓存池的SSD中不存在待读取数据的对象的情况下,可以计算后端池中用于处理数据读取请求的主OSD,向该主OSD转发数据读取请求。计算用于处理数据读取请求的主OSD的方法可参考相关技术中的描述,此处不再赘述。
采用该方法,缓存池中的OSD接收到数据读取请求后,可以优先从缓存池的SSD中读取数据,若缓存池的SSD中不存在待读取数据的对象,则向后端池中的OSD转发数据请求,使得后端池中的OSD优先从后端池中的SSD中读取数据,若后端池的SSD中也不存在待读取数据的对象,才会从HDD中读取数据。因存在两级SSD缓存,可以提高从SSD缓存中读取到数据的可能性,因SSD具有读写速度快的特点,所以从SSD中读取数据的速度较快,可以提高读取性能。
与图2所示的数据读取方法对应,本申请实施例还提供一种数据读取方法,应用于存储***的后端池中的OSD,如图3所示,该方法包括:
S301、接收缓存池中的OSD发送的数据读取请求。
S302、通过flashcache模块查询后端池的SSD中是否存在待读取数据的对象。
若是,则执行S303;若否,则执行S304。
S303、基于待读取数据的对象从后端池的SSD中读取待读取数据。
S304、从后端池的HDD中读取待读取数据。
可选地,在从后端池的HDD中读取待读取数据后,可以将读取到的数据缓存于后端池的SSD中,以提高后续读取该数据的命中率。
可以理解的,后端池的OSD读取待读取数据后,可向缓存池中的OSD返回数据读取响应,该数据读取响应中携带读取到的数据,进而缓存池中的OSD可向客户端返回读取到的数据。
采用该方法,在缓存池中未缓存待读取数据的情况下,后端池中的OSD先通过flashcache模块查询后端池的SSD中是否存在待读取数据,若后端池的SSD中存在待读取数据,则无需从HDD中读取数据,可以提高数据读写效率。
如图4所示,本申请实施例还提供了一种数据写入方法,该方法应用于该方法应用于存储***的缓存池中的OSD,该方法包括:
S401、接收客户端发送的针对待写入数据的数据写入请求。
S402、查询缓存池的SSD中是否存在待写入数据的对象。
若是,则执行S403;若否,则执行S404。
S403、基于待写入数据的对象将待写入数据写入缓存池的SSD。
在将待写入数据写入缓存池的SSD后,可以向客户端返回数据写入成功响应。
S404、向后端池中的OSD转发数据写入请求,以使得后端池中的OSD将待写入数据写入后端池的SSD和HDD。
采用该方法,缓存池中的OSD接收到数据写入请求后,若查询到缓存池的SSD中存在待写入数据的对象,则可将待写入数据写入缓存池的SSD,在这种情况下,优先向缓存池的SSD中写入数据,可以提高数据写入效率,若缓存池的SSD中不存在待写入数据的对象,再向后端池的OSD和HDD中写入数据,使得数据最终可以写入成功,实现了较好的数据写入性能。
可选地,缓存池中的OSD向后端池中的OSD转发数据写入请求后,还可以接收后端池中的OSD发送的数据写入响应,该数据写入响应中携带此次写入的数据。然后缓存池中的OSD可将该数据写入响应中携带的数据缓存于缓存池的SSD。
在本申请实施例中,缓存池中的OSD接收到该数据写入响应后,可以向客户端返回数据写入成功响应。
采用该方法,将数据写入响应中携带的数据缓存于缓存池的SSD,在后续写入数据时,可以提高在缓存池的SSD中写成功的概率,提高数据写入效率。
与图4所示的数据写入方法对应,本申请实施例还提供一种数据写入方法,应用于存储***的后端池中的OSD,如图5所示,该方法包括:
S501、接收缓存池中的OSD发送的针对待写入数据的数据写入请求。
其中,该数据写入请求为缓存池中的OSD未在缓存池中的SSD中查询到待写入数据的数据对象的情况下发送的。
S502、将待写入数据写入所述后端池的SSD和HDD。
其中,后端池中的OSD可采用异步写入的方式,将待写入数据写入后端池的SSD和HDD。
采用该方法,在缓存池中的SSD不存在待写入数据的对象的情况下,后端池中的OSD才需向SSD和HDD写入待写入数据,相比于直接向HDD写数据,可以提高数据写入效率,数据写入性能更好。
可选地,在将待写入数据写入后端池的SSD和HDD之后,向缓存池中的OSD发送数据写入响应,数据写入响应中携带此次写入的数据,以使得缓存池中的OSD将数据写入响应中携带的数据缓存于缓存池的SSD。进而,后续若接收到对此次写入的数据的数据读写请求,则缓存池中的OSD就可以处理该数据读写请求,读写性能更好。
本申请实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现上述方法实施例中的任一数据读取的方法,和/或任一数据写入的方法。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据读取方法的步骤,和/或上述任一数据写入方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据读取方法的步骤,和/或上述任一数据写入方法的步骤。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法实施例而言,由于其基本相似于***实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种存储***,其特征在于,所述存储***包括缓存池和后端池,所述缓存池中包括多个对象存储设备OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘HDD;
所述缓存池中的OSD,用于接收客户端发送的针对待读取数据的数据读取请求,查询所述缓存池的SSD中是否存在所述待读取数据的对象;若存在,则基于所述待读取数据的对象从所述缓存池的SSD中读取所述待读取数据;若不存在,则向所述后端池中的OSD转发所述数据读取请求;
所述后端池中的OSD,用于接收所述数据读取请求,通过flashcache模块查询所述后端池的SSD中是否存在所述待读取数据的对象;若存在,则基于所述待读取数据的对象从所述后端池的SSD中读取所述待读取数据;若不存在,则从所述后端池的HDD中读取所述待读取数据;
所述缓存池中的OSD,还用于接收客户端发送的针对待写入数据的数据写入请求,查询所述缓存池的SSD中是否存在所述待写入数据的对象;若存在,则基于所述待写入数据的对象将所述待写入数据写入所述缓存池的SSD;若不存在,则向所述后端池中的OSD转发所述数据写入请求;
所述后端池中的OSD,还用于接收所述数据写入请求,将所述待写入数据写入所述后端池的SSD和HDD。
2.根据权利要求1所述的存储***,其特征在于,
所述后端池中的OSD,还用于在从所述后端池的HDD中读取所述待读取数据后,将读取到的数据缓存于所述后端池的SSD中。
3.根据权利要求1所述的存储***,其特征在于,
所述后端池中的OSD,还用于在将所述待写入数据写入所述后端池的SSD和HDD之后,向所述缓存池中的OSD发送数据写入响应,所述数据写入响应中携带此次写入的数据;
所述缓存池中的OSD,用于接收所述后端池中的OSD发送的数据写入响应,将所述数据写入响应中携带的数据缓存于所述缓存池的SSD。
4.一种数据读取方法,其特征在于,所述方法应用于存储***的缓存池中的对象存储设备OSD,所述存储***还包括后端池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘HDD,所述方法包括:
接收客户端发送的针对待读取数据的数据读取请求;
查询所述缓存池的SSD中是否存在所述待读取数据的对象;
若存在,则基于所述待读取数据的对象从所述缓存池的SSD中读取所述待读取数据;
若不存在,则向所述后端池中的OSD转发所述数据读取请求,以使得所述后端池中的OSD通过flashcache模块查询所述后端池的SSD中是否存在所述待读取数据的对象;若存在,则基于所述待读取数据的对象从所述后端池的SSD中读取所述待读取数据;若不存在,则从所述后端池的HDD中读取所述待读取数据。
5.一种数据读取方法,其特征在于,所述方法应用于存储***的后端池中的对象存储设备OSD,所述存储***还包括缓存池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘,所述方法包括:
接收所述缓存池中的OSD发送的数据读取请求,所述数据读取请求为缓存池中的OSD根据客户端发送的针对待读取数据的数据读取请求后,未在缓存池的SSD中找到待读取数据的对象时发送的;
通过flashcache模块查询所述后端池的SSD中是否存在待读取数据的对象;
若存在,则基于所述待读取数据的对象从所述后端池的SSD中读取所述待读取数据;
若不存在,则从所述后端池的HDD中读取所述待读取数据。
6.根据权利要求5所述的方法,其特征在于,在从所述后端池的HDD中读取所述待读取数据之后,所述方法还包括:
将读取到的数据缓存于所述后端池的SSD中。
7.一种数据写入方法,其特征在于,所述方法应用于存储***的缓存池中的对象存储设备OSD,所述存储***还包括后端池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘HDD,所述方法包括:
接收客户端发送的针对待写入数据的数据写入请求;
查询所述缓存池的SSD中是否存在所述待写入数据的对象;
若存在,则基于所述待写入数据的对象将所述待写入数据写入所述缓存池的SSD;
若不存在,则向所述后端池中的OSD转发所述数据写入请求,以使得所述后端池中的OSD将所述待写入数据写入所述后端池的SSD和HDD。
8.根据权利要求7所述的方法,其特征在于,在向所述后端池中的OSD转发所述数据写入请求之后,所述方法还包括:
接收所述后端池中的OSD发送的数据写入响应,所述数据写入响应中携带此次写入的数据;
将所述数据写入响应中携带的数据缓存于所述缓存池的SSD。
9.一种数据写入方法,其特征在于,所述方法应用于存储***的后端池中的对象存储设备OSD,所述存储***还包括缓存池,所述缓存池中包括多个OSD和每个OSD对应的固态硬盘SSD,所述后端池中包括SSD、多个OSD和每个OSD对应的机械硬盘,所述方法包括:
接收所述缓存池中的OSD发送的针对待写入数据的数据写入请求,所述数据写入请求为缓存池中的OSD根据客户端发送的针对待写入数据的数据写入请求后,未在缓存池的SSD中查询到待写入数据的对象时发送的;
将所述待写入数据写入所述后端池的SSD和HDD。
10.根据权利要求9所述的方法,其特征在于,在将所述待写入数据写入所述后端池的SSD和HDD之后,所述方法还包括:
向所述缓存池中的OSD发送数据写入响应,所述数据写入响应中携带此次写入的数据,以使得所述缓存池中的OSD将所述数据写入响应中携带的数据缓存于所述缓存池的SSD。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011273132.3A CN112214178B (zh) | 2020-11-13 | 2020-11-13 | 一种存储***、数据读取方法及数据写入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011273132.3A CN112214178B (zh) | 2020-11-13 | 2020-11-13 | 一种存储***、数据读取方法及数据写入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112214178A CN112214178A (zh) | 2021-01-12 |
CN112214178B true CN112214178B (zh) | 2022-08-19 |
Family
ID=74057054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011273132.3A Active CN112214178B (zh) | 2020-11-13 | 2020-11-13 | 一种存储***、数据读取方法及数据写入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112214178B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113703666A (zh) * | 2021-07-14 | 2021-11-26 | 新华三大数据技术有限公司 | 一种数据读写方法及装置 |
CN114237518B (zh) * | 2022-02-22 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种数据读取方法、***、装置及终端 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102713828A (zh) * | 2011-12-21 | 2012-10-03 | 华为技术有限公司 | 提供多设备镜像和条带功能的磁盘缓存方法、设备和*** |
CN105892947A (zh) * | 2016-03-31 | 2016-08-24 | 华中科技大学 | 一种节能存储***的ssd与hdd混合缓存管理方法及*** |
CN107241444A (zh) * | 2017-07-31 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种分布式缓存数据管理***、方法及装置 |
CN107632784A (zh) * | 2017-09-14 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种存储介质和分布式存储***的缓存方法、装置及设备 |
CN108845768A (zh) * | 2018-06-19 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10552329B2 (en) * | 2014-12-23 | 2020-02-04 | Prophetstor Data Services, Inc. | SSD caching system for hybrid storage |
US9830092B2 (en) * | 2015-02-20 | 2017-11-28 | Netapp, Inc. | Solid state device parity caching in a hybrid storage array |
-
2020
- 2020-11-13 CN CN202011273132.3A patent/CN112214178B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102713828A (zh) * | 2011-12-21 | 2012-10-03 | 华为技术有限公司 | 提供多设备镜像和条带功能的磁盘缓存方法、设备和*** |
CN105892947A (zh) * | 2016-03-31 | 2016-08-24 | 华中科技大学 | 一种节能存储***的ssd与hdd混合缓存管理方法及*** |
CN107241444A (zh) * | 2017-07-31 | 2017-10-10 | 郑州云海信息技术有限公司 | 一种分布式缓存数据管理***、方法及装置 |
CN107632784A (zh) * | 2017-09-14 | 2018-01-26 | 郑州云海信息技术有限公司 | 一种存储介质和分布式存储***的缓存方法、装置及设备 |
CN108845768A (zh) * | 2018-06-19 | 2018-11-20 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
ADCS:一种基于SSD的阵列数据库缓存技术;杨庆 等;《计算机与数字工程》;20170531;第45卷(第5期);全文 * |
An IO optimized Data Access Method in Distributed KEY-VALUE Storage System;Li Chao et al.;《IEEE Xplore》;20131212;全文 * |
一种面向应用服务器的分布式缓存机制;郭唐宝等;《科学技术与工程》;20111228(第36期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112214178A (zh) | 2021-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275841B (zh) | 访问请求处理方法、装置、计算机设备和存储介质 | |
CN108459826B (zh) | 一种处理io请求的方法及装置 | |
US10860494B2 (en) | Flushing pages from solid-state storage device | |
CN112214178B (zh) | 一种存储***、数据读取方法及数据写入方法 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
CN108073527B (zh) | 一种缓存替换的方法和设备 | |
CN107797760B (zh) | 一种访问缓存信息的方法、装置与固态驱动器 | |
CN111563052A (zh) | 降低读延时的缓存方法、装置、计算机设备及存储介质 | |
CN107577775B (zh) | 一种读取数据方法、装置、电子设备及可读存储介质 | |
CN116303590A (zh) | 一种缓存数据访问方法、装置、设备以及存储介质 | |
CN108228088B (zh) | 用于管理存储***的方法和设备 | |
CN109246234B (zh) | 一种镜像文件下载方法、装置、电子设备及存储介质 | |
US11645209B2 (en) | Method of cache prefetching that increases the hit rate of a next faster cache | |
CN111208946A (zh) | 支持kb级别小文件并发io的数据持久化方法及*** | |
US20110191540A1 (en) | Processing read and write requests in a storage controller | |
US9158697B2 (en) | Method for cleaning cache of processor and associated processor | |
US10802980B1 (en) | Caching assets in a multiple cache system | |
CN114116656A (zh) | 数据处理方法及相关装置 | |
US7421536B2 (en) | Access control method, disk control unit and storage apparatus | |
CN113254363A (zh) | 具有部分逻辑到物理地址转换表的非易失性存储控制器 | |
CN112732166A (zh) | 访问固态硬盘的方法及装置 | |
CN112947845A (zh) | 热数据识别方法及其存储设备 | |
CN111694504B (zh) | 一种处理读请求的方法及装置 | |
CN114461146B (zh) | 云存储的数据处理方法、装置、***、设备、介质及产品 | |
CN113434263B (zh) | 虚拟机数据缓存方法和计算机可读存储介质 |
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 |