CN102207907A - 数据操作的方法、装置及计算机 - Google Patents
数据操作的方法、装置及计算机 Download PDFInfo
- Publication number
- CN102207907A CN102207907A CN2010101370510A CN201010137051A CN102207907A CN 102207907 A CN102207907 A CN 102207907A CN 2010101370510 A CN2010101370510 A CN 2010101370510A CN 201010137051 A CN201010137051 A CN 201010137051A CN 102207907 A CN102207907 A CN 102207907A
- Authority
- CN
- China
- Prior art keywords
- storage block
- data
- address
- new
- state
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种数据操作的方法、装置及计算机,其中方法包括:对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识,所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。本发明的方案节省了对存储设备的还原点的扇区的操作时间,提高计算机的性能。
Description
技术领域
本发明涉及计算机领域,特别是指一种数据操作的方法、装置及计算机。
背景技术
在计算机的存储设备的存储领域中,QCOW是一种支持还原点能够回退到其中还原点的方法,在QCOW中,硬盘管理的单位为Block(存储块),如图1所示,L1对应于QCOW中一级硬盘地址页表,L2对应于QCOW中二级硬盘地址页表,该L1和L2的作用是将一个虚拟扇区号转换成物理扇区号,其中,虚拟扇区号是UOS(用户操作系统)访问虚拟硬盘的地址,通过虚拟扇区号读写虚拟硬盘内容,物理扇区号是物理硬盘具体的扇区地址,Blockoffset是虚拟扇区号在一个Block内部的偏移扇区号,还原点是用户可以回退的硬盘状态;
QCOW采用Copy On Write存储方式进行扇区的写操作,在还原点建立后,如果是修改原有还原点里面的扇区,需要将该扇区所属的原Block里面的数据拷贝到新Block中,然后将需要写的数据写入新Block中,并记录该新Block的地址,这样每写入一次,就需要将要写入的原Block的内容拷贝到新Block,再将需要写的内容写入新Block,当需要频繁写扇区时,都要进行拷贝,这样会大大影响计算机的性能,造成性能损失。
在恢复到还原点时,通过L1,L2表格(该L1表可称为该还原点的一级地址索引,L2表可称为该还原点的二级地址索引,L1表和L2表也可以合起来成为一张表,来表示该还原点的存储块的地址索引),将虚拟硬盘地址访问转换成一个对物理硬盘地址的访问,如图1所示,每一个还原点都有表L1和L2,当寻址转换的时候,先从一个最新的还原点的L1,L2表找出相应的物理地址,如果最新的还原点的L1,L2表中没有找到相应的地址索引,通过递归查找前一个还原点的表格,一直找到相应的索引,或者已经递归完所有还原点。
发明人在实现本发明的过程中,发现现有技术中至少存在如下问题:
按照Copy on write的方式对存储设备进行写入操作,当需要频繁写扇区时,都要进行拷贝,这样会大大影响计算机的性能,造成性能损失。
发明内容
本发明要解决的技术问题是提供一种数据操作的方法、装置及计算机,对存储设备的扇区写操作时,不需要拷贝,节省写操作时间,大大提高计算机的性能。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一方面,提供一种数据操作的方法,包括:
对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址,和一第一标识,所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述位图的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
优选的,将新数据写入所述新存储块中之后还包括:
在所述还原点的地址索引表中的所述原存储块的地址中添加一第二标识,所述第二标识具有第一状态和第二状态,所述第一状态用于表示在恢复数据时直接根据该原存储块的地址读取数据,所述第二状态用于表示在恢复数据时根据所述表格中的第一标识的状态读取数据。
优选的,将新数据写入所述新存储块中之后还包括:
对所述新存储块中的扇区又进行写操作,直接将此次写操作的新数据写入所述新存储块中,同时将所述新存储块对应的表格中的第一标识置于第二状态。
优选的,若所述第一标识全为第二状态时,恢复数据时直接根据所述新存储块的地址从所述新存储块中读取数据。
优选的,按照所述原存储块的地址从所述原存储块中读取数据的步骤具体为:
将所述原存储块的地址加上所述原存储块中扇区的偏移地址,得到所述原存储块中扇区的物理地址,根据所述扇区的物理地址读出所述扇区中的数据;
按照所述新存储块的地址从所述新存储块中读取数据的步骤具体为:
将所述新存储块的地址加上所述新存储块中扇区的偏移地址,得到所述新存储块中扇区的物理地址,根据所述扇区的物理地址读出所述扇区中的数据。
本发明的实施例还提供一种数据写操作的方法,包括:
对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址,和一第一标识,所述第一标识具有表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
将所述还原点的地址索引表中的所述原存储块的地址指向所述表格。
本发明的实施例还提供一种数据读操作的方法,包括:
查找存储设备的还原点的地址索引表,得到要恢复的存储块的地址;
若所述要恢复的存储块的地址中的第二标识表示该存储块的地址指向一表格时,则根据所述表格中第一标识的第一状态,按照所述表格中原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述位图表格中新存储块的地址从所述新存储块中读取数据。
本发明的实施例还提供一种数据操作的装置,包括:
写操作模块,用于对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建模块,用于创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识,所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
读操作模块,用于恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
本发明的实施例还提供一种计算机,包括:存储设备;虚拟机管理器;第一操作系统模块,运行在所述虚拟机管理器上;第二操作系统模块,通过所述第一操作系统模块和虚拟机管理器实现对所述存储设备的读/写操作;所述第一操作系统模块包括:
写操作模块,用于对所述存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建模块,用于创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识;所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
读操作模块,用于恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
优选的,所述第一操作系统模块还包括:
释放模块,用于在所述表格中的第一标识全为第二状态时,直接根据所述新存储块的地址从所述新存储块中读取数据,并释放所述表格。
本发明的实施例具有以下有益效果:
在对一个已有还原点的原存储块的扇区进行写操作时,创建一个表格(如bitmap表格),表述原存储块(原Block)的地址,新分配的存储块(新Block)的地址,恢复数据时,新写的扇区需要从新Block中读取,原存储块的扇区从原存储块中读取,这样在写入一个新扇区时,不用拷贝原Block的扇区的内容到新Block中,可以在新Block里面直接写入并做相应的记录第一标识的状态即可,若该Block都更新为新写入扇区的时候,就可以直接将索引改为新的Block地址,节省写入时间,提高计算机的性能。
附图说明
图1为现有的还原点的地址索引表;
图2为本发明的实施例数据操作的方法的流程图;
图3为本发明的还原点的地址索引表;
图4为图2所示方法中,存储设备的还原点的数据写操作方法流程图;
图5为图2所示方法中,存储设备的还原点的数据读操作方法流程图;
图6为本发明的实施例计算机的具体实现结构图。
具体实施方式
为使本发明的实施例要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
本发明的实施例针对现有技术中按照Copy on write的方式对存储设备进行写入操作,当需要频繁写扇区时,都要进行拷贝,这样会大大影响计算机的性能,造成性能损失的问题,提供一种数据操作的方法、装置和计算机。
如图2所示,本发明的实施例数据操作的方法,包括:
步骤21,对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
步骤22,创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址,和一第一标识,所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
步骤23,恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
其中,该实施例中,步骤22中创建的表格具体形式可以是一个Bitmap表格(即位图表格,该位图表格包括:原存储块的地址,所述新存储块的地址,和一位图,其中该位图相当于上述第一标识,该位图具有表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态),也可以是一个结构体的数据表示的该表格,其中该结构体数据的成员1表示的是原存储块的地址,成员2表示的是所述新存储块的地址,成员3表示的上述第一标识;当然,本发明的实施例也不排除用其它的方式表述该表格。
该实施例的方法,在对一个已有还原点的原存储块的扇区进行写操作时,创建一个表格,表述原存储块(原Block)的地址,新分配的存储块(新Block)的地址,表格中的第一标识描述哪些扇区是新写的扇区,哪些是原存储块的扇区,恢复数据时,新写的扇区需要从新Block中读取,原存储块的扇区从原存储块中读取,这样在写入一个新扇区时,不用拷贝原Block的扇区的内容到新Block中,可以在新Block里面直接写入并做相应的记录第一标识的状态即可,若该Block都更新为新写入扇区的时候,就可以直接将索引改为新的Block地址,节省写入时间,提高计算机的性能。
其中,上述表格为位图表格时,该位图表格中的位图(即第一标识)的第一状态如可以是0,第二状态可以是1;或者第一状态是1,第二状态可以是0;分别表示存储块中哪些扇区是新写的扇区,哪些是原存储块的扇区;如位图是1时从新Block中读取数据;位图是0时从原Block中读取数据。
如图3所示,一个还原点对应一个虚拟地址索引表,该虚拟地址索引表包括:L1表,L2表及Block offset,其中,L1表中存放的是L2页表的地址,L2表中存放的是存储块(Block)的地址,Block offset是指虚拟扇区号在一个Block内部偏移扇区号;L1和L2也可合并为一个表,表述还原点的虚拟地址索引;
其中,在对已有还有点的原Block中的扇区进行写操作时,除了要保留原Block的内容,还要记录写入的新数据,此时,需要分配一个新Block,将需要写入的新数据写入新Block的扇区中,这样数据恢复时,可以从新Block中读取新写入的数据,从原Block中读取以前写入的数据,因此,在上述方法中,将新数据写入所述新存储块中之后还包括:
在所述还原点的地址索引表中的所述原存储块的地址中添加一第二标识(如图中L2表中的Block地址栏),所述第二标识也具有第一状态和第二状态,所述第二标识的第一状态用于表示在恢复数据时直接根据该原存储块的地址读取数据,所述第二标识的第二状态用于表示:在恢复数据时,根据所述表格中的第一标识的状态读取数据。
如果该第二标识用Directly这样一个二进制位表示,如Directly位为1(如上述第二标识的第一状态,当然该第一状态也可以用除1之外的其它标识代替)时,表示可以直接按照该Block地址栏中的Block地址和Block offset找到对应的扇区的物理地址,并读出扇区中的内容;如果该Directly位为0(如上述第二标识的第二状态,当然该第二状态也可以用除0之外的其它标识代替),表示需要根据下面的位图表格(Bitmap表格)的位图的状态,从原Block中读取数据或者从新Block中读取数据;
在上述方法中,在将新数据写入所述新存储块中之后还可包括:
对所述新存储块中的扇区又进行写操作,直接将此次写操作的新数据写入所述新存储块中,同时将所述新存储块对应的表格中的第一标识置于第二状态;
如对新Block中的扇区又进行写操作,此时,就可以直接将要写入的数据写入该新Block,从该Block中恢复数据时,直接根据该新Block地址和Blockoffset找到扇区的物理地址,并根据该扇区的物理地址读取扇区中的数据即可。
在上述方法中,若所述表格中的第一标识全为第二状态时,说明该还原点的存储块中的所有扇区均被执行重新写操作,恢复数据时直接根据所述新存储块的地址从所述新存储块的扇区中读取数据;
具体来讲,若所述位图表格中的位图位全为1,说明该要恢复的Block中全部扇区是新写入数据的扇区,恢复数据时,直接根据该新Block的地址和Block offset找到扇区的物理地址,并根据该扇区的物理地址从扇区中读取数据。
另外,上述方法中,步骤23中,按照所述原存储块的地址从所述原存储块中读取数据的步骤具体为:
将所述原存储块的地址加上所述原存储块中扇区的偏移地址,得到所述原存储块中扇区的物理地址,根据所述扇区的物理地址读出所述扇区中的数据;
按照所述新存储块的地址从所述新存储块中读取数据的步骤具体为:
将所述新存储块的地址加上所述新存储块中扇区的偏移地址,得到所述新存储块中扇区的物理地址,根据所述扇区的物理地址读出所述扇区中的数据。
下面结合具体流程说明本发明的上述方法的具体实现,上述方法可以分为写操作流程和读操作流程,其中,
如图4所示,本发明的实施例还保护一种存储设备还原点的扇区的数据写操作的方法,该方法包括:
步骤41,对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
步骤42,创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址,和一第一标识,所述第一标识具有表示恢复数据时从所述原存储块中读取数据的第一状态和恢复数据时从所述新存储块中读取数据的第二状态;
步骤43,将所述还原点的地址索引表中的所述原存储块的地址指向所述表格。
其中,上述步骤42中创建的表格具体形式可以是一个Bitmap表格(即位图表格,该位图表格包括:原存储块的地址,所述新存储块的地址,和一位图,其中该位图相当于上述第一标识,该位图具有表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态),也可以是一个结构体的数据表示的该表格,其中该结构体数据的成员1表示的是原存储块的地址,成员2表示的是所述新存储块的地址,成员3表示的上述第一标识;当然,本发明的实施例也不排除用其它的方式表述该表格。
下面举例说明上述写操作流程:
写扇区操作开始;
判断该扇区是否是已有还原点的原存储块(Block)的扇区,即该扇区是否写过数据;
如果是,而且不是新还原点第一次写的BLOCK,则在内存中新建一位图表格(Bitmap表格),将L2表中的Block地址栏指向该Bitmap表格;该Bitmap表格包括:原Block的地址,新Block的地址和位图;其中,新Block的地址指向新Block,原Block的地址指向原Block,数据恢复时,新写入的数据从新Block读取,原有的数据从原Block中读取;
分配新Block,将新数据写入新Block中,并设置Bitmap表格中的位图,新Block对应设置为1,原Block对应设置为0;恢复数据时,根据该Bitmap表格中的位图的状态读取相应Block中的数据,位图的状态为1,从新Block中读数据,位图的状态为0,从原Block中读取数据;
写扇区完成后,判断位图的状态是否全部为1,若是,将L2表中的Block地址修改为新Block地址,释放Bitmap表格;
如果新写入的扇区不是以前已有还原点的扇区,即从来没有写过的扇区,则分配新Block,将新数据写入新Block中,并在L2表中将Block地址改为新Block地址。
如果写操作的扇区不是新还原点第一次写的BLOCK,判断Block地址数据的第二标识位(Directly位);
若该Directly位为1,说明可以直接写入该Block中;
若该Directly位为0,根据Block地址栏中的Block地址指向,找到Bitmap表格在内存中的位置和新Block地址,将新数据写入新Block中,并设置Bitmap表格中的位图。
如图5所示,本发明的实施例还保护一种存储设备还原点的扇区的数据读操作的方法,包括:
步骤51,查找存储设备的还原点的地址索引表,得到要恢复的存储块的地址;
步骤52,若所述要恢复的存储块的地址中的第二标识表示该存储块的地址指向一表格时,则根据所述表格中第一标识的第一状态,按照所述表格中原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据;进一步的,如果要恢复的存储块的第二标识表示该存储块的地址直接指向该存储块的物理扇区,则直接根据该存储块的地址读取该存储块对应的物理扇区中的数据。
该步骤52中的所述表格与上述图4的步骤42中所创建的表格相同。
下面举例说明上述读操作流程:
通过虚拟地址高位L1,L2表,得到L2表中Block地址栏;
判断Block地址数据的第二标识(Directly位);
若该Directly位为1(即第二标识的第一状态),说明可以直接从该Block中读数据;
若该Directly位为0(即第二标识的第二状态),根据Block地址栏中的Block地址指向,找到Bitmap表格在内存中的位置,读出Bitmap表格;
判断该Bitmap表格中的位图是否为1,若为1(即第一标识的第二状态),则根据Bitmap表格中的新Block地址读取该新Block中的数据;具体是:根据该新Block地址和Block offset(Block偏移)找到该新Block中扇区的物理地址,根据该扇区的物理地址读取扇区中的数据;
若位图为0(即第一标识的第一状态),则根据Bitmap表格中的原Block地址读取该原Block中的数据;具体是:根据该原Block地址和Block offset(Block偏移)找到该原Block中扇区的物理地址,根据该扇区的物理地址读取扇区中的数据。
上述方案中,在写入一个新的扇区的时候,不用copy原有的Block内容到一个新Block,可以在新Block里面直接写入并记录该Block地址和新写入的第一标识的状态就可以,节省了扇区写操作的时间,提高了计算机的性能;然后等待这个Block都更新为新的写入扇区的时候,就可以直接将索引L2表中的Block地址栏改为新的Block地址;同时可以在后台或者关机的时候进行更新的Block内容,然后将L2表中的Block地址索引改为新Block地址。
如图6所示,本发明的实施例还提供一种计算机,包括:
存储设备(如可以是硬盘存储设备);虚拟机管理器(VMM);
第一操作系统模块(如Domain 0),运行在所述虚拟机管理器上;
第二操作系统模块(如用户操作系统UOS),通过所述第一操作系统模块和虚拟机管理器实现对所述存储设备的读/写操作;其中,所述第一操作系统模块包括:
写操作模块,用于对所述存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建模块,用于为创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识;所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
读操作模块,用于恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
其中,该创建模块创建的表格具体形式可以是一个Bitmap表格(即位图表格,该位图表格包括:原存储块的地址,所述新存储块的地址,和一位图,其中该位图相当于上述第一标识,该位图具有表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态),也可以是一个结构体的数据表示的该表格,其中该结构体数据的成员1表示的是原存储块的地址,成员2表示的是所述新存储块的地址,成员3表示的上述第一标识;当然,本发明的实施例也不排除用其它的方式表述该表格。
另外,所述第一操作系统模块还包括:
释放模块,用于在所述位图表格中的第一标识全为第二状态时,直接根据所述新存储块的地址从所述新存储块中读取数据,并释放所述表格。
具体来讲,上述写操作模块,创建模块,读操作模块和释放模块均可以是在Domain 0的数据恢复引擎模块中;具体实现流程如下:
写扇区流程包括:
UOS进行扇区写访问;
QEMU进行写命令模拟;
QEMU进行虚拟扇区写操作;
QCOW(数据恢复引擎)在L1,L2表中查找虚拟扇区所属Block地址;
在L2表中找到该虚拟扇区所属的存储块的地址栏;
判断该虚拟扇区是否写过数据;
如果是,则在内存中新建一位图表格(Bitmap表格),将L2表中的Block地址指向该Bitmap表格;
新分配Block,将新数据写入新Block中,并设置Bitmap表格中的位图,新Block对应设置为1,原Block对应设置为0;
写扇区完成后,判断位图是否全部为1,若是,将L2表中的Block地址修改为新Block地址,释放Bitmap表格;
如果新写入的扇区不是以前已有还原点的扇区,即从来没有写过的扇区,则新建Block,将新数据写入新Block中,并在L2表中将Block地址改为新Block地址;
QCOW写操作完成后,QEMU返回相应的写操作结果给UOS。
读扇区流程包括:
UOS进行扇区读访问;
QEMU进行读命令模拟;
QEMU进行虚拟扇区读;
QCOW对虚拟扇区地址进行索引,即在L1,L2表中查找该虚拟扇区所属Block的地址;
在L2表中找到该虚拟扇区所属的存储块的地址栏;
判断Block地址栏的第二标识(Directly位);
若该Directly位为1,说明可以直接从该Block中的扇区读数据;
若该Directly位为0,根据Block地址栏中的Block地址指向,找到Bitmap表格在内存中的位置,读出Bitmap表格;
判断该Bitmap表格中的位图是否为1,若为1,则根据Bitmap表格中的新Block地址读取该新Block中的数据,具体根据该新Block地址和Block offset(Block偏移)找到该新Block中扇区的物理地址,根据该扇区的物理地址读取扇区中的数据;
若位图为0,则根据Bitmap表格中的原Block地址读取该原Block中的数据,具体根据该原Block地址和Block offset(Block中扇区的偏移量)找到该原Block中扇区的物理地址,根据该扇区的物理地址读取扇区中的数据;
QCOW读操作完成后,QEMU返回相应的结果给UOS。
该实施例中,在写入一个新的扇区的时候,直接将新数据写入一个新Block,并在Bitmap表格中,记录该新Block地址和新Block的位图的状态,恢复数据(即读扇区操作时),新数据从新Block中读出,原数据从原Block中读出,读出来的数据合并在一起可以使硬盘恢复到对该原Block的扇区写操作后的状态,在这个过程中,不用copy原Block内容到新Block,节省了写操作时间,提高了计算机的性能;
然后等待这个Block都更新为新的写入扇区的时候,可以直接将索引L2表中的Block地址栏改为新的Block地址;同时可以在后台或者关机的时候进行更新的Block内容,然后将L2表中的Block地址索引改为新Block地址。
另外,本发明的实施列还提供一种与上述图2所示方法对应的存储设备的数据操作的装置,包括:
写操作模块,用于对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建模块,用于创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识,所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
读操作模块,用于恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
其中,该创建模块创建的表格和上述计算机中的创建模块创建的表格相同,具体可以是一个Bitmap位图表格。
其中,该写操作模块具体可以执行图4所示的写操作流程;读操作模块具体可以执行图5所示的读操作流程,同样在写入一个新的扇区的时候,直接将新数据写入一个新Block,并在Bitmap表格中,记录该新Block地址和新Block的位图的状态,恢复数据(即读扇区操作时),新数据从新Block中读出,原数据从原Block中读出,读出来的数据合并在一起可以使硬盘恢复到对该原Block的扇区写操作后的状态,在这个过程中,不用copy原Block内容到新Block,节省了写操作时间,提高了计算机的性能。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种数据操作的方法,其特征在于,包括:
对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识,所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
2.根据权利要求1所述的方法,其特征在于,将新数据写入所述新存储块中之后还包括:
在所述还原点的地址索引表中的所述原存储块的地址中添加一第二标识,所述第二标识具有第一状态和第二状态,所述第一状态用于表示在恢复数据时直接根据该原存储块的地址读取数据,所述第二状态用于表示在恢复数据时根据所述表格中的所述第一标识的状态读取数据。
3.根据权利要求1所述的方法,其特征在于,将新数据写入所述新存储块中之后还包括:
对所述新存储块中的扇区又进行写操作,直接将此次写操作的新数据写入所述新存储块中,同时将所述新存储块对应的表格中的第一标识置于第二状态。
4.根据权利要求1所述的方法,其特征在于,若所述第一标识全为第二状态时,恢复数据时直接根据所述新存储块的地址从所述新存储块中读取数据。
5.根据权利要求1-4任一项所述的方法,其特征在于,按照所述原存储块的地址从所述原存储块中读取数据的步骤具体为:
将所述原存储块的地址加上所述原存储块中扇区的偏移地址,得到所述原存储块中扇区的物理地址,根据所述扇区的物理地址读出所述扇区中的数据;
按照所述新存储块的地址从所述新存储块中读取数据的步骤具体为:
将所述新存储块的地址加上所述新存储块中扇区的偏移地址,得到所述新存储块中扇区的物理地址,根据所述扇区的物理地址读出所述扇区中的数据。
6.一种数据写操作的方法,其特征在于,包括:
对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识,所述第一标识具有表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
将所述还原点的地址索引表中的所述原存储块的地址指向所述表格。
7.一种数据读操作的方法,其特征在于,包括:
查找存储设备的还原点的地址索引表,得到要恢复的存储块的地址;
若所述要恢复的存储块的地址中的第二标识表示该存储块的地址指向一表格时,则根据所述表格中第一标识的第一状态,按照所述表格中原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述表格中新存储块的地址从所述新存储块中读取数据。
8.一种数据操作的装置,其特征在于,包括:
写操作模块,用于对存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建模块,用于创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识,所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
读操作模块,用于恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
9.一种计算机,包括:存储设备;虚拟机管理器;第一操作系统模块,运行在所述虚拟机管理器上;第二操作系统模块,通过所述第一操作系统模块和虚拟机管理器实现对所述存储设备的读/写操作;其特征在于,所述第一操作系统模块包括:
写操作模块,用于对所述存储设备还原点的原存储块的扇区进行写操作时,分配一新存储块,将新数据写入所述新存储块中;
创建模块,用于创建一表格,所述表格包括:原存储块的地址,所述新存储块的地址和一第一标识;所述第一标识具有:用于表示恢复数据时从所述原存储块中读取数据的第一状态和从所述新存储块中读取数据的第二状态;
读操作模块,用于恢复数据时,根据所述第一标识的第一状态,按照所述原存储块的地址从所述原存储块中读取数据,根据所述第一标识的第二状态,按照所述新存储块的地址从所述新存储块中读取数据。
10.根据权利要求9所述的计算机,其特征在于,所述第一操作系统模块还包括:
释放模块,用于在所述表格中的第一标识全为第二状态时,直接根据所述新存储块的地址从所述新存储块中读取数据,并释放所述表格。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101370510A CN102207907B (zh) | 2010-03-30 | 2010-03-30 | 数据操作的方法、装置及计算机 |
PCT/CN2011/000547 WO2011120335A1 (zh) | 2010-03-30 | 2011-03-30 | 数据操作的方法、装置及计算机 |
US13/581,397 US9535796B2 (en) | 2010-03-30 | 2011-03-30 | Method, apparatus and computer for data operation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101370510A CN102207907B (zh) | 2010-03-30 | 2010-03-30 | 数据操作的方法、装置及计算机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102207907A true CN102207907A (zh) | 2011-10-05 |
CN102207907B CN102207907B (zh) | 2013-12-25 |
Family
ID=44696750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101370510A Active CN102207907B (zh) | 2010-03-30 | 2010-03-30 | 数据操作的方法、装置及计算机 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9535796B2 (zh) |
CN (1) | CN102207907B (zh) |
WO (1) | WO2011120335A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810246A (zh) * | 2013-12-27 | 2014-05-21 | 北京天融信软件有限公司 | 一种索引创建方法和装置以及索引查询方法和装置 |
CN104731872A (zh) * | 2015-03-05 | 2015-06-24 | 长沙新弘软件有限公司 | 基于位图的存储空间管理系统及其方法 |
CN106294007A (zh) * | 2016-08-05 | 2017-01-04 | 联想(北京)有限公司 | 一种数据恢复方法及装置 |
CN109325026A (zh) * | 2018-08-14 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 基于大数据平台的数据处理方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567262A (zh) * | 2003-06-10 | 2005-01-19 | 联想(北京)有限公司 | 基于数据卷快照的在线数据备份方法 |
CN1661567A (zh) * | 2004-02-25 | 2005-08-31 | 鑫联铭科技有限公司 | 全硬盘多点动态还原系统及其方法 |
US7127578B2 (en) * | 2004-03-22 | 2006-10-24 | Hitachi, Ltd. | Storage device and information management system |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6061770A (en) * | 1997-11-04 | 2000-05-09 | Adaptec, Inc. | System and method for real-time data backup using snapshot copying with selective compaction of backup data |
US6934822B2 (en) * | 2002-08-06 | 2005-08-23 | Emc Corporation | Organization of multiple snapshot copies in a data storage system |
US7743031B1 (en) * | 2002-09-06 | 2010-06-22 | 3Par, Inc. | Time and space efficient technique for creating virtual volume copies |
US7165156B1 (en) * | 2002-09-06 | 2007-01-16 | 3Pardata, Inc. | Read-write snapshots |
US7035881B2 (en) * | 2003-09-23 | 2006-04-25 | Emc Corporation | Organization of read-write snapshot copies in a data storage system |
US7555504B2 (en) * | 2003-09-23 | 2009-06-30 | Emc Corporation | Maintenance of a file version set including read-only and read-write snapshot copies of a production file |
US20060143412A1 (en) * | 2004-12-28 | 2006-06-29 | Philippe Armangau | Snapshot copy facility maintaining read performance and write performance |
CN100353337C (zh) * | 2005-06-01 | 2007-12-05 | 旺玖科技股份有限公司 | 闪存储存系统 |
US7870356B1 (en) * | 2007-02-22 | 2011-01-11 | Emc Corporation | Creation of snapshot copies using a sparse file for keeping a record of changed blocks |
US20090083503A1 (en) | 2007-09-20 | 2009-03-26 | Inventec Corporation | System of creating logical volume and method thereof |
US8364643B2 (en) * | 2007-12-04 | 2013-01-29 | Red Hat Israel, Ltd. | Method and system thereof for restoring virtual desktops |
CN101515276B (zh) | 2008-12-29 | 2012-07-04 | 北京握奇数据系统有限公司 | 一种文件数据写操作的方法、文件数据恢复方法及系统 |
-
2010
- 2010-03-30 CN CN2010101370510A patent/CN102207907B/zh active Active
-
2011
- 2011-03-30 WO PCT/CN2011/000547 patent/WO2011120335A1/zh active Application Filing
- 2011-03-30 US US13/581,397 patent/US9535796B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567262A (zh) * | 2003-06-10 | 2005-01-19 | 联想(北京)有限公司 | 基于数据卷快照的在线数据备份方法 |
CN1661567A (zh) * | 2004-02-25 | 2005-08-31 | 鑫联铭科技有限公司 | 全硬盘多点动态还原系统及其方法 |
US7127578B2 (en) * | 2004-03-22 | 2006-10-24 | Hitachi, Ltd. | Storage device and information management system |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103810246A (zh) * | 2013-12-27 | 2014-05-21 | 北京天融信软件有限公司 | 一种索引创建方法和装置以及索引查询方法和装置 |
CN103810246B (zh) * | 2013-12-27 | 2017-10-13 | 北京天融信软件有限公司 | 一种索引创建方法和装置以及索引查询方法和装置 |
CN104731872A (zh) * | 2015-03-05 | 2015-06-24 | 长沙新弘软件有限公司 | 基于位图的存储空间管理系统及其方法 |
CN104731872B (zh) * | 2015-03-05 | 2018-04-03 | 长沙新弘软件有限公司 | 基于位图的存储空间管理系统及其方法 |
CN106294007A (zh) * | 2016-08-05 | 2017-01-04 | 联想(北京)有限公司 | 一种数据恢复方法及装置 |
CN106294007B (zh) * | 2016-08-05 | 2020-03-24 | 联想(北京)有限公司 | 一种数据恢复方法及装置 |
CN109325026A (zh) * | 2018-08-14 | 2019-02-12 | 中国平安人寿保险股份有限公司 | 基于大数据平台的数据处理方法、装置、设备及介质 |
CN109325026B (zh) * | 2018-08-14 | 2023-09-26 | 中国平安人寿保险股份有限公司 | 基于大数据平台的数据处理方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US9535796B2 (en) | 2017-01-03 |
US20120324186A1 (en) | 2012-12-20 |
WO2011120335A8 (zh) | 2012-09-27 |
WO2011120335A1 (zh) | 2011-10-06 |
CN102207907B (zh) | 2013-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103597451B (zh) | 用于高可用性的存储器镜像和冗余生成 | |
CN101169751B (zh) | 具有闪存设备的系统及其数据恢复方法 | |
CN101840362B (zh) | 一种改进的写时拷贝快照的实现方法和装置 | |
CN102707900B (zh) | 虚拟盘存储技术 | |
CN104808951B (zh) | 进行存储控制的方法和设备 | |
CN102012852B (zh) | 一种增量写快照的实现方法 | |
CN106021016A (zh) | 在快照之间的虚拟时间点访问 | |
CN105930500A (zh) | 数据库系统中事务恢复的方法与数据库管理系统 | |
CN102750317B (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN105335098A (zh) | 一种基于存储级内存的日志文件系统性能提高方法 | |
CN103617097B (zh) | 文件恢复方法及装置 | |
CN103970585A (zh) | 创建虚拟机的方法及装置 | |
CN101526927B (zh) | Flash文件系统的数据处理方法及数据处理装置 | |
TWI417724B (zh) | 使用替代頁池管理直接記憶器存取寫入頁錯誤之電腦執行方法、裝置、及電腦程式產品 | |
CN102239478B (zh) | 数据访问处理方法和设备 | |
KR20070075640A (ko) | 요구 페이징 기법을 적용한 시스템에서 페이지 교체 수행시간을 단축시키는 방법 및 장치 | |
CN105045850B (zh) | 云存储日志文件系统中垃圾数据回收方法 | |
CN103996412A (zh) | 一种用于智能卡非易失性存储器的掉电保护方法 | |
CN102184260A (zh) | 一种云计算环境下的海量数据存取方法 | |
CN104021145A (zh) | 一种混合业务并发访问的方法和装置 | |
CN109690522B (zh) | 一种基于b+树索引的数据更新方法、装置及存储装置 | |
CN103577513A (zh) | 藉延迟节点实例化以缓存xml信息集的系统和/或方法 | |
WO2022126470A1 (zh) | Flash数据掉电保护方法及设备 | |
CN104516959A (zh) | 一种管理数据库日志的方法及装置 | |
CN102411524A (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 |