CN110673791A - 一种元数据下刷方法、装置、设备及可读存储介质 - Google Patents
一种元数据下刷方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN110673791A CN110673791A CN201910844416.4A CN201910844416A CN110673791A CN 110673791 A CN110673791 A CN 110673791A CN 201910844416 A CN201910844416 A CN 201910844416A CN 110673791 A CN110673791 A CN 110673791A
- Authority
- CN
- China
- Prior art keywords
- metadata
- storage controller
- subset
- disk array
- brushing
- 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.)
- Granted
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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种元数据下刷方法、装置、设备及可读存储介质,该技术方案中第一存储控制器获取待下刷的普通数据集合,并确定普通数据集合对应的元数据集合;当第二存储控制器正常工作时随机分割元数据集合,获得第一元数据子集合和第二元数据子集合;发送第二元数据子集合给第二存储控制器;在第二存储控制器下刷第二元数据子集合至磁盘阵列时,下刷第二元数据子集合至磁盘阵列。在该技术方案中对元数据进行下刷,由两个存储控制器同时进行,可大大缩减元数据下刷耗时,能够提高数据访问响应速度。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种元数据下刷方法、装置、双控存储设备及可读存储介质。
背景技术
在云处理、大数据快速发展的时代,存储产品的性能也得到了大幅提升,高性能存储产品已经能达到EB级的容量和亿级IOPS的极速性能,其中全闪存储产品对于性能要求更高。
目前,下刷普通数据基于普通卷进行单结点(存储控制器)下刷,元数据基于元数据卷进行单节点下刷。在实际应用中,在需要访问磁盘阵列中的普通数据时,会出现在磁盘阵列中还未存储对应的元数据,而无元数据则无法找到需要访问的普通数据。此时需要等待元数据下刷后,才能实现访问普通数据,会导致数据访问响应速度慢或响应超时。而出现这一原因,往往因为元数据下刷速度过慢。
综上所述,如何有效地提高元数据下刷速度等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本发明的目的是提供一种元数据下刷方法、装置、双控存储设备及可读存储介质,以提高元数据下刷速度,进一步提升数据访问响应速度。
为解决上述技术问题,本发明提供如下技术方案:
一种元数据下刷方法,包括:
第一存储控制器获取待下刷的普通数据集合,并确定所述普通数据集合对应的元数据集合;
当第二存储控制器正常工作时随机分割所述元数据集合,获得第一元数据子集合和第二元数据子集合;
发送所述第二元数据子集合给所述第二存储控制器;
在所述第二存储控制器下刷所述第二元数据子集合至磁盘阵列时,下刷所述第二元数据子集合至所述磁盘阵列。
优选地,下刷所述第二元数据子集合至所述磁盘阵列,包括:
转换所述第二元数据子集合的数据结构,将指定数据结构的第二元数据子集合下刷至磁盘阵列。
优选地,转换所述第二元数据子集合的数据结构,将指定数据结构的第二元数据子集合下刷至磁盘阵列,包括:
将所述第二数据子集合中的各个元数据添加至指定树形结构,并将所述指定树形结构对应的第二元数据子集合下刷至磁盘阵列;其中所述指定树形结构为B+树、平衡树或红黑树。
优选地,确定所述第二存储控制器是否正常工作,包括:
判断所述第二存储控制器对应的元数据卷是否设置为独占模式;
如果是,则确定所述第二存储控制器正常工作;
如果否,则确定所述第二存储控制器故障。
优选地,当所述第二存储控制器故障时,包括:
下刷所述元数据集合至所述磁盘阵列。
优选地,确定所述普通数据集合对应的元数据集合,包括:
记录所述普通数据集合中各个普通数据分别对应的逻辑地址和物理地址;
利用所述逻辑地址和所述物理地址确定各个所述普通数据对应的元数据,将所述元数据添加至所述元数据集合。
优选地,还包括:
接收第二存储控制器发送的第三元数据子集合;
下刷所述第三元数据子集合至所述磁盘阵列。
一种元数据下刷装置,应用于第一存储控制器,包括:
元数据集合获取模块,用于获取待下刷的普通数据集合,并确定所述普通数据集合对应的元数据集合;
元数据集合分割模块,用于当第二存储控制器正常工作时随机分割所述元数据集合,获得第一元数据子集合和第二元数据子集合;
元数据子集合发送模块,用于发送所述第二元数据子集合给所述第二存储控制器;
元数据下刷模块,用于在所述第二存储控制器下刷所述第二元数据子集合至磁盘阵列时,下刷所述第二元数据子集合至所述磁盘阵列。
一种双控存储设备,包括:
磁盘阵列和两个存储控制器;
所述存储控制器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述元数据下刷方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述元数据下刷方法的步骤。
应用本发明实施例所提供的方法,第一存储控制器获取待下刷的普通数据集合,并确定普通数据集合对应的元数据集合;当第二存储控制器正常工作时随机分割元数据集合,获得第一元数据子集合和第二元数据子集合;发送第二元数据子集合给第二存储控制器;在第二存储控制器下刷第二元数据子集合至磁盘阵列时,下刷第二元数据子集合至磁盘阵列。
为了提高数据访问响应效率,在存储元数据,往往按照易于查询的数据结构存储元数据。也就是说,下刷元数据并非简单的将元数据落盘,还需在落盘之前,对其进行数据结构转换处理,使之符合指定的数据结构。数据结构转换处理的元数据量越大,耗时越久,另外,采用单一存储控制器下刷元数据也导致元数据下刷耗时。基于此,在本方法中,当第一存储控制器确定出待下刷的普通数据集合对应的元数据集合后,在确定出第二存储控制器正常工作时,堆积分割元数据集合,将第二元数据子集合发送给第二存储控制器,如此,第一存储控制器下刷第一元数据子集合至磁盘阵列的同时,第二存储控制下刷第二元数据子集合至磁盘阵列。可见,在本方法中,对元数据进行下刷,即对元数据进行数据转换处理和下刷由两个存储控制器同时进行,可大大缩减元数据下刷耗时,能够提高数据访问响应速度。
相应地,本发明实施例还提供了与上述元数据下刷方法相对应的元数据下刷装置、双控存储设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种元数据下刷方法的实施流程图;
图2为本发明实施例中一种存储系统通信关系示意图;
图3为本发明实施例中一种元数据下刷装置的结构示意图;
图4为本发明实施例中一种双控存储设备中存储控制设备的结构示意图;
图5为本发明实施例中一种双控存储设备中存储控制设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
请参考图1,图1为本发明实施例中一种元数据下刷方法的流程图,该方法可应用于如图2所示的存储控制器中。其中,外部服务器、第一存储控制器、第二存储控制器、磁盘阵列之间的箭头表示通信链路,即外部服务器和第一存储控制器/第二存储控制器可以通信,第一存储控制器和第二存储控制器之间可以通信,第一存储控制器和第二存储控制器都可以和磁盘阵列(由硬盘组成的集合,用来存储数据)通信。需要说明的是,在本发明实施例中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。例如,第一存储控制器和第二存储控制器仅表明存在两个存储控制器,为了便于描述,将其中一个称之为第一存储控制器,而将另一个存储控制器称之为第二存储控制器。
为便于描述,下面以在其中一个存储控制器如何实现元数据下刷方法为例进行详细说明,另一个存储控制器的实现过程可对应参照。元数据下刷方法包括以下步骤:
S101、第一存储控制器获取待下刷的普通数据集合,并确定普通数据集合对应的元数据集合。
第一存储控制器获取待下刷的普通数据集合可具体为接收外部服务器发送的数据。在本文中将外部服务器发送的待下刷的数据称之为普通数据,即普通数据为区别元数据的数据内容。
在本发明实施例中,下刷普通数据集合可采用单/双存储控制器下刷方式,具体的,即外部服务器将待下刷的数据仅发送给一个存储控制器或两个存储控制器。对于单个存储控制器,在接收到的普通数据集合之后,可直接下刷普通数据集合至磁盘阵列。
在下刷普通数据集合至磁盘阵列时,或在下刷普通数据集合至磁盘阵列之前,为平台数据集合分配物理地址时,可确定出平台数据集合对应的元数据集合。即,元数据和普通数据都需要存储到磁盘阵列中。确定元数据集合的过程,包括:
步骤一、记录普通数据集合中各个普通数据分别对应的逻辑地址和物理地址;
步骤二、利用逻辑地址和物理地址确定各个普通数据对应的元数据,将元数据添加至元数据集合。
其中,元数据用来记录外部服务器下发的数据的逻辑地址和磁盘阵列中数据真实地址(同物理地址)对应关系的数据,存储设备可利用元数据从磁盘阵列中找到外部服务器要读的数据。
需要说明的是,普通数据集合中的每一个普通数据均对应一个元数据,也就是说普通数据集合的元素个数与元数据集合的元素个数相同,且具体一一对应的关系。
S102、当第二存储控制器正常工作时随机分割元数据集合,获得第一元数据子集合和第二元数据子集合。
其中,确定第二存储控制器是否正常工作,其具体确定过程,包括:
步骤一、判断第二存储控制器对应的元数据卷是否设置为独占模式;
步骤二、如果是,则确定第二存储控制器正常工作;
步骤三、如果否,则确定第二存储控制器故障。
为便于描述,下面将上述三个步骤结合起来进行说明。
在本发明实施例中,在创建精简池时,第一存储控制器和第二存储控制器可分别创建数据卷和元数据卷,并且每个存储控制器在正常工作时,将其所创建的元数据卷设置为owner,即独占模式。如此,在需要下刷元数据时,第一存储控制器可通过判断第二存储控制器对应的元数据卷是否被设置为独占模式,以确定第二存储控制器是否正常工作。具体的,当第二存储控制器对应的元数据为独占模式时,则确定第二存储控制器属于正常工作状态;当第二存储控制器对应的元数据非独占模式时,则确定第二存储控制器属于故障状态。
当第二存储控制器故障时,第一存储控制器可直接下刷元数据集合至磁盘阵列。此时,元数据集合下刷方式可参照现有的元数据下刷方式,在此不再一一赘述。
在确定出第二存储控制器正常工作时,可随机分割元数据集合,获得第一元数据子集合和第二元数据子集合。即,将元数据集合分割为两个元数据子集合。在本发明实施例中对两个元数据子集合的具体大小并不做限定,例如第一元数据子集合中与第二元数据子集合的元数据数量的比值可为5比5,4比7,3比6等数据。具体的,可根据存储控制器的当前处理性能进行划分,例如为处理性能更好的存储控制器分割更多的元数据数量的元数据子集合。
S103、发送第二元数据子集合给第二存储控制器。
确定出第二元数据子集合之后,可将第二元数据子集合发送给第二存储控制器。
S104、在第二存储控制器下刷第二元数据子集合至磁盘阵列时,下刷第二元数据子集合至磁盘阵列。
第二存储控制器接收到第二元数据子集合之后,便可吓死第二元数据子集合至磁盘阵列。与此同时,第一存储控制器也可下刷第二元数据子结合至磁盘阵列。即第一存储控制器和第二存储控制器协同工作,共同将元数据集合下刷至磁盘阵列。
优选地,为了提高数据读取效率,在存储元数据时,还可将元数据按照便于读取或查询的数据结构进行处理后再下刷至磁盘阵列。即,下刷第二元数据子集合至磁盘阵列,可为转换第二元数据子集合的数据结构,将指定数据结构的第二元数据子集合下刷至磁盘阵列。具体的,可将第二数据子集合中的各个元数据添加至指定树形结构,并将指定树形结构对应的第二元数据子集合下刷至磁盘阵列;其中指定树形结构为B+树、平衡树或红黑树。以B+树(一种数据结构)为例,数据转换处理,即为把各个普通数据的逻辑地址到真实地址的对应关系存入B+树。
其中,B+树上有两个头指针,一个指向根结点,一个指向关键字最小的叶子结点。平衡树,即平衡二叉树(BalancedBinaryTree)具有以下性质:为空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。构造与调整方法平衡二叉树的常用算法有红黑树、AVL、Treap等。最小二叉平衡树的节点的公式如下F(n)=F(n-1)+F(n-2)+1,类似于一个递归的数列,可以参考Fibonacci数列,1是根节点,F(n-1)是左子树的节点数量,F(n-2)是右子树的节点数量。红黑树为一种特定类型的二叉树,在计算机科学中用到的一种数据结构,可实现关联数组。
优选地,考虑到元数据下刷方法,不仅可应用于第一存储控制器还可应用于与第二存储控制器,即当第二存储控制器下刷普通数据时,也可将元数据下刷任务与第一存储控制器共同分担。即,第二存储控制器也将其需要处理的元数据集合进行随机分割,得到第三元数据子集合,然后将第三元数据子集合发送给第一存储控制器。第一存储控制器接收第二存储控制器发送的第三元数据子集合;下刷第三元数据子集合至磁盘阵列。此时,第一存储控制器对第三元数据子集合进行下刷的过程与上述第一存储控制器下刷第一元数据子集合相同,在此不再一一赘述。
优选地,在存储控制器下刷了另一个存储控制器发送的元数据子集合之后,还可向该存储控制器反馈元数据子集合下刷成功的反馈消息。
为了提高数据访问响应效率,在存储元数据,往往按照易于查询的数据结构存储元数据。也就是说,下刷元数据并非简单的将元数据落盘,还需在落盘之前,对其进行数据结构转换处理,使之符合指定的数据结构。数据结构转换处理的元数据量越大,耗时越久,另外,采用单一存储控制器下刷元数据也导致元数据下刷耗时。基于此,在本方法中,当第一存储控制器确定出待下刷的普通数据集合对应的元数据集合后,在确定出第二存储控制器正常工作时,堆积分割元数据集合,将第二元数据子集合发送给第二存储控制器,如此,第一存储控制器下刷第一元数据子集合至磁盘阵列的同时,第二存储控制下刷第二元数据子集合至磁盘阵列。可见,在本方法中,对元数据进行下刷,即对元数据进行数据转换处理和下刷由两个存储控制器同时进行,可大大缩减元数据下刷耗时,能够提高数据访问响应速度。
实施例二:
为便于本领域技术人员,更好地理解本发明实施例所提供的元数据下刷方法,下面结合存储控制器中的软件栈以及现有的元数据下刷方式,对上述元数据下刷方法进行详细说明。
存储控制器的软件栈的软件分层包括:上层软件层、元数据层、缓存层。外部服务器写到磁盘阵列的数据流向:上层软件层-->元数据层—>缓存层。
普通数据下刷处理流程:外部服务器—>结点的元数据层—>磁盘阵列;即外部服务器把要写入磁盘阵列的普通数据发给存储控制器的元数据层(选择第一存储控制器和第二存储控制器中的任意一个结点下发),元数据层把普通数据直接发送给磁盘阵列。
元数据双节点下刷处理流程(即应用实施例一所提供的元数据下刷方法的流程):外部服务器—>第一存储控制器或第二存储控制器的元数据层—>第一存储控制器和第二存储控制器的缓存层-->磁盘阵列;即外部服务器把要写入磁盘阵列的普通数据发给结点的元数据层(选择第一存储控制器和第二存储控制器中的任意一个结点下发),元数据层把从外部服务器发送的普通数据的逻辑地址转化成要存入磁盘阵列的真实地址,并且把逻辑地址到真实地址的对应关系存入B+树(一种数据结构),这种对应关系即元数据。之后元数据层会把元数据随机分成两部分,分别下刷给第一存储控制器的缓存层和第二存储控制器的缓存层,第一存储控制器的缓存层和第二存储控制器的缓存层再下发给磁盘阵列。而对于普通数据元数据层可直接下刷给磁盘阵列。
从上述可知道,应用本发明实施例所提供的元数据下刷方法后,元数据双结点下刷,对于元数据层而言即把元数据从发给一个结点的缓存层改为发给两个结点的缓存层,对于缓存层即从一个结点的缓存层下刷元数据改为两个结点的缓存层下刷元数据,所以元数据改成双节点下刷到普通数据没有影响。
双节点下刷元数据的具体实现方案如下:
1)在结点的缓存层中建立两个元数据卷(卷1和卷2),第一存储控制器和第二存储控制器同时可见这两个卷(第一存储控制器和第二存储控制器之间通过通信保持数据一致),对于第一存储控制器而言,第一存储控制器是卷1的owner结点,对于第二存储控制器而言,第二存储控制器是卷2的owner结点。
2)缓存层分别向第一存储控制器的元数据卷(卷1)下发和向第二存储控制器的元数据卷(卷2)下发。
利用结点缓存层的元数据卷只下刷owner结点元数据的功能,如此,第一存储控制器可把卷1中的元数据下刷到磁盘阵列中,同时第二存储控制器进可把卷2中的元数据下刷到磁盘阵列中,实现了双结点下刷元数据的功能。
通过把双结点的元数据卷都设置为owner来实现元数据的双结点下刷,进而提升了数据下刷的速率,进一步可提升存储设备的IOPS。
实施例三:
相应于上面的方法实施例,本发明实施例还提供了一种元数据下刷装置,下文描述的元数据下刷装置,该装置可应用于存储控制器中,与上文描述的元数据下刷方法可相互对应参照。
参见图3所示,该装置包括以下模块:
元数据集合获取模块101,用于获取待下刷的普通数据集合,并确定普通数据集合对应的元数据集合;
元数据集合分割模块102,用于当第二存储控制器正常工作时随机分割元数据集合,获得第一元数据子集合和第二元数据子集合;
元数据子集合发送模块103,用于发送第二元数据子集合给第二存储控制器;
元数据下刷模块104,用于在第二存储控制器下刷第二元数据子集合至磁盘阵列时,下刷第二元数据子集合至磁盘阵列。
应用本发明实施例所提供的装置,当第一存储控制器确定出待下刷的普通数据集合对应的元数据集合后,在确定出第二存储控制器正常工作时,堆积分割元数据集合,将第二元数据子集合发送给第二存储控制器,如此,第一存储控制器下刷第一元数据子集合至磁盘阵列的同时,第二存储控制下刷第二元数据子集合至磁盘阵列。可见,在本装置中,对元数据进行下刷,即对元数据进行数据转换处理和下刷由两个存储控制器同时进行,可大大缩减元数据下刷耗时,能够提高数据访问响应速度。
在本发明的一种具体实施方式中,元数据下刷模块104,具体用于转换第二元数据子集合的数据结构,将指定数据结构的第二元数据子集合下刷至磁盘阵列。
在本发明的一种具体实施方式中,元数据下刷模块104,具体用于将第二数据子集合中的各个元数据添加至指定树形结构,并将指定树形结构对应的第二元数据子集合下刷至磁盘阵列;其中指定树形结构为B+树、平衡树或红黑树。
在本发明的一种具体实施方式中,元数据集合分割模块102,具体用于确定第二存储控制器是否正常工作,具体包括判断第二存储控制器对应的元数据卷是否设置为独占模式;如果是,则确定第二存储控制器正常工作;如果否,则确定第二存储控制器故障。
在本发明的一种具体实施方式中,包括:
单结点下刷模块,用于当第二存储控制器故障时,下刷元数据集合至磁盘阵列。
在本发明的一种具体实施方式中,元数据集合获取模块101,具体用于记录普通数据集合中各个普通数据分别对应的逻辑地址和物理地址;利用逻辑地址和物理地址确定各个普通数据对应的元数据,将元数据添加至元数据集合。
在本发明的一种具体实施方式中,还包括:
元数据子集合协助下刷模块,用于接收第二存储控制器发送的第三元数据子集合;下刷第三元数据子集合至磁盘阵列。
实施例四:
相应于上面的方法实施例,本发明实施例还提供了一种双控存储设备,下文描述的一种双控存储设备与上文描述的一种元数据下刷方法可相互对应参照。
该双控存储设备包括:
磁盘阵列和两个存储控制器;
请参考图4,存储控制器,包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现如上述方法实施例的元数据下刷方法的步骤。
具体的,请参考图5,为本实施例提供的一种存储控制器的具体结构示意图,该存储控制器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在存储控制器301上执行存储介质330中的一系列指令操作。
存储控制器301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
上文所描述的元数据下刷方法中的步骤可以由存储控制器的结构实现。
实施例五:
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种元数据下刷方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的元数据下刷方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
Claims (10)
1.一种元数据下刷方法,其特征在于,包括:
第一存储控制器获取待下刷的普通数据集合,并确定所述普通数据集合对应的元数据集合;
当第二存储控制器正常工作时随机分割所述元数据集合,获得第一元数据子集合和第二元数据子集合;
发送所述第二元数据子集合给所述第二存储控制器;
在所述第二存储控制器下刷所述第二元数据子集合至磁盘阵列时,下刷所述第二元数据子集合至所述磁盘阵列。
2.根据权利要求1所述的元数据下刷方法,其特征在于,下刷所述第二元数据子集合至所述磁盘阵列,包括:
转换所述第二元数据子集合的数据结构,将指定数据结构的第二元数据子集合下刷至磁盘阵列。
3.根据权利要求2所述的元数据下刷方法,其特征在于,转换所述第二元数据子集合的数据结构,将指定数据结构的第二元数据子集合下刷至磁盘阵列,包括:
将所述第二数据子集合中的各个元数据添加至指定树形结构,并将所述指定树形结构对应的第二元数据子集合下刷至磁盘阵列;其中所述指定树形结构为B+树、平衡树或红黑树。
4.根据权利要求1所述的元数据下刷方法,其特征在于,确定所述第二存储控制器是否正常工作,包括:
判断所述第二存储控制器对应的元数据卷是否设置为独占模式;
如果是,则确定所述第二存储控制器正常工作;
如果否,则确定所述第二存储控制器故障。
5.根据权利要求1所述的元数据下刷方法,其特征在于,当所述第二存储控制器故障时,包括:
下刷所述元数据集合至所述磁盘阵列。
6.根据权利要求1所述的元数据下刷方法,其特征在于,确定所述普通数据集合对应的元数据集合,包括:
记录所述普通数据集合中各个普通数据分别对应的逻辑地址和物理地址;
利用所述逻辑地址和所述物理地址确定各个所述普通数据对应的元数据,将所述元数据添加至所述元数据集合。
7.根据权利要求1至6任一项所述的元数据下刷方法,其特征在于,还包括:
接收第二存储控制器发送的第三元数据子集合;
下刷所述第三元数据子集合至所述磁盘阵列。
8.一种元数据下刷装置,其特征在于,应用于第一存储控制器,包括:
元数据集合获取模块,用于获取待下刷的普通数据集合,并确定所述普通数据集合对应的元数据集合;
元数据集合分割模块,用于当第二存储控制器正常工作时随机分割所述元数据集合,获得第一元数据子集合和第二元数据子集合;
元数据子集合发送模块,用于发送所述第二元数据子集合给所述第二存储控制器;
元数据下刷模块,用于在所述第二存储控制器下刷所述第二元数据子集合至磁盘阵列时,下刷所述第二元数据子集合至所述磁盘阵列。
9.一种双控存储设备,其特征在于,包括:
磁盘阵列和两个存储控制器;
所述存储控制器,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述元数据下刷方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述元数据下刷方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910844416.4A CN110673791B (zh) | 2019-09-06 | 2019-09-06 | 一种元数据下刷方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910844416.4A CN110673791B (zh) | 2019-09-06 | 2019-09-06 | 一种元数据下刷方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110673791A true CN110673791A (zh) | 2020-01-10 |
CN110673791B CN110673791B (zh) | 2022-07-22 |
Family
ID=69076179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910844416.4A Active CN110673791B (zh) | 2019-09-06 | 2019-09-06 | 一种元数据下刷方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110673791B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309591A (zh) * | 2022-10-10 | 2022-11-08 | 浪潮电子信息产业股份有限公司 | 一种全闪存储系统的恢复方法及相关装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388346A (zh) * | 2018-10-15 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种数据落盘方法和相关装置 |
CN109445713A (zh) * | 2018-11-09 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种元数据卷的存储状态记录方法、系统及相关组件 |
CN109491611A (zh) * | 2018-11-07 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种元数据落盘方法、装置及设备 |
-
2019
- 2019-09-06 CN CN201910844416.4A patent/CN110673791B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109388346A (zh) * | 2018-10-15 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种数据落盘方法和相关装置 |
CN109491611A (zh) * | 2018-11-07 | 2019-03-19 | 郑州云海信息技术有限公司 | 一种元数据落盘方法、装置及设备 |
CN109445713A (zh) * | 2018-11-09 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种元数据卷的存储状态记录方法、系统及相关组件 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115309591A (zh) * | 2022-10-10 | 2022-11-08 | 浪潮电子信息产业股份有限公司 | 一种全闪存储系统的恢复方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110673791B (zh) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6734807B2 (ja) | テナントアウェアストレージシェアリングプラットフォームのための処理装置及びその方法 | |
JP6961844B2 (ja) | ストレージボリューム作成方法および装置、サーバ、並びに記憶媒体 | |
EP3367251B1 (en) | Storage system and solid state hard disk | |
US10628043B1 (en) | Systems and methods for implementing a horizontally federated heterogeneous cluster | |
USRE49134E1 (en) | Erasure coding and redundant replication | |
US8819335B1 (en) | System and method for executing map-reduce tasks in a storage device | |
WO2020204880A1 (en) | Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space | |
US10691601B2 (en) | Cache coherence management method and node controller | |
US10210044B2 (en) | Storage controller, data processing chip, and data processing method | |
CN118092796A (zh) | 分布式存储系统的目录结构 | |
CN104603739A (zh) | 对并行存储的块级访问 | |
CN105138281B (zh) | 一种物理磁盘的共享方法及装置 | |
KR102509913B1 (ko) | 최대화된 중복 제거 메모리를 위한 방법 및 장치 | |
CN107193494B (zh) | 一种基于ssd和hdd混合存储系统的rdd持久化方法 | |
US20160092454A1 (en) | Sparse file access | |
WO2017052571A1 (en) | Adaptive storage reclamation | |
CN109407985A (zh) | 一种数据管理的方法以及相关装置 | |
CN114600074A (zh) | 块装置的构造 | |
KR102471966B1 (ko) | 스토리지 노드 기반의 키-값 스토어를 이용하는 데이터 입출력 방법 | |
JP7261317B2 (ja) | 圧縮データの記憶及び取得の最適化 | |
CN111414228A (zh) | 基于Kubernetes的管理存储空间的方法和相关装置 | |
CN110673791B (zh) | 一种元数据下刷方法、装置、设备及可读存储介质 | |
CN107179883B (zh) | 一种基于SSD和HDD的混合存储系统的Spark架构优化方法 | |
CN107566341B (zh) | 一种基于联邦分布式文件存储系统的数据持久化存储方法及系统 | |
US20190042443A1 (en) | Data acquisition with zero copy persistent buffering |
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 |