数据存储方法及系统

文档序号:1741929 发布日期:2019-11-26 浏览:22次 >En<

阅读说明:本技术 数据存储方法及系统 (Date storage method and system ) 是由 乔晖 于 2018-05-18 设计创作,主要内容包括:本发明实施例提供了一种数据存储方法及系统,该方法包括:针对待写入数据,按照存储Zone与缓存Zone的映射状态,将待写入数据在存储Zone中的地址,转化为缓存Zone中的目标缓存偏移地址;按照目标缓存偏移地址,将待写入数据写入到缓存Zone中;在满足预设同步条件时,按照存储Zone与缓存Zone的映射状态,将缓存Zone中的数据顺序写入到SMR硬盘的存储Zone中。利用非易失性存储介质掉电不丢失的特性通过该软件逻辑实现解决了SMR硬盘存储Zone只能顺序写的设计短板,用户上层应用视角即在SMR硬盘存储Zone的任意指定位置实现了数据随机写入。(The embodiment of the invention provides a kind of date storage method and systems, this method comprises: being directed to data to be written, according to the mapping status of storage Zone and caching Zone, it is written into address of the data in storage Zone, the target cache offset address being converted into caching Zone;According to target cache offset address, it is written into data and is written in caching Zone;When meeting pre-determined synchronization condition, according to the mapping status of storage Zone and caching Zone, the data cached in Zone are sequentially written in the storage Zone of SMR hard disk.The characteristic that do not lost using non-volatile memory medium power down realized by the software logic solve SMR hard-disc storage Zone can only sequential write design short slab, user&#39;s upper layer application visual angle is to realize data random writing in any given position of SMR hard-disc storage Zone.)

数据存储方法及系统

技术领域

本发明涉及数据存储技术领域,特别是涉及数据存储方法及系统。

背景技术

随着网络大数据时代的来临,数据存储技术面对前所未有的挑战。例如,在监控领域,随着高清化及智能化要求的不断提升,对于数据存储的要求越来越高。

为了应对视频监控中数据存储量大及数据吞吐性高的特征,SMR(ShingledMagnetic Recording,叠瓦式磁记录技术)相继诞生。SMR硬盘通过重叠磁道,重新调整数据存储的方式,进而提高了磁道密度,从而增加了单碟的容量,SMR磁盘分为Host Manage、Host Aware和Drive Manage、Device Manage两种主流模式。但是无论采用何种模式,SMR硬盘均只支持数据的顺序写入,无法应对视频监控中乱序写入的情况。

发明内容

本发明实施例的目的在于提供一种数据存储方法及系统,以实现SMR硬盘的乱序写入。具体技术方案如下:

第一方面,本发明实施例提供了一种数据存储方法,应用于数据存储系统,所述数据存储系统包括读写设备、非易失性存储介质及叠瓦式磁记录技术SMR硬盘,所述读写设备与所述非易失性存储介质连接,所述读写设备与所述SMR硬盘连接;所述SMR硬盘包括多个存储区域Zone,各所述存储Zone对应不同的偏移地址;所述非易失性存储介质逻辑划分为多个缓存Zone,各所述存储Zone映射不同的缓存Zone;所述读写设备记录所述存储Zone与所述缓存Zone的映射状态,所述方法包括:

针对待写入数据,所述读写设备按照所述存储Zone与所述缓存Zone的映射状态,将所述待写入数据待写入的、在所述存储Zone中的地址,转化为缓存Zone中的偏移地址,作为目标缓存偏移地址;

所述读写设备按照所述目标缓存偏移地址,将所述待写入数据写入到相应的缓存Zone中;

在满足预设同步条件时,所述读写设备按照所述存储Zone与所述缓存Zone的映射状态,将所述缓存Zone中的数据写入到所述缓存Zone映射的存储Zone中。

可选的,在本发明实施例的数据存储方法中,各所述缓存Zone对应不同的缓存Zone索引,所述缓存Zone索引表征所述缓存Zone与所述存储Zone的映射状态,所述缓存Zone索引还用于表征所述缓存Zone中各页的状态,所述读写设备包括基数树,所述基数树挂接所述缓存Zone索引;

所述针对待写入数据,所述读写设备按照所述存储Zone与所述缓存Zone的映射状态,将所述待写入数据待写入的、在所述存储Zone中的地址,转化为缓存Zone中的偏移地址,作为目标缓存偏移地址,包括:

针对待写入数据,所述读写设备将所述待写入数据的页偏移转换为存储Zone的偏移地址,作为目标存储偏移地址;

所述读写设备查询所述基数树中是否包含所述目标存储偏移地址对应的缓存Zone索引;

在所述基数树中包含所述目标存储偏移地址对应的缓存Zone索引时,所述读写设备按照所述目标存储偏移地址对应的缓存Zone索引,将所述目标存储偏移地址转化为在所述缓存Zone中的偏移地址,作为目标缓存偏移地址;

所述读写设备按照所述目标缓存偏移地址,将所述待写入数据写入到相应的缓存Zone中,包括:

所述读写设备确定所述目标缓存偏移地址在所述缓存Zone中的页偏移,作为目标页偏移,按照所述目标页偏移,将所述待写入数据写入到所述缓存Zone相应的页中,并在所述目标存储偏移地址对应的缓存Zone索引中,将所述缓存Zone相应的页置位脏。

可选的,在所述读写设备查询所述基数树中是否包含所述目标存储偏移地址对应的缓存Zone索引之后,所述方法还包括:

在所述基数树中不包含所述目标存储偏移地址对应的缓存Zone索引时,所述读写设备判断所述非易失性存储介质中是否存在未映射存储Zone的缓存Zone;

若存在未映射存储Zone的缓存Zone,所述读写设备在未映射存储Zone的缓存Zone中选取一个缓存Zone,作为所述待写入数据待写入的存储Zone映射的缓存Zone;

所述读写设备为所述待写入数据待写入的存储Zone映射的缓存Zone分配缓存Zone索引,并配置该缓存Zone索引的映射状态,及将该缓存Zone索引的各页置位干净。

可选的,在所述读写设备判断所述非易失性存储介质中是否存在未映射存储Zone的缓存Zone之后,所述方法还包括:

若不存在未映射存储Zone的缓存Zone,所述读写设备按照预设选取规则,选取待回收缓存Zone索引;

所述读写设备将所述待回收缓存Zone索引对应的缓存Zone中的数据写入到所述待回收缓存Zone索引对应的存储Zone中,将所述待回收缓存Zone索引作为已回收缓存Zone索引;

所述读写设备将所述已回收缓存Zone索引对应的缓存Zone,作为所述待写入数据待写入的存储Zone映射的缓存Zone,将所述已回收缓存Zone索引各页置位干净,并配置所述已回收缓存Zone索引的映射状态为:所述已回收缓存Zone索引对应的缓存Zone映射所述写入数据待写入的存储Zone。

可选的,所述非易失性存储介质还包括索引管理区,所述SMR硬盘还包括索引备份区;所述索引管理区用于管理和保存各所述缓存Zone的缓存Zone索引,所述索引备份区用于存储所述SMR硬盘的存储Zone的缓存Zone索引;所述方法还包括:

在所述数据存储系统启动时,所述读写设备比较所述索引管理区中缓存Zone索引的最后更新时间及所述索引备份区中缓存Zone索引的最后更新时间;

若所述索引备份区中缓存Zone索引的最后更新时间早于所述索引管理区中缓存Zone索引的最后更新时间,所述读写设备按照所述索引管理区中的各缓存Zone索引更新所述索引备份区。

可选的,在所述读写设备比较所述索引管理区中缓存Zone索引的最后更新时间及所述索引备份区中缓存Zone索引的最后更新时间之后,所述方法还包括:

若所述索引管理区中缓存Zone索引的最后更新时间早于所述索引备份区中缓存Zone索引的最后更新时间,所述读写设备按照所述索引备份区中的各缓存Zone索引,更新所述索引管理区中的缓存Zone索引;

所述读写设备按照所述存储Zone中的数据更新所述缓存Zone中的数据;

其中,所述读写设备中的基数树中挂接更新后的所述索引管理区中的缓存Zone索引。

可选的,在所述读写设备按照所述索引管理区中的各缓存Zone索引,配置所述基数树中的缓存Zone索引之前,所述方法还包括:

在所述数据存储系统启动时,所述读写设备从所述非易失性存储介质中读取各所述缓存Zone索引,根据读取的各所述缓存Zone索引,判断是否存在新的存储Zone,若存在新的存储Zone,为该新的存储Zone配置缓存Zone索引。

可选的,在本发明实施例的数据存储方法中,所述预设同步条件包括所述数据存储系统断电重启。

第二方面,本发明实施例提供了一种数据存储系统,所述系统包括:

读写设备、非易失性存储介质及叠瓦式磁记录技术SMR硬盘,所述读写设备与所述非易失性存储介质连接,所述读写设备与所述SMR硬盘连接;

所述SMR硬盘包括多个存储区域Zone,各所述存储Zone对应不同的偏移地址;所述非易失性存储介质逻辑划分为多个缓存Zone,各所述存储Zone映射不同的缓存Zone;所述读写设备记录所述存储Zone与所述缓存Zone的映射状态;

所述读写设备,用于针对待写入数据,按照所述存储Zone与所述缓存Zone的映射状态,将所述待写入数据待写入的、在所述存储Zone中的地址,转化为缓存Zone中的偏移地址,作为目标缓存偏移地址;按照所述目标缓存偏移地址,将所述待写入数据写入到相应的缓存Zone中;在满足预设同步条件时,按照所述存储Zone与所述缓存Zone的映射状态,将所述缓存Zone中的数据写入到所述缓存Zone映射的存储Zone中。

可选的,在本发明实施例的数据存储系统中,各所述缓存Zone对应不同的缓存Zone索引,所述缓存Zone索引表征所述缓存Zone与所述存储Zone的映射状态,所述缓存Zone索引还用于表征所述缓存Zone中各页的状态,所述读写设备包括基数树,所述基数树挂接所述缓存Zone索引;

所述读写设备,具体用于针对待写入数据,将所述待写入数据的页偏移转换为存储Zone的偏移地址,作为目标存储偏移地址;查询所述基数树中是否包含所述目标存储偏移地址对应的缓存Zone索引;在所述基数树中包含所述目标存储偏移地址对应的缓存Zone索引时,按照所述目标存储偏移地址对应的缓存Zone索引,将所述目标存储偏移地址转化为在所述缓存Zone中的偏移地址,作为目标缓存偏移地址;确定所述目标缓存偏移地址在所述缓存Zone中的页偏移,作为目标页偏移,按照所述目标页偏移,将所述待写入数据写入到所述缓存Zone相应的页中,并在所述目标存储偏移地址对应的缓存Zone索引中,将所述缓存Zone相应的页置位脏;在满足预设同步条件时,按照所述存储Zone与所述缓存Zone的映射状态,将所述缓存Zone中的数据写入到所述缓存Zone映射的存储Zone中。

可选的,在本发明实施例的数据存储系统中,所述读写设备,还用于:在所述基数树中不包含所述目标存储偏移地址对应的缓存Zone索引时,判断所述非易失性存储介质中是否存在未映射存储Zone的缓存Zone;若存在未映射存储Zone的缓存Zone,在未映射存储Zone的缓存Zone中选取一个缓存Zone,作为所述待写入数据待写入的存储Zone映射的缓存Zone;为所述待写入数据待写入的存储Zone映射的缓存Zone分配缓存Zone索引,并配置该缓存Zone索引的映射状态,及将该缓存Zone索引的各页置位干净。

可选的,在本发明实施例的数据存储系统中,所述读写设备,还用于:

若不存在未映射存储Zone的缓存Zone,按照预设选取规则,选取待回收缓存Zone索引;将所述待回收缓存Zone索引对应的缓存Zone中的数据写入到所述待回收缓存Zone索引对应的存储Zone中,将所述待回收缓存Zone索引作为已回收缓存Zone索引;将所述已回收缓存Zone索引对应的缓存Zone,作为所述待写入数据待写入的存储Zone映射的缓存Zone,将所述已回收缓存Zone索引各页置位干净,并配置所述已回收缓存Zone索引的映射状态为:所述已回收缓存Zone索引对应的缓存Zone映射所述写入数据待写入的存储Zone。

可选的,在本发明实施例的数据存储系统中,所述非易失性存储介质还包括索引管理区,所述SMR硬盘还包括索引备份区;所述索引管理区用于管理和保存各所述缓存Zone的缓存Zone索引,所述索引备份区用于存储所述SMR硬盘的存储Zone的缓存Zone索引;

所述读写设备,还用于:在所述数据存储系统启动时,比较所述索引管理区中缓存Zone索引的最后更新时间及所述索引备份区中缓存Zone索引的最后更新时间;若所述索引备份区中缓存Zone索引的最后更新时间早于所述索引管理区中缓存Zone索引的最后更新时间,按照所述索引管理区中的各缓存Zone索引更新所述索引备份区。

可选的,在本发明实施例的数据存储系统中,所述读写设备,还用于:若所述索引管理区中缓存Zone索引的最后更新时间早于所述索引备份区中缓存Zone索引的最后更新时间,按照所述索引备份区中的各缓存Zone索引,更新所述索引管理区中的缓存Zone索引;按照所述存储Zone中的数据更新所述缓存Zone中的数据;其中,所述读写设备中的基数树中挂接更新后的所述索引管理区中的缓存Zone索引。

可选的,在本发明实施例的数据存储系统中,所述读写设备,还用于:在所述数据存储系统启动时,从所述非易失性存储介质中读取各所述缓存Zone索引,根据读取的各所述缓存Zone索引,判断是否存在新的存储Zone,若存在新的存储Zone,为该新的存储Zone配置缓存Zone索引。

可选的,在本发明实施例的数据存储系统中,所述预设同步条件包括所述数据存储系统断电重启。

本发明实施例提供的数据存储方法及系统,SMR硬盘包括多个存储区域Zone,各存储Zone对应不同的偏移地址;非易失性存储介质逻辑划分为多个缓存Zone,各存储Zone映射不同的缓存Zone;读写设备记录存储Zone与缓存Zone的映射状态;针对待写入数据,读写设备按照存储Zone与缓存Zone的映射状态,将待写入数据待写入的、在存储Zone中的地址,转化为缓存Zone中的偏移地址,作为目标缓存偏移地址;读写设备按照目标缓存偏移地址,将待写入数据写入到相应的缓存Zone中;在满足预设同步条件时,读写设备按照存储Zone与缓存Zone的映射状态,将缓存Zone中的数据写入到缓存Zone映射的存储Zone中。通过在缓存Zone的指定页写入数据(可以乱序写入),并将缓存Zone中的数据顺序写入到SMR硬盘的存储Zone中,在逻辑上解决了SMR硬盘存在Zone只能顺序写的技术短板,用户以上层应用的视角即在SMR硬盘存储Zone的任意指定位置进行了数据写入,即实现了数据随机写入。当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本发明实施例的数据存储系统的一种示意图;

图2为本发明实施例的缓存Zone索引的一种示意图;

图3为本发明实施例的基数树挂接缓存Zone索引的一种示意图;

图4为本发明实施例的数据存储方法的第一种流程示意图;

图5为本发明实施例的数据存储方法的第二种流程示意图;

图6为本发明实施例的数据存储方法的第三种流程示意图。

具体实施方式

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

在相关的SMR硬盘的存储技术中,SMR硬盘只能通过顺序写入的方式进行数据存储。无法应对并发写入及乱序写入的情况,有鉴于此,本发明实施例提供了一种数据存储系统,参见图1,该数据存储系统包括:

读写设备101、非易失性存储介质102及叠瓦式磁记录技术SMR硬盘103,上述读写设备101与上述非易失性存储介质102连接,上述读写设备101与上述SMR硬盘103连接;

上述SMR硬盘103包括多个存储区域Zone,各上述存储Zone对应不同的偏移地址;上述非易失性存储介质102逻辑划分为多个缓存Zone,各上述存储Zone映射不同的缓存Zone;上述读写设备101记录上述存储Zone与上述缓存Zone的映射状态;

上述读写设备101,用于针对待写入数据,按照上述存储Zone与上述缓存Zone的映射状态,将上述待写入数据待写入的、在上述存储Zone中的地址,转化为缓存Zone中的偏移地址,作为目标缓存偏移地址;按照上述目标缓存偏移地址,将上述待写入数据写入到相应的缓存Zone中;在满足预设同步条件时,按照上述存储Zone与上述缓存Zone的映射状态,将上述缓存Zone中的数据写入到上述缓存Zone映射的存储Zone中。

读写设备101可以通过内存控制器挂接非易失性存储介质102,读写设备101可以通过SATA(Serial Advanced Technology Attachment,串行高级技术附件)或SAS(SerialAttached Small Computer System Interface,串行SCSI)控制挂接一块或多块SMR硬盘103。上述非易失性存储介质102可以进行乱序写入,读写设备101还包括CPU、内存及其他与业务相关的外设。

各存储Zone映射不同的缓存Zone,可选的,存储Zone与缓存Zone为一一映射关系,且存储Zone与该存储Zone映射的缓存Zone的大小相等。

针对待写入SMR硬盘的待写入数据,读写设备101确定待写入数据待写入位置的地址,即待写入地址,按照存储Zone与缓存Zone的映射状态,将该待写入地址转化为在缓存Zone中的偏移地址,即目标缓存偏移地址。

非易失性存储介质102可以进行乱序写入,读写设备101按照目标缓存偏移地址,将待写入数据写入到缓存Zone中。在满足预设同步条件时,读写设备将缓存Zone中的数据,顺序写入到该缓存Zone对应的存储Zone中。通过在缓存Zone中的指定位置写入数据,再将缓存Zone中的数据顺序写入到存储Zone中,在逻辑上实现了在SMR硬盘103的指定位置写入数据。

可选的,满足预设同步条件包括:满足预设回写周期。读写设备101按照预设回写周期,周期性将缓存Zone中的数据,写入到该缓存Zone对应的存储Zone中。读写设备101照预设回写周期,将非易失性存储介质102的缓存Zone中的数据写入SMR硬盘103的存储Zone中,保证了数据的正常存储,同时能够释放非易失性存储介质102中的缓存Zone。

本发明实施例中,通过在缓存Zone的指定页写入数据(可以乱序写入),并将缓存Zone中的数据顺序写入到该缓存Zone对应的存储Zone中,在逻辑上实现了SMR硬盘的乱序写入,解决了SMR硬盘只能顺序写的技术短板,用户以上层应用的视角即在SMR硬盘存储Zone的指定位置进行了数据写入,即实现了数据随机写入。并且针对SMR硬盘的各存储Zone分别进行数据写入,能够适用于并发写入的情况。

可选的,在本发明实施例的数据存储系统中,各上述缓存Zone对应不同的缓存Zone索引,上述缓存Zone索引表征上述缓存Zone与上述存储Zone的映射状态,上述缓存Zone索引还用于表征上述缓存Zone中各页的状态,上述读写设备101包括基数树,上述基数树挂接上述缓存Zone索引;

所述读写设备,具体用于针对待写入数据,将所述待写入数据的页偏移转换为存储Zone的偏移地址,作为目标存储偏移地址;查询所述基数树中是否包含所述目标存储偏移地址对应的缓存Zone索引;在所述基数树中包含所述目标存储偏移地址对应的缓存Zone索引时,按照所述目标存储偏移地址对应的缓存Zone索引,将所述目标存储偏移地址转化为在所述缓存Zone中的偏移地址,作为目标缓存偏移地址;确定所述目标缓存偏移地址在所述缓存Zone中的页偏移,作为目标页偏移,按照所述目标页偏移,将所述待写入数据写入到所述缓存Zone相应的页中,并在所述目标存储偏移地址对应的缓存Zone索引中,将所述缓存Zone相应的页置位脏;在满足预设同步条件时,按照所述存储Zone与所述缓存Zone的映射状态,将所述缓存Zone中的数据写入到所述缓存Zone映射的存储Zone中。

每个缓存Zone均有自己专属的缓存Zone索引,缓存Zone索引表征缓存Zone与存储Zone的对应关系,一个缓存Zone对应一个缓存Zone索引,各缓存Zone对应的缓存Zone索引不同。可选的,参见图2,缓存Zone索引包括:SMR硬盘中存储Zone的字节偏移(以字节为单位的偏移),缓存Zone内部的页的bitmap(位图文件),缓存Zone的存储域偏移,缓存Zone最近一次同步时间,SMR硬盘中存储Zone的区域偏移(以Zone为单位的偏移),缓存Zone最近一次的页缓存时间,映射状态及所属缓存索引头信息等。缓存Zone索引的缓存索引头包括:存储Zone信息,SMR硬盘信息及存储Zone第一个缓存索引地址。

如图3所示,在读写设备101中的超级快上构建管理缓存Zone索引的基数树,如果缓存Zone索引的映射状态为已映射,则基数树上的叶子指向非易失性存储介质102中的该缓存Zone索引指针;否则叶子指针为NULL,表示未挂接缓存Zone索引。其中,挂接在基数树上位置由缓存Zone索引的以Zone为单位的偏移决定。

在本发明实施例中,通过基数树及缓存Zone索引,能够快速访问缓存Zone与存储Zone,方便获取缓存Zone与存储Zone的对应关系,方便数据的管理及存储。

可选的,SMR硬盘103为可以为Host Manage模式SMR硬盘,读写设备101的软件层面可以采用运行Linux操作系统,内核支持用于Zone管理的ZAC/ZBC指令(Linux-4.4版本以上的内核已经支持该指令集)。

相关技术中I/O(Input/Output,输入/输出)以4K页为单位,在本发明实施例中,将基于文件的页偏移转换为基于存储Zone的地址偏移,然后根据该偏移地址对存储Zone发起I/O操作。基于SMR硬盘的存储Zone大小,对非易失性存储介质102划分为多个缓存Zone,存储Zone和缓存Zone大小相等。例如,SMR硬盘的存储Zone大小为256MB,非易失性存储介质102的大小为16GB,将非易失性存储介质102划分为63个256MB的缓存Zone,和一个256MB为索引管理区。建立非易失性存储介质102中缓存Zone与SMR硬盘103中存储Zone的映射关系,将存储Zone信息及硬盘信息等保存在缓存索引头部,映射关系、状态等保存在缓存Zone索引中,在SMR硬盘上单独保留一个Zone空间,用于开辟SMR硬盘的索引备份及用于索引同步。

在本发明实施例中,通过在缓存Zone的指定页写入数据(可以乱序写入),并将缓存Zone中的数据顺序写入到SMR硬盘的存储Zone中,在逻辑上解决了SMR硬盘存储Zone内部只能顺序写的技术短板,用户以上层应用的视角即在SMR硬盘存储Zone的指定位置进行了数据写入,即实现了数据随机写入。缓存Zone与存储Zone大小相等,通过在缓存Zone的指定页写入数据,并将缓存Zone中数据写入到该缓存Zone对应的存储Zone中,能够实现SMR硬盘中每个存储Zone空间里数据的顺序写入,能够适应并发写入的情景。

可选的,在本发明实施例的数据存储系统中,上述读写设备101,还用于在上述基数树中不包含上述目标存储偏移地址对应的缓存Zone索引时,判断上述非易失性存储介质102中是否存在未映射存储Zone的缓存Zone;若存在未映射存储Zone的缓存Zone,在未映射存储Zone的缓存Zone中选取一个缓存Zone,作为上述待写入数据待写入的存储Zone映射的缓存Zone;为上述待写入数据待写入的存储Zone映射的缓存Zone分配缓存Zone索引,并配置该缓存Zone索引的映射状态,及将该缓存Zone索引的各页置位干净。

读写设备将选取的缓存Zone索引中各页置位干净,按照待写入数据待写入的存储Zone的地址,设置选取的缓存Zone对应的缓存Zone索引中存储Zone的偏移,并设置缓存索引头等。在得到表征待写入数据待写入的存储Zone与缓存Zone对应关系的缓存Zone索引后,读写设备101根据该缓存Zone索引,确定目标缓存偏移地址在缓存Zone中的页偏移,按照该页偏移,将待写入数据写入到缓存Zone中;将已写入的页在缓存Zone索引里置位脏;在满足预设同步条件时,读写设备101按照缓存Zone索引,将缓存Zone中的数据写入到对应的存储Zone中。

在本发明实施例中,在写入待写入数据的存储Zone没有建立与缓存Zone的对应关系时,在空闲的缓存Zone中选取一个缓存Zone,建立该选的的缓存Zone与写入待写入数据的存储Zone的对应关系,配置缓存Zone索引,能够保证对新添加存储Zone的使用。

可选的,上述读写设备101,还用于若不存在未映射存储Zone的缓存Zone,按照预设选取规则,选取待回收缓存Zone索引;将上述待回收缓存Zone索引对应的缓存Zone中的数据写入到上述待回收缓存Zone索引对应的存储Zone中,将上述待回收缓存Zone索引作为已回收缓存Zone索引;将上述已回收缓存Zone索引对应的缓存Zone,作为上述待写入数据待写入的存储Zone映射的缓存Zone,将上述已回收缓存Zone索引各页置位干净,并配置上述已回收缓存Zone索引的映射状态为:上述已回收缓存Zone索引对应的缓存Zone,映射上述写入数据待写入的存储Zone。

预设选取规则为选取待回收缓存Zone索引的规则,例如,选取单位时间内平均访问次数最少的缓存Zone索引;或选取最近最少访问的缓存Zone索引,可以通过LRU(LeastRecently Used,最近最少使用)算法,选取最近最少访问的缓存Zone索引等。将按照预设选取规则选取的缓存Zone索引,作为待回收缓存Zone索引。

可选的,在本发明实施例的数据存储系统中,上述读写设备101,将上述待回收缓存Zone索引对应的缓存Zone中的数据写入到上述待回收缓存Zone索引对应的存储Zone中,包括:

读写设备101,按照待回收缓存Zone索引,确定该待回收缓存Zone索引对应的缓存Zone中是否有干净页;

若待回收缓存Zone索引对应的缓存Zone中有干净页,则获取各干净页的地址,按照各干净页的地址,在待回收缓存Zone索引对应的存储Zone中读取各干净页对应的数据,写入到缓存Zone的干净页中,将待回收缓存Zone索引对应的缓存Zone中的数据全部顺序写入到待回收缓存Zone索引对应的存储Zone中;

若待回收缓存Zone索引对应的缓存Zone中无干净页,将待回收缓存Zone索引对应的缓存Zone中的数据全部顺序写入到需要回收的缓存Zone索引对应的存储Zone中。

可选的,在本发明实施例的数据存储系统中,上述读写设备101,将上述待回收缓存Zone索引对应的缓存Zone中的数据写入到上述待回收缓存Zone索引对应的存储Zone中,包括:

读写设备101,按照待回收缓存Zone索引,确定该待回收缓存Zone索引对应的缓存Zone中的第一个脏页和最后一个脏页,判断第一个脏页和最后一个脏页之间是否有干净页;

若第一个脏页和最后一个脏页之间有干净页,则获取第一个脏页和最后一个脏页之间各干净页的地址,按照各干净页的地址,在待回收缓存Zone索引对应的存储Zone中读取各干净页对应的数据,写入到缓存Zone相应的干净页中,将待回收缓存Zone索引对应的缓存Zone中第一个脏页和最后一个脏页之间的数据顺序写入到待回收缓存Zone索引对应的存储Zone中;

若第一个脏页和最后一个脏页之间无干净页,将待回收缓存Zone索引对应的缓存Zone中第一个脏页和最后一个脏页之间的连续数据,写入到待回收缓存Zone索引对应的存储Zone中。

可选的,在将上述待回收缓存Zone索引对应的缓存Zone中的数据写入到上述待回收缓存Zone索引对应的存储Zone中之后,上述读写设备101,还用于更新索引管理区及索引备份区中待回收缓存Zone索引的访问时间。

在完成待回收缓存Zone索引对应的缓存Zone的数据回收后,将上述待回收缓存Zone索引作为已回收缓存Zone索引。读写设备101将上述已回收缓存Zone索引作为待写入数据待写入的存储Zone对应的缓存Zone的缓存Zone索引,并更新已回收缓存索引表征的映射关系,将该缓存Zone索引中的各页置位干净。

读写设备101根据更新后的已回收缓存Zone索引,确定目标缓存偏移地址在缓存Zone中的页偏移,按照该页偏移,将待写入数据写入到缓存Zone中;按照该页偏移将对应的页置位脏;在满足预设同步条件时,读写设备101按照更新后的缓存Zone索引,将缓存Zone中的数据写入到对应的存储Zone中。

在数据I/O过程中,因为缓存Zone索引的数目有限,可能会出现缓存Zone索引已用完的情况的,因此需要对缓存Zone索引及缓存Zone进行回收。需要先回收缓存Zone中的数据,找到脏页的跨区,如果跨区中存在干净页则需要从SMR硬盘的存储Zone中读取干净页对应的数据,然后将该脏页的跨区连续写入到SMR硬盘的存储Zone中。可以通过基于LRU算法选取待回收缓存Zone索引,数据同步到SMR硬盘的存储Zone后,得到已回收缓存Zone索引,已回收缓存Zone索引就可以为新的其他的存储Zone写入请求所使用。读写设备清理缓存Zone索引中关于存储Zone的参数,将新的缓存Zone索引中各页置位干净,按照待写入数据待写入的存储Zone的地址,设置目标缓存Zone索引中存储Zone的偏移,并设置缓存索引头等。

在本发明实施例中,对缓存Zone索引及缓存Zone进行回收,通过配置缓存Zone索引建立已回收的缓存Zone与待写入数据的存储Zone的映射关系,能够应对缓存Zone索引数目有限的情况,保证新添加的存储Zone的使用。

可选的,上述非易失性存储介质102还包括索引管理区,上述SMR硬盘103还包括索引备份区;

上述索引管理区用于管理和保存各上述缓存Zone的缓存Zone索引,上述索引备份区用于存储上述SMR硬盘103的存储Zone的缓存Zone索引;

上述读写设备101,还用于在上述数据存储系统启动时,比较上述索引管理区中缓存Zone索引的最后更新时间及上述索引备份区中缓存Zone索引的最后更新时间,若上述索引备份区中缓存Zone索引的最后更新时间早于上述索引管理区中缓存Zone索引的最后更新时间,按照上述索引管理区中的各缓存Zone索引,更新上述索引备份区。

在索引备份区中缓存Zone索引的最后更新时间早于索引管理区中缓存Zone索引的最后更新时间时,说明索引管理区中数据较新,读写设备101按照上述索引管理区中的各缓存Zone索引,更新上述索引备份区中各缓存Zone索引,并将各缓存Zone中的数据同步到存储Zone中。读写设备101按照索引管理区缓存Zone索引的映射状态及缓存Zone索引以Zone为单位的偏移,将缓存Zone索引挂接到超级块的基数树上。

例如,缓存Zone索引的映射状态为已映射,缓存Zone索引以Zone为单位的偏移为3,则在基数树上次序为3的叶子指针上挂接该缓存Zone索引。若缓存Zone索引的映射状态为未映射,缓存Zone索引以Zone为单位的偏移为4,则在基数树上次序为4的叶子指针为NULL。

在本发明实施例中,在索引备份区中缓存Zone索引的最后更新时间早于索引管理区中缓存Zone索引的最后更新时间时,按照索引管理区中的各缓存Zone索引,配置上述基数树中的缓存Zone索引,能够保证缓存Zone索引为最新的缓存Zone索引,以确保存储的为最新的数据。

可选的,上述读写设备101,还用于若上述索引管理区中缓存Zone索引的最后更新时间早于上述索引备份区中缓存Zone索引的最后更新时间,按照上述索引备份区中的各缓存Zone索引,更新上述索引管理区中的缓存Zone索引,按照上述存储Zone中的数据更新上述缓存Zone中的数据,其中,上述读写设备中的基数树中挂接更新后的上述索引管理区中的缓存Zone索引。

在索引管理区中缓存Zone索引的最后更新时间早于索引备份区中缓存Zone索引的最后更新时间时,说明索引备份区中的数据较新,读写设备101将索引备份区中的各缓存Zone索引同步到索引管理区中,并根据缓存Zone索引的bitmap,从存储Zone中读取各脏页并存储到缓存Zone中,读写设备101按照缓存Zone索引的映射状态及缓存Zone索引以Zone为单位的偏移,将缓存Zone索引挂接到超级块的基数树上。

在本发明实施例中,在索引管理区中缓存Zone索引的最后更新时间早于索引备份区中缓存Zone索引的最后更新时间时,将索引备份区中的各缓存Zone索引同步到索引管理区中,按照索引管理区中的各缓存Zone索引,配置上述基数树中的缓存Zone索引,能够保证缓存Zone索引为最新的缓存Zone索引,按照缓存Zone索引将存储Zone中的数据同步到缓存Zone,能够保证非易失性存储介质中为最新的数据。

可选的,上述读写设备101,还用于在上述数据存储系统启动时,从上述非易失性存储介质102中读取各上述缓存Zone索引,根据读取的各上述缓存Zone索引,判断是否存在新的存储Zone,若存在新的存储Zone,为该新的存储Zone配置缓存Zone索引。

读写设备101读取非易失性存储介质102中的缓存Zone索引,同时获取各存储Zone的信息,对于新接入的SMR硬盘的存储Zone,分配新的缓存Zone索引,当待写入数据待写入的存储Zone为新接入的SMR硬盘的存储Zone时,设置该未初始化的缓存Zone索引的映射状态及参数,并挂接基数树。

在本发明实施例中,为新的存储Zone配置缓存Zone索引,保证新的存储Zone的正常使用。

可选的,在本发明实施例的数据存储系统中,上述预设同步条件包括上述数据存储系统断电重启。

非易失性存储介质102用于上述数据存储系统内存和SMR硬盘103之间的缓存。可选的,非易失性存储介质为Optane内存,Optane内存具有高带宽、低延时、高品质服务及高寿命的特性,能够提高数据存储系统的缓存效率,提高缓存数据的可靠性。非易失性存储介质可以由一个或多个Optane内存组成,将非易失性存储介质划分为多个缓存Zone(区域)。针对每个缓存Zone,该缓存Zone的大小可以与该缓存Zone映射的存储Zone的大小相等。

在异常断电时,读写设备内存中还未写入到磁盘的数据会丢失,为了增加数据存储的可靠性,将非易失性存储介质作为在本发明实施例的数据存储系统内存和SMR硬盘之间的缓存。在本发明实施例的数据存储系统断电重启时,读写设备101按照存储Zone与缓存Zone的对应关系,针对每个缓存Zone,将该缓存Zone中的数据和该缓存Zone映射的存储Zone进行同步。

在本发明实施例中,将数据缓存在非易失性存储介质的缓存Zone中,在意外断电后,非易失性存储介质中的数据不会丢失,在断电重启后,将非易失性存储介质中的数据和SMR硬盘的存储Zone进行同步,可以减少数据断电丢失的情况,能够增加数据存储的可靠性。并且SMR硬盘中不同的存储Zone随着数据写入动态映射缓存Zone,方便数据管理,读写设备能够通过存储Zone与缓存Zone的对应关系,直接将缓存Zone中的数据保存到存储Zone中,存储速度快存储效率高。

本发明实施例还提供了一种数据存储方法,参见图4,应用于数据存储系统,上述数据存储系统包括读写设备、非易失性存储介质及叠瓦式磁记录技术SMR硬盘,上述读写设备与上述非易失性存储介质连接,上述读写设备与上述SMR硬盘连接;上述SMR硬盘包括多个存储区域Zone,各上述存储Zone对应不同的偏移地址;上述非易失性存储介质逻辑划分为多个缓存Zone,各上述存储Zone映射不同的缓存Zone;上述读写设备记录上述存储Zone与上述缓存Zone的映射状态,上述方法包括:

S401,针对待写入数据,上述读写设备按照上述存储Zone与上述缓存Zone的映射状态,将上述待写入数据待写入的、在上述存储Zone中的地址,转化为缓存Zone中的偏移地址,作为目标缓存偏移地址;

S402,上述读写设备按照上述目标缓存偏移地址,将上述待写入数据写入到相应的缓存Zone中;

S403,在满足预设同步条件时,上述读写设备按照上述存储Zone与上述缓存Zone的映射状态,将上述缓存Zone中的数据写入到上述缓存Zone映射的存储Zone中。

本发明实施例中,通过在缓存Zone的指定页写入数据(可以乱序写入),并将缓存Zone中的数据顺序写入到该缓存Zone对应的存储Zone中,在逻辑上实现了SMR硬盘的乱序写入,解决了SMR硬盘只能顺序写的技术短板,用户以上层应用的视角即在SMR硬盘存储Zone的指定位置进行了数据写入,即实现了数据随机写入。并且针对SMR硬盘的各存储Zone分别进行数据写入,能够适用于并发写入的情况。

可选的,在本发明实施例的数据存储方法中,上述预设同步条件包括上述数据存储系统断电重启。

在本发明实施例中,将数据缓存在非易失性存储介质的缓存Zone中,在意外断电后,非易失性存储介质中的数据不会丢失,在断电重启后,将非易失性存储介质中的数据和SMR硬盘进行同步,可以减少数据断电丢失的情况,能够增加数据存储的可靠性。并且硬盘中不同的存储Zone随着数据写入动态映射缓存Zone,方便数据管理,读写设备能够通过存储Zone与缓存Zone的对应关系,直接将缓存Zone中的数据保存到存储Zone中,存储速度快存储效率高。

可选的,在本发明实施例的数据存储方法中,各上述缓存Zone对应不同的缓存Zone索引,上述缓存Zone索引表征上述缓存Zone与上述存储Zone的映射状态,上述缓存Zone索引还用于表征上述缓存Zone中各页的状态,上述读写设备包括基数树,上述基数树挂接上述缓存Zone索引;

上述针对待写入数据,上述读写设备按照上述存储Zone与上述缓存Zone的映射状态,将上述待写入数据待写入的、在上述存储Zone中的地址,转化为缓存Zone中的偏移地址,作为目标缓存偏移地址,包括:

针对待写入数据,上述读写设备将上述待写入数据的页偏移转换为存储Zone的偏移地址,作为目标存储偏移地址;

上述读写设备查询上述基数树中是否包含上述目标存储偏移地址对应的缓存Zone索引;

在上述基数树中包含上述目标存储偏移地址对应的缓存Zone索引时,上述读写设备按照上述目标存储偏移地址对应的缓存Zone索引,将上述目标存储偏移地址转化为在上述缓存Zone中的偏移地址,作为目标缓存偏移地址;

上述读写设备按照上述目标缓存偏移地址,将上述待写入数据写入到相应的缓存Zone中,包括:

上述读写设备确定上述目标缓存偏移地址在上述缓存Zone中的页偏移,作为目标页偏移,按照上述目标页偏移,将上述待写入数据写入到上述缓存Zone相应的页中,并在上述目标存储偏移地址对应的缓存Zone索引中,将上述缓存Zone相应的页置位脏。

可选的,在上述读写设备查询上述基数树中是否包含上述目标存储偏移地址对应的缓存Zone索引之后,上述方法还包括:

步骤一,在上述基数树中不包含上述目标存储偏移地址对应的缓存Zone索引时,上述读写设备判断上述非易失性存储介质中是否存在未映射存储Zone的缓存Zone;

步骤二,若存在未映射存储Zone的缓存Zone,上述读写设备在未映射存储Zone的缓存Zone中选取一个缓存Zone,作为上述待写入数据待写入的存储Zone映射的缓存Zone;

步骤三,上述读写设备为上述待写入数据待写入的存储Zone映射的缓存Zone分配缓存Zone索引,并配置该缓存Zone索引的映射状态,及将该缓存Zone索引的各页置位干净。

在本发明实施例中,在写入待写入数据的存储Zone没有建立与缓存Zone的对应关系时,在空闲的缓存Zone中选取一个缓存Zone,建立该选的的缓存Zone与写入待写入数据的存储Zone的对应关系,配置到缓存Zone索引参数里,能够保证对新添加存储Zone的使用。

可选的,在上述读写设备判断上述非易失性存储介质中是否存在未映射存储Zone的缓存Zone之后,上述方法还包括:

步骤一,若不存在未映射存储Zone的缓存Zone,上述读写设备按照预设选取规则,选取待回收缓存Zone索引;

步骤二,上述读写设备将上述待回收缓存Zone索引对应的缓存Zone中的数据写入到上述待回收缓存Zone索引对应的存储Zone中,将上述待回收缓存Zone索引作为已回收缓存Zone索引;

步骤三,上述读写设备将上述已回收缓存Zone索引对应的缓存Zone,作为上述待写入数据待写入的存储Zone映射的缓存Zone,将上述已回收缓存Zone索引各页置位干净,并配置上述已回收缓存Zone索引的映射状态为:上述已回收缓存Zone索引对应的缓存Zone,映射上述写入数据待写入的存储Zone。

可选的,将上述待回收缓存Zone索引对应的缓存Zone中的数据写入到上述待回收缓存Zone索引对应的存储Zone中,包括:

读写设备按照待回收缓存Zone索引,确定该待回收缓存Zone索引对应的缓存Zone中的第一个脏页和最后一个脏页,判断第一个脏页和最后一个脏页之间是否有干净页;

若第一个脏页和最后一个脏页之间有干净页,则获取第一个脏页和最后一个脏页之间各干净页的地址,按照各干净页的地址,在待回收缓存Zone索引对应的存储Zone中读取各干净页对应的数据,写入到缓存Zone相应的干净页中,将待回收缓存Zone索引对应的缓存Zone中第一个脏页和最后一个脏页之间的数据顺序写入到待回收缓存Zone索引对应的存储Zone中;

若第一个脏页和最后一个脏页之间无干净页,将待回收缓存Zone索引对应的缓存Zone中第一个脏页和最后一个脏页之间的连续数据,写入到待回收缓存Zone索引对应的存储Zone中。

在本发明实施例中,对缓存Zone索引及缓存Zone进行回收,建立回收的缓存Zone与新待写入数据的存储Zone的对应关系,并配置缓存Zone索引,能够应对缓存Zone索引数目有限的情况,保证新添加的存储Zone的使用。

可选的,如图5所示,在本发明实施例的数据存储方法中,上述针对待写入数据,上述读写设备按照上述缓存Zone索引,将上述待写入数据保存到上述待写入数据待写入的存储Zone对应的缓存Zone中,包括:

S501,针对待写入数据,将待写入数据的页偏移转换为存储Zone的偏移地址,作为目标存储偏移地址。

S502,查询基数树中是否包含目标存储偏移地址对应的缓存Zone索引,若基数树中包含目标存储偏移地址对应的缓存Zone索引执行S509,若基数树中不包含目标存储偏移地址对应的缓存Zone索引执行S503。

S503,判断非易失性存储介质中是否存在未对应存储Zone的缓存Zone,若存在未对应存储Zone的缓存Zone执行S507,若不存在未对应存储Zone的缓存Zone执行S504。

S504,按照预设选取规则,选取需要回收的缓存Zone索引。

S505,读写设备找到需要回收的缓存Zone索引,将需要回收的缓存Zone索引对应的缓存Zone中的数据写入到目标缓存Zone索引对应的存储Zone中。

读写设备按照需要回收的缓存Zone索引,确定该需要回收的缓存Zone索引对应的缓存Zone中的第一个脏页和最后一个脏页,判断第一个脏页和最后一个脏页之间是否有干净页;

若第一个脏页和最后一个脏页之间有干净页,读写设备获取第一个脏页和最后一个脏页之间各干净页的地址,按照各干净页的地址,在目标缓存Zone索引对应的存储Zone中读取各干净页对应的数据,读入到缓存Zone相应的干净页中,然后将目标缓存Zone索引对应的缓存Zone中第一个脏页和最后一个脏页之间的连续数据顺序写入到目标缓存Zone索引对应的存储Zone中;

若第一个脏页和最后一个脏页之间无干净页,读写设备将目标缓存Zone索引对应的缓存Zone中第一个脏页和最后一个脏页之间的连续数据顺序写入到目标缓存Zone索引对应的存储Zone中、完成回收。

S506,读写设备选取已回收的缓存Zone索引作为待写入数据待写入的存储Zone对应的缓存Zone的缓存Zone索引,将已回收缓存Zone索引对应的各页置位干净,并更新缓存Zone索引。

读写设备清理新缓存Zone索引中关于存储Zone的参数,将新缓存Zone索引中各页置位干净,按照待写入数据待写入的存储Zone的地址,设置目标缓存Zone索引中存储Zone的偏移、映射关系,并设置缓存索引头等。

S507,在未对应存储Zone的缓存Zone中选取一个缓存Zone,作为待写入数据待写入的存储Zone对应的缓存Zone;

S508,读写设备将待写入数据待写入的存储Zone对应的缓存Zone的缓存Zone索引进行参数清理,并配置缓存Zone索引。

读写设备将选取的缓存Zone索引中各页置位干净,按照待写入数据待写入的存储Zone的地址,设置选取的缓存Zone对应的缓存Zone索引中存储Zone的偏移,并设置缓存索引头等。

S509,按照目标存储偏移地址对应的缓存Zone索引,将目标存储偏移地址转化为在缓存Zone中的偏移地址,作为目标缓存偏移地址。

S510,确定目标缓存偏移地址在缓存Zone中的页偏移,作为目标页偏移,按照目标页偏移,将待写入数据按需求(可乱序)写入到缓存Zone中,并按照目标页偏移将对应的页在缓存Zone索引里置位脏。

在本发明实施例中,给出了待写入数据写入缓存Zone中具体方法,能够保证对新添加存储Zone的使用,支持乱序数据写入在缓存Zone里,进而缓存Zone和存储Zone之间数据顺序同步,克服了SMR硬盘只能顺序写的技术短板。通过基数树及缓存Zone索引,能够快速访问缓存Zone、管理缓存Zone与存储Zone的对应关系,更优的实现数据的管理及存储。

可选的,上述非易失性存储介质还包括索引管理区,上述SMR硬盘还包括索引备份区;上述索引管理区用于管理和保存各上述缓存Zone的缓存Zone索引,上述索引备份区用于存储上述SMR硬盘的存储Zone的缓存Zone索引;上述方法还包括:

在上述数据存储系统启动时,上述读写设备比较上述索引管理区中缓存Zone索引的最后更新时间及上述索引备份区中缓存Zone索引的最后更新时间;

若上述索引备份区中缓存Zone索引的最后更新时间早于上述索引管理区中缓存Zone索引的最后更新时间,上述读写设备按照上述索引管理区中的各缓存Zone索引,更新上述索引备份区。

在本发明实施例中,在索引备份区中缓存Zone索引的最后更新时间早于索引管理区中缓存Zone索引的最后更新时间时,按照索引管理区中的各缓存Zone索引,配置上述基数树中的缓存Zone索引,能够保证缓存Zone索引为最新的缓存Zone索引,以确保存储的为最新的数据。

可选的,在上述读写设备比较上述索引管理区中缓存Zone索引的最后更新时间及上述索引备份区中缓存Zone索引的最后更新时间之后,上述方法还包括:

若上述索引管理区中缓存Zone索引的最后更新时间早于上述索引备份区中缓存Zone索引的最后更新时间,上述读写设备按照上述索引备份区中的各缓存Zone索引,更新上述索引管理区中的缓存Zone索引;

上述读写设备按照上述存储Zone中的数据更新上述缓存Zone中的数据;

其中,上述读写设备中的基数树中挂接更新后的上述索引管理区中的缓存Zone索引。

在本发明实施例中,在索引管理区中缓存Zone索引的最后更新时间早于索引备份区中缓存Zone索引的最后更新时间时,将索引备份区中的各缓存Zone索引同步到索引管理区中,按照索引管理区中的各缓存Zone索引,配置上述基数树中的缓存Zone索引,能够保证缓存Zone索引为最新的缓存Zone索引。

可选的,在上述读写设备按照上述索引管理区中的各缓存Zone索引,配置上述基数树中的缓存Zone索引之前,上述方法还包括:

在上述数据存储系统启动时,上述读写设备从上述非易失性存储介质中读取各上述缓存Zone索引,根据读取的各上述缓存Zone索引,判断是否存在新的存储Zone,若存在新的存储Zone,为该新的存储Zone配置缓存Zone索引。

在本发明实施例中,为新的存储Zone分配缓存Zone索引,保证新的存储Zone的正常使用。

在本发明实施例的数据存储方法中,在上述数据存储系统启动时,需要将超级块和存储Zone进行绑定,即完成在基数树中挂接缓存Zone索引,可选的,如图6所示,其步骤包括:

S601,检查及设置各缓存Zone索引在非易失性存储介质中的缓存地址。

读写设备检查及设置各缓存Zone索引在非易失性存储介质中的缓存地址,并获取各缓存Zone索引在非易失性存储介质中的缓存地址。

S602,获取非易失性存储介质中缓存索引头,核对硬盘信息判断是否为新接入的硬盘。

读写设备获取非易失性存储介质中各缓存索引头,根据硬盘信息判断硬盘是否为新接入的硬盘,若硬盘是新接入的硬盘则执行S607,若SMR硬盘不是新接入的硬盘则执行S603。

S603,判断是否索引备份区的备份索引较新。

读写设备比较索引管理区中缓存Zone索引的最后更新时间及索引备份区中缓存Zone索引的最后更新时间,判断是否索引备份区的缓存Zone索引较新,若索引备份区的缓存Zone索引较新执行S604,若索引管理区中缓存Zone索引较新执行S606。

S604,同步索引备份区中的缓存Zone索引至索引管理区中。

读写设备将索引备份区中的各缓存Zone索引,拷贝到索引管理区中。

S605,根据缓存Zone索引的bitmap读取脏页到缓存Zone。

读写设备根据缓存Zone索引中各页的bitmap,确定各脏页,并从存储Zone中读取各脏页的数据,并存储到缓存Zone中,其中,缓存Zone和存储Zone的大小相等。

S606,根据缓存Zone索引的映射状态及zone偏移将索引挂接到超级快的基数树上。

读写设备按照缓存Zone索引的映射状态及缓存Zone索引以Zone为单位的偏移,将缓存Zone索引挂接到超级块的基数树上。

S607,为新接入的硬盘的存储Zone建立缓存索引头,根据新接入硬盘及存储Zone的参数,初始化缓存索引头的参数。

对于新接入的SMR硬盘的存储Zone,配置未初始化的缓存Zone索引,当待写入数据待写入的存储Zone为新接入的SMR硬盘的存储Zone时,设置该未初始化的缓存Zone索引的映射状态及参数,并挂接基数树。如果再有新的存储Zone写入,则进行新的缓存Zone索引分配及实例化,缓存Zone索引之间形成双向链表关系便于查找及删除操作,缓存Zone索引结构内部的索引头信息标注其所属的存储Zone,例如非易失性存储介质中缓存Zone的数量为63个,则对应的缓存Zone索引的数量也为63个。

在本发明实施例中,给出了数据存储系统启动时,基数树挂接缓存Zone索引的方法,能够保证存储的为最新的数据,同时保证新的存储Zone的正常使用。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

25页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种基于ARM的高速采样信号乒乓存储实现方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类