CN103514249B - 一种数据自精简方法和系统及存储装置 - Google Patents

一种数据自精简方法和系统及存储装置 Download PDF

Info

Publication number
CN103514249B
CN103514249B CN201310246065.XA CN201310246065A CN103514249B CN 103514249 B CN103514249 B CN 103514249B CN 201310246065 A CN201310246065 A CN 201310246065A CN 103514249 B CN103514249 B CN 103514249B
Authority
CN
China
Prior art keywords
pond
address
free space
storage device
write
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.)
Active
Application number
CN201310246065.XA
Other languages
English (en)
Other versions
CN103514249A (zh
Inventor
易乐天
钱凯
赵朕毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201310246065.XA priority Critical patent/CN103514249B/zh
Publication of CN103514249A publication Critical patent/CN103514249A/zh
Application granted granted Critical
Publication of CN103514249B publication Critical patent/CN103514249B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一种数据自精简方法和系统及存储装置,该方法包括以下步骤:1.1初始化;1.2接收操作请求,如果是空间释放或精简卷删除请求,则进入步骤1.5,如是写请求,则进入步骤1.3;1.3接收写入数据段,从信息映射表找到精简池空闲空间的逻辑地址,将该数据段写入对应的物理地址;1.4更新各映射表和空闲空间索引表,并在存储设备或者存储介质中相应更新,如写数据操作请求是覆盖写操作请求进入步骤1.5;1.5更新各映射表和空闲空间索引表完成空间释放或者回收操作并进行相应更新。该系统用来执行上述方法。该存储装置包括上述自精简系统。本发明在空闲空间写数据提高存储系统写性能,用写时拷贝保证映射表一致性,及时告知存储设备无效页面地址。

Description

一种数据自精简方法和系统及存储装置
技术领域
本发明主要涉及到数据存储领域,特指一种适用于数据存储设备的数据自精简方法及系统。
背景技术
传统存储系统中的逻辑卷在存储设备或存储介质上所占用的物理空间大小,通常在逻辑卷被创建时就已经由应用或用户采用固定空间分配方法指定和分配;也就是说,逻辑卷在存储设备或存储介质上独占一个固定的物理空间。然而,在实际使用中,由于逻辑卷占用的存储空间中很多部分没有填满数据,因此将造成大量存储设备或者存储介质上的存储空间闲置。因此,传统的固定空间分配方法的存储空间利用率极为低下。
近些年来,越来越多的存储系统在为逻辑卷分配空间时,采用自动精简配置技术。在自动精简配置技术中,存储系统通常包含精简卷、精简池和映射表三部分。其中,精简卷为建立在精简池之上的逻辑卷;精简池为精简卷分配存储设备上的物理空间;映射表包括多个表项,该映射表用于记录精简池存储的数据的物理地址与该数据对应的精简卷逻辑地址之间的对应关系。在自动精简配置技术中,在为应用创建新的逻辑卷时,存储系统并不会让逻辑卷独占存储设备或存储介质上的物理空间,而是提供一个虚拟的精简卷,多个精简卷对应的精简池共享存储设备或者存储介质上的物理空间。当应用向精简卷中写入数据时,处理过程如下:精简卷根据应用发出的请求写入数据的命令,向精简池申请存储空间,精简池从存储设备或存储介质中分配物理空间,以使待写入数据写入精简池分配的存储空间中;在待写入数据写入精简池分配的存储空间后,映射表记录该数据在精简卷上对应的逻辑地址,与在精简池中对应的存储设备或存储介质上的物理地址,以指示该数据实际分配的物理空间。
传统的数据自精简技术存在以下几个问题:
1.采用原地更新方法完成覆盖写操作,当覆盖写操作指向随机地址时,数据在存储设备或者存储介质上的物理位置也会随机分布,导致存储设备或者存储介质的写性能降低。对于新型存储介质如闪存等,这种使数据分布在不同物理位置的随机写操作,还会急剧降低其使用寿命。
2.更新映射表时通常只能采用外部一致性机制如日志机制等,保存映射表的一致性,当对精简卷进行映射表的更新操作时发生系统宕机,则可能会导致长时间的映射表恢复操作,甚至导致映射表的不一致。
3.现有的自动精简配置方法通常只实现了逻辑层的空间回收,没有利用新型的存储介质如闪存、PCM等本身的空间管理特性真正释放物理层空间。比如,删除一个文件时,现有的自动精简配置方法通常只将映射表中相应的表项删除,而不告知固态硬盘无效页面地址。
发明内容
本发明要解决的问题就在于:针对现有技术存在的技术问题,本发明提供一种在空闲空间写数据、基于写时拷贝技术保证映射表一致性、能够及时告知存储设备无效页面地址的数据自精简方法和系统及存储装置。
为了解决上述问题,本发明采用以下技术方案:
一种数据自精简方法,包括以下步骤:
(1.1)精简控制层为每个精简池建立信息映射表,表示每个精简池的状态信息和对应的物理存储空间;为每个精简卷中的已分配存储空间的数据段建立地址映射表,表示所述数据段和精简池上的逻辑地址的映射关系;为每个精简池建立空闲空间索引表,表示该精简控制层上的每一段空闲空间的逻辑地址和逻辑空间大小;并将所述信息映射表和地址映射表以及空闲空间索引表写入存储设备或存储介质中;
(1.2)精简控制层接收主机端对精简卷的操作请求,如果该操作请求是空间释放请求或者精简卷删除请求,则进入步骤(1.5);如果该操作请求是写数据操作请求,则进入步骤(1.3);
(1.3)精简控制层接收所述写数据操作请求对应的写入数据段,从所述信息映射表中找到有空闲逻辑空间的精简池,从该精简池的空闲空间索引表中找到空闲空间的逻辑地址,将所述写入数据段写入该逻辑地址对应的存储设备或者存储介质中的物理地址中;
(1.4)精简控制层更新所述信息映射表和地址映射表以及空闲空间索引表,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表;如果所述写数据操作请求是覆盖写数据操作请求,被该操作请求指定的覆盖写的逻辑地址为待释放的逻辑地址,进入步骤(1.5);否则,所述主机端对精简卷的操作请求执行完毕;
(1.5)针对每一个所述待释放的逻辑地址,通过更新所述信息映射表和地址映射表以及空闲空间索引表完成对该逻辑地址的释放或者回收操作,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表。
在步骤(1.1)中,所述信息映射表采用平衡树结构,其中,关键字为精简池对应的逻辑地址偏移,根节点和中间节点保存了所述关键字和关键字对应的地址指针,地址指针是关键字对应的子节点在存储设备或者存储介质上的物理位置,所述平衡树的叶节点中保存着多个关键字和信息索引段,一个信息索引段对应一个精简池,表示为:物理卷信息数组,精简池RAID类型,精简池大小,精简池剩余大小>;所述物理卷信息数组表示为:(设备ID,偏移),(设备ID,偏移),(设备ID,偏移) …;其中,所述设备ID用于表示物理存储设备或者存储介质的唯一标识号,所述偏移表示设备ID对应的存储设备或者存储介质中的起始位置,所述物理卷信息数组的长度由精简池的RAID类型决定,所述精简池RAID类型表示构成精简池的存储设备或者存储介质的冗余组织方式,所述精简池大小表示精简池对应的物理存储空间大小,所述精简池剩余大小记录精简池中空闲的物理存储空间大小。
作为本发明方法的进一步改进:
在步骤(1.1)中,所述地址映射表采用平衡树结构,关键字为所述精简卷的标识符和所述精简卷的卷内逻辑地址偏移,根节点和中间节点保存了关键字和关键字对应的地址指针,该地址指针是关键字对应的子节点在存储设备或者存储介质上的物理位置,所述平衡树的叶节点中保存着多个关键字和逻辑地址索引段,一个所述逻辑地址索引段对应于一个已经被写入存储设备或存储介质的数据段,表示为:数据段逻辑地址,数据段长度,所述数据段逻辑地址表示该数据段在精简池中的逻辑地址起始位置,所述数据段长度表示该数据段的数据长度。
在步骤(1.1)中,所述空闲空间索引表采用平衡树结构,关键字为一段空闲空间在精简池中的起始地址,根节点和中间节点保存了关键字和关键字对应的地址指针,该地址指针是关键字对应的子节点在存储设备或者存储介质上的物理位置,所述平衡树的叶节点中保存着多个关键字和空闲空间长度段。
在步骤(1.4)中,包括以下步骤:
(1.4.1)更新所述信息映射表,根据写入数据段的大小重新计算被占用逻辑空间的精简池的剩余大小,并修改该精简池对应的精简池剩余大小表项中的值;将该精简池对应的新的信息映射表写入存储设备或者存储介质中,删除原有的表项;
(1.4.2)更新所述地址映射表,在该表中增加一个逻辑地址索引段,表示所述写入数据段占用的逻辑地址起始位置和该数据段的长度;将增加的索引段数据写入存储设备或者存储介质中;
(1.4.3)更新所述空闲空间索引表,删除精简池已被使用的空闲空间对应的表项,并将该精简池剩余的空闲空间组织成为新的空闲空间索引表;将该精简池对应的新的空闲空间索引表写入存储设备或者存储介质中,删除原有的空闲空间索引表。
所述步骤(1.5)的具体流程为:
(1.5.1)更新所述信息映射表,根据释放或者回收掉的数据段的大小重新计算被占用逻辑空间的精简池的剩余大小,并修改该精简池对应的精简池剩余大小表项中的值;将该精简池对应的新的信息映射表写入存储设备或者存储介质中,删除原有的表项;
(1.5.2)更新所述地址映射表,删除该表中对应的逻辑地址索引段,并重新组织该表;将该表写入存储设备或者存储介质中,删除原有的地址映射表;
(1.5.3)更新所述空闲空间索引表,在该表中增加空闲空间节点,表示增加的空闲空间在精简池中的逻辑地址起始和空闲空间大小;将增加的节点数据写入存储设备或者存储介质中。
所述步骤(1.5)中,所述精简控制层告知存储设备或者存储介质所述待释放的逻辑地址对应的数据页面为无效页面,如果所述存储设备或者存储介质支持“标记删除空间地址”指令,将每一个被删除的所述地址映射表表项的内容作为该指令的参数,发送该指令到所述存储设备。
在所述步骤(1.4)、步骤(1.5)中,采用写时拷贝的方法更新所述信息映射表和地址映射表以及空闲空间索引表,具体流程为:
(2.1)在平衡树中查找待更新的叶节点,并记录从根节点到所述叶节点的路径;
(2.2)为所述根节点分配一个新的空闲空间,将所述根节点拷贝到所述空闲空间中,生成一个新的根节点,将所述新的根节点作为当前节点,所述新的空闲空间的地址作为所述当前节点的物理空间地址;
(2.3)如果当前节点是所述平衡树的叶节点,则进入步骤(2.5);否则,进入步骤(2.4);
(2.4)为当前节点对应的子节点分配一个新的空闲空间,将所述子节点拷贝到该空闲空间中,生成一个新的子节点。将所述新的空闲空间的地址作为所述新的子节点的物理空间地址,使用所述新的子节点的物理空间地址,填充所述当前节点中所述地址指针,将所述新的子节点作为当前节点,转入步骤(2.3);
(2.5)更新当前节点内容;
(2.6)将所述新的根节点的物理位置,记录在所述存储设备的固定位置。
本发明进一步一种数据自精简系统,包括:
第一模块,用于使精简控制层为每个精简池建立信息映射表,表示每个精简池的状态信息和对应的物理存储空间;为每个精简卷中的已分配存储空间的数据段建立地址映射表,表示所述数据段和精简池上的逻辑地址的映射关系;为每个精简池建立空闲空间索引表,表示该精简控制层上的每一段空闲空间的逻辑地址和逻辑空间大小;并将所述信息映射表和地址映射表以及空闲空间索引表写入存储设备或存储介质中;
第二模块,用于精简控制层接收主机端对精简卷的操作请求,如果该操作请求是空间释放请求或者精简卷删除请求,则进入第五模块;如果该操作请求是写数据操作请求,则进入第三模块;
第三模块,用于使精简控制层接收所述写数据操作请求对应的写入数据段,从所述信息映射表中找到有空闲逻辑空间的精简池,从该精简池的空闲空间索引表中找到空闲空间的逻辑地址,将所述写入数据段写入该逻辑地址对应的存储设备或者存储介质中的物理地址中;
第四模块,用于使精简控制层更新所述信息映射表和地址映射表以及空闲空间索引表,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表;如果所述写数据操作请求是覆盖写数据操作请求,被该操作请求指定的覆盖写的逻辑地址为待释放的逻辑地址,进入第五模块;否则,所述主机端对精简卷的操作请求执行完毕;
第五模块,用于针对每一个所述待释放的逻辑地址,通过更新所述信息映射表和地址映射表以及空闲空间索引表完成对该逻辑地址的释放或者回收操作,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表。
本发明进一步提供一种存储装置,包括存储介质和存储控制器,所述存储控制器包括上述的数据自精简系统。
与现有技术相比,本发明具有如下优点:
1.本发明提出的数据自精简方法采用在空闲空间写数据的技术,由于空闲空间指向一段连续的物理地址,很好的避免了数据在存储设备或者存储介质上的物理位置的随机分布,从而提高了存储设备或者存储介质的写性能;对于新型存储介质如闪存等,这种使数据分布在连续物理位置的写操作,还能很大程度提高其使用寿命。
2. 本发明提出的数据自精简方法采用写时拷贝技术完成更新映射表操作,能够很好的保存映射表的一致性,避免了映射表的更新操作时发生系统宕机时可能会导致的映射表长时间恢复操作和映射表不一致的情况。
3. 本发明提出的数据自精简方法能够利用新型的存储介质如闪存、PCM等本身的空间管理特性真正释放物理层空间,能够提升存储设备或者存储介质本身的写性能。
4.本发明提出的数据自精简方法采用了平衡树结构构建地址映射表、信息映射表、空闲空间索引表,从而提高了对所述地址映射表、信息映射表、空闲空间索引表更新和查询效率。
附图说明
图1是本发明方法的流程示意图。
图2是本发明在一个具体应用实例中实施后的存储系统的结构原理示意图。
图3是本发明在一个具体应用实例中实施时的原理示意图。
图4是本发明在一个具体应用实例中精简池信息映射表的原理示意图。
图5是本发明在一个具体应用实例中精简卷地址映射表的原理示意图。
图6是本发明在一个具体应用实例中精简池空闲空间索引表的原理示意图。
图7是本发明在一个具体应用实例中采用写时拷贝方法更新映射表的原理示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的数据自精简方法,包括如下步骤:
1.1精简控制层为每个精简池建立信息映射表,表示每个精简池的状态信息和对应的物理存储空间信息;为每个精简卷中的已分配存储空间的数据段建立地址映射表,表示所述数据段和精简池上的逻辑地址的映射关系;为每个精简池建立空闲空间索引表,表示该精简控制层上的每一段空闲空间的逻辑地址和逻辑空间大小;并将所述信息映射表、地址映射表以及空闲空间索引表写入存储设备或存储介质中;
1.2精简控制层接收主机端101对精简卷的操作请求,如果该操作请求是空间释放请求或者精简卷删除请求,则进入步骤1.5;如果该操作请求是写数据操作请求,则进入步骤1.3;
1.3精简控制层接收所述写数据操作请求对应的写入数据段,从所述信息映射表中找到有空闲逻辑空间的精简池,从该精简池的空闲空间索引表中找到空闲空间的逻辑地址,将所述写入数据段写入该逻辑地址对应的存储设备或者存储介质中的物理地址中;
1.4精简控制层更新所述信息映射表、地址映射表以及空闲空间索引表,并更新存储设备或者存储介质中存储的所述信息映射表、地址映射表以及空闲空间索引表;如果所述写数据操作请求是覆盖写数据操作请求,被该操作请求指定的覆盖写的逻辑地址为待释放的逻辑地址,进入步骤1.5;否则,所述主机端对精简卷的操作请求执行完毕;
1.5针对每一个所述待释放的逻辑地址,通过更新所述信息映射表和地址映射表以及空闲空间索引表完成对该逻辑地址的释放或者回收操作,并更新存储设备或者存储介质中存储的所述信息映射表、地址映射表以及空闲空间索引表。
如图2所示,是本发明在一个具体应用实例中实施后的存储系统结构原理示意图,以下将以该实例描述本发明的具体实现原理。其中,主机端101是发送读写操作的源主机。存储系统102采用了本发明数据自精简方法,该存储系统102包括精简控制层群104、存储设备或存储介质群105;其中,精简控制层群104中可以包括1个或多个精简控制层,存储设备或者存储介质群105可以包括例如硬盘、磁带驱动器、半导体存储器等单个存储设备或存储介质,也可以包括冗余阵列系统(例如独立磁盘冗余阵列RAID)等多个存储设备组成的装置或者网络附属连接存储系统等网络存储装置。主机端101与存储系统102之间通过网络103连接,所述网络103可以包括局域网、广域网、无线网络、IB网络、光纤网络和以太网络或者实现网络通信的其他任何网络。通过网络103相互连接之后,主机端101与存储系统102之间互发消息,完成数据读写的操作。
图3为实施本发明后的原理示意图。以1个精简控制层为例,在本实施例中,本发明的数据自精简方法主要包括以下步骤:
1.1) 存储系统初始化步骤,具体包括:
精简控制层为第一精简池204和第二精简池205建立信息映射表,表示每个精简池的状态信息和对应的物理存储空间;本实例中,所述信息映射表采用B+树结构,如图4所示,其中,关键字401为精简池对应的逻辑地址偏移,地址指针402是关键字401对应的子节点在存储设备或者存储介质上的物理位置,根节点403和中间节点404保存了多个关键字和关键字对应的地址指针,该B+树的叶节点中保存着多个关键字和信息索引段,如叶节点405包括关键字406和索引段407,一个信息索引段对应一个精简池,表示为<物理卷信息数组,精简池RAID类型,精简池大小,精简池剩余大小>,所述物理卷信息数组表示为<(设备ID,偏移),(设备ID,偏移),(设备ID,偏移) …>,其中,所述设备ID用于表示物理存储设备或者存储介质的唯一标识号,所述偏移表示设备ID对应的存储设备或者存储介质中的起始位置,所述物理卷信息数组的长度由精简池的RAID类型决定,所述精简池RAID类型表示构成精简池的存储设备或者存储介质的冗余组织方式,所述精简池大小表示精简池对应的物理存储空间大小,所述精简池剩余大小记录精简池中空闲的物理存储空间大小; 将该信息映射表写入存储设备中。
从信息映射表中,可以通过所述物理卷信息数组和所述精简池RAID类型知道每个精简池的逻辑空间指向的存储设备或者存储介质中的物理地址。如图3所示,第一信息映射表项215说明第一精简池204的逻辑地址空间指向的是存储设备或者存储介质上的第一存储空间202,第二信息映射表项216说明第二精简池205的逻辑地址空间指向的是存储设备或者存储介质上的第二存储空间203。
为第一精简卷220、第二精简卷221、第三精简卷222中的已分配存储空间的数据段建立地址映射表,表示所述数据段和精简池上的逻辑地址的映射关系;本实例中,所述地址映射表采用B+树结构,如图5所示,其中,关键字501为所述精简卷的标识符和所述精简卷的卷内逻辑地址偏移,地址指针502是关键字501对应的子节点在存储设备或者存储介质上的物理位置,根节点503和中间节点504保存了多个关键字和关键字对应的地址指针,该B+树的叶节点中保存着多个关键字和逻辑地址索引段,如叶节点505包括关键字506和索引段507,一个所述逻辑地址索引段对应于一个已经被写入存储设备或存储介质的数据段,表示为<数据段逻辑地址,数据段长度>,所述数据段逻辑地址表示该数据段在精简池中的逻辑地址起始位置,所述数据段长度表示该数据段的数据长度;将地址映射表写入存储设备或者存储介质中。
从地址映射表中,可以直接读出精简卷上的已存储数据段对应的精简池上的逻辑地址,如图3所示,第一地址映射表表项214表示了第一精简卷220上的第一个已存储数据段A到第一精简池204的第一个数据块空间a的映射关系,第二地址映射表表项217表示了第二精简卷221上的第三个已存储数据段F到第二精简池205的第一个数据块空间f的映射关系。
为第一精简池204和第二精简池205建立空闲空间索引表,表示该精简控制层上的每一段空闲空间,如空闲空间207的逻辑地址和逻辑空间大小;本实例中,所述空闲空间索引表采用B+树结构,如图6所示,其中,关键字601为一段空闲空间在精简池中的起始地址,地址指针602是关键字601对应的子节点在存储设备或者存储介质上的物理位置,根节点603和中间节点604保存了多个关键字和关键字对应的地址指针,该B+树的叶节点中保存着多个关键字和空闲空间的长度段,如叶节点605包括关键字606和空闲空间长度段607;将所述空闲空间索引表写入存储设备或存储介质中。
通过所述空闲空间索引表能够定位每个空闲空间在精简池上的逻辑地址,结合信息映射表可以计算出每个空闲空间在存储设备或者存储介质上的物理地址。
在本发明提供的数据自精简方法中,步骤1.1)为存储系统初始化步骤,在使用本发明提供的数据自精简方法的存储系统中,只需要执行一遍步骤1.1),即可使该存储系统具备使用本发明提供的数据自精简方法的前提条件。当该存储系统的存储设备更换时,步骤1.1)需要重新执行一次。
1.2)确定操作请求类型,具体包括:
所述精简控制层接收主机端101对精简卷的操作请求,如果该操作请求是空间释放请求或者精简卷删除请求,则进入步骤1.5);如果该操作请求是写数据操作请求,则进入步骤1.3);本实例中,操作请求为写数据操作请求。
1.3)写数据执行步骤,具体包括:
所述精简控制层接收所述写数据操作请求对应的写入数据段,在本实例中,所述写数据操作请求表示要将数据段218写入第一精简卷220中,则从信息映射表中找到有空闲逻辑空间的第一精简池204,从该精简池的空闲空间索引表中找到空闲空间的逻辑地址219,将所述写入数据段218写入该逻辑地址对应的存储设备或者存储介质中的物理地址中。
1.4)更新映射表操作,具体包括:
更新所述信息映射表,根据写入数据段218的大小重新计算被占用逻辑空间的第一精简池204的剩余大小,并修改该精简池对应的精简池剩余大小表项中的值;将该精简池对应的新的信息映射表写入存储设备或者存储介质中,删除原有的表项;
更新所述地址映射表,在该表中增加一个逻辑地址索引段,表示所述写入数据段218占用逻辑空间219的逻辑地址起始位置和该数据段的长度;将增加的索引段数据写入存储设备或者存储介质中;
更新所述空闲空间索引表,删除第一精简池204已被使用的空闲空间219对应的表项,并将该精简池剩余的空闲空间组织成为新的空闲空间索引表;将该精简池对应的新的空闲空间索引表写入存储设备或者存储介质中,删除原有的空闲空间索引表。
如果所述写数据操作请求是覆盖写数据操作请求,被该操作请求指定的覆盖写的逻辑地址为待释放的逻辑地址,进入步骤1.5);否则,所述主机端对精简卷的操作请求执行完毕;
1.5)释放空间操作, 针对每一个所述待释放的逻辑地址,通过更新所述信息映射表和地址映射表以及空闲空间索引表完成对该逻辑地址的释放或者回收操作,具体包括:
本实施例以释放数据段211(A)在精简卷中占用的空间为例:
更新所述信息映射表,从所述地址映射表可以知道数据段211(A)对应的逻辑地址为第一精简池204上的第一个数据块空间206(a),根据数据段211(A)的大小重新计算第一精简池204的剩余大小,并修改该精简池对应的精简池剩余大小表项中的值;将该精简池对应的新的信息映射表写入存储设备或者存储介质中,删除原有的表项;
更新所述地址映射表,删除该表中与数据段211(A)对应的逻辑地址索引段,并重新组织该表;将该表写入存储设备或者存储介质中,删除原有的地址映射表;
更新所述空闲空间索引表,在该表中增加对应第一精简池204上空闲数据段206的空闲空间节点,表示增加的空闲空间段206在第一精简池204中的逻辑地址起始和空闲空间大小;将增加的节点数据写入存储设备或者存储介质中。
上述步骤1.5)还进一步包括所述精简控制层告知存储设备或者存储介质所述待释放的逻辑地址对应的数据页面为无效页面,如果所述存储设备或者存储介质支持“标记删除空间地址”指令,将每一个被删除的所述地址映射表表项的内容作为该指令的参数,发送该指令到所述存储设备。
上述步骤1.4)和步骤1.5)采用写时拷贝的方法更新所述信息映射表和地址映射表以及空闲空间索引表。
本实施例中,上述信息映射表、地址映射表以及空闲空间索引表均采用的是B+树结构,上述步骤1.4)和步骤1.5)采用写时拷贝的方法更新所述信息映射表和地址映射表以及空闲空间索引表为通用的过程,如图7所示,具体步骤包括:
2.1)在平衡树中查找待更新的叶节点706,并记录从根节点701到叶节点706的路径;
2.2)为根节点701分配一个新的空闲空间,将所述根节点拷贝到所述空闲空间中,生成一个新的根节点710。将所述新的根节点710作为当前节点,所述新的空闲空间的地址作为所述当前节点的物理空间地址;
2.3)如果当前节点是所述B+树的叶节点,则进入步骤2.5);否则,进入步骤2.4);
2.4)为所述路径上当前节点对应的子节点704分配一个新的空闲空间,将所述子节点拷贝到该空闲空间中,生成一个新的子节点708,将所述新的空闲空间的地址作为新的子节点708的物理空间地址,使用所述新的子节点708的物理空间地址,填充所述当前节点中的所述地址指针,将所述新的子节点708作为当前节点,转入步骤2.3);
2.5)更新当前节点709;
2.6)将所述新的根节点710的物理位置,记录在所述存储设备的固定位置。
本实施例中,所有对存储设备或者存储介质的写操作均采用顺序写方法,以充分开发所述存储设备或者存储介质的顺序写访问性能。
本发明进一步提供一种数据自精简系统,包括:
第一模块,用于使精简控制层为每个精简池建立信息映射表,表示每个精简池的状态信息和对应的物理存储空间;为每个精简卷中的已分配存储空间的数据段建立地址映射表,表示所述数据段和精简池上的逻辑地址的映射关系;为每个精简池建立空闲空间索引表,表示该精简控制层上的每一段空闲空间的逻辑地址和逻辑空间大小;并将所述信息映射表和地址映射表以及空闲空间索引表写入存储设备或存储介质中;
第二模块,用于精简控制层接收主机端对精简卷的操作请求,如果该操作请求是空间释放请求或者精简卷删除请求,则进入第五模块;如果该操作请求是写数据操作请求,则进入第三模块;
第三模块,用于使精简控制层接收所述写数据操作请求对应的写入数据段,从所述信息映射表中找到有空闲逻辑空间的精简池,从该精简池的空闲空间索引表中找到空闲空间的逻辑地址,将所述写入数据段写入该逻辑地址对应的存储设备或者存储介质中的物理地址中;
第四模块,用于使精简控制层更新所述信息映射表和地址映射表以及空闲空间索引表,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表;如果所述写数据操作请求是覆盖写数据操作请求,被该操作请求指定的覆盖写的逻辑地址为待释放的逻辑地址,进入第五模块;否则,所述主机端对精简卷的操作请求执行完毕;
第五模块,用于针对每一个所述待释放的逻辑地址,通过更新所述信息映射表和地址映射表以及空闲空间索引表完成对该逻辑地址的释放或者回收操作,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表。
本发明进一步提供一种存储装置,包括存储介质和存储控制器,所述存储控制器包括上述的数据自精简系统。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (10)

1.一种数据自精简方法,其特征在于,包括以下步骤:
(1.1)精简控制层为每个精简池建立信息映射表,表示每个精简池的状态信息和对应的物理存储空间;为每个精简卷中的已分配存储空间的数据段建立地址映射表,表示所述数据段和精简池上的逻辑地址的映射关系;为每个精简池建立空闲空间索引表,表示该精简控制层上的每一段空闲空间的逻辑地址和逻辑空间大小;并将所述信息映射表和地址映射表以及空闲空间索引表写入存储设备或存储介质中;
(1.2)精简控制层接收主机端对精简卷的操作请求,如果该操作请求是空间释放请求或者精简卷删除请求,则进入步骤(1.5);如果该操作请求是写数据操作请求,则进入步骤(1.3);
(1.3)精简控制层接收所述写数据操作请求对应的写入数据段,从所述信息映射表中找到有空闲逻辑空间的精简池,从该精简池的空闲空间索引表中找到空闲空间的逻辑地址,将所述写入数据段写入该逻辑地址对应的存储设备或者存储介质中的物理地址中;
(1.4)精简控制层更新所述信息映射表和地址映射表以及空闲空间索引表,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表;如果所述写数据操作请求是覆盖写数据操作请求,被该操作请求指定的覆盖写的逻辑地址为待释放的逻辑地址,进入步骤(1.5);否则,所述主机端对精简卷的操作请求执行完毕;
(1.5)针对每一个所述待释放的逻辑地址,通过更新所述信息映射表和地址映射表以及空闲空间索引表完成对该逻辑地址的释放或者回收操作,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表。
2.根据权利要求1所述的数据自精简方法,其特征在于,在步骤(1.1)中,所述信息映射表采用平衡树结构,其中,关键字为精简池对应的逻辑地址偏移,根节点和中间节点保存了所述关键字和关键字对应的地址指针,地址指针是关键字对应的子节点在存储设备或者存储介质上的物理位置,所述平衡树的叶节点中保存着多个关键字和信息索引段,一个信息索引段对应一个精简池,表示为:<物理卷信息数组,精简池RAID类型,精简池大小,精简池剩余大小>;所述物理卷信息数组表示为:(设备ID,偏移),(设备ID,偏移),(设备ID,偏移)…;其中,所述设备ID用于表示物理存储设备或者存储介质的唯一标识号,所述偏移表示设备ID对应的存储设备或者存储介质中的起始位置,所述物理卷信息数组的长度由精简池的RAID类型决定,所述精简池RAID类型表示构成精简池的存储设备或者存储介质的冗余组织方式,所述精简池大小表示精简池对应的物理存储空间大小,所述精简池剩余大小记录精简池中空闲的物理存储空间大小。
3.根据权利要求1所述的数据自精简方法,其特征在于,在步骤(1.1)中,所述地址映射表采用平衡树结构,关键字为所述精简卷的标识符和所述精简卷的卷内逻辑地址偏移,根节点和中间节点保存了关键字和关键字对应的地址指针,该地址指针是关键字对应的子节点在存储设备或者存储介质上的物理位置,所述平衡树的叶节点中保存着多个关键字和逻辑地址索引段,一个所述逻辑地址索引段对应于一个已经被写入存储设备或存储介质的数据段,表示为:数据段逻辑地址,数据段长度,所述数据段逻辑地址表示该已经被写入存储设备或存储介质的数据段在精简池中的逻辑地址起始位置,所述数据段长度表示该已经被写入存储设备或存储介质的数据段的数据长度。
4.根据权利要求1所述的数据自精简方法,其特征在于,在步骤(1.1)中,所述空闲空间索引表采用平衡树结构,关键字为一段空闲空间在精简池中的起始地址,根节点和中间节点保存了关键字和关键字对应的地址指针,该地址指针是关键字对应的子节点在存储设备或者存储介质上的物理位置,所述平衡树的叶节点中保存着多个关键字和空闲空间长度段。
5.根据权利要求1所述的数据自精简方法,其特征在于,在步骤(1.4)中,包括以下步骤:
(1.4.1)更新所述信息映射表,根据写入数据段的大小重新计算被占用逻辑空间的精简池的剩余大小,并修改该精简池对应的精简池剩余大小表项中的值;将该精简池对应的新的信息映射表写入存储设备或者存储介质中,删除原有的表项;
(1.4.2)更新所述地址映射表,在该表中增加一个逻辑地址索引段,表示所述写入数据段占用的逻辑地址起始位置和该写入数据段的长度;将增加的索引段数据写入存储设备或者存储介质中;
(1.4.3)更新所述空闲空间索引表,删除精简池已被使用的空闲空间对应的表项,并将该精简池剩余的空闲空间组织成为新的空闲空间索引表;将该精简池对应的新的空闲空间索引表写入存储设备或者存储介质中,删除原有的空闲空间索引表。
6.根据权利要求1所述的数据自精简方法,其特征在于,所述步骤(1.5)的具体流程为:
(1.5.1)更新所述信息映射表,根据释放或者回收掉的数据段的大小重新计算被占用逻辑空间的精简池的剩余大小,并修改该精简池对应的精简池剩余大小表项中的值;将该精简池对应的新的信息映射表写入存储设备或者存储介质中,删除原有的表项;
(1.5.2)更新所述地址映射表,删除该表中对应的逻辑地址索引段,并重新组织该表;将该表写入存储设备或者存储介质中,删除原有的地址映射表;
(1.5.3)更新所述空闲空间索引表,在该表中增加空闲空间节点,表示增加的空闲空间在精简池中的逻辑地址起始和空闲空间大小;将增加的节点数据写入存储设备或者存储介质中。
7.根据权利要求1所述的数据自精简方法,其特征在于,所述步骤(1.5)中,所述精简控制层告知存储设备或者存储介质所述待释放的逻辑地址对应的数据页面为无效页面,如果所述存储设备或者存储介质支持“标记删除空间地址”指令,将每一个被删除的所述地址映射表表项的内容作为该指令的参数,发送该指令到所述存储设备。
8.根据权利要求2~4中任意一项所述的数据自精简方法,其特征在于,在所述步骤(1.4)、步骤(1.5)中,采用写时拷贝的方法更新所述信息映射表和地址映射表以及空闲空间索引表,具体流程为:
(2.1)在平衡树中查找待更新的叶节点,并记录从根节点到所述叶节点的路径;
(2.2)为所述根节点分配一个新的空闲空间,将所述根节点拷贝到所述新的空闲空间中,生成一个新的根节点,将所述新的根节点作为当前节点,所述新的空闲空间的地址作为所述当前节点的物理空间地址;
(2.3)如果当前节点是所述平衡树的叶节点,则进入步骤(2.5);否则,进入步骤(2.4);
(2.4)为当前节点对应的子节点分配一个新的空闲空间,将所述子节点拷贝到该新的空闲空间中,生成一个新的子节点;将所述新的空闲空间的地址作为所述新的子节点的物理空间地址,使用所述新的子节点的物理空间地址,填充所述当前节点中所述地址指针,将所述新的子节点作为当前节点,转入步骤(2.3);
(2.5)更新当前节点内容;
(2.6)将所述新的根节点的物理位置,记录在所述存储设备的固定位置。
9.一种数据自精简系统,其特征在于,包括:
第一模块,用于使精简控制层为每个精简池建立信息映射表,表示每个精简池的状态信息和对应的物理存储空间;为每个精简卷中的已分配存储空间的数据段建立地址映射表,表示所述数据段和精简池上的逻辑地址的映射关系;为每个精简池建立空闲空间索引表,表示该精简控制层上的每一段空闲空间的逻辑地址和逻辑空间大小;并将所述信息映射表和地址映射表以及空闲空间索引表写入存储设备或存储介质中;
第二模块,用于精简控制层接收主机端对精简卷的操作请求,如果该操作请求是空间释放请求或者精简卷删除请求,则进入第五模块;如果该操作请求是写数据操作请求,则进入第三模块;
第三模块,用于使精简控制层接收所述写数据操作请求对应的写入数据段,从所述信息映射表中找到有空闲逻辑空间的精简池,从该精简池的空闲空间索引表中找到空闲空间的逻辑地址,将所述写入数据段写入该逻辑地址对应的存储设备或者存储介质中的物理地址中;
第四模块,用于使精简控制层更新所述信息映射表和地址映射表以及空闲空间索引表,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表;如果所述写数据操作请求是覆盖写数据操作请求,被该操作请求指定的覆盖写的逻辑地址为待释放的逻辑地址,进入第五模块;否则,所述主机端对精简卷的操作请求执行完毕;
第五模块,用于针对每一个所述待释放的逻辑地址,通过更新所述信息映射表和地址映射表以及空闲空间索引表完成对该逻辑地址的释放或者回收操作,并更新存储设备或者存储介质中存储的所述信息映射表和地址映射表以及空闲空间索引表。
10.一种存储装置,包括存储介质和存储控制器,其特征在于,所述存储控制器包括权利要求9所述的数据自精简系统。
CN201310246065.XA 2013-06-20 2013-06-20 一种数据自精简方法和系统及存储装置 Active CN103514249B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310246065.XA CN103514249B (zh) 2013-06-20 2013-06-20 一种数据自精简方法和系统及存储装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310246065.XA CN103514249B (zh) 2013-06-20 2013-06-20 一种数据自精简方法和系统及存储装置

Publications (2)

Publication Number Publication Date
CN103514249A CN103514249A (zh) 2014-01-15
CN103514249B true CN103514249B (zh) 2016-12-28

Family

ID=49896976

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310246065.XA Active CN103514249B (zh) 2013-06-20 2013-06-20 一种数据自精简方法和系统及存储装置

Country Status (1)

Country Link
CN (1) CN103514249B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106469123A (zh) * 2015-08-10 2017-03-01 北京忆恒创源科技有限公司 一种基于nvdimm的写缓存分配、释放方法及其装置
US10001924B2 (en) * 2016-03-07 2018-06-19 HGST Netherlands B.V. Efficient and dynamically sized reverse map to handle variable size data
CN107291746B (zh) * 2016-03-31 2021-08-17 阿里巴巴集团控股有限公司 一种存储和读取数据的方法及设备
US9875190B2 (en) * 2016-03-31 2018-01-23 EMC IP Holding Company LLC Delegated media translation layer in a storage appliance
CN107562367B (zh) * 2016-07-01 2021-04-02 阿里巴巴集团控股有限公司 基于软件化存储系统读写数据的方法以及装置
KR102525061B1 (ko) * 2016-07-19 2023-04-21 에스케이하이닉스 주식회사 입력 데이터를 압축하여 저장하는 데이터 저장 장치
CN106569742B (zh) * 2016-10-20 2019-07-23 华为技术有限公司 存储管理方法及存储设备
CN106776361B (zh) * 2017-03-10 2020-07-10 安徽大学 一种面向大规模非易失性存储介质的缓存方法和系统
CN110019004B (zh) * 2017-09-08 2021-02-26 华为技术有限公司 一种数据处理方法、装置及系统
CN109739688B (zh) * 2018-12-18 2021-01-26 杭州宏杉科技股份有限公司 快照资源空间管理方法、装置、电子设备
CN111367461B (zh) * 2018-12-25 2024-02-20 兆易创新科技集团股份有限公司 一种存储空间管理方法及装置
CN114625780A (zh) * 2019-10-01 2022-06-14 上海忆芯实业有限公司 一种时序数据库
CN111506269B (zh) * 2020-04-22 2021-09-07 腾讯科技(深圳)有限公司 一种磁盘存储空间分配方法、装置、设备及存储介质
CN114546245A (zh) * 2020-11-18 2022-05-27 北京忆恒创源科技股份有限公司 利用zns标准实现透明压缩的方法及其设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
CN103020201A (zh) * 2012-12-06 2013-04-03 浪潮电子信息产业股份有限公司 一种存储系统自动精简配置存储池及组织管理的方法
CN103106150A (zh) * 2013-02-22 2013-05-15 浪潮电子信息产业股份有限公司 一种实现存储系统自动精简配置和精简分配的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979404B2 (en) * 2004-09-17 2011-07-12 Quest Software, Inc. Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101997918A (zh) * 2010-11-11 2011-03-30 清华大学 异构san环境中的海量存储资源按需分配的实现方法
CN103020201A (zh) * 2012-12-06 2013-04-03 浪潮电子信息产业股份有限公司 一种存储系统自动精简配置存储池及组织管理的方法
CN103106150A (zh) * 2013-02-22 2013-05-15 浪潮电子信息产业股份有限公司 一种实现存储系统自动精简配置和精简分配的方法

Also Published As

Publication number Publication date
CN103514249A (zh) 2014-01-15

Similar Documents

Publication Publication Date Title
CN103514249B (zh) 一种数据自精简方法和系统及存储装置
US9311015B2 (en) Storage system capable of managing a plurality of snapshot families and method of operating thereof
CN106708427B (zh) 一种适用于键值对数据的存储方法
CN105027070B (zh) 卷操作的安全性
CN103473251B (zh) 在使用处理器件的计算环境中提供使用选择性元组版本化的文件系统快照的方法和系统
US9146877B2 (en) Storage system capable of managing a plurality of snapshot families and method of snapshot family based read
US10521131B2 (en) Storage apparatus and storage control apparatus
US8909887B1 (en) Selective defragmentation based on IO hot spots
US8392685B2 (en) Arrangements for managing metadata of an integrated logical unit including differing types of storage media
CN105760113B (zh) 基于nand闪存的高速存储设备及文件管理方法
CN104850358B (zh) 一种磁光电混合存储系统及其数据获取和存储方法
CN103761190B (zh) 数据处理方法及装置
CN106708425A (zh) 分布式多模存储管理
CN105718217B (zh) 一种精简配置存储池数据一致性维护的方法及装置
CN103838853B (zh) 一种基于不同存储介质的混合文件系统
CN106708423A (zh) 多模存储管理系统
CN109684231A (zh) 用于识别固态盘中的热数据和流的系统及方法
CN103985393B (zh) 一种多光盘数据并行管理方法及装置
CN106951375A (zh) 在存储系统中删除快照卷的方法及装置
CN110147203A (zh) 一种文件管理方法、装置、电子设备及存储介质
CN107092443B (zh) 数据迁移方法及装置
JP6531574B2 (ja) ストレージ装置、ストレージ装置制御プログラム及びストレージ装置制御方法
CN104426965B (zh) 自管理存储方法和系统
JP2006079274A (ja) ファイル管理装置、ネットワークシステム、ファイル管理方法及びプログラム
CN106919342A (zh) 基于自动精简配置的存储资源分配方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant