一种全闪存储系统数据管理的方法、装置以及设备与流程

文档序号:18985650发布日期:2019-10-29 04:22阅读:248来源:国知局
一种全闪存储系统数据管理的方法、装置以及设备与流程

本发明涉及磁盘技术领域,特别是涉及一种全闪存储系统数据管理的方法、装置、设备以及计算机可读存储介质。



背景技术:

随着磁盘技术的推进,ssd硬盘越来越普遍,ssd盘较传统的硬盘比较,其容量和访问速度都比传统硬盘有很大的提高。但ssd硬盘的读写方式与传统硬盘有很大的不通,因此为了最大化的可以利用ssd盘的性能优势,很多厂商都开始做全闪(ssa)存储系统的研究,ssa存储系统要求后端磁盘全部是ssd磁盘。根据ssd盘的读写特性,ssa需要操作大量的元数据,元数据的落盘操作是元数据操作的重要一环。

综上所述可以看出,如何使全闪存储系统中产生的大量元数据有效落盘是目前有待解决的问题。



技术实现要素:

本发明的目的是提供一种全闪存储系统数据管理的方法、装置、设备以及计算机可读存储介质,以解决现有技术中全闪存储系统中大量元数据无法有效落盘。

为解决上述技术问题,本发明提供一种全闪存储系统数据管理的方法,包括:在全闪存储系统的精简卷层与vg层之间建立lsa卷;依据预设比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷;根据所述元数据卷的原始内存空间的大小,创建原始位图;根据所述原始位图中各个bit位分别记录的所述元数据卷中各个grain的存储状态,判断所述元数据卷的可用内存空间是否小于预设空间阈值;若小于,将所述数据卷内预设大小的目标内存空间设置为所述元数据卷更新后的内存空间,完成所述元数据卷的扩容。

优选地,所述精简卷层包括:精简卷管理层、精简卷重删层和精简卷压缩层。

优选地,所述依据预设比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷包括:

根据10:1的比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷。

优选地,所述将所述数据卷内预设大小的目标内存空间设置为所述元数据卷更新后的内存空间,完成所述元数据卷的扩容包括:

在所述数据卷中重新为所述元数据卷分配一个预设大小的目标内存空间,并根据所述预设大小的目标内存空间创建目标位图;

完成所述目标位图的创建后,将所述原始内存空间中的数据转换至所述目标内存空间内,完成所述元数据卷的扩容。

优选地,还包括:

所述全闪存储系统在进行元数据下刷时以grain为粒度进行元数据顺序下刷操作。

本发明还提供了一种全闪存储系统数据管理的装置,包括:

建立模块,在全闪存储系统的精简卷层与vg层之间建立lsa卷;

分配模块,用于依据预设比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷;

创建模块,用于根据所述元数据卷的原始内存空间的大小,创建原始位图;

判断模块,用于根据所述原始位图中各个bit位分别记录的所述元数据卷中各个grain的存储状态,判断所述元数据卷的可用内存空间是否小于预设空间阈值;

扩容模块,用于若小于,将所述数据卷内预设大小的目标内存空间设置为所述元数据卷更新后的目标内存空间,完成所述元数据卷的扩容。

优选地,所述精简卷层包括:精简卷管理层、精简卷重删层和精简卷压缩层。

优选地,所述分配模块具体用于:

根据10:1的比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷。

本发明还提供了一种全闪存储系统数据管理的设备,包括:

存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种全闪存储系统数据管理的方法的步骤。

本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种全闪存储系统数据管理的方法的步骤。

本发明所提供的全闪存储系统数据管理的方法,在全闪存储系统的精简卷层与vg层之间建立了一个lsa卷。并将所述lsa卷的内存空间按照预设比例分别划分给数据卷和元数据卷。在建立所述元数据卷时,根据所述元数据卷的原始内存空间的大小,建立相应大小的原始位图,利用所述原始位图中各个bit位分别记录所述元数据卷中各个grain的存储状态。根据所述原始位图中各个bit位字节的更新,判断所述元数据卷的剩余可用空间是否小于预设空间阈值,若小于则在所述数据卷的可用内存空间中划分一块预设大小的目标内存空间作为新的元数据卷。本发明所述提供的方法,为了使全闪存储系统产生的大量元数据有效落盘,在全闪存储系统中新增了一个lsa卷,将所述lsa卷划分为数据卷和元数据卷,并利用位图对元数据卷内各个grain的存储状态进行记录。当所述元数据卷内的可用存储空间不足时,在不影响系统业务的前提下通过对位图的操作实现了元数据卷的扩容操作,从而将全闪存储系统产生的大量元数据有效落盘至扩容后的元数据卷中。

附图说明

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

图1为本发明所提供的全闪存储系统数据管理的方法的第一种具体实施例的流程图;

图2为lsa卷在全闪存储系统中的位置示意图;

图3为本发明所提供的全闪存储系统数据管理的方法的第二种具体实施例的流程图;

图4为本发明实施例提供的一种全闪存储系统数据管理的装置的结构框图。

具体实施方式

本发明的核心是提供一种全闪存储系统数据管理的方法、装置、设备以及计算机可读存储介质,在全闪存储系统中新增了lsa卷,在不影响系统业务的前提下通过对位图的操作实现了元数据卷的扩容操作。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参考图1,图1为本发明所提供的全闪存储系统数据管理的方法的第一种具体实施例的流程图;具体操作步骤如下:

步骤s101:在全闪存储系统的精简卷层与vg层之间建立lsa卷;

全闪(ssa)存储系统要求后端磁盘全部是ssd磁盘,根据ssd盘的读写特性,全闪存储系统需要操作大量的元数据,元数据的落盘操作是元数据操作的重要一环。因此,在本实施例中,在元数据与磁盘之间,加上了一个用于管理数据下刷和元数据下层的管理层:lsa层(logstructarchitecture元数据下层)。所述lsa层用于排列grain和下刷grain到对应的vdisk。

所述lsa卷为全闪新增模块,位于精简卷管理、重删、压缩之下,vg层之上,如图2所示,图2中thinlun为精简卷,vg(volumegroup)为卷组,cdisk为磁盘。因此,在所述全闪存储系统中,由于ssd盘自身的特点,数据的写入方式将不再是通常的覆盖写方式,而是采用追加写方式,即无论新旧数据写入,其都将顺序写入到新的位置,而不是采用覆盖原位置的方式。因此为了满足该功能设计的需要,全闪系统中新加入的lsa卷模块的设计。所述lsa卷的核心功能主要有两项:每次写io均采用顺序新写入的方式,从而实现将随机写io转换为顺序写io;数据下盘采用io以grain(元数据b+tree节点)为粒度满条带下刷的方式,实现大块顺序写。在本实施例中,当系统缓存中的元数据的大小达到预设值后,将固定大小的元数据一次性顺序下刷至元数据卷,而不是产生一条元数据时就下刷一条数据。

步骤s102:依据预设比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷;

在本实施例中,可以依据10:1的比例将所述lsa卷的内存空间分别划分为数据lsa卷和元数据lsa卷。所述数据lsa卷负责管理pool的大部分空间,用于存放上层模块下发的数据;所述元数据lsa卷负责管理pool的剩余空间,用于集中存放运行过程中产生的元数据。

需要说明的是,在本发明所提供的其他实施例中,还可以依据其他比例对lsa卷的内存空间进行分配。

在全闪存储系统中,pool的数据和产生的元数据都将保存到pool中,但数据与元数据具有不同的特点,相比较于数据的读写,元数据的读写会更加频繁。为区分数据与元数据的处理,所述lsa卷对于数据和主要元数据的采用区分存放的范式,将数据和元数据分别写入到数据lsa卷和元数据lsa卷中,从而实现数据与元数据分隔。

步骤s103:根据所述元数据卷的原始内存空间的大小,创建原始位图;

步骤s104:根据所述原始位图中各个bit位分别记录的所述元数据卷中各个grain的存储状态,判断所述元数据卷的可用内存空间是否小于预设空间阈值;

根据所述lsa卷的大小,估计出所述元数据卷初始内存空间的大小,根据所述元数据卷大小创建相应大小的位图(bitmap)。位图中每个bit位记录所述元数据卷中一个grain的存储状态,即位图中每两个字节表示一个grain的存储状态。若grain的存储状态发送变化,则更新对应bit位的字节。

步骤s105:若小于,将所述数据卷内预设大小的目标内存空间设置为所述元数据卷更新后的内存空间,完成所述元数据卷的扩容。

所述数据卷和所述元数据卷的空间均采用自精简的分配方式,但同时又要优先保证元数据的使用,即初始分配时,所述数据卷会占用大部分的pool空间,但当出现所述元数据卷的空间不足时,可向所述数据卷申请部分可用空间,从而保证元数据信息的安全。元数据卷的记录方式通过位图的方式,每个bit位代表相应grain的状态,创建元数据卷时,同样创建相应大小的bitmap,通过对bitmap的创建操作,能很好的解决元数据卷的扩容操作问题。

基于上述实施例,在本实施例中,当元数据卷中的可用存储空间,不足时,在数据卷中分配一个预设大小的目标内存空间作为新的元数据卷,并根据所述目标内存空间的大小,建立目标位图。请参考图3,图3为本发明所提供的全闪存储系统数据管理的方法的第二种具体实施例的流程图。本实施例的具体操作步骤如下:

步骤s301:在全闪存储系统的精简卷管理层、重删层、压缩层下与vg层之间建立lsa卷;

步骤s302:根据10:1的比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷;

步骤s303:根据所述元数据卷的原始内存空间的大小,创建原始位图;

步骤s304:根据所述原始位图中各个bit位分别记录的所述元数据卷中各个grain的存储状态,判断所述元数据卷的可用内存空间是否小于预设空间阈值;

步骤s305:若小于,在所述数据卷中重新为所述元数据卷分配一个预设大小的目标内存空间,并根据所述预设大小的目标内存空间创建目标位图;

步骤s306:完成所述目标位图的创建后,将所述原始内存空间中的数据转换至所述目标内存空间内,完成所述元数据卷的扩容。

当元数据卷的原始内存空间中的可用内存空间不足时,所述元数据卷向所述数据卷申请部分可用内存空间,即目标内存空间,设置为新的元数据卷。所述元数据卷扩容且建立相应大小的位图的过程为:(1)所述lsa卷创建后,lsa卷会通知内存管理模块(memorymanager)的agentbitmap的size大小,memorymanageragent将会从动态内存里面分配相应大小的内存空间;(2)如果memorymanager可以从非易失性动态内存里面根据lsa卷的id找到bitmap大小小于等于步骤(1)中size的非易失性bitmap,则memorymanager将会复用这块内存空间;如果没找到合适的bitmap或者size大于步骤(1)中的尺寸大小,则memorymanager会在非易失性动态内存创建一个新的内存空间,同时也会在动态内存中allocate一块内存,做数据备份用;(3)memorymanageragnet将会通知memorymanager的集群状态机(csm)要创建的bitmap的size大小的内存将会存储在csmmmanchor中;(4)memorymanager的csm将会在csm内存空间中reallocate相应大小的内存;(5)memorymanager的csm将会利用callgate机制,通知agent来allocate、map和harden这块在非易失性内存中新的非易失性bitmapbuffer,数据也将会从老的buffer中拷贝到新的buffer中;(6)memorymanageragent也会切换到新的注册内存,同时将数据从原有内存拷贝到新的内存中;(7)拷贝完成后,将agent中原有内存中的数据移除,

本实施例,在全闪存储系统的元数据与磁盘之间,增加了一个lsa层,有效的管理了元数据的下刷流程。在创建元数据卷的同时,新建一个bitmap来描述整个元数据卷的存储状态,通过对bitmap的操作及处理在不影响业务的前提下完成了lsa元数据卷的扩容操作。

请参考图4,图4为本发明实施例提供的一种全闪存储系统数据管理的装置的结构框图;具体装置可以包括:

建立模块100,在全闪存储系统的精简卷层与vg层之间建立lsa卷;

分配模块200,用于依据预设比例将所述lsa卷的内存空间分别分配给数据卷和元数据卷;

创建模块300,用于根据所述元数据卷的原始内存空间的大小,创建原始位图;

判断模块400,用于根据所述原始位图中各个bit位分别记录的所述元数据卷中各个grain的存储状态,判断所述元数据卷的可用内存空间是否小于预设空间阈值;

扩容模块500,用于若小于,将所述数据卷内预设大小的目标内存空间设置为所述元数据卷更新后的目标内存空间,完成所述元数据卷的扩容。

本实施例的全闪存储系统数据管理的装置用于实现前述的全闪存储系统数据管理的方法,因此全闪存储系统数据管理的装置中的具体实施方式可见前文中的全闪存储系统数据管理的方法的实施例部分,例如,建立模块100,分配模块200,创建模块300,判断模块400,扩容模块500,分别用于实现上述全闪存储系统数据管理的方法中步骤s101,s102,s103,s104和s105,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。

本发明具体实施例还提供了一种全闪存储系统数据管理的设备,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述一种全闪存储系统数据管理的方法的步骤。

本发明具体实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种全闪存储系统数据管理的方法的步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的全闪存储系统数据管理的方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1