CN113467989A - 快照创建与读取方法、设备及存储介质 - Google Patents

快照创建与读取方法、设备及存储介质 Download PDF

Info

Publication number
CN113467989A
CN113467989A CN202010245187.7A CN202010245187A CN113467989A CN 113467989 A CN113467989 A CN 113467989A CN 202010245187 A CN202010245187 A CN 202010245187A CN 113467989 A CN113467989 A CN 113467989A
Authority
CN
China
Prior art keywords
snapshot
data
incremental
data block
key used
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
CN202010245187.7A
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010245187.7A priority Critical patent/CN113467989A/zh
Publication of CN113467989A publication Critical patent/CN113467989A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请实施例提供一种快照创建与读取方法、设备及存储介质。在本申请实施例提供的快照创建过程中,若待创建增量快照需要依赖历史快照中的数据块,则在待创建增量快照的元数据中,不仅要记录待创建增量快照所依赖的历史快照中数据块的位置索引,还要记录该历史快照所使用的数据密钥,用来解密待创建增量快照所依赖的历史快照中的数据块,这样,在密钥轮转后仍可以创建增量快照,而无需创建全量快照,可减少快照创建耗时,提高创建速度。

Description

快照创建与读取方法、设备及存储介质
技术领域
本申请涉及数据存储技术领域,尤其涉及一种快照创建与读取方法、设备及存储介质。
背景技术
磁盘快照主要用于备份和容灾。用户可以在不同时间点,对一块磁盘创建若干快照形成一条快照链。现有快照创建一般采用增量快照技术,即在新快照中可引用旧快照中的数据块。
在加密存储场景中,为了提高数据安全性,需要轮转密钥,则在密钥轮转前后,新旧快照使用的密钥不一致。然而,密钥轮转要求:在磁盘密钥更换后,要能用新密钥完整地解密出整个新快照中的数据块。
故而现有技术,在密钥轮转后的第一个快照不再依赖任何旧快照,而是直接创建一个全量快照,这个快照的所有数据块都能用轮转后的新密钥进行解密。但是,全量快照数据量很大,快照创建耗时较长,速度较慢。
发明内容
本申请的多个方面提供一种快照创建与读取方法、设备及存储介质,用以减少快照创建耗时,提高创建速度。
本申请实施例提供一种快照创建方法,包括:根据数据存储空间的元数据,确定待创建增量快照需要的增量数据块和需要依赖的目标历史快照中的目标数据块;在待创建增量快照的元数据中,记录增量数据块和目标数据块的位置索引,以及目标历史快照使用的数据密钥,以在快照读取中解密所述目标数据块;以及根据增量数据块的位置索引,将增量数据块存储至快照存储空间中,以得到新的增量快照。
本申请实施例还提供一种快照读取方法,包括:确定待读取快照以及其中的待读取数据块;若待读取数据块是待读取快照所依赖的历史快照中的数据块,从待读取快照的元数据中,获取历史快照使用的数据密钥;利用历史快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方。
本申请实施例还提供一种快照管理设备包括:存储器和处理器;存储器,用于存储程序;处理器,与存储器耦合,用于执行程序以用于:根据数据存储空间的元数据,确定待创建增量快照需要的增量数据块和需要依赖的目标历史快照中的目标数据块;在待创建增量快照的元数据中,记录增量数据块和目标数据块的位置索引,以及目标历史快照使用的数据密钥;以及根据增量数据块的位置索引,将增量数据块存储至快照存储空间中。
本申请实施例还提供一种快照管理设备包括:存储器和处理器;存储器,用于存储程序;处理器,与存储器耦合,用于执行程序以用于:确定待读取快照以及其中的待读取数据块;若待读取数据块是待读取快照所依赖的历史快照中的数据块,从待读取快照的元数据中,获取历史快照使用的数据密钥;利用历史快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方。
本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现快照创建和读取方法中的步骤。
在本申请实施例提供的快照创建过程中,若待创建增量快照需要依赖历史快照中的数据块,则在待创建增量快照的元数据中,不仅要记录待创建增量快照所依赖的历史快照中数据块的位置索引,还要记录该历史快照所使用的数据密钥,用来解密待创建增量快照所依赖的历史快照中的数据块,这样,在密钥轮转后仍可以创建增量快照,而无需创建全量快照,可减少快照创建耗时,提高创建速度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请示例性实施例提供的一种快照管理***的结构示意图;
图2a为本申请示例性实施例提供的一种数据存储空间的结构示意图;
图2b为本申请示例性实施例提供的一种快照存储空间的结构示意图;
图2c为本申请示例性实施例提供的一种快照元数据的结构示意图;
图2d为本申请示例性实施例提供的另一种快照元数据的结构示意图;
图2e为本申请示例性实施例提供的另一种快照存储空间的结构示意图;
图3为本申请示例性实施例提供的一种快照创建方法的流程示意图;
图4为本申请示例性实施例提供的一种快照读取方法的流程示意图;
图5为本申请示例性实施例提供的一种快照管理设备的结构示意图;
图6为本申请示例性实施例提供的另一种快照管理设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有技术中,全量快照创建耗时较长,速度较慢的问题,在本申请实施例中,在快照创建过程中,若待创建增量快照需要依赖历史快照中的数据块,则在待创建增量快照的元数据中,不仅要记录待创建增量快照所依赖的历史快照中数据块的位置索引,还要记录该历史快照所使用的数据密钥,用来解密待创建增量快照所依赖的历史快照中的数据块,而且,对快照使用方来说,只需记录待创建增量快照使用的数据密钥即可,无需记录历史快照使用的数据密钥,使得在密钥轮转后仍可以创建增量快照,而无需创建全量快照,可减少快照创建耗时,提高创建速度。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请示例性实施例提供的一种快照管理***的结构示意图。如图1所示,该***10包括:至少一台存储设备11以及耦合至少一台存储设备11的快照管理设备12。
至少一台存储设备11,用于向快照管理***10的使用者提供数据存储空间,并针对数据存储空间提供对应的快照存储空间,该快照存储空间中存储有所述数据存储空间的各快照。
其中,针对不同使用者,至少一台存储设备11可以提供相同大小的数据存储空间以及快照存储空间,也可以提供不同大小的数据存储空间和快照存储空间。另外,在本申请各实施例中,并不限定数据存储空间以及快照存储空间的大小。例如,数据存储空间可以是一块大小为500MB、800MB或50GB的存储空间。快照存储空间可以是一块大小为500MB、200MB或1GB的存储空间。
对快照管理***10来说,其包含的至少一台存储设备11可以是相同类型的存储设备,也可以是不同类型的存储设备。对任一台存储设备11来说,可以是任何具有存储功能的设备,例如可以是服务器、台式计算机、个人计算机、手机、平板电脑、数据库等。服务器可以是常规服务器、云服务器、云主机、虚拟中心等。每台存储设备11的实现结构可以包括处理器、***总线以及硬盘、内存等至少一块物理存储介质。
对任一存储设备11来说,其包含的至少一块物理存储介质可以是相同类型的物理存储介质,也可以是不同类型的物理存储介质。对任一物理存储介质来说,例如可以选用相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)、固态驱动器(Solid State Disk或Solid State Drive,SSD)以及磁盒式磁带等中的任意一种。
上述由至少一台存储设备11为快照管理***10的使用者提供的数据存储空间,主要用于存储与快照管理***10的使用者相关的数据,例如可以包括用户数据、***数据、各类应用数据等。对快照管理***10的使用者来说,可以向该数据存储空间中写入数据,也可以从该数据存储空间中读取数据。其中,快照管理***10的使用者可以是对快照管理***10具有访问和/或使用权限的计算机、虚拟机、各类应用、终端设备以及用户等。快照管理***10的使用者可以有一个或多个。
在一示例性实现方式中,快照管理***10以云磁盘的方式向其使用者提供数据存储空间。快照管理***10提供的云磁盘是建立在至少一台存储设备11之上的磁盘实例。云磁盘与计算机磁盘类似,使用者可以对其进行读写操作。该云磁盘需要映射到至少一台存储设备11的物理存储介质上,例如磁盘、ROM等。值得说明的是,图1中示出的是快照管理***10以云磁盘的方式向其使用者提供数据存储空间的情况,但是快照管理***10向其使用者提供数据存储空间的方式并不限于云磁盘这一种方式。例如,快照管理***10也可以以数据库方式或者传统磁盘向其使用者提供数据存储空间。
在快照管理***10中,快照管理设备12主要实现快照管理***10的快照功能,以对快照管理***10中的数据进行备份和容灾。在部署实现上,快照管理设备12可独立于至少一台存储设备11而单独部署,如图1所示。在快照管理设备12单独部署实施时,快照管理设备12可以是任何具有一定处理能力的设备,例如服务器、台式计算机、个人计算机、手机、平板电脑等。除了单独部署实施之外,快照管理设备12也可以部署在一台或多台存储设备11上实现。部署有快照管理设备12的存储设备11除了具有存储能力之外,还具有创建、维护和管理快照的能力。
在快照管理***10使用的过程中,快照管理设备12可在不同时间点,为至少一台存储设备11面向快照管理***10的使用者提供的数据存储空间创建若干快照,成为一条快照链。每一个时间点的快照可以看作是该数据存储空间在相应时间点所存储数据的一个副本或复制品。这些快照被存储在至少一台存储设备11提供的快照存储空间中。当数据存储空间对应的存储设备11发生故障或者数据存储空间中存储的数据丢失时,可根据快照进行数据回滚,将数据存储空间中的数据恢复到快照链上某个快照记录的数据状态。
考虑到数据存储空间中存储的数据有冷热之分,很多数据很久才会改动。因此,数据存储空间的各个快照中往往只有少量数据有区别。为了节省空间,快照管理设备12在创建快照时使用增量快照技术,相应地,在存储快照时使用去重存储技术。
在一种去重存储技术的实施方式中,按照地址偏移将快照管理***10中至少一台存储设备11面向快照管理***10的使用者提供的数据存储空间划分为多个存储分区。存储分区的大小可根据数据存储空间的大小等因素适应性划分,例如每2MB、10MB或20MB的存储区域可作为一个存储分区。其中,一个存储分区中存储的数据的快照称为一个数据块(Block),即数据块是存储分区的快照数据。在快照管理***10中,以数据块为粒度进行快照管理。这样在每次为数据存储空间创建快照时,只需检查每个存储分区,如果该存储分区当前存储的数据与之前已有快照中对应该存储分区的数据块的内容相同,则在新快照中继续使用之前已有快照中的数据块,不再重复存储该数据块;如果该存储分区当前存储的数据与之前已有快照中对应该存储分区的数据块的内容不相同,则在新快照中重新存储该存储分区对应的数据块。
如图2a所示,假设至少一台存储设备11面向存储***10的使用者提供的数据存储空间被切分为4个存储分区,记为存储分区Q1-Q4。结合图2a所示存储分区,为数据存储空间创建快照的过程包括:
第一次为数据存储空间创建快照,记为快照A,快照A存储于至少一台存储设备11提供的快照存储空间中。快照A在快照存储空间中的存储样式如图2b所示,包括数据块1-A,数据块2-A,数据块3-A以及数据块4-A。
在创建快照A之后,假设使用者针对数据存储空间发出IO操作,该IO操作对存储分区Q1和Q3中的数据进行了改动,其它存储分区的数据没有改动。这些存储分区的变动信息会记录在数据存储空间的元数据中。在上述改动之后,第二次为数据存储空间创建快照,记为快照B,快照B存储于快照存储空间中。其中,快照B在快照存储空间中的存储样式如图2b所示,包括:数据块1-B以及数据块3-B。在快照B中,继续使用快照A中的数据块2-A和数据块4-A,无需重新存储数据块2-A和数据块4-A,只需在快照B的元数据中记录使用到的已有快照中的数据块的名称,以便从快照A的存储空间中读取相应数据块。这里以为数据存储空间创建两个快照(即快照A和快照B)为例进行说明,实际应用中可以为数据存储空间创建更多快照。其中,快照A和快照B以及后续快照可形成数据存储空间的一个快照链。
对数据存储空间的快照链来说,具有一个快照列表,记录有该快照链包含的每个快照的名称。每个快照具有元数据,在元数据中记录有该快照使用到的各数据块的名称以及位置索引。例如,如图2c所示,在快照A的元数据中依次记录有数据块的名称以及对应的位置索引:1-A,2-A,3-A以及4-A;数据块对应的位置索引:A1,A2,A3以及A4;在快照B的元数据中依次记录有数据块的名称:1-B,2-A,3-B以及4-A;数据块对应的位置索引:B1,A2,B3以及A4。其中,数据块的位置索引指向数据块在快照存储空间中的存储位置。数据块的位置索引可以是能够指向数据块在快照存储空间中的存储位置的任何信息,例如可以是数据块在快照存储空间中的绝对地址信息,也以是指向数据块在快照存储空间中的存储位置的指针信息,还可以是数据块的名称等。其中,在数据块的位置索引为数据块的名称时,数据块的名称与数据块在快照存储空间中的存储位置具有对应关系。
由图2b和图2c可知,相同数据块在快照存储空间中仅需存储一次,或者说快照存储空间中存储的都是不同的数据块,这样可以节省大量存储空间。
在本实施例中,为了保障数据的安全性,在数据存储空间中会对数据进行加密存放,基于加密数据创建的快照也是加密的。为了进一步提高数据的安全性,对数据进行加密的数据密钥会定期轮转。在密钥轮转后,数据存储空间中的数据会使用新密钥进行加密,若采用增量快照技术,在密钥轮转后创建的快照中可能包含在密钥轮转前创建的快照中的数据块,那么新密钥无法解密出在密钥轮转后创建的快照中的所有数据块,因此,为了使新密钥可以访问快照中的所有数据,密钥轮转后创建的首个快照需要是一个全量快照,但是全量快照数据量很大,快照创建耗时较长,速度较慢。
针对上述问题,在本实施例中,快照管理设备12采用一种新的快照创建方案。在该方案中,快照管理设备12具体用于:根据数据存储空间的元数据,确定待创建增量快照需要的增量数据块和需要依赖的目标历史快照中的目标数据块;在待创建增量快照的元数据中,记录增量数据块和目标数据块的位置索引,以及目标历史快照使用的数据密钥,以在快照读取中解密目标数据块;以及根据增量数据块的位置索引,将增量数据块存储至快照存储空间中,以得到新的增量快照。
在本申请实施例中,将待创建增量快照相对于目标历史快照发生变化的数据块称为增量数据块,增量数据块可以是一个,也可以是多个。在待创建增量快照之前的历史快照可能有一个或者多个,为了便于描述和区分,将待创建增量快照所依赖的历史快照称为目标历史快照,目标历史快照也可以是一个或多个。同理,每个目标历史快照中会有多个数据块,其中,将目标历史快照相对于待创建增量快照未发生变化的数据块称为目标数据块,该目标数据块也就是待创建增量快照所依赖的数据块,目标数据块可以是一个,也可以是多个。如图2b所示,假设快照B为待创建增量快照,快照B中的数据块1-B和3-B为增量数据块;快照B依赖的快照A为目标历史快照,快照A中的数据块2-A和4-A为目标数据块。进一步,结合图2b所示的快照A和快照B的增量关系,如图2c所示,待创建增量快照B的元数据中记录了增量数据块名称:1-B和3-B,目标历史数据块名称:2-A和4-A,各数据块的位置索引:B1、A2、B3和A4,以及目标历史快照A使用的数据密钥a。
在本申请实施例中,并不限定各快照使用的数据密钥,根据数据加密方式的不同,各快照使用的数据密钥也会有所不同。例如,若数据加密方式为对称加密方式,加密过程和解密过程使用同一个密钥;若数据加密方式为非对称加密方式,则需要两个密钥:公钥和私钥,如果用公钥对数据进行加密,则用私钥对数据进行解密。若本***采用对称加密方式,则将加密过程和解密过程使用的同一密钥作为各快照使用的数据密钥,则图2c中快照A的数据密钥a为对称加密方式中的密钥;若本***采用非对称加密方式,使用公钥对数据加密,则将私钥作为各快照使用的数据密钥,则图2c中快照A的数据密钥a为非对称加密方式中的私钥。
在本实施例中,快照的创建过程主要分为两步,分别为元数据创建和增量数据块的传输。在元数据创建过程中,不仅要记录待创建增量快照所依赖的目标历史快照中目标数据块的位置索引,还要记录目标历史快照所使用的数据密钥,用来解密待创建增量快照所依赖的目标历史快照中的目标数据块。在增量数据块的传输过程中,可将待创建增量快照需要的增量数据块传输至快照存储空间,以得到新的增量快照。增量数据块在快照存储空间中的位置索引也会被记录到新的增量快照的元数据中,从而得到新的增量快照的完整元数据。需要说明的是,创建元数据的过程和增量数据块的传输过程可以并行执行,两者可以不限定先后顺序。由此可见,采用本实施例提供的快照创建方案,可以解决新密钥无法解密出新的增量快照所依赖的旧数据块的问题,使得在密钥轮转后仍可以创建增量快照,而无需创建全量快照,减少快照创建耗时,提高创建速度。
在本申请实施例中,并不限定在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥的方式。例如,可以不对历史快照使用的数据密钥进行加密,以明文方式记录到待创建增量快照的元数据中,这种方式在使用的时候,无需解密,方便简单。或者,为了保障数据的安全性,也可以对目标历史快照使用的数据密钥进行加密,并将加密后的数据密钥记录在待创建增量快照的元数据中。在对历史快照使用的数据密钥进行加密存储的情况下,在需要读取待创建增量快照所依赖的目标数据块时,需要先对目标历史快照使用的数据密钥进行解密,然后,再利用解密出的数据密钥对待创建增量快照所依赖的目标数据块进行解密。
在本申请实施例中,不限定对目标历史快照使用的数据密钥进行加密的加密方式。进一步可选地,快照管理设备12在对目标历史快照使用的数据密钥进行加密时,具体用于:利用待创建增量快照使用的数据密钥对目标历史快照使用的数据密钥进行加密;或者,也可以利用第一密钥对目标历史快照使用的数据密钥进行加密。其中,第一密钥是指不同于待创建增量快照使用的数据密钥的其它密钥。
无论利用哪种密钥对目标历史快照使用的数据密钥进行加密,可选地,快照管理设备12在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥时,具体用于:在待创建增量快照的元数据中,设置密钥表;将加密后的目标历史快照使用的数据密钥记录在密钥表中。当然,对于不加密的情况下,也可以在待创建增量快照的元数据中,设置密钥表,将未经加密的目标历史快照使用的数据密钥记录到密钥表中。结合图2b所示目标历史快照A和待创建增量快照B之间的增量关系,则在快照B的元数据中创建密钥表,然后将快照A使用的数据密钥a记录在密钥表中。下面分三种情况对将快照A使用的数据密钥a记录在待创建增量快照B的密钥表中的过程进行说明。在图2d中,对下面三种情况进行了图示,但并不表示三种情况会同时发生。
方式1:利用待创建增量快照B使用的数据密钥b对目标历史快照A使用的数据密钥a进行加密,得到密钥c,将密钥c记录在密钥表中。
方式2:利用第一密钥d对目标历史快照A使用的数据密钥a进行加密,得到密钥e,将密钥e记录在密钥表中。
方式3:直接将目标历史快照A使用的数据密钥a,以明文方式将数据密钥a记录在密钥表中。
在实际应用中,可由快照管理***10决定使用上述方式1-3中任意一种方式对目标历史快照A使用的数据密钥a进行加密存储。或者,可由快照管理***10的使用方决定是否需要对目标历史快照A使用的数据密钥a进行加密存储,并预先进行配置。若使用方选择用待创建增量快照B使用的数据密钥b对目标历史快照A使用的数据密钥a进行加密的方式,则利用方式1得到密钥c,将密钥c记录在密钥表中;若使用方选择用第一密钥d对目标历史快照A使用的数据密钥a进行加密的方式,则利用方式2得到密钥e,将密钥e记录在密钥表中;若使用方选择不对目标历史快照A使用的数据密钥a进行加密的方式,则按照方式3的方法,直接将目标历史快照A使用的数据密钥a,记录在密钥表中。
在一可选实施例中,快照管理设备12在对目标历史快照使用的数据密钥进行加密之后,还用于:将对目标历史快照使用的数据密钥进行加密使用的加密密钥提供给快照使用方,以供快照使用方使用根据加密密钥成功读取新的增量快照。具体地,对于上述方式1,将待创建增量快照B使用的数据密钥b提供给快照使用方;对于方式2,将第一密钥d提供给快照使用方。其中,快照使用方可以是快照管理***10的使用者,也可以是其它对快照存储空间具有访问和/或使用权限的计算机、虚拟机、各类应用、终端设备以及用户等,快照使用方可以有一个或多个。在前述实施例中,结合密码轮转状态,可将本申请实施例中的快照状态划分为三类轮转状态,分别是:未轮转状态(即增量快照未创建完成时的快照状态)、元数据轮转状态(即成功创建出新的增量快照后的快照状态)和快照数据轮转状态(即得到新的全量快照后的状态);三个状态之间具有转换关系,即未转换状态可在增量快照创建完成后进入元数据轮转状态;元数据轮转状态可在对目标数据块重新加密存储得到新的全量快照之后进入快照数据轮转状态。未轮转状态是指待创建增量快照未创建完成的状态。元数据轮转状态是指快照管理设备12在待创建增量快照的元数据中,记录增量数据块和目标数据块的位置索引,以及目标历史快照使用的数据密钥,并且根据增量数据块的位置索引,将增量数据块存储至快照存储空间中后得到新的增量快照的快照状态。在元数据轮转状态下,快照使用方可根据新的增量快照(即新创建出的增量快照)使用的数据密钥访问新的增量快照,对于新的增量快照依赖的目标历史快照中的目标数据块,可以使用目标历史快照使用的数据密钥进行解密,快照使用方可成功访问新的增量快照,此时新的增量快照中的数据块均处于可正常使用的状态。
进一步,新的增量快照达到元数据轮转状态之后,快照管理设备12还可以利用新的增量快照使用的数据密钥,对新的增量快照所依赖的目标历史快照中的目标数据块重新加密后存储至快照存储空间,以完成元数据轮转状态到快照数据轮转状态的转变。具体地,快照管理设备12还用于:利用目标历史快照使用的数据密钥,对目标数据块进行解密,得到原始数据;利用新的增量快照使用的数据密钥,重新对原始数据进行加密,并将重新加密得到新数据块存储至快照存储空间中;将新的增量快照的元数据中记录的目标数据块的位置索引修正为新数据块的位置索引,以得到新的全量快照。此时,新的增量快照从增量快照变成了全量快照,且该全量快照中的数据块都是使用新的快照使用的数据密钥进行加密的。
在相邻两次密钥轮转之间可能会周期性地,或者是间隔性地,针对数据存储空间创建多个快照。其中,对于每次密钥轮转后的首个快照,其创建过程主要分为两步:元数据创建和增量数据块的传输,详细过程可参见前述实施例中待创建增量快照的创建过程,在此不再赘述。对于在相邻两次密钥轮转之间首个快照之后的其它快照,有可能在首个快照达到快照数据轮转状态之前创建,也有可能是在首个快照达到快照数据轮转状态之后进行创建。
对于在首个快照达到快照数据轮转状态之后创建的其它快照,此时首个快照已经为全量快照,因此其它快照可以以密钥轮转之后的首个全量快照为基础使用增量快照技术来创建,该创建过程主要包括元数据的创建和增量数据块的传输。其中,元数据的创建过程中只需记录增量数据块的位置索引和该快照所引用的首个全量快照中的数据块的位置索引即可,因为该快照与首个全量快照使用相同的数据密钥,可以不记录首个索引快照使用的数据密钥。增量数据块的传输过程与前述实施例中相同,对此不再赘述。
对于在首个快照达到快照数据轮转状态之前创建的其它快照,其创建过程可能会引用密钥轮转之前的历史快照,也可能会引用密钥轮转之后首个快照中的数据块,对其它快照而言,密钥轮转之前的历史快照和密钥轮转之后首个快照都是历史快照。在该情况下,其它快照的创建过程主要包括两步:元数据的创建和增量数据块的传输。其中,对于元数据的创建过程,快照管理设备12可以判断目标历史快照使用的数据密钥与待创建增量快照使用的数据密钥是否相同;若判断结果为不相同,则执行在待创建增量快照的元数据中记录目标历史快照使用的数据密钥的操作;若判断结果为相同,则可以不在待创建增量快照的元数据中记录目标历史快照使用的数据密钥的操作。
下面结合图2b所示快照A和快照B之间的增量关系,对在首个快照达到快照数据轮转状态之前创建下一个快照的过程进行举例说明。其中,快照A使用的数据密钥为a,创建快照A之后,且假设创建快照B之前,数据存储空间进行了一个密钥轮转,密钥轮转后首个快照B使用的数据密钥为b。假设首个快照B依赖快照A中的数据块2-A和数据块4-A,并假设在快照B之后需要创建的下一个快照为快照C,且下一个快照C依赖快照B。
基于上述,如图2e所示,首个快照B处于元数据轮转状态,且首个快照B已经将基于快照A的数据块2-A,用自身使用的数据密钥加密后存储为数据块2-B。假设此时,需要基于首个快照B创建下一个快照C,快照C和快照B使用的数据密钥均为b。数据块1-C和数据块4-C是相对于首个快照B中数据块1-B和数据块4-A发生变化的数据块,数据块2-B和数据块3-B是快照C需要依赖的快照B中的数据块。由于快照B使用的数据密钥与快照C使用的数据密钥相同,均为数据密钥b,则无需在快照C的元数据中记录数快照B使用的数据密钥b,此时使用快照C使用的数据密钥b就可以成功解密出数据块2-B和数据块3-B。当然,由于数据块1-C和数据块4-C为增量数据块,本身就是使用数据密钥b进行加密的,所以使用快照C使用的数据密钥b也可以成功解密出来。从快照使用方的角度来看,只需记录数据密钥b即可成功访问快照C中的各数据块。
创建快照的目的是为了备份或容灾,在发生故障或者数据存储空间中存储的数据丢失时,可以根据快照进行数据回滚,将数据存储空间中的数据恢复到快照链上某个快照记录的数据状态,这会涉及对快照的读取操作。基于此,快照管理设备12还会从快照存储空间中读取相应快照中的数据块。其中,在数据加密场景中,快照管理设备12需要将读取的数据块解密后提供给使用方。在本实施例中,根据快照所处的状态不同,快照管理设备12读取快照的方式也有所不同。
一种情况:若待读取快照处于元数据轮转状态,则快照管理设备12在读取快照时,可确定待读取快照以及其中的待读取数据块;判断待读取数据块是待读取快照依赖的历史快照中的数据块还是待读取快照中的增量数据块;若待读取数据块是待读取快照所依赖的历史快照中的数据块,从待读取快照的元数据中,获取历史快照使用的数据密钥;利用历史快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方;若待读取的数据块是待读取快照中的增量数据块,则获取待读取快照的数据密钥,利用待读取快照的数据密钥,对增量数据块进行解密,并将解密出的原始数据返回给快照使用方。
在上述过程中,根据应用场景的不同,确定待读取快照以及其中的待读取数据块的方式会有所不同。例如,在一种场景中,快照管理设备12可接收快照使用方的读取请求,读取请求包括快照名称和数据块编号;根据快照名称和数据块编号,确定待读取快照以及其中的待读取数据块。在另一种场景中,快照管理设备12定期对快照进行管理,则快照管理设备12当前需要进行管理的快照以及快照中的数据块分别为待读取快照和待读取数据块。
在一可选实施例中,在创建待读取快照过程中,对目标历史快照使用的数据密钥进行了加密。相应地,快照管理设备12在从待读取快照的元数据中,获取历史快照使用的数据密钥时,具体用于:从待读取快照的元数据中,获取经过加密的历史快照使用的数据密钥;对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥。
进一步可选地,快照管理设备12对经过加密的历史快照使用的数据密钥进行解密时,具体用于:利用待读取快照使用的数据密钥,对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥;或者,利用第一密钥对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥。其中,第一密钥是不同于待读取快照使用的数据密钥的其它密钥。
基于上述,在一可选实施例中,快照管理设备12在从待读取快照的元数据中,获取经过加密的历史快照使用的数据密钥时,具体用于:从待读取快照的元数据中,读取密钥表;从密钥表中,读取经过加密的历史快照使用的数据密钥。当然,对于不加密的情况,快照管理设备12也可以从待读取快照的元数据中,读取密钥表,从从密钥表中,读取未经加密的历史快照使用的数据密钥。
另一种情况:若待读取快照处于快照数据轮转状态,则待读取快照中已经没有历史快照中的数据块,所以可以直接确定待读取快照以及其中的待读取数据块;利用待读取快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方。
在本申请实施例提供的快照创建过程中,在待创建增量快照的元数据中不仅要记录待创建增量快照所依赖的历史快照中数据块的位置索引,还要记录该历史快照所使用的数据密钥,可以解决新密钥无法解密出待创建增量快照所依赖的旧数据块的问题,使得在密钥轮转后仍可以创建增量快照,而无需创建全量快照,减少快照创建耗时,提高创建速度。进一步,在元数据创建时,对历史快照所使用的数据密钥进行加密,极大地提高了***的安全性。
图3为本申请示例性实施例还提供一种快照创建方法,如图3所示,该方法包括:
31、根据数据存储空间的元数据,确定待创建增量快照需要的增量数据块和需要依赖的目标历史快照中的目标数据块;
32、在待创建增量快照的元数据中,记录增量数据块和目标数据块的位置索引,以及目标历史快照使用的数据密钥,以在快照读取中解密所述目标数据块;
33、根据增量数据块的位置索引,将增量数据块存储至快照存储空间中,以得到新的增量快照。
在本申请实施例中,将待创建增量快照相对于目标历史快照发生变化的数据块称为增量数据块,增量数据块可以是一个,也可以是多个。在待创建增量快照之前的历史快照可能有一个或者多个,为了便于描述和区分,将待创建增量快照所依赖的历史快照称为目标历史快照,目标历史快照也可以是一个或多个。同理,每个目标历史快照中会有多个数据块,其中,将目标历史快照相对于待创建增量快照未发生变化的数据块称为目标数据块,该目标数据块也就是待创建增量快照所依赖的数据块,目标数据块可以是一个,也可以是多个。
在本申请实施例中,并不限定各快照使用的数据密钥,根据数据加密方式的不同,各快照使用的数据密钥也会有所不同。例如,若数据加密方式为对称加密方式,加密过程和解密过程使用同一个密钥;若数据加密方式为非对称加密方式,则需要两个密钥:公钥和私钥,如果用公钥对数据进行加密,则用私钥对数据进行解密。若采用对称加密方式,则将加密过程和解密过程使用的同一密钥作为各快照使用的数据密钥,则图2c中快照A的数据密钥a为对称加密方式中的密钥;若采用非对称加密方式,使用公钥对数据加密,则将私钥作为各快照使用的数据密钥,则图2c中快照A的数据密钥a为非对称加密方式中的私钥。
在本实施例中,快照的创建过程主要分为两步,分别为元数据创建和增量数据块的传输。在元数据创建过程中,不仅要记录待创建增量快照所依赖的目标历史快照中目标数据块的位置索引,还要记录该目标历史快照所使用的数据密钥,用来解密待创建增量快照所依赖的目标历史快照中的目标数据块。在增量数据块的传输过程中,可将待创建增量快照需要的增量数据块传输至快照存储空间,以得到新的增量快照。增量数据块在快照存储空间中的位置索引也会被记录到新的增量快照的元数据中,从而得到新的增量快照的完整元数据。需要说明的是,创建元数据的过程和增量数据块的传输过程可以并行执行,两者可以不限定先后顺序。由此可见,采用本实施例提供的快照创建方案,可以解决新密钥无法解密出新的增量快照所依赖的旧数据块的问题,使得在密钥轮转后仍可以创建增量快照,而无需创建全量快照,减少快照创建耗时,提高创建速度。
在本申请实施例中,并不限定在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥的方式。例如,可以不对历史快照使用的数据密钥进行加密,以明文方式记录到待创建增量快照的元数据中,这种方式在使用的时候,无需解密,方便简单。或者,为了保障数据的安全性,也可以对目标历史快照使用的数据密钥进行加密,并将加密后的数据密钥记录在待创建增量快照的元数据中。在对历史快照使用的数据密钥进行加密存储的情况下,在需要读取待创建增量快照所依赖的目标数据块时,需要先对目标历史快照使用的数据密钥进行解密,然后,再利用解密出的数据密钥对待创建增量快照所依赖的目标数据块进行解密。
在本申请实施例中,不限定对目标历史快照使用的数据密钥进行加密的加密方式。进一步可选地,对目标历史快照使用的数据密钥进行加密,包括:利用待创建增量快照使用的数据密钥对目标历史快照使用的数据密钥进行加密;或者,也可以利用第一密钥对目标历史快照使用的数据密钥进行加密。其中,第一密钥是指不同于待创建增量快照使用的数据密钥的其它密钥。
无论利用哪种密钥对目标历史快照使用的数据密钥进行加密,可选地,待创建增量快照的元数据中,记录目标历史快照使用的数据密钥,包括:在待创建增量快照的元数据中,设置密钥表;将加密后的目标历史快照使用的数据密钥记录在密钥表中。当然,对于不加密的情况下,也可以在待创建增量快照的元数据中,设置密钥表,将未经加密的目标历史快照使用的数据密钥记录到密钥表中。
在实际应用中,可由快照管理***决定使用哪种方式对目标历史快照使用的数据密钥进行加密存储。或者,可由快照管理***的使用方决定是否需要对目标历史快照使用的数据密钥进行加密存储,并预先进行配置。
在一可选实施例中,对目标历史快照使用的数据密钥进行加密之后,还包括:将对目标历史快照使用的数据密钥进行加密使用的加密密钥提供给快照使用方,以供快照使用方使用根据加密密钥成功读取新的增量快照。快照使用方可以是快照管理***的使用者,也可以是其它对快照存储空间具有访问和/或使用权限的计算机、虚拟机、各类应用、终端设备以及用户等,快照使用方可以有一个或多个。
在前述实施例中,结合密码轮转状态,可将本申请实施例中的快照状态划分为三类轮转状态,分别是:未轮转状态(即增量快照未创建完成的快照状态)、元数据轮转状态(即成功创建出新的增量快照后的快照状态)和快照数据轮转状态(即得到新的全量快照后的快照状态);三个状态之间具有转换关系,即未转换状态可在待创建增量快照创建完成后进入元数据轮转状态;元数据轮转状态可在对目标数据块重新加密存储得到新的全量快照之后进入快照数据轮转状态。未轮转状态是指待创建增量快照未创建完成的状态。元数据轮转状态是指在待创建增量快照的元数据中,记录增量数据块和目标数据块的位置索引,以及目标历史快照使用的数据密钥,并且根据增量数据块的位置索引,将增量数据块存储至快照存储空间中后得到新的增量快照的快照状态。在元数据轮转状态下,快照使用方可根据新的增量快照使用的数据密钥访问新的增量快照(实际上是增量快照),对于新的增量快照依赖的目标历史快照中的目标数据块,可以使用目标历史快照使用的数据密钥进行解密,此时新的增量快照中的数据块均处于可正常使用的状态。
进一步,在得到新的增量快照(即进入元数据轮转状态)之后,可以利用新的增量快照使用的数据密钥,对新的增量快照所依赖的目标历史快照中的目标数据块重新加密后存储至快照存储空间,以完成元数据轮转状态到快照数据轮转状态的转变。具体地,还包括:利用目标历史快照使用的数据密钥,对目标数据块进行解密,得到原始数据;利用新的增量快照使用的数据密钥,重新对原始数据进行加密,并将重新加密得到新数据块存储至快照存储空间中;将新的增量快照的元数据中记录的目标数据块的位置索引修正为新数据块的位置索引,以得到新的全量快照。此时,新创建出的快照从增量快照变成了全量快照,且该全量快照中的数据块都是使用新快照使用的数据密钥进行加密的。
在相邻两次密钥轮转之间可能会周期性地,或者是间隔性地,针对数据存储空间创建多个快照。其中,对于每次密钥轮转后的首个快照,其创建过程主要分为两步:元数据创建和增量数据块的传输,详细过程可参见前述实施例中待创建增量快照的创建过程,在此不再赘述。对于在相邻两次密钥轮转之间首个快照之后的其它快照,有可能在首个快照达到快照数据轮转状态之前创建,也有可能是在首个快照达到快照数据轮转状态之后进行创建。
对于在首个快照达到快照数据轮转状态之后创建的其它快照,此时首个快照已经为全量快照,因此其它快照可以以密钥轮转之后的首个全量快照为基础使用增量快照技术来创建,该创建过程主要包括元数据的创建和增量数据块的传输。其中,元数据的创建过程中只需记录增量数据块的位置索引和该快照所引用的首个全量快照中的数据块的位置索引即可,因为该快照与首个全量快照使用相同的数据密钥,可以不记录首个索引快照使用的数据密钥。增量数据块的传输过程与前述实施例中相同,对此不再赘述。
对于在首个快照达到快照数据轮转状态之前创建的其它快照,其创建过程可能会引用密钥轮转之前的历史快照,也可能会引用密钥轮转之后首个快照中的数据块,对其它快照而言,密钥轮转之前的历史快照和密钥轮转之后首个快照都是历史快照。在该情况下,其它快照的创建过程主要包括两步:元数据的创建和增量数据块的传输。其中,对于元数据的创建过程,还包括:判断目标历史快照使用的数据密钥与待创建增量快照使用的数据密钥是否相同;若判断结果为不相同,则执行在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥的操作;若判断结果为相同,则可以不在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥的操作。
创建快照的目的是为了备份或容灾,在发生故障或者数据存储空间中存储的数据丢失时,可以根据快照进行数据回滚,将数据存储空间中的数据恢复到快照链上某个快照记录的数据状态,这会涉及对快照的读取操作。基于此,图4为本申请示例性实施例提供的一种快照读取方法,如图4所示,该方法包括:
41、确定待读取快照以及其中的待读取数据块;
42、若待读取数据块是待读取快照所依赖的历史快照中的数据块,从待读取快照的元数据中,获取历史快照使用的数据密钥;
43、利用历史快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方。
在本申请实施例中,可以从快照存储空间中读取相应快照中的数据块。其中,在数据加密场景中,需要将读取的数据块解密后提供给使用方。根据快照所处的状态不同,读取快照的方法也有所不同。
一种情况:若待读取快照处于元数据轮转状态,则在读取快照时,可确定待读取快照以及其中的待读取数据块;判断待读取数据块是待读取快照依赖的历史快照中的数据块还是待读取快照中的增量数据块;若待读取数据块是待读取快照所依赖的历史快照中的数据块,从待读取快照的元数据中,获取历史快照使用的数据密钥;利用历史快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方;若待读取的数据块是待读取快照中的增量数据块,则获取待读取快照的数据密钥,利用待读取快照的数据密钥,对增量数据块进行解密,并将解密出的原始数据返回给快照使用方。
在上述过程中,根据应用场景的不同,确定待读取快照以及其中的待读取数据块的方式会有所不同。例如,在一种场景中,可接收快照使用方的读取请求,读取请求包括快照名称和数据块编号;根据快照名称和数据块编号,确定待读取快照以及其中的待读取数据块。在另一种场景中,快照管理***会定期对快照进行管理,当前需要进行管理的快照以及快照中的数据块分别为待读取快照和待读取数据块。
在一可选实施例中,在创建待读取快照过程中,对目标历史快照使用的数据密钥进行了加密。相应地,从待读取快照的元数据中,获取历史快照使用的数据密钥,包括:从待读取快照的元数据中,获取经过加密的历史快照使用的数据密钥;对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥。
进一步可选地,对经过加密的历史快照使用的数据密钥进行解密包括:利用待读取快照使用的数据密钥,对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥;或者,利用第一密钥对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥。其中,第一密钥是不同于待读取快照使用的数据密钥的其它密钥。
基于上述,在一可选实施例中,从待读取快照的元数据中,获取经过加密的历史快照使用的数据密钥,包括:从待读取快照的元数据中,读取密钥表;从密钥表中,读取经过加密的历史快照使用的数据密钥。当然,对于不加密的情况,也可以从待读取快照的元数据中,读取密钥表,从从密钥表中,读取未经加密的历史快照使用的数据密钥。
另一种情况:若待读取快照处于快照数据轮转状态,则待读取快照中已经没有历史快照中的数据块,所以可以直接确定待读取快照以及其中的待读取数据块;利用待读取快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方。
与本申请实施例提供的快照创建方法相对应,在快照读取过程中,若待读取数据块是待读取快照所依赖的历史快照中的数据块,从待读取快照的元数据中,获取历史快照使用的数据密钥,利用历史快照使用的数据密钥对待读取数据块进行解密,解决了待读取快照使用的数据密钥无法解密出其所依赖的历史数据块的问题。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤31至步骤33的执行主体可以为设备A;又比如,步骤31和32的执行主体可以为设备A,步骤33的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如31、32等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
图5为本申请示例性实施例提供的一种快照管理设备的结构示意图。如图5所示,该设备包括:存储器54和处理器55。
存储器54,用于存储计算机程序,并可被配置为存储其它各种数据以支持在快照管理设备上的操作。这些数据的示例包括用于在快照管理设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器54可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器55,与存储器54耦合,用于执行存储器54中的计算机程序,以用于:根据数据存储空间的元数据,确定待创建增量快照需要的增量数据块和需要依赖的目标历史快照中的目标数据块;在待创建增量快照的元数据中,记录增量数据块和目标数据块的位置索引,以及目标历史快照使用的数据密钥,以在快照读取中解密所述目标数据块;以及根据增量数据块的位置索引,将增量数据块存储至快照存储空间中,以得到新的增量快照。
在一可选实施例中,处理器55在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥时,具体用于:对目标历史快照使用的数据密钥进行加密,并将加密后的数据密钥记录在待创建增量快照的元数据中。
在一可选实施例中,处理器55在对目标历史快照使用的数据密钥进行加密时,具体用于:利用待创建增量快照使用的数据密钥对目标历史快照使用的数据密钥进行加密;或者利用第一密钥对目标历史快照使用的数据密钥进行加密,第一密钥不同于待创建增量快照使用的数据密钥。
在一可选实施例中,处理器55在对目标历史快照使用的数据密钥进行加密之后,还用于:将对目标历史快照使用的数据密钥进行加密使用的加密密钥提供给快照使用方,以供快照使用方使用根据加密密钥成功读取新的增量快照。
在一可选实施例中,处理器55在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥时,具体用于:在待创建增量快照的元数据中,设置密钥表;将目标历史快照使用的数据密钥记录在密钥表中。
在一可选实施例中,处理器55在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥之前,还用于:判断目标历史快照使用的数据密钥与待创建增量快照使用的数据密钥是否相同;若判断结果为不相同,则执行在待创建增量快照的元数据中,记录目标历史快照使用的数据密钥的操作。
在一可选实施例中,处理器55在将增量数据块存储至快照存储空间中之后,还用于:利用目标历史快照使用的数据密钥,对目标数据块进行解密,得到原始数据;利用待创建增量快照使用的数据密钥,重新对原始数据进行加密,并将重新加密得到新数据块存储至快照存储空间中;将待创建增量快照的元数据中记录的目标数据块的位置索引修正为新数据块的位置索引,以得到新的全量快照。
进一步,如图5所示,该快照管理设备还包括:通信组件56、显示器57、电源组件58、音频组件59等其它组件。图5中仅示意性给出部分组件,并不意味着快照管理设备只包括图5所示组件。另外,图5中虚线框内的组件为可选组件,而非必选组件,具体可视快照管理设备的产品形态而定。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由快照管理设备执行的各步骤。
图6为本申请示例性实施例提供的一种快照管理设备的结构示意图。如图6所示,该设备包括:存储器64和处理器65。
存储器64,用于存储计算机程序,并可被配置为存储其它各种数据以支持在快照管理设备上的操作。这些数据的示例包括用于在快照管理设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器64可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器65,与存储器64耦合,用于执行存储器64中的计算机程序,以用于:确定待读取快照以及其中的待读取数据块;若待读取数据块是待读取快照所依赖的历史快照中的数据块,从待读取快照的元数据中,获取历史快照使用的数据密钥;利用历史快照使用的数据密钥,对待读取数据块进行解密,并将解密出的原始数据返回给快照使用方。
在一可选实施例中,处理器65在从待读取快照的元数据中,获取历史快照使用的数据密钥时,具体用于:从待读取快照的元数据中,获取经过加密的历史快照使用的数据密钥;对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥。
在一可选实施例中,处理器65在对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥时,具体用于:利用待读取快照使用的数据密钥,对经过加密的历史快照使用的数据密钥进行解密,得到历史快照使用的数据密钥。
在一可选实施例中,处理器65在从待读取快照的元数据中,获取经过加密的历史快照使用的数据密钥时,具体用于:从待读取快照的元数据中,读取密钥表;从密钥表中,读取经过加密的历史快照使用的数据密钥。
在一可选实施例中,处理器65在确定待读取快照以及其中的待读取数据块时,具体用于:接收快照使用方的读取请求,读取请求包括快照名称和数据块编号;根据快照名称和数据块编号,确定待读取快照以及其中的待读取数据块。
进一步,如图6所示,该快照管理设备还包括:通信组件66、显示器67、电源组件68、音频组件69等其它组件。图6中仅示意性给出部分组件,并不意味着快照管理设备只包括图6所示组件。另外,图6中虚线框内的组件为可选组件,而非必选组件,具体可视快照管理设备的产品形态而定。
相应地,本申请实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被执行时能够实现上述方法实施例中可由快照管理设备执行的各步骤。
上述图5和图6中的通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G、3G、4G/LTE、5G等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
上述图5和图6中的显示器包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
上述图5和图6中的电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
上述图5和图6中的音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (15)

1.一种快照创建方法,其包括:
根据数据存储空间的元数据,确定待创建增量快照需要的增量数据块和需要依赖的目标历史快照中的目标数据块;
在待创建增量快照的元数据中,记录所述增量数据块和所述目标数据块的位置索引,以及所述目标历史快照使用的数据密钥,以在快照读取中解密所述目标数据块;以及
根据所述增量数据块的位置索引,将所述增量数据块存储至快照存储空间中,以得到新的增量快照。
2.根据权利要求1所述的方法,其中,在待创建增量快照的元数据中,记录所述目标历史快照使用的数据密钥,包括:
对所述目标历史快照使用的数据密钥进行加密,并将所述加密后的数据密钥记录在待创建增量快照的元数据中。
3.根据权利要求2所述的方法,其中,对所述目标历史快照使用的数据密钥进行加密,包括:
利用待创建增量快照使用的数据密钥对所述目标历史快照使用的数据密钥进行加密;
或者
利用第一密钥对所述目标历史快照使用的数据密钥进行加密,所述第一密钥不同于待创建增量快照使用的数据密钥。
4.根据权利要求2或3所述的方法,在对所述目标历史快照使用的数据密钥进行加密之后,还包括:
将对所述目标历史快照使用的数据密钥进行加密使用的加密密钥提供给快照使用方,以供快照使用方使用根据所述加密密钥成功读取新的增量快照。
5.根据权利要求1-3任一项所述的方法,其中,在待创建增量快照的元数据中,记录所述目标历史快照使用的数据密钥,包括:
在待创建增量快照的元数据中,设置密钥表;
将所述目标历史快照使用的数据密钥记录在所述密钥表中。
6.根据权利要求1-3任一项所述的方法,在待创建增量快照的元数据中,记录所述目标历史快照使用的数据密钥之前,还包括:
判断所述目标历史快照使用的数据密钥与待创建增量快照使用的数据密钥是否相同;
若判断结果为不相同,则执行在待创建增量快照的元数据中,记录所述目标历史快照使用的数据密钥的操作。
7.根据权利要求1-3任一项所述的方法,在将所述增量数据块存储至快照存储空间中之后,还包括:
利用所述目标历史快照使用的数据密钥,对所述目标数据块进行解密,得到原始数据;
利用待创建增量快照使用的数据密钥,重新对所述原始数据进行加密,并将重新加密得到新数据块存储至快照存储空间中;
将待创建增量快照的元数据中记录的所述目标数据块的位置索引修正为所述新数据块的位置索引,以得到新的全量快照。
8.一种快照读取方法,其包括:
确定待读取快照以及其中的待读取数据块;
若所述待读取数据块是所述待读取快照所依赖的历史快照中的数据块,从所述待读取快照的元数据中,获取所述历史快照使用的数据密钥;
利用所述历史快照使用的数据密钥,对所述待读取数据块进行解密,并将解密出的原始数据返回给所述快照使用方。
9.根据权利要求8所述的方法,其中,从所述待读取快照的元数据中,获取所述历史快照使用的数据密钥,包括:
从所述待读取快照的元数据中,获取经过加密的所述历史快照使用的数据密钥;
对经过加密的所述历史快照使用的数据密钥进行解密,得到所述历史快照使用的数据密钥。
10.根据权利要求9所述的方法,其中,对经过加密的所述历史快照使用的数据密钥进行解密,得到所述历史快照使用的数据密钥,包括:
利用所述待读取快照使用的数据密钥,对经过加密的所述历史快照使用的数据密钥进行解密,得到所述历史快照使用的数据密钥。
11.根据权利要求8-10任一项所述的方法,其中,从所述待读取快照的元数据中,获取经过加密的所述历史快照使用的数据密钥,包括:
从所述待读取快照的元数据中,读取密钥表;
从所述密钥表中,读取经过加密的所述历史快照使用的数据密钥。
12.根据权利要求8-10任一项所述的方法,其中,确定待读取快照以及其中的待读取数据块,包括:
接收快照使用方的读取请求,所述读取请求包括快照名称和数据块编号;
根据所述快照名称和数据块编号,确定待读取快照以及其中的待读取数据块。
13.一种快照管理设备,其包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述程序以用于:
根据数据存储空间的元数据,确定待创建增量快照需要的增量数据块和需要依赖的目标历史快照中的目标数据块;
在待创建增量快照的元数据中,记录所述增量数据块和所述目标数据块的位置索引,以及所述目标历史快照使用的数据密钥,以在快照读取中解密所述目标数据块;以及
根据所述增量数据块的位置索引,将所述增量数据块存储至快照存储空间中,以得到新的增量快照。
14.一种快照管理设备,其包括:存储器和处理器;
所述存储器,用于存储程序;
所述处理器,与所述存储器耦合,用于执行所述程序以用于:
确定待读取快照以及其中的待读取数据块;
若所述待读取数据块是所述待读取快照所依赖的历史快照中的数据块,从所述待读取快照的元数据中,获取所述历史快照使用的数据密钥;
利用所述历史快照使用的数据密钥,对所述待读取数据块进行解密,并将解密出的原始数据返回给所述快照使用方。
15.一种存储有计算机程序的计算机可读存储介质,所述计算机程序被执行时能够实现权利要求1-11任一项所述方法中的步骤。
CN202010245187.7A 2020-03-31 2020-03-31 快照创建与读取方法、设备及存储介质 Pending CN113467989A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010245187.7A CN113467989A (zh) 2020-03-31 2020-03-31 快照创建与读取方法、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010245187.7A CN113467989A (zh) 2020-03-31 2020-03-31 快照创建与读取方法、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113467989A true CN113467989A (zh) 2021-10-01

Family

ID=77865540

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010245187.7A Pending CN113467989A (zh) 2020-03-31 2020-03-31 快照创建与读取方法、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113467989A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024051090A1 (zh) * 2022-09-09 2024-03-14 上海爱数信息技术股份有限公司 数据索引管理方法、存储设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046260A1 (en) * 2001-08-30 2003-03-06 Mahadev Satyanarayanan Method and system for asynchronous transmission, backup, distribution of data and file sharing
US20140019769A1 (en) * 2012-07-16 2014-01-16 Compellent Technologies Encryption/decryption for data storage system with snapshot capability
CN109753380A (zh) * 2017-11-08 2019-05-14 阿里巴巴集团控股有限公司 快照数据备份方法、装置及***
US20190158281A1 (en) * 2017-11-20 2019-05-23 Rubrik, Inc. Managing key encryption keys using a key wrapping tree
US20190319785A1 (en) * 2018-04-13 2019-10-17 Amazon Technologies, Inc. Encryption by default in an elastic computing system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030046260A1 (en) * 2001-08-30 2003-03-06 Mahadev Satyanarayanan Method and system for asynchronous transmission, backup, distribution of data and file sharing
US20140019769A1 (en) * 2012-07-16 2014-01-16 Compellent Technologies Encryption/decryption for data storage system with snapshot capability
CN109753380A (zh) * 2017-11-08 2019-05-14 阿里巴巴集团控股有限公司 快照数据备份方法、装置及***
US20190158281A1 (en) * 2017-11-20 2019-05-23 Rubrik, Inc. Managing key encryption keys using a key wrapping tree
US20190319785A1 (en) * 2018-04-13 2019-10-17 Amazon Technologies, Inc. Encryption by default in an elastic computing system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024051090A1 (zh) * 2022-09-09 2024-03-14 上海爱数信息技术股份有限公司 数据索引管理方法、存储设备及介质

Similar Documents

Publication Publication Date Title
US10594481B2 (en) Replicated encrypted data management
CN106612285B (zh) 基于对等网络的分布式云数据管理方法及***
CN108833091B (zh) 一种日志文件的加密方法、解密方法及装置
US10951406B2 (en) Preventing encryption key recovery by a cloud provider
US11695806B2 (en) Intercepting calls for encryption handling in persistent access multi-key systems
US10367789B2 (en) Data synchronization method and apparatus
EP3407560A1 (en) Data backup method and device, storage medium and server
CN110661748B (zh) 一种日志的加密方法、解密方法及装置
US9544140B1 (en) Multi-level key hierarchy for securing cloud-based data sets
US10754954B2 (en) Securely exchanging information during application startup
US9740583B1 (en) Layered keys for storage volumes
US10027660B2 (en) Computer program, method, and system for secure data management
WO2017206754A1 (zh) 分布式文件***的存储方法和存储装置
US20140129848A1 (en) Method and Apparatus for Writing and Reading Hard Disk Data
CN109063011B (zh) 日志处理方法、电子装置及计算机可读存储介质
US11190353B2 (en) Computer implemented methods and systems for managing a cryptographic service
CN107066346A (zh) 一种数据备份方法、数据恢复方法及装置
CN111427860A (zh) 分布式存储***及其数据处理方法
CN113467989A (zh) 快照创建与读取方法、设备及存储介质
CN112788151B (zh) 数据同步的方法、装置和***
US11343094B2 (en) Methods and systems for encrypting shared information through its lifecycle
CN110046510B (zh) 跨云的数据迁移方法、装置和***
CN115765998A (zh) 一种加密机集群迁移升级接入方法及装置
CN110895456A (zh) 数据处理方法、终端以及计算机可读存储介质
EP3598689B1 (en) Managing central secret keys of a plurality of user devices associated with a single public key

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20211001