横向扩展存储系统中的元数据管理技术方案

技术编号:17102362 阅读:34 留言:0更新日期:2018-01-21 12:37
公开了一种在横向扩展存储系统中管理元数据的方法。该系统包括:多个节点,存储池,将逻辑数据块的逻辑地址映射到相应内容标识符的第一元数据,将内容标识符映射到相应物理数据块在存储池中的物理地址的第二元数据,并维持引用计数。在添加节点的操作中,处理器被配置为在不访问或更改第一元数据的情况下把一些物理数据块、其内容标识符和引用计数,从现处节点移动到新节点。还公开了一种把逻辑设备从一个节点移动到另一个节点的方法。该方法关闭该逻辑设备在第一节点上的第一元数据,并且在第二节点激活并恢复该逻辑设备的第一元数据。

Metadata management in lateral extended storage system

A method of managing metadata in a horizontal extended storage system is disclosed. The system includes a plurality of nodes, storage pool, logical address mapping logical data block to the first metadata corresponding content identifier, the content identifier is mapped to the second metadata corresponding physical data blocks in the storage pool in the physical address, and maintain a reference count. In the operation of adding nodes, the processor is configured to move some physical data blocks, content identifiers and reference counts from the existing nodes to the new nodes without accessing or changing the first metadata. A method of moving a logical device from one node to another is also disclosed. This method closes the first metadata on the first node of the logical device and activates and recovers the first metadata of the logical device at the second node.

【技术实现步骤摘要】
【国外来华专利技术】横向扩展存储系统中的元数据管理
本公开总体涉及存储系统,更具体地,涉及横向扩展存储系统中的元数据管理。
技术介绍
一个横向扩展存储系统包括通过网络连接的多个节点。每个节点配备有处理器,内存,和多个存储设备。存储设备可以是硬盘驱动器(HDD,harddiskdrive)、固态设备(SSD,solid-statedevice)、或两者的混合(Hybrid)。存储设备上面可以配置用于数据冗余和负载平衡的RAID(RedundantArrayofInexpensiveDisks)硬件或软件。存储设备可以本地于每个节点或被多个节点共享。处理器可以专门运行存储软件应用,或在存储应用和用户应用之间共享。存储软件应用,诸如逻辑卷管理软件,可以提供存储虚拟化,节省容量,横向扩展,高可用性,数据移动,及高性能。存储虚拟化将由用户应用寻址的逻辑设备与存储设备上的物理数据布置分离。通过存储虚拟化,处理器可以根据存储设备的特性来优化物理数据的布置,并提供诸如去重的节省容量的方式。用户应用通过逻辑设备单元号(LUN)寻址逻辑设备。逻辑设备上的逻辑数据块由逻辑块地址(LBN)标识。因此,逻辑数据块的完整逻辑地址包括逻辑设备的LUN和逻辑数据块的LBN。为了支持存储虚拟化,处理器将以LUN和LBN寻址的用户输入/输出(I/O)转换为一系列以存储设备ID和物理块地址(PBN)寻址的I/O。也就是说,存储软件将逻辑数据块的逻辑地址转换为存储设备中的相应物理数据块的物理地址。在有些存储软件实施例中,为了实现这个转换,处理器需要支持前向映射元数据,该元数据将每个数据块的LBN映射到该数据的PBN。为了支持数据去重,处理器还支持去重元数据,该元数据将每个数据块的指纹(数据块内容的散列函数)映射到该数据块的PBN。可以支持额外的元数据,以支持例如压缩和快照等其它数据服务。数据块是处理器通过元数据管理的最小的存储单元。数据块可以小到4KB或大到整个数据卷。小数据块在优化数据布置及增加去重率上有优势。前向映射元数据的大小由数据块的大小和存储系统的可用容量决定。在一个小容量、大数据块的存储系统上,元数据小到可以整个缓存在内存中,便于快速访问,并持久地存储在存储设备上。随着系统物理容量的增加和数据块的减小,元数据会变得越来越大。诸如去重、压缩、快照之类的数据服务功能还会增加系统的可用容量,进而成倍增加元数据大小。在内存不足以存储整个元数据的情况下,元数据只能被持久地存储在存储设备上,其中一部分缓存在内存中。缓存只有在元数据具有引用局部性(localityofreference)时才有效,即实际中用户应用往往会频繁地访问相关的逻辑设备地址。处理器可以利用用户应用的引用局部性来将频繁访问元数据缓存在内存中,从而不显著地损失性能。没有用户应用的引用局部性,缓存就变成了颠簸,不但耗尽了系统资源而且降低性能。横向扩展(scaleout)是横向扩展存储系统的一个关键要求。横向扩展的一个示例是添加节点,即将一个新节点加入存储系统中以提供更多的存储容量和性能。横向扩展的另一个示例是删除节点,即将一个现有节点从存储系统中删除。这两种情况都需要将大量数据块从其当前物理位置移动到新位置,以便在所有可用容量和带宽内重新分布数据块。数据移动对用户应用需要是透明的,既数据块物理位置的变化不应该影响用户应用寻址的LUN/LBN。在有些存储软件实现中,处理器维持反向映射元数据,该元数据将每个物理数据块的PBN映射到相应于该PBN的一个或多个LBN。在把物理数据块从PBN1移动到PBN2的过程中,处理器先用PBN1在反向映射元数据中查找到相应于PBN1的一个或多个LBN;处理器然后在前向映射元数据中查找到这些LBN的条目,将其从映射于PBN1更改到映射于PBN2;接着处理器回到反向映射元数据中把PBN1更改为PBN2。如果启用去重功能,处理器需要计算数据块的指纹并在去重元数据中把该指纹的条目从映射于PBN1更改到映射于PBN2。鉴于支持横向扩展的数据移动不来自用户应用因此不受益于用户应用的引用局部性,上述这些对反向映射元数据,前向映射元数据,去重元数据的多个访问无法被有效地缓存在内存中,导致系统颠簸。逻辑设备可用性是指在原主节点A发生故障的情况下,使得逻辑设备在节点B上可用。逻辑设备移动性是指为了平衡负载而将逻辑设备从节点A移动到节点B。逻辑设备可用性和移动性都可以通过恢复访问时间和恢复性能时间来衡量。恢复访问时间定义为需要多长时间可以在节点B上支持对逻辑设备的第一个用户I/O。恢复性能时间定义为需要多长时间逻辑设备可以恢复其原来的性能。对于用前向映射元数据来支持存储虚拟化的存储软件,因为需要把前向映射元数据从节点A移动到节点B上,导致较长恢复访问时间。提供高性能对于横向扩展存储系统来说具有挑战性。因为数据块分布在多个节点之间,远程访问会受网络延迟影响。一些存储软件将逻辑设备需引用的大多数数据块布置在与该逻辑设备所在相同的节点上,试图以此减少网络延迟(称为数据局部性)。数据局部性有很多问题。首先,多个逻辑设备通常不会在多个节点之间自行负载平衡,导致数据块布置在容量和性能方面的不平衡。其次,在需要移动逻辑设备的情况下,其大部分数据块需要移动到新节点,导致很长的恢复性能时间。鉴于上述情况,需要更有效的元数据管理来支持存储虚拟化,节省容量,横向扩展,高可用性,移动性和高性能。
技术实现思路
公开了用于分布存储系统中管理元数据的方法和装置。存储系统被配置为支持横向扩展和逻辑设备移动性。存储系统包括通过网络连接的多个节点。每个节点包括处理器,内存,一个或多个存储设备。存储系统被配置为管理存储池,第一元数据,和第二元数据。存储池包括来自多个节点的存储设备和自由块表。第一元数据将每个逻辑数据块的逻辑地址映射到其内容标识符(CID)。第二元数据将每个内容标识符映射到其在存储池中相应的物理地址,并维持引用计数。元数据和数据块都跨节点冗余地存储在存储池中,并且可以被所有节点访问。在添加节点操作中,处理器被配置为在不访问第一元数据的情况下把一部分数据块、内容标识符和引用计数,从现处节点移动到新节点。为了将逻辑设备从节点A移动到节点B,节点A上的处理器关闭对该逻辑设备在节点A上的访问,节点B上的处理器通过从存储池恢复该逻辑设备的第一元数据来激活对该逻辑设备在节点B上的访问。为了加快恢复访问时间,逻辑设备的第一元数据可以以树形数据结构组织。节点B上的处理器可以在恢复该逻辑设备树形数据结构的根之后激活对逻辑设备的访问。为了加快恢复性能时间,节点A上的处理器可以将其本地缓存的数据推送到节点B.在有些实施例中,第一元数据被存储在存储池中,并基于引用局部性被缓存在内存里。在有些实施例中,第二元数据被存储在存储池中并被整体存储在内存中。在有些实施例中,第一元数据条目仅包括数据块的内容标识符,LBN没有被存储但可以基于其元数据条目在第一元数据中的相对位置来确定。在有些实施例中,第一元数据被存储在元数据块中。为每个元数据块生成内容标识符,使得元数据块被去重。当然,本专利技术不限于以上概述的特征,优点,背景。通过阅读以下具体实施方式并查看附图,熟悉存储技术的人员会认识到另外更多的特征和优点。附图说明图1图示横向扩展存储系本文档来自技高网
...
横向扩展存储系统中的元数据管理

【技术保护点】
一种在数据存储系统中实现移动数据的方法,所述方法包括:将数据块存储在数据存储池中,所述数据存储池包括分布在两个或更多个数据存储节点之间的多个数据存储设备,每个数据块与其独有内容标识符相关联;存储元数据,所述元数据将与一个或多个逻辑设备相关联的逻辑数据块的逻辑地址映射到存储在所述数据存储设备中的相应数据块的物理地址,所述元数据包括:第一元数据,其将所述逻辑设备中的逻辑数据块的逻辑地址映射到相应的内容标识符;和第二元数据,其将所述内容标识符映射到数据块的物理地址中的相应物理地址;向所述数据存储系统添加具有一个或多个附加数据存储设备的新数据存储节点;将第一数据块从位于所述数据存储节点中的第一数据存储节点上的数据存储设备中的第一数据存储设备中的第一物理地址,移动到所述新数据存储节点上的第二数据存储设备中的第二物理地址;更新第二元数据,以将与第一数据块相关联的内容标识符映射到第二物理地址,而不更改第一元数据。

【技术特征摘要】
【国外来华专利技术】2015.01.05 US 62/099,748;2015.09.30 US PCT/US2015/1.一种在数据存储系统中实现移动数据的方法,所述方法包括:将数据块存储在数据存储池中,所述数据存储池包括分布在两个或更多个数据存储节点之间的多个数据存储设备,每个数据块与其独有内容标识符相关联;存储元数据,所述元数据将与一个或多个逻辑设备相关联的逻辑数据块的逻辑地址映射到存储在所述数据存储设备中的相应数据块的物理地址,所述元数据包括:第一元数据,其将所述逻辑设备中的逻辑数据块的逻辑地址映射到相应的内容标识符;和第二元数据,其将所述内容标识符映射到数据块的物理地址中的相应物理地址;向所述数据存储系统添加具有一个或多个附加数据存储设备的新数据存储节点;将第一数据块从位于所述数据存储节点中的第一数据存储节点上的数据存储设备中的第一数据存储设备中的第一物理地址,移动到所述新数据存储节点上的第二数据存储设备中的第二物理地址;更新第二元数据,以将与第一数据块相关联的内容标识符映射到第二物理地址,而不更改第一元数据。2.根据权利要求1所述的方法,其特征在于,将数据块存储在数据存储池中,包括将所述数据块冗余地存储在多个数据存储节点上的多个数据存储设备中。3.根据权利要求1或2所述的方法,其特征在于,存储元数据,包括将所述元数据冗余地存储在多个数据存储节点上的多个数据存储设备中。4.根据权利要求1所述的方法,其特征在于,数据块和元数据可被每个所述数据存储节点访问。5.如权利要求1所述的方法,其特征在于,更新所述第二元数据包括:由第一数据存储节点从第二元数据中删除现有条目,该现有条目将第一数据块的内容标识符映射到第一物理地址;并且,由新数据存储节点在第二元数据中创建新条目,该新条目将第一数据块的内容标识符映射到第二物理地址。6.根据权利要求1所述的方法,其特征在于,还包括基于引用局部性将所述第一元数据缓存在所述数据存储节点的本地内存中。7.根据权利要求1或6所述的方法,其特征在于,还包括将所述第二元数据整体缓存在每个所述数据存储节点的本地内存中。8.根据权利要求1所述的方法,其特征在于,存储元数据,包括将所述第一元数据存储在第一元数据表中,所述第一元数据表包括多个包含所述逻辑数据块的内容标识符的条目。9.根据权利要求8所述的方法,其特征在于,所述第一元数据表中的每个条目的相对位置指示了相应逻辑数据块的逻辑块号。10.根据权利要求8或9所述的方法,其特征在于,将所述第一元数据表中的多个条目存储在元数据块中,还包括:为每个元数据块生成内容标识符;并且使用元数据块的内容标识符来去重元数据块。11.一种数据存储系统,包括:由网络连接的多个数据存储节点;数据存储池,包括分布在数据存储节点之间的多个数据存储设备,分布在数据存储节点之间的处理电路,所述处理电路被配置为:将数据块存储在所述数据存储池中,每个数据块与独有内容标识符相关联;在所述数据存储池中存储元数据,所述元数据将与一个或多个逻辑设备相关联的逻辑数据块的逻辑地址映射到存储在所述数据存储设备中的相应数据块的物理地址,所述元数据包括:第一元数据,其将所述逻辑设备中的逻辑数据块的逻辑地址映射到相应的内容标识符;和第二元数据,其将内容标识符映射到相应数据块的物理地址;响应于新数据存储节点的添加,将第一数据块从位于所述数据存储节点中的第一数据存储节点上的数据存储设备中的第一数据存储设备中的第一物理地址,移动到所述新数据存储节点上的第二数据存储设备中的第二物理地址;更新第二元数据,将与第一数据块相关联的内容标识符映射到第二物理地址,而不更改第一元数据。12.根据权利要求11所述的存储系统,其特征在于,将数据块冗余地存储在多个数据存储节点上的多个数据存储设备中。13.根据权利要求11或12所述的存储系统,其特征在于,将元数据冗余地存储在多个数据存储节点上的多个数据存储设备中。14.根据权利要求11所述的存储系统,其特征在于,数据块和元数据可被每个所述数据存储节点访问。15.根据权利要求11所述的存储系统,其特征在于,所述处理电路包括:第一数据存储节点中的第一处理器,其被配置为删除第二元数据中的现有条目,该现有条目将第一数据块的内容标识符映射到第一物理地址;并且,新数据存储节点中的第二处理器,其被配置为在第二元数据中创建新条目,该新条目将第一数据块的内容标识符映射到第二物理地址。16.根据权利要求11所述的存储系统,其特征在于,还包括所述每个数据存储节点中的本地内存,该本地...

【专利技术属性】
技术研发人员:亚瑟·詹姆斯·比弗迅常浜
申请(专利权)人:邦存科技有限公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1