CN111857593A - 提高快照数据和克隆数据读写速度的方法与装置 - Google Patents

提高快照数据和克隆数据读写速度的方法与装置 Download PDF

Info

Publication number
CN111857593A
CN111857593A CN202010707606.4A CN202010707606A CN111857593A CN 111857593 A CN111857593 A CN 111857593A CN 202010707606 A CN202010707606 A CN 202010707606A CN 111857593 A CN111857593 A CN 111857593A
Authority
CN
China
Prior art keywords
data
storage area
storage areas
metadata
read
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.)
Pending
Application number
CN202010707606.4A
Other languages
English (en)
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.)
Xsky Beijing Data Technology Corp ltd
Original Assignee
Xsky Beijing Data Technology Corp ltd
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 Xsky Beijing Data Technology Corp ltd filed Critical Xsky Beijing Data Technology Corp ltd
Priority to CN202010707606.4A priority Critical patent/CN111857593A/zh
Publication of CN111857593A publication Critical patent/CN111857593A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes

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

提高快照数据和克隆数据读写速度的方法与装置
技术领域
本申请涉及数据处理领域,具体而言,涉及一种提高快照数据和克隆数据读写速度的方法、装置、计算机可读存储介质与处理器。
背景技术
快照和克隆是当前虚拟化环境中经常用到的一个功能,通常通过对逻辑卷进行快照和克隆来快速的创建虚拟机。
通常而言,快照都要经过初始化、数据拷贝和终止几个处理阶段,其中数据拷贝是快照的技术核心。当前数据拷贝有主要有两种技术,一种是写时复制(Copy OnWrite,简称COW),另一种技术是写入重定向(Redirect On Write,简称ROW)。
COW机制如下:当对一个逻辑卷打了一个快照后,这个逻辑卷所涉及的block(即块,逻辑卷的逻辑管理单元)都处于被保护的状态,后续写某个block时,该block涉及的所有数据首先被复制到其他地方(即拷贝到快照系统指定的某个位置),然后再将数据写到该block对应的物理位置。COW机制能维持block在磁盘空间的连续完整性。
ROW机制则是通过更复杂的元数据设计,使用指针指向所有的block,当一个被保护的block被改写时,则直接将新数据写到磁盘新位置,然后直接将该block的指针指向新位置,老的位置就作为快照的内容。ROW机制使得block将会分散在磁盘各个位置,利用指针将这些位置管理起来。
ROW机制下通过直接修改block指针以指向新位置,这些指针也就是元数据会随着写进行而不断地增加,因此维护这些元数据的开销变得越来越大。而且如果快照克隆链很长,那么当大块读取逻辑卷的时候,可能需要多次查找元数据(block指针)然后再去不同的物理磁盘读数据,会不断加大读的开销。
ROW机制下随着快照和克隆的不断进行某粒度范围内的数据在物理磁盘中会越来越离散,导致数据的读写速度下降。
在背景技术部分中公开的以上信息只是用来加强对本文所描述技术的背景技术的理解,因此,背景技术中可能包含某些信息,这些信息对于本领域技术人员来说并未形成在本国已知的现有技术。
发明内容
本申请的主要目的在于提供一种提高快照数据和克隆数据读写速度的方法、装置、计算机可读存储介质与处理器,以解决现有技术中ROW机制下随着快照和克隆的不断进行数据的读写速度较慢的问题。
为了实现上述目的,根据本申请的一个方面,提供了一种提高快照数据和克隆数据读写速度的方法,包括:确定预定粒度范围;获取所述预定粒度范围内的各数据在物理磁盘中的第一存储区域;确定所有的所述第一存储区域是否是离散的;在所有的所述第一存储区域是离散的情况下,在所述物理磁盘中建立一个第二存储区域;将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中。
可选地,获取所述预定粒度范围内的各数据在物理磁盘中的第一存储区域,包括:获取第一元数据集,所述第一元数据集中包括多个第一元数据;根据所述第一元数据,确定所述预定粒度范围内的各数据在所述物理磁盘中的所述第一存储区域。
可选地,将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中,包括:将存储在所有的所述第一存储区域中的所述数据读出;将从所有的所述第一存储区域中读出的所述数据写入所述第二存储区域中。
可选地,将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中之后,所述方法还包括:将写入所述第二存储区域中的数据集读出,所述数据集由所述预定粒度范围内的所有的所述数据组成。
可选地,将写入所述第二存储区域中的所述数据集读出,包括:获取第二元数据;根据所述第二元数据,将写入所述第二存储区域中的所述数据集读出。
可选地,将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中之后,所述方法还包括:将存储在所有的所述第一存储区域中的所述数据删除。
可选地,所述预定粒度范围为以下之一:64K、128K、256K、512K。
根据本申请的另一个方面,提供了一种提高快照数据和克隆数据读写速度的装置,包括:第一确定单元,用于确定预定粒度范围;获取单元,用于获取所述预定粒度范围内的各数据在物理磁盘中的第一存储区域;第二确定单元,用于确定所有的所述第一存储区域是否是离散的;建立单元,用于在所有的所述第一存储区域是离散的情况下,在所述物理磁盘中建立一个第二存储区域;写入单元,用于将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中。
根据本申请的又一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的提高快照数据和克隆数据读写速度的方法。
根据本申请的再一个方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行任意一种所述的提高快照数据和克隆数据读写速度的方法。
应用本申请的技术方案,首先根据实际需求确定预定粒度范围,然后获取该预定粒度范围内的各数据在物理磁盘中的第一存储区域,再确定所有的第一存储区域是否是离散的,在所有的第一存储区域是离散的情况下,创建一个新的存储区域,即第二存储区域,然后将所有的数据都写入第二存储区域中,实现了将预定粒度范围内离散的数据的集中化,由于将多个数据集中在一个第二存储区域中,后续对该预定粒度范围内的数据的读写只需对一个第二存储区域做处理,相对于现有的需要从多个第一存储区域中读数据或者需要将多个数据对应写入多个第一存储区域中的方式,通过将多个离散的存储区域的集中化大大提高了数据的读写速度,应用本方案,使得不会因快照克隆链的增加而造成数据访问速度地逐渐下降。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1示出了根据本申请的实施例的提高快照数据和克隆数据读写速度的方法流程图;
图2示出了根据本申请的实施例的一种存储区域示意图;
图3示出了根据本申请的实施例的另一种存储区域示意图;以及
图4示出了根据本申请的实施例的提高快照数据和克隆数据读写速度的装置示意图。
其中,上述附图包括以下附图标记:
01、物理磁盘;100、第一存储区域;200、第二存储区域。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应该理解的是,当元件(诸如层、膜、区域、或衬底)描述为在另一元件“上”时,该元件可直接在该另一元件上,或者也可存在中间元件。而且,在说明书以及权利要求书中,当描述有元件“连接”至另一元件时,该元件可“直接连接”至该另一元件,或者通过第三元件“连接”至该另一元件。
为了便于描述,以下对本申请实施例涉及的部分名词或术语进行说明:
block:逻辑卷的逻辑管理单元,block通常对应物理磁盘是某个存储区域。
block指针:即逻辑卷的元数据,用于管理一个逻辑卷如何与底层的物理磁盘对应。
快照卷:逻辑卷在某个特定的时间点的数据状态,通常快照卷只能读,不能写。
克隆卷:对快照卷的克隆,可以生成和快照卷一致的数据且可以进行读写操作。
快照克隆链:对一个逻辑卷不停地快照和克隆,而后对克隆卷又进行新快照和新克隆,周而复始,会形成多级的快照克隆关系,这种多层快照克隆关系称为快照克隆链。
正如背景技术中所介绍的,现有技术中ROW机制下随着快照和克隆的不断进行数据的读写速度较慢,为解决如上ROW机制下随着快照和克隆的不断进行数据的读写速度较慢的技术问题,本申请的实施例提供了一种提高快照数据和克隆数据读写速度的方法、装置、计算机可读存储介质与处理器。
图1是根据本申请实施例的提高快照数据和克隆数据读写速度的方法流程图。如图1所示,该方法包括以下步骤:
步骤S101,确定预定粒度范围;
步骤S102,获取上述预定粒度范围内的各数据在物理磁盘中的第一存储区域;
步骤S103,确定所有的上述第一存储区域是否是离散的;
步骤S104,在所有的上述第一存储区域是离散的情况下,在上述物理磁盘中建立一个第二存储区域;
步骤S105,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中。
上述方案中,首先根据实际需求确定预定粒度范围,然后获取该预定粒度范围内的各数据在物理磁盘中的第一存储区域,再确定所有的第一存储区域是否是离散的,在所有的第一存储区域是离散的情况下,创建一个新的存储区域,即第二存储区域,然后将所有的数据都写入第二存储区域中,实现了将预定粒度范围内离散的数据的集中化,由于将多个数据集中在一个第二存储区域中,后续对该预定粒度范围内的数据的读写只需对一个第二存储区域做处理,相对于现有的需要从多个第一存储区域中读数据或者需要将多个数据对应写入多个第一存储区域中的方式,通过将多个离散的存储区域的集中化大大提高了数据的读写速度,应用本方案,使得不会因快照克隆链的增加而造成数据访问速度地逐渐下降。
具体地,上述预定粒度范围包括但不限于64K、128K、256K和512K,本领域技术人员可以根据实际情况,设置合适的预定粒度范围,例如,在数据访问量较小的时候可以设置预定粒度范围为64K或者128K,在数据访问量较大的时候可以设置预定粒度范围为512K或者1M。
具体地,上述第二存储区域的大小是上述第一存储区域的大小的整数倍,例如,图2中的第二存储区域200的大小是第一存储区域100的大小的四倍。
需要说明的是,所有的上述第一存储区域是离散的,包括多种情况:所有的第一存储区域中任意两个第一存储区域都是离散的,如图2中的,物理磁盘01中的四个第一存储区域100都不是连续的;如图3中的,所有的第一存储区域100中有一些第一存储区域100是连续的,有一些第一存储区域100是离散的,等等情形,只要所有的第一存储区域100不是集中在一起的,就认为是离散的。如图2和图3中的,四个第一存储区域100合并为一个第二存储区域200。
另外,第一存储区域的个数是根据预定粒度范围的大小和每次读写数据的大小决定,例如,预定粒度范围的大小为16K,每次读写数据的大小为4K,则需要四个第一存储区域来存储16K的数据,应用本方案后,16K的数据仅仅需要一个第二存储区域就可以实现存储。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请的一种实施例,获取上述预定粒度范围内的各数据在物理磁盘中的第一存储区域,包括:获取第一元数据集,上述第一元数据集中包括多个第一元数据;根据上述第一元数据,确定上述预定粒度范围内的各数据在上述物理磁盘中的上述第一存储区域,此处的第一元数据即为block指针,在用户从逻辑卷中读取数据时,每一个待读取的数据都对应存储在物理磁盘中,而这种逻辑卷中的数据与物理磁盘中的存储区域的对应关系就是通过block指针(即第一元数据)建立的,当用户访问逻辑卷中的数据时,系统会根据第一元数据,自动找到数据对应的第一存储区域,从而从第一存储区域中将数据读出,即通过第一元数据建立了一种逻辑卷与物理磁盘的映射关系。
本申请的一种实施例中,确定所有的上述第一存储区域是否是离散的,包括:对多个上述第一元数据进行扫描,确定所有的上述第一存储区域是否是离散的,由于根据第一元数据可以确定多个第一存储区域的位置,所以通过对多个上述第一元数据进行扫描,可以确定所有的上述第一存储区域是否是离散的,当然,对多个上述第一元数据的扫描速度可以根据分布式存储系统的实际性能进行确定。
本申请的再一种实施例,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中,包括:将存储在所有的上述第一存储区域中的上述数据读出;将从所有的上述第一存储区域中读出的上述数据写入上述第二存储区域中,若想将预定粒度范围内的所有的数据重新写入第二存储区域中,首先需要将预先存储在所有的第一存储区域中的数据读出,再进行数据的写入。
本申请的又一种实施例,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中之后,上述方法还包括:将写入上述第二存储区域中的上述数据集读出,上述数据集由上述预定粒度范围内的所有的上述数据组成,在应用本申请的方案将预定粒度范围内的所有的数据写入一个第二存储区域中后,后续读取该预定粒度范围内的所有的数据时,直接从一个第二存储区域中一次将所有的数据读出即可,相对于需要多次从第一存储区域读取的方法,大大提高了数据读取的速度。尤其在快照克隆链较复杂的情况下,经过多次的快照和克隆后,某一个预定粒度范围内的数据对应的第一存储区域发生了多次的改变,再将某一个预定粒度范围内的数据读出,就需要找到多个第一存储区域,大大降低了数据的读取速度,而应用本申请的方案,通过将离散的多个第一存储区域集中化,减少了数据的读取的次数,进而提高了数据读取的速度。
一种具体的实施例中,将写入上述第二存储区域中的上述数据集读出,包括:获取第二元数据;根据上述第二元数据,将写入上述第二存储区域中的上述数据集读出,第二元数据与上述第一元数据起到相同的作用,均是建立逻辑卷与物理磁盘的一种对应关系,在需要将第二存储区域中的上述数据集读出的情况下,仅仅需要一个第二元数据就可以找到第二存储区域中的数据,进一步地提高了数据的读取速度,同样,应用本申请的方案,后续在需要将某预定粒度范围内的数据写入物理磁盘中时,也可以实现将某预定粒度范围内的所有数据一次写入物理磁盘中。此外,将多个第一存储区域合并为一个第二存储区域后,第二元数据的数量相对于第一元数据的成倍地减少,就可以利用更少的内存来缓存所有的元数据,以便进一步提高数据访问速度。
本申请的一种实施例,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中,包括:获取第二元数据;根据上述第二元数据,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中,即每一个第一存储区域与一个第一元数据对应,第二存储区域与第二元数据对应,第一元数据与第二元数据均为block指针,即本方案通过对原先指向第一存储区域的block指针(即第一元数据)的更新得到第二元数据,第二元数据指向第二存储区域,在将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中时,只要搜索到对应的第二元数据就可以实现对数据写入的定位。
一种更为优选的实施例中,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中之后,上述方法还包括:将存储在所有的上述第一存储区域中的上述数据删除,即释放第一存储区域,即在将预定粒度范围内的所有的数据重新写入第二存储区域中后,原先的多个第一存储区域中的数据就成为了重复的数据,为节省物理磁盘中的存储空间,就将存储在所有的第一存储区域中的数据删除。
一种具体的实施方式中,ROW机制下随着快照和克隆的不断进行数据的读写,某一个预定粒度范围内的数据对应的第一存储区域发生了多次的改变,再将某一个预定粒度范围内的数据读出,就需要找到多个第一存储区域,随着不断地快照和克隆第一元数据的数量会成倍地增加,如果,预定粒度范围的值较小,再对较多的数据进行多次写入后,第一元数据的数量会变得更多,再从物理磁盘中读取数据时就需要找到更多的第一元数据指向的第一存储区域,从而减慢数据的读取速度。如果,后续需要将大块的数据从物理磁盘中读出,就需要查找多次的第一元数据,会使读数据的速度很慢,而应用本申请的方案,通过将离散的多个第一存储区域集中为一个第二存储区域,例如将8个第一存储区域集中为一个第二存储区域,后续读数据时,就可以将八次的读操作简化为一次,关于大块数据的读出,例如,大块数据的大小为512KB,原先每一个第一存储区域可以存储8KB的数据,则需要读取64次,再应用本方案后,每一个第二存储区域可以存储64KB的数据,则读取512KB的数据仅仅需要读取8次就实现了对大块数据的读取,大大提高了数据的读取数据。
一种具体的实施方式中,将本方案中的消除多个第一存储区域离散的方法,称为元数据再映射算法,在具体的分布式存储系统中,该元数据再映射算法可以在业务低峰执行,也可以在业务高峰时执行,只是为了不影响业务的正常实现,在业务高峰时可以适当减缓元数据再映射算法的执行速度和减少元数据再映射算法的执行次数。也可以以某个时间为周期(例如一周),以某个预定粒度范围为单位(例如1M),定期的扫描逻辑卷,一旦发现离散化,立即启动元数据再映射算法,定期的扫描任务由于对业务影响较小,因此其离散度检查可以更加严格以进一步提高后续的大块读能力。当然,由于第一存储区域的离散化是由快照和克隆引入的,因此当快照和克隆链超过一定长度,也可以适时启动上述元数据再映射算法。另外,可以通过前台检测或者后台定期扫描来发现离散的问题,但是由于前台检测对正常的业务的运行影响较大,所以前台检测可以选择较小的预定粒度范围,而后台定期扫描可以选择较大的预定粒度范围。
本申请实施例还提供了一种提高快照数据和克隆数据读写速度的装置,需要说明的是,本申请实施例的提高快照数据和克隆数据读写速度的装置可以用于执行本申请实施例所提供的用于提高快照数据和克隆数据读写速度的方法。以下对本申请实施例提供的提高快照数据和克隆数据读写速度的装置进行介绍。
图4是根据本申请实施例的提高快照数据和克隆数据读写速度的装置的示意图。如图4所示,该装置包括:
第一确定单元10,用于确定预定粒度范围;
获取单元20,用于获取上述预定粒度范围内的各数据在物理磁盘中的第一存储区域;
第二确定单元30,用于确定所有的上述第一存储区域是否是离散的;
建立单元40,用于在所有的上述第一存储区域是离散的情况下,在上述物理磁盘中建立一个第二存储区域;
写入单元50,用于将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中。
上述方案中,第一确定单元根据实际需求确定预定粒度范围,获取单元获取该预定粒度范围内的各数据在物理磁盘中的第一存储区域,第二确定单元确定所有的第一存储区域是否是离散的,在所有的第一存储区域是离散的情况下,建立单元创建一个新的存储区域,即第二存储区域,写入单元将所有的数据都写入第二存储区域中,实现了将预定粒度范围内离散的数据的集中化,由于将多个数据集中在一个第二存储区域中,后续对该预定粒度范围内的数据的读写只需对一个第二存储区域做处理,相对于现有的需要从多个第一存储区域中读数据或者需要将多个数据对应写入多个第一存储区域中的方式,通过将多个离散的存储区域的集中化大大提高了数据的读写速度,应用本方案,使得不会因快照克隆链的增加而造成数据访问速度地逐渐下降。
具体地,上述预定粒度范围包括但不限于64K、128K、256K和512K,本领域技术人员可以根据实际情况,设置合适的预定粒度范围,例如,在数据访问量较小的时候可以设置预定粒度范围为64K或者128K,在数据访问量较大的时候可以设置预定粒度范围为512K或者1M。
具体地,上述第二存储区域的大小是上述第一存储区域的大小的整数倍,例如,图2中的第二存储区域200的大小是第一存储区域100的大小的四倍。
需要说明的是,所有的上述第一存储区域是离散的,包括多种情况:所有的第一存储区域中任意两个第一存储区域都是离散的,如图2中的,物理磁盘01中的四个第一存储区域100都不是连续的;如图3中的,所有的第一存储区域100中有一些第一存储区域100是连续的,有一些第一存储区域100是离散的,等等情形,只要所有的第一存储区域100不是集中在一起的,就认为是离散的。如图2和图3中的,四个第一存储区域100合并为一个第二存储区域200。
另外,第一存储区域的个数是根据预定粒度范围的大小和每次读写数据的大小决定,例如,预定粒度范围的大小为16K,每次读写数据的大小为4K,则需要四个第一存储区域来存储16K的数据,应用本方案后,16K的数据仅仅需要一个第二存储区域就可以实现存储。
本申请的一种实施例,获取单元包括第一获取模块和第一确定模块,第一获取模块用于获取第一元数据集,上述第一元数据集中包括多个第一元数据;第一确定模块用于根据上述第一元数据,确定上述预定粒度范围内的各数据在上述物理磁盘中的上述第一存储区域,此处的第一元数据即为block指针,在用户从逻辑卷中读取数据时,每一个待读取的数据都对应存储在物理磁盘中,而这种逻辑卷中的数据与物理磁盘中的存储区域的对应关系就是通过block指针(即第一元数据)建立的,当用户访问逻辑卷中的数据时,系统会根据第一元数据,自动找到数据对应的第一存储区域,从而从第一存储区域中将数据读出,即通过第一元数据建立了一种逻辑卷与物理磁盘的映射关系。
本申请的一种实施例中,第二确定单元还用于对多个上述第一元数据进行扫描,确定所有的上述第一存储区域是否是离散的,由于根据第一元数据可以确定多个第一存储区域的位置,所以通过对多个上述第一元数据进行扫描,可以确定所有的上述第一存储区域是否是离散的,当然,对多个上述第一元数据的扫描速度可以根据分布式存储系统的实际性能进行确定。
本申请的再一种实施例,写入单元包括第一读出模块和写入模块,第一读出模块用于将存储在所有的上述第一存储区域中的上述数据读出;写入模块用于将从所有的上述第一存储区域中读出的上述数据写入上述第二存储区域中,若想将预定粒度范围内的所有的数据重新写入第二存储区域中,首先需要将预先存储在所有的第一存储区域中的数据读出,再进行数据的写入。
本申请的又一种实施例,上述装置还包括读出单元,读出单元用于将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中之后,将写入上述第二存储区域中的上述数据集读出,上述数据集由上述预定粒度范围内的所有的上述数据组成,在应用本申请的方案将预定粒度范围内的所有的数据写入一个第二存储区域中后,后续读取该预定粒度范围内的所有的数据时,直接从一个第二存储区域中一次将所有的数据读出即可,相对于需要多次从第一存储区域读取,大大提高了数据读取的速度。尤其在快照克隆链较复杂的情况下,经过多次的快照和克隆后,某一个预定粒度范围内的数据对应的第一存储区域发生了多次的改变,再将某一个预定粒度范围内的数据读出,就需要找到多个第一存储区域,大大降低了数据的读取速度,而应用本申请的方案,通过将离散的多个第一存储区域集中化,减少了数据的读取的次数,进而提高了数据读取的速度。
一种具体的实施例中,读出单元包括第二获取模块和第二读出模块,第二获取模块用于获取第二元数据;第二读出模块用于根据上述第二元数据,将写入上述第二存储区域中的上述数据集读出,第二元数据与上述第一元数据起到相同的作用,均是建立逻辑卷与物理磁盘的一种对应关系,在需要将第二存储区域中的上述数据集读出的情况下,仅仅需要一个第二元数据就可以找到第二存储区域中的数据,进一步地提高了数据的读取速度,同样,应用本申请的方案,后续在需要将某预定粒度范围内的数据写入物理磁盘中时,也可以实现将某预定粒度范围内的所有数据一次写入物理磁盘中。此外,将多个第一存储区域合并为一个第二存储区域后,第二元数据的数量相对于第一元数据的成倍地减少,就可以利用更少的内存来缓存所有的元数据,以便进一步提高数据访问速度。
本申请的一种实施例,写入单元还用于获取第二元数据;根据上述第二元数据,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中,即每一个第一存储区域与一个第一元数据对应,第二存储区域与第二元数据对应,第一元数据与第二元数据均为block指针,即本方案通过对原先指向第一存储区域的block指针(即第一元数据)更新得到第二元数据,第二元数据指向第二存储区域,在将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中时,只要搜索到对应的第二元数据就可以实现对数据写入的定位。
一种更为优选的实施例中,上述装置还包括删除单元,删除单元用于将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中之后,将存储在所有的上述第一存储区域中的上述数据删除,即释放第一存储区域,即在将预定粒度范围内的所有的数据重新写入第二存储区域中后,原先的多个第一存储区域中的数据就成为了重复的数据,为节省物理磁盘中的存储空间,就将存储在所有的第一存储区域中的数据删除。
上述提高快照数据和克隆数据读写速度的装置包括处理器和存储器,上述第一确定单元、获取单元、第二确定单元、建立单元和写入单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来提高数据的读写速度。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述的提高快照数据和克隆数据读写速度的方法。
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述提高快照数据和克隆数据读写速度的方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
步骤S101,确定预定粒度范围;
步骤S102,获取上述预定粒度范围内的各数据在物理磁盘中的第一存储区域;
步骤S103,确定所有的上述第一存储区域是否是离散的;
步骤S104,在所有的上述第一存储区域是离散的情况下,在上述物理磁盘中建立一个第二存储区域;
步骤S105,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
步骤S101,确定预定粒度范围;
步骤S102,获取上述预定粒度范围内的各数据在物理磁盘中的第一存储区域;
步骤S103,确定所有的上述第一存储区域是否是离散的;
步骤S104,在所有的上述第一存储区域是离散的情况下,在上述物理磁盘中建立一个第二存储区域;
步骤S105,将上述预定粒度范围内的所有的上述数据写入上述第二存储区域中。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
从以上的描述中,可以看出,本申请上述的实施例实现了如下技术效果:
1)、本申请的提高快照数据和克隆数据读写速度的方法,首先根据实际需求确定预定粒度范围,然后获取该预定粒度范围内的各数据在物理磁盘中的第一存储区域,再确定所有的第一存储区域是否是离散的,在所有的第一存储区域是离散的情况下,创建一个新的存储区域,即第二存储区域,然后将所有的数据都写入第二存储区域中,实现了将预定粒度范围内离散的数据的集中化,由于将多个数据集中在一个第二存储区域中,后续对该预定粒度范围内的数据的读写只需对一个第二存储区域做处理,相对于现有的需要从多个第一存储区域中读数据或者需要将多个数据对应写入多个第一存储区域中的方式,通过将多个离散的存储区域的集中化大大提高了数据的读写速度,应用本方案,使得不会因快照克隆链的增加而造成数据访问速度地逐渐下降。
2)、本申请的提高快照数据和克隆数据读写速度的装置,第一确定单元根据实际需求确定预定粒度范围,获取单元获取该预定粒度范围内的各数据在物理磁盘中的第一存储区域,第二确定单元确定所有的第一存储区域是否是离散的,在所有的第一存储区域是离散的情况下,建立单元创建一个新的存储区域,即第二存储区域,写入单元将所有的数据都写入第二存储区域中,实现了将预定粒度范围内离散的数据的集中化,由于将多个数据集中在一个第二存储区域中,后续对该预定粒度范围内的数据的读写只需对一个第二存储区域做处理,相对于现有的需要从多个第一存储区域中读数据或者需要将多个数据对应写入多个第一存储区域中的方式,通过将多个离散的存储区域的集中化大大提高了数据的读写速度,应用本方案,使得不会因快照克隆链的增加而造成数据访问速度地逐渐下降。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种提高快照数据和克隆数据读写速度的方法,其特征在于,包括:
确定预定粒度范围;
获取所述预定粒度范围内的各数据在物理磁盘中的第一存储区域;
确定所有的所述第一存储区域是否是离散的;
在所有的所述第一存储区域是离散的情况下,在所述物理磁盘中建立一个第二存储区域;
将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中。
2.根据权利要求1所述的方法,其特征在于,获取所述预定粒度范围内的各数据在物理磁盘中的第一存储区域,包括:
获取第一元数据集,所述第一元数据集中包括多个第一元数据;
根据所述第一元数据,确定所述预定粒度范围内的各数据在所述物理磁盘中的所述第一存储区域。
3.根据权利要求1所述的方法,其特征在于,将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中,包括:
将存储在所有的所述第一存储区域中的所述数据读出;
将从所有的所述第一存储区域中读出的所述数据写入所述第二存储区域中。
4.根据权利要求1所述的方法,其特征在于,将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中之后,所述方法还包括:
将写入所述第二存储区域中的数据集读出,所述数据集由所述预定粒度范围内的所有的所述数据组成。
5.根据权利要求4所述的方法,其特征在于,将写入所述第二存储区域中的所述数据集读出,包括:
获取第二元数据;
根据所述第二元数据,将写入所述第二存储区域中的所述数据集读出。
6.根据权利要求1所述的方法,其特征在于,将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中之后,所述方法还包括:
将存储在所有的所述第一存储区域中的所述数据删除。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述预定粒度范围为以下之一:
64K、128K、256K、512K。
8.一种提高快照数据和克隆数据读写速度的装置,其特征在于,包括:
第一确定单元,用于确定预定粒度范围;
获取单元,用于获取所述预定粒度范围内的各数据在物理磁盘中的第一存储区域;
第二确定单元,用于确定所有的所述第一存储区域是否是离散的;
建立单元,用于在所有的所述第一存储区域是离散的情况下,在所述物理磁盘中建立一个第二存储区域;
写入单元,用于将所述预定粒度范围内的所有的所述数据写入所述第二存储区域中。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的提高快照数据和克隆数据读写速度的方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至7中任意一项所述的提高快照数据和克隆数据读写速度的方法。
CN202010707606.4A 2020-07-21 2020-07-21 提高快照数据和克隆数据读写速度的方法与装置 Pending CN111857593A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010707606.4A CN111857593A (zh) 2020-07-21 2020-07-21 提高快照数据和克隆数据读写速度的方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010707606.4A CN111857593A (zh) 2020-07-21 2020-07-21 提高快照数据和克隆数据读写速度的方法与装置

Publications (1)

Publication Number Publication Date
CN111857593A true CN111857593A (zh) 2020-10-30

Family

ID=73001461

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010707606.4A Pending CN111857593A (zh) 2020-07-21 2020-07-21 提高快照数据和克隆数据读写速度的方法与装置

Country Status (1)

Country Link
CN (1) CN111857593A (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196889A (zh) * 2006-12-08 2008-06-11 国际商业机器公司 优化存储系统中的文件放置的方法及装置
CN101404028A (zh) * 2008-11-07 2009-04-08 宇龙计算机通信科技(深圳)有限公司 一种整理文件碎片的方法和系统
CN104407936A (zh) * 2014-11-18 2015-03-11 华为数字技术(成都)有限公司 一种数据快照方法及装置
US20160139809A1 (en) * 2014-11-18 2016-05-19 International Business Machines Corporation Efficient management of cloned data
CN105637491A (zh) * 2014-09-26 2016-06-01 华为技术有限公司 一种文件迁移方法、装置和存储设备
CN106951375A (zh) * 2016-01-06 2017-07-14 北京忆恒创源科技有限公司 在存储系统中删除快照卷的方法及装置
CN107357928A (zh) * 2017-07-26 2017-11-17 郑州云海信息技术有限公司 一种实现存储快照的方法和系统
CN109598156A (zh) * 2018-11-19 2019-04-09 杭州信核数据科技股份有限公司 一种写时重定向引擎快照流方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101196889A (zh) * 2006-12-08 2008-06-11 国际商业机器公司 优化存储系统中的文件放置的方法及装置
CN101404028A (zh) * 2008-11-07 2009-04-08 宇龙计算机通信科技(深圳)有限公司 一种整理文件碎片的方法和系统
CN105637491A (zh) * 2014-09-26 2016-06-01 华为技术有限公司 一种文件迁移方法、装置和存储设备
CN104407936A (zh) * 2014-11-18 2015-03-11 华为数字技术(成都)有限公司 一种数据快照方法及装置
US20160139809A1 (en) * 2014-11-18 2016-05-19 International Business Machines Corporation Efficient management of cloned data
CN106951375A (zh) * 2016-01-06 2017-07-14 北京忆恒创源科技有限公司 在存储系统中删除快照卷的方法及装置
CN107357928A (zh) * 2017-07-26 2017-11-17 郑州云海信息技术有限公司 一种实现存储快照的方法和系统
CN109598156A (zh) * 2018-11-19 2019-04-09 杭州信核数据科技股份有限公司 一种写时重定向引擎快照流方法

Similar Documents

Publication Publication Date Title
US10671290B2 (en) Control of storage of data in a hybrid storage system
CN109669640B (zh) 一种数据存储方法、装置、电子设备及介质
US10474370B1 (en) Method and system for mitigating the effect of write and read disturbances in solid state memory regions
US20200050385A1 (en) Virtualizing Isolation Areas of Solid-State Storage Media
CN104111897A (zh) 一种数据处理方法、装置及计算机系统
CN110663019A (zh) 用于叠瓦式磁记录(smr)的文件系统
CN111930643B (zh) 一种数据处理方法及相关设备
CN113110853B (zh) 一种组态数据在线下载方法、装置及电子设备
US11782828B2 (en) Efficiently purging non-active blocks in NVM regions using virtblock arrays
US10705954B2 (en) Efficiently purging non-active blocks in NVM regions while preserving large pages
CN113946552A (zh) 数据处理方法及电子装置
CN115421924A (zh) 一种内存分配方法、装置及设备
US20130205298A1 (en) Apparatus and method for memory overlay
US8019706B2 (en) Storage system dynamic classification
CN111475099A (zh) 一种数据存储方法、装置及其设备
US20210326271A1 (en) Stale data recovery using virtual storage metadata
CN111857593A (zh) 提高快照数据和克隆数据读写速度的方法与装置
CN112560403A (zh) 文本的处理方法及装置、电子设备
CN110032446B (zh) 一种应用于嵌入式系统中分配内存空间的方法及装置
US10691591B2 (en) Efficiently purging non-active blocks in NVM regions using pointer elimination
US10809937B2 (en) Increasing the speed of data migration
US9672222B1 (en) Write-through buffer cache for write-able file system that utilizes differencing disk to preserve read-only data
CN110795421A (zh) 一种防止脏数据产生的方法
KR20190069134A (ko) 응용 프로그램간 파일 공유 장치 및 방법
CN114706628B (zh) 基于一池多芯的分布式存储系统的数据处理方法和装置

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
CB02 Change of applicant information

Address after: 100094 101, floors 1-5, building 7, courtyard 3, fengxiu Middle Road, Haidian District, Beijing

Applicant after: Beijing Xingchen Tianhe Technology Co.,Ltd.

Address before: 100097 room 806-1, block B, zone 2, Jinyuan times shopping center, indigo factory, Haidian District, Beijing

Applicant before: XSKY BEIJING DATA TECHNOLOGY Corp.,Ltd.

CB02 Change of applicant information