掌桥专利:专业的专利平台
掌桥专利
首页

一种存储系统缓存镜像方法、装置以及介质

文献发布时间:2023-06-19 19:30:30


一种存储系统缓存镜像方法、装置以及介质

技术领域

本申请涉及数据存储技术领域,特别是涉及一种存储系统缓存镜像方法、装置以及介质。

背景技术

为了防止单点故障导致数据丢失,一个存储设备往往有两个控制器,主机下发写请求,将数据写入本端控制器缓存,本端控制器通过两个控制器间的链路将数据传输到远端控制器并写入远端控制器的缓存,这个过程称为缓存镜像。通过缓存镜像的方式,在两个存储控制器的缓存中存储有相同的数据,在单个控制器故障时,另一个控制器仍然有可访问的数据,从而提升了存储系统的可用性。相比数据只写入一端控制器的缓存,缓存镜像增加了数据在两个控制器间传输开销。

由此可见,如何在缓存镜像时降低数据在两个控制器间的时延开销,优化主机写请求的响应时间是本领域技术人员亟待解决的问题。

发明内容

本申请的目的是提供一种存储系统缓存镜像方法、装置以及介质,用于在存储系统进行缓存镜像时,降低数据在两个控制器间的时延开销,优化主机写请求的响应时间。

为解决上述技术问题,本申请提供一种存储系统缓存镜像方法,应用于本端控制器,包括:

获取主机写入的数据并以预设大小为粒度对所述数据进行识别;

确认识别出的各段预设大小的数据的数据特征是否符合预设条件;

将数据特征符合所述预设条件的预设大小的数据的数据特征传输至远端控制器以便于所述远端控制器根据所述数据特征生成本地数据进行存储;

将数据特征不符合所述预设条件的预设大小的数据传输至所述远端控制器进行存储。

优选的,所述确认识别出的各段预设大小的数据的数据特征是否符合预设条件包括:

确认识别出的各段预设大小的数据的比特是否均为0或均为1;

若是,则确认符合预设条件。

优选的,所述数据特征还包括:数据的起始地址和数据的长度。

优选的,还包括:

在所述远端控制器完成缓存镜像的情况下,接收所述远端控制器返回的镜像成功信息,并发送成功信息至所述主机。

优选的,还包括:

在向所述远端控制器传输数据信息失败的情况下进行重试,若重试预设次数后均失败,则发送告警信息。

为解决上述技术问题,本申请还提供另一种存储系统缓存镜像方法,应用于远端控制器,包括:

接收本端控制器发送的数据特征符合所述预设条件的预设大小的数据的数据特征并根据所述数据特征生成本地数据进行存储;

接收本端控制器发送的数据特征不符合所述预设条件的预设大小的数据并进行存储。

优选的,所述数据特征包括:

数据的比特是否均为0或均为1,数据的起始地址和数据的长度。

为解决上述技术问题,本申请还提供一种存储系统缓存镜像装置,应用于本端控制器,包括:

识别模块,用于获取主机写入的数据并以预设大小为粒度对所述数据进行识别;

确认模块,用于确认识别出的各段预设大小的数据的数据特征是否符合预设条件;

传输模块,用于将数据特征符合所述预设条件的预设大小的数据的数据特征传输至远端控制器以便于所述远端控制器根据所述数据特征生成本地数据进行存储;将数据特征不符合所述预设条件的预设大小的数据传输至所述远端控制器进行存储。

为解决上述技术问题,本申请还提供另一种存储系统缓存镜像装置,包括存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述的存储系统缓存镜像方法的步骤。

为解决上述技术问题,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的存储系统缓存镜像方法的步骤。

本申请所提供的存储系统缓存镜像方法,本端控制器获取主机写入的数据并以预设大小为粒度对数据进行识别;确认识别出的各段预设大小的数据的数据特征是否符合预设条件;将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。相对于当前技术中,数据在两个控制器间传输造成的时延开销,采用本技术方案,通过对数据的特征进行分辨,本端控制器将符合预设条件的数据以数据特征的形式传输至远端控制器,远端控制器能够根据数据特征生成本地数据进行存储,将不符合预设条件的数据直接传输至远端控制器进行存储。可以看出,相较于传输全部的数据,本技术方案通过传输描述数据特点的数据特征,以使远端控制器根据特征生成本地数据,降低了控制器间传输的数据量,从而降低了缓存镜像时延开销,进而优化主机写请求的响应时间。

此外,本申请所提供的存储系统缓存镜像装置以及介质,与上述的存储系统缓存镜像方法相对应,效果同上。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种存储系统缓存镜像方法的流程图;

图2为本申请实施例提供的一种存储系统缓存镜像装置的结构图;

图3为本申请实施例提供的另一种存储系统缓存镜像装置的结构图;

图4为本申请实施例提供的另一种存储系统缓存镜像装置的结构图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。

为了防止单点故障导致数据丢失,一个存储设备往往有两个控制器,主机下发写请求,将数据写入本端控制器缓存,本端控制器通过两个控制器间的链路将数据传输到远端控制器并写入远端控制器的缓存,这个过程称为缓存镜像。通过缓存镜像的方式,在两个存储控制器的缓存中存储有相同的数据,在单个控制器故障时,另一个控制器仍然有可访问的数据,从而提升了存储系统的可用性。相比数据只写入一端控制器的缓存,缓存镜像增加了数据在两个控制器间传输开销。

本申请的核心是提供一种存储系统缓存镜像方法、装置以及介质,用于在存储系统进行缓存镜像时,降低数据在两个控制器间的时延开销,优化主机写请求的响应时间。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。

图1为本申请实施例提供的一种存储系统缓存镜像方法的流程图,该方法应用于本端控制器,如图1所示,该方法包括:

S10:获取主机写入的数据并以预设大小为粒度对数据进行识别;

S11:确认识别出的各段预设大小的数据的数据特征是否符合预设条件;

S12:将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;

S13:将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。

在步骤S10中,大小指的是数据的长度,指字节的长度,4KB是固态硬盘的读写基本block size的大小,也就是说读写的基本单位是4KB,哪怕1B的内容读写实际操作也是操作了4KB的块,在具体实施中,预设大小可以是4KB。字节是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编码语言中的数据类型和语言字符。计算机存储器的大小通常用字节来表示。

相比无论是机械盘还是SSD盘,内存都有很大的性能优势,在存储系统中,通过把用户数据副本存储在内存中来提升存储系统的性能,存储系统实现该功能的模块为缓存模块。对于外置的存储设备,为了有效降低数据写入的时延,数据从主机写入存储设备的缓存即响应主机写成功,为了防止单点故障数据丢失,一个存储设备的机框中有两个控制器,一个主机下发的写请求,把数据写入本端缓存,同时把数据通过两个控机制器间的链路传输到远端控制器并写入远端控制器的缓存,这个过程称为缓存镜像,两个控制器都成功写入即可通知主机写成功。通过缓存镜像的方式,把写入存储设备的数据,在两个存储控制器的缓存中有相同数据副本,对于单个控制器故障,另一个控制器仍然有可访问的数据,提升了存储系统的可用性。

在本实施例中,当本端控制器获取到主机写入的数据并以预设大小为粒度对数据进行识别后,生成相关信息将数据传输至远端控制器进行存储。本实施例为了降低数据在两个控制器间的时延开销,优化主机写请求的响应时间,具体是通过减少数据传输量实现。在本实施例中,是通过识别数据的数据特征实现减少数据传输量。本实施例中的数据特征是指识别出的各预设大小的数据中,每个bit是否为全0或者全1,如果是,则本端控制器在传输该部分数据信息时无需传输具体的数据,而是通过描述该部分数据的特征,以使远端控制器通过数据特征在本地生成此部分数据。对于不符合预设条件的数据,则传输其具体的数据,可以理解的是,采用本技术方案能够减少本端控制器和远端控制器间的数据传输量,从而能够降低数据在两个控制器间的时延开销。

在具体实施中,为了准确的描述数据的存储位置,便于数据在远端控制器的生成和存储,本端控制器在传输数据特征时,还包括:数据的起始地址和数据的长度。

具体的,对主机下发的数据以4KB为粒度进行识别,如果连续4KB的数据的每个bit是否为全0或者全1,在数据镜像时,不需要传输数据,只传输数据特征信息。数据特征信息通过如下数据结构字段描述。其中lba字段表示写入数据的起始地址;len表示符合同一数据特征数据的长度;all_zero表示是否是全0数据;all_one表示是否是全1数据。

例如下表1所示主机写入数据,0~8KB为全0数据,8KB~16KB为全1数据,24KB~32KB为全0数据,16KB~24KB为非全0全1数据,因此在数据镜像时需要传输的内容为

{

[lba:0,len:8KB,all_zero:true,all_one:false],

[lba:8KB,len:8KB,all_zero:false,all_one:true],

[lba:16KB,len:8KB,all_zero:false,all_one:false],8KB数据

[lba:24KB,len:8KB,all_zero:true,all_one:false]

}

表1

因此对于表中所示的数据,真正传输的数据量为8KB+4*sizeof(data_info),远端控制器在收到传输的描述信息后,本地生成正确的数据,写入本地缓存。通过本方法,对于连续的全0或者全1数据,可以有效降低缓存镜像时数据传输量,提升缓存镜像效率。

在具体实施中,步骤S12和步骤S13没有先后执行顺序之分,可以是一起进行的,可以是对全部的数据进行识别与确认之后一起将数据及特征打包发送至远端控制器的。

本申请实施例提供的存储系统缓存镜像方法,对主机写入的数据以预设大小为粒度,检查连续的4KB的数据的每个bit是否为全0或者全1,如果是,则在缓存镜像时,不再传输这部分数据,而是把数据特征,包括LBA,全0或者全1的数据长度发送的远端控制器,远端控制器在本地生成满足相同特征数据,写入本地缓存中。通过该方法降低缓存镜像时,在控制器间传输的数据量。

本申请实施例提供的存储系统缓存镜像方法,本端控制器获取主机写入的数据并以预设大小为粒度对数据进行识别;确认识别出的各段预设大小的数据的数据特征是否符合预设条件;将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。相对于当前技术中,数据在两个控制器间传输造成的时延开销,采用本技术方案,通过对数据的特征进行分辨,本端控制器将符合预设条件的数据以数据特征的形式传输至远端控制器,远端控制器能够根据数据特征生成本地数据进行存储,将不符合预设条件的数据直接传输至远端控制器进行存储。可以看出,相较于传输全部的数据,本技术方案通过传输描述数据特点的数据特征,以使远端控制器根据特征生成本地数据,降低了控制器间传输的数据量,从而降低了缓存镜像时延开销,进而优化主机写请求的响应时间。

在上述实施例的基础上,本实施例提供一种具体的确认数据特征是否符合预设条件的方法,确认识别出的各段预设大小的数据的数据特征是否符合预设条件包括:

确认识别出的各段预设大小的数据的比特是否均为0或均为1;

若是,则确认符合预设条件。

在远端控制器完成缓存镜像的情况下,通常需要向主机发送信息以使主机确认缓存镜像完成情况,因此在本实施例中,在远端控制器完成缓存镜像的情况下,还包括:接收远端控制器返回的镜像成功信息,并发送成功信息至主机。

此外,如果在本端控制器与远端控制器进行数据传输时失败,还包括:

在向远端控制器传输数据信息失败的情况下进行重试,若重试预设次数后均失败,则发送告警信息。

上述实施例提供了一种应用于本端控制器的存储系统缓存镜像方法,本申请实施例还提供另一种存储系统缓存镜像方法,该方法应用于远端控制器,包括:

接收本端控制器发送的数据特征符合预设条件的预设大小的数据的数据特征并根据数据特征生成本地数据进行存储;

接收本端控制器发送的数据特征不符合预设条件的预设大小的数据并进行存储。

优选的,数据特征包括:

数据的比特是否均为0或均为1,数据的起始地址和数据的长度。

本申请实施例提供的存储系统缓存镜像方法,本端控制器获取主机写入的数据并以预设大小为粒度对数据进行识别;确认识别出的各段预设大小的数据的数据特征是否符合预设条件;将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。相对于当前技术中,数据在两个控制器间传输造成的时延开销,采用本技术方案,通过对数据的特征进行分辨,本端控制器将符合预设条件的数据以数据特征的形式传输至远端控制器,远端控制器能够根据数据特征生成本地数据进行存储,将不符合预设条件的数据直接传输至远端控制器进行存储。可以看出,相较于传输全部的数据,本技术方案通过传输描述数据特点的数据特征,以使远端控制器根据特征生成本地数据,降低了控制器间传输的数据量,从而降低了缓存镜像时延开销,进而优化主机写请求的响应时间。

在上述实施例中,对于存储系统缓存镜像方法进行了详细描述,本申请还提供存储系统缓存镜像装置对应的实施例。需要说明的是,本申请从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。

图2为本申请实施例提供的一种存储系统缓存镜像装置的结构图,如图2所示,该装置应用于本端控制器,包括:

识别模块10,用于获取主机写入的数据并以预设大小为粒度对数据进行识别;

确认模块11,用于确认识别出的各段预设大小的数据的数据特征是否符合预设条件;

传输模块12,用于将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。

由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。

本申请所提供的存储系统缓存镜像装置,本端控制器获取主机写入的数据并以预设大小为粒度对数据进行识别;确认识别出的各段预设大小的数据的数据特征是否符合预设条件;将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。相对于当前技术中,数据在两个控制器间传输造成的时延开销,采用本技术方案,通过对数据的特征进行分辨,本端控制器将符合预设条件的数据以数据特征的形式传输至远端控制器,远端控制器能够根据数据特征生成本地数据进行存储,将不符合预设条件的数据直接传输至远端控制器进行存储。可以看出,相较于传输全部的数据,本技术方案通过传输描述数据特点的数据特征,以使远端控制器根据特征生成本地数据,降低了控制器间传输的数据量,从而降低了缓存镜像时延开销,进而优化主机写请求的响应时间。

图3为本申请实施例提供的另一种存储系统缓存镜像装置的结构图,如图3所示,该装置应用于远端控制器,包括:

第一存储模块13,用于接收本端控制器发送的数据特征符合预设条件的预设大小的数据的数据特征并根据数据特征生成本地数据进行存储;

第二存储模块14,用于接收本端控制器发送的数据特征不符合预设条件的预设大小的数据并进行存储。

本申请所提供的存储系统缓存镜像装置,本端控制器获取主机写入的数据并以预设大小为粒度对数据进行识别;确认识别出的各段预设大小的数据的数据特征是否符合预设条件;将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。相对于当前技术中,数据在两个控制器间传输造成的时延开销,采用本技术方案,通过对数据的特征进行分辨,本端控制器将符合预设条件的数据以数据特征的形式传输至远端控制器,远端控制器能够根据数据特征生成本地数据进行存储,将不符合预设条件的数据直接传输至远端控制器进行存储。可以看出,相较于传输全部的数据,本技术方案通过传输描述数据特点的数据特征,以使远端控制器根据特征生成本地数据,降低了控制器间传输的数据量,从而降低了缓存镜像时延开销,进而优化主机写请求的响应时间。

图4为本申请实施例提供的另一种存储系统缓存镜像装置的结构图,如图4所示,该装置包括:存储器20,用于存储计算机程序;

处理器21,用于执行计算机程序时实现如上述实施例存储系统缓存镜像方法的步骤。

本实施例提供的存储系统缓存镜像装置可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。

其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(CentralProcessing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(Graphics Processing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的存储系统缓存镜像方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括Windows、Unix、Linux等。数据203可以包括但不限于数据特征等。

在一些实施例中,存储系统缓存镜像装置还可以包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。

本领域技术人员可以理解,图4中示出的结构并不构成对存储系统缓存镜像装置的限定,可以包括比图示更多或更少的组件。

本申请实施例提供的存储系统缓存镜像装置,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:获取主机写入的数据并以预设大小为粒度对数据进行识别;确认识别出的各段预设大小的数据的数据特征是否符合预设条件;将数据特征符合预设条件的预设大小的数据的数据特征传输至远端控制器以便于远端控制器根据数据特征生成本地数据进行存储;将数据特征不符合预设条件的预设大小的数据传输至远端控制器进行存储。

本申请所提供的存储系统缓存镜像装置,相对于当前技术中,数据在两个控制器间传输造成的时延开销,采用本技术方案,通过对数据的特征进行分辨,本端控制器将符合预设条件的数据以数据特征的形式传输至远端控制器,远端控制器能够根据数据特征生成本地数据进行存储,将不符合预设条件的数据直接传输至远端控制器进行存储。可以看出,相较于传输全部的数据,本技术方案通过传输描述数据特点的数据特征,以使远端控制器根据特征生成本地数据,降低了控制器间传输的数据量,从而降低了缓存镜像时延开销,进而优化主机写请求的响应时间。

最后,本申请还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例(可以是本端控制器侧对应的方法、也可以是远端控制器侧对应的方法,还可以是本端控制器侧和远端控制器侧对应的方法)中记载的步骤。

可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请所提供的计算机可读存储介质,相对于当前技术中,数据在两个控制器间传输造成的时延开销,采用本技术方案,通过对数据的特征进行分辨,本端控制器将符合预设条件的数据以数据特征的形式传输至远端控制器,远端控制器能够根据数据特征生成本地数据进行存储,将不符合预设条件的数据直接传输至远端控制器进行存储。可以看出,相较于传输全部的数据,本技术方案通过传输描述数据特点的数据特征,以使远端控制器根据特征生成本地数据,降低了控制器间传输的数据量,从而降低了缓存镜像时延开销,进而优化主机写请求的响应时间。

以上对本申请所提供的存储系统缓存镜像方法、装置以及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

技术分类

06120115931514