CN101583930A - 用于数据安全性的非易失性盘高速缓存 - Google Patents

用于数据安全性的非易失性盘高速缓存 Download PDF

Info

Publication number
CN101583930A
CN101583930A CNA2007800464432A CN200780046443A CN101583930A CN 101583930 A CN101583930 A CN 101583930A CN A2007800464432 A CNA2007800464432 A CN A2007800464432A CN 200780046443 A CN200780046443 A CN 200780046443A CN 101583930 A CN101583930 A CN 101583930A
Authority
CN
China
Prior art keywords
data
backup
change
volatile memories
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
Application number
CNA2007800464432A
Other languages
English (en)
Other versions
CN101583930B (zh
Inventor
R·J·D·帕纳巴克
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101583930A publication Critical patent/CN101583930A/zh
Application granted granted Critical
Publication of CN101583930B publication Critical patent/CN101583930B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1458Management of the backup or restore process
    • 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/1456Hardware arrangements for backup

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

所描述的是辅助非易失性存储(例如,闪存设备)保留在数据备份操作之后对硬盘驱动器所做的改变的副本的技术。备份改变可与所备份的数据相组合以重新创建硬盘驱动器状态,藉此例如如果硬盘驱动器失效,则在最后一次备份之后的改变不丢失。备份改变数据可保留与硬盘驱动器块相对应的在块(例如分配单元)级的改变、或者与硬盘驱动器上的文件或文件的各部分相对应的在文件级的改变。备份改变可被过滤,以使仅某些数据(例如,用户数据)作为备份改变数据来保留。读请求可通过从备份改变数据、或者从同样可位于非易失性存储上的性能(例如,盘)高速缓存读取数据来满足。

Description

用于数据安全性的非易失性盘高速缓存
背景
硬盘驱动器可能失效,这是许多用户定期备份他们的数据、或者至少应备份他们的数据的原因。然而,假定系统中具有单个硬盘驱动器的当代计算模型,当硬盘驱动器失效时,自最后一次备份以来写入该硬盘驱动器的任何数据很可能丢失。
诸如RAID(冗余独立磁盘阵列,其可包括盘镜像概念)之类的解决方案帮助保护免于这种数据丢失。然而,这些解决方案是昂贵的、可能是低效的且可降低性能,并且因而对许多计算机用户不是合乎需要的。
概述
提供本概述以便以简化形式介绍将在以下的详细描述中进一步描述的一些代表性概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于以限制所要求保护的主题的范围的任何方式来使用。
简要地,在此所述的主题的各方面涉及一种技术,通过该技术,第一非易失性存储(例如,计算机硬盘驱动器)保留数据的当前状态,包括在第一数据状态之后所做出的改变,该改变包括作为数据备份操作的一部分保存的数据。第二非易失性存储(例如,闪存设备)保留在第一状态之后所做的备份改变。备份改变可与第一状态中的数据组合以重新创建与当前状态相对应的还原状态。因而,数据可通过读取第二非易失性存储中的备份改变数据以及读取所保留的备份数据来还原,藉此例如如果硬盘驱动器失效,则在备份数据之后所做的改变被保存而不丢失。
在一个示例实现中,计算设备具有保留数据的当前状态的主非易失性存储、以及保留从与先前保存的数据状态相对应的开始点起的对数据的改变的辅助非易失性存储。还原机制可通过将所保存数据状态的数据与保留在辅助非易失性存储中的对数据的改变相组合来重新创建与当前状态相对应的还原状态。主非易失性存储可以是第一硬盘驱动器,并且辅助非易失性存储可以是闪存、电池备份RAM、另一硬盘驱动器、静态RAM、EEPROM设备、或网络存储位置、或其任何组合。辅助非易失性存储可作为卡、作为主板组件、通过有线连接、或者通过无线连接、或者通过其任何组合,经由通用串行总线设备耦合到计算设备。
在一个示例实现中,备份改变数据可与使数据与存储设备上的至少一个块(例如,分配单元)相关联的元数据一起保留。替换地或附加地,备份改变数据可与使数据与存储设备上的文件的至少一部分相关联的元数据一起保留。备份改变可被过滤,以使仅某些写作为备份改变数据来保留。
更进一步地,在一个示例实现中,读请求可至少部分地通过从第二非易失性存储中读取数据来满足。性能高速缓存(例如,磁盘高速缓存)也可位于非易失性存储上。备份改变数据空间可在需要时增长到性能高速缓存空间中。
结合附图阅读以下详细描述,本发明的其他优点会变得显而易见。
附图简述
作为示例而非限制,在附图中示出了本发明,附图中相同的附图标记指示相同或相似的元素,附图中:
图1示出了可以将本发明的各方面并入其中的通用计算环境的说明性示例。
图2是写请求由常规硬盘存储装置处理并在块(分配单元)级安全备份到非易失性存储器的示例表示。
图3是写请求由常规硬盘存储装置处理并在文件级安全备份到非易失性存储器的示例表示。
图4A-4C是在写和其它事件随时间发生时非易失性存储器可如何在备份安全性部分与性能部分之间分配的示例表示。
图5是文件级改变备份驱动程序和性能高速缓存驱动程序的示例表示。
图6是表示使用来自非易失性的安全备份数据和最后一次备份数据来重新创建自最后一次完全备份以来的硬盘驱动器状态的示例还原操作的框图。
图7是示出可采用来将写数据备份到非易失性存储器的示例步骤的流程图。
图8是示出可采用来从易失性存储器以及用于提高性能的硬盘驱动器读取数据的示例步骤的流程图。
图9是示出可采用来从所备份数据和非易失性存储器的备份改变数据还原数据的示例步骤的流程图。
详细描述
在此所述的技术的各方面一般涉及非易失性存储器的使用从而提供保存已在硬盘驱动器备份之间改变的数据的相对便宜且稳健的数据安全性解决方案。在硬盘驱动器失效(或者诸如对于膝上型计算机的被盗硬盘驱动器)的情况下,则所备份数据改变可与最后一次硬盘驱动器数据备份相组合以将数据还原到其当前状态。如将理解的,本技术还具有允许性能增强的额外益处。
在一个示例实现中,所改变的数据通过将该数据写入诸如闪存设备之类的非易失性存储器来同时备份。然而,如将理解的,任何类型的非易失性存储器将足够作为改变备份介质,包括电池备份RAM、另一硬盘驱动器、静态RAM、EEPROM设备、网络存储位置等等。此外,包括不同类型介质的多个备份介质可被组合在同一计算机系统中。
更进一步地,虽然如在此所述地可被备份的改变数据的单元的示例包括文件、文件的各部分、或盘分配单元(例如,在此称为块的扇区或簇),但是不要求使用任何特定单元,并且实际上,各种类型的单元可被混合在同一备份介质上,诸如将整个文件作为一个单元来备份、将一些块作为其它单元来备份等等。此外,不是每个写入盘的每一改变都需要被备份;例如,用户可设置过滤器以使仅写入某一目录组的改变被同时备份到非易失性存储器,而其它改变不被备份。
如此,本发明不限于在此所描述的任何特定实施例、方面、概念、结构、功能和/或示例。相反,在此所描述的实施例、方面、概念、结构、功能和/或示例中的任何一个都是非限制性的,并且本发明可以按一般在计算和数据安全性中提供益处和优点的各种方式来使用。
图1示出一示例框图,其中通用计算机系统110包括耦合到南桥芯片114的非易失性存储器112,该南桥芯片114又耦合到其它常规计算机系统组件。典型地,图1的示例计算机系统110包括经由北桥芯片118耦合到RAM 120和图形处理单元(GPU/卡)122的处理单元(CPU)116。同样典型地,南桥芯片114被示为连接到用于远程连接的网络接口卡(NIC)124、连接到硬盘驱动器126、以及连接到用于设备连接的其它端口128。
注意,如由图2中的虚线所指示地,非易失性存储器112可替换地通过诸如通用串行总线(USB)存储设备接口之类的这种端口128连接。非易失性存储器112可作为卡(例如,外围部件互连即PCI、PCI express、PCMCIA)来连接,可内置到计算机系统主板,或者可以用基本上任何其它方式来耦合,包括经由网络连接、火线、、红外线、串行端口、并行端口等等。更进一步地,如以上所提及地,在单个计算机系统中可存在多个非易失性存储器类型。
注意,图1仅是一个示例体系结构;其它替换体系结构可包括使非易失性存储器链接到北桥(NB),诸如电池备份RAM的一部分。
如以上所描述地,与自从某一先前所保存的状态(例如,先前的硬盘备份)以来的硬盘写相对应的改变被存储在非易失性存储器112中。如图2中所表示地,在一个示例替换实现中,改变备份可在分配单元、或块级发生。更具体地,当写请求正待决时,写请求数据230在实际被写入硬盘驱动器126之前被发送通过多个驱动程序。该请求可以采用通过驱动程序栈的I/O请求分组,即IRP的形式,或者可由驱动程序管理器体系结构来控制,该驱动程序管理器体系结构以受管的顺序将IRP或其它数据结构选择性地路由到每个驱动程序并且处理所返回的数据。无论如何,要被写入硬盘驱动器126的数据230可在其正被写入之前由一个或多个驱动程序处理。
在图2的示例中,如已知地,文件系统232将与指定文件位置处的数据相对应的写请求映射到与硬盘驱动器格式化相对应的各个块(例如,簇或扇区),并且经由卷管理器234将文件数据写入那些块。文件系统232跟踪该映射(例如,在文件分配表或主文件表中),以使适当的数据被定位用于对指定文件位置处的数据的读请求。
为安全地备份与自从最后一个状态以来的改变相对应的块级写入(例如,基于实用程序的硬盘驱动器备份),在块级操作的改变备份驱动程序236将写数据230复制到非易失性存储器112。对非易失性存储器112的每一次写都经由元数据240来跟踪,藉此写入元数据的数据242可被适当地读回。虽然可以使用各种技术来跟踪这些写,诸如伴随每组写入的数据的头部,但是图2例示了其中元数据240记录硬盘驱动器上的块号以及其在非易失性存储器112中的相应位置的机制。
如可容易地理解的,块级改变备份的一个优点是它通过将改变应用于在最后一次全备份时保存的数据来基本使硬盘驱动器能被精确地重新创建在另一硬盘驱动器上。尽管如此,也可能在功能上(而非精确地)重新创建硬盘驱动器,诸如通过选择性地复制某些所改变的数据,而不复制频繁改变但与存储在硬盘驱动器上的程序和用户数据不相关的诸如日志、某些元数据等其它数据。为减少所复制的数据量,可执行块级过滤,诸如不备份已知对在功能上重新创建硬盘驱动器不必要的块。用户模式改变备份软件244在图2中示出,诸如向用户提供界面以配置设置的软件,例如排除可从中定位相应块用于块级过滤的某些类型的数据。软件244还可允许用户指定块级备份(相对于以下所描述的文件级改变备份和阈值)以及控制任何其它改变备份变量(例如,添加或调整非易失性空间)。
块级改变备份的缺点是用户可能高速缓存不为其特定用途所需的许多改变,即使采用了相对复杂的块级过滤。例如,用户可能希望来自工作文件的数据被备份,而不是与所记录的电视演出、游戏文件等相对应的数据改变。如此,一种替换数据改变备份机制执行文件级改变备份,在文件级改变备份中仅对所选文件(例如,由其扩展名来标识)和/或目录的改变被备份。
图3例示文件级改变备份概念,其中要写入的数据125在它到达文件系统232之前被文件级改变备份驱动程序336复制。如已知地,数据写附带有包括文件标识符、对文件的偏移量、以及写大小的元数据。如可容易地理解的,该文件元数据可以是用来跟踪复制到非易失性存储器112中的一个或一组位置的数据342的元数据340的基础。此外,用户模式改变备份软件344在图3中示出,诸如向用户提供界面以选择文件、文件类型和/或目录来进行文件级包括或排除过滤的软件;该软件344还可使用户能指定块级对文件级改变备份,设置阈值(以下所述),控制其它变量等等。
非易失性存储器112不需要专用于改变备份,而是部分地可用于诸如用作磁盘驱动器之类的常规用途、以及用于新用途。空间可针对每一用途来分配,例如四千兆字节闪存设备可具有一千兆字节用于盘驱动器以及三千兆字节用于备份改变存储。重新分配是可能的,然而一旦空间被用在盘驱动器或备份改变存储中,该空间不能被重新分配用于另一用途直到该空间被释放,否则其相应文件数据或备份改变数据将丢失。
一种使用非易失性存储器的新技术是通过使非易失性存储器用作盘高速缓存来提高计算机系统性能。为此,块(例如,扇区)在写请求时被复制到非易失性存储器,并且在可用时,在读请求时从该非易失性存储器读回。如所理解地,这相比常规盘访问要快得多,从而提供显著的性能改进。
关于在同一设备(或一组设备)上组合性能高速缓存和备份改变数据,动态重新分配通过在性能高速缓存中释放存储备份改变数据所需的空间而是可能的。在需要空间并且空间已被转储清除到磁盘时,性能高速缓存数据可如同任何其它高速缓存的数据一样被丢弃。注意一旦被备份,改变数据就还可被用于性能增益,因为改变数据还可用于在非易失性存储器112上的读访问。然而,所备份的改变数据例如在从许多写中被过滤时可以仅是用户的总数据写的子集,并且因而保留性能高速缓存在非易失性存储器空间否则不为改变数据备份所需要时仍具有重大价值。
图4A-4C示出将改变备份数据部分440增长到可供使用或由非易失性存储器112的性能高速缓存部分442先前所使用的空间的概念。如在图4A至4B的部分的大小中的变化可见,由于对于改变写需要更多的备份空间,所以改变备份部分440随着性能高速缓存部分442收缩而增长,通常直到非易失性存储器112中没有剩余任何空间为止(如以下所述)。如图4C所表示地,在改变备份部分440不再为存储改变数据所需要时,性能高速缓存部分442可被返回给非易失性存储器112空间的更大的部分(例如,所有或者几乎所有部分,如果一些小空间总是为改变备份扇区440所保存的话)。可为改变备份扇区440定义某一最小空间量。该重新分配可在硬盘的下一基于实用程序的备份操作之后,或者在改变备份部分440被转移到另一介质之后,如以下所描述地。
如可容易地理解的,块级性能高速缓存和块级改变备份可被合并到同一模块,例如同一驱动程序中。确实,如果块级改变备份不执行过滤操作,则处理写时没有真实差异存在。然而,与性能高速缓存不同,为在硬盘驱动器失效时保护免于数据丢失,改变备份软件需要在高速缓存满时通知用户,在该情况中用户需要采取行动来保存未来改变,例如执行基于实用程序的硬盘驱动器备份,将非易失性存储器内容转移到另一存储,添加更多的存储,压缩数据等。
图5示出与性能高速缓存驱动程序537(这还可包括块级改变备份驱动程序)共存的文件级改变备份驱动程序536的概念。在图5中,改变备份驱动程序536经由过滤操作来有效地备份仅与一组指定文件、一组指定目录等相对应的那些改变。如此,并非所有改变都被备份,并且改变备份部分440(图4A,与非易失性存储器112A的图5中的元数据540A和数据542B区域相对应)不会像在块级改变数据备份情况下增长得那么快。
在此示例中,性能级高速缓存在块级经由性能高速缓存驱动程序537发生。这可以是高速缓存到其非易失性存储器112B的其自己的区域540A和540B,这些区域可收缩。注意在一个替换中,在文件级的任何备份改变数据也被写到(作为在其相应块中的数据)性能高速缓存。出于效率起见,改变备份驱动程序536可与性能高速缓存驱动程序537通信以避免将同一数据两次写到非易失性存储器112中。
到非易失性存储的改变备份的各种其它方面可被用来改进总的用户体验。例如,数据加密和解密可在更高的驱动程序级对备份驱动程序透明地发生。出于安全性起见,解密密钥可与大量备份数据而非与非易失性存储一起保持,因为如果非易失性存储是可移动的并且丢失或被盗,则其上的任何数据在没有密钥附带在该加密数据上的情况下被加密。
用户还可确定数据安全性的级别。例如,用户可采用镜像或类似的RAID技术将改变数据散布在多个(便宜的)非易失性存储设备上。多个非易失性存储设备还可出于性能原因而使用,例如提供并行数据访问。
在管理设备的软件建议执行硬盘驱动器备份或将备份改变转移到另一介质之前,可设置诸如可被备份改变消耗的空间量之类的阈值。更仔细的用户,或者那些往往会执行大尺寸改变的用户可设置阈值警告级别以提供充足的预先警告。
改变可对每一用户备份。例如,用户可使非易失性存储仅备份该用户的改变,而非另一用户的改变,而不管改变的文件的所有权。可采用识别(例如,作为元数据的一部分)当前用户的改变的过滤器,藉此用户可仅用自最后一次备份以来的用户的改变来重新创建硬盘状态。替换地,非易失性存储中的元数据可被用来保留哪一用户做了改变以便稍后在改变中进行区分。这使用户能在某人也对共享文件作出改变(例如,破坏)的情况下还原他或她自己的改变。
转到从非易失性存储还原数据的考虑,图6示出还原到新的硬盘驱动器670的示例。尽管如此,可以理解,如果硬盘驱动器失效不是问题,诸如如果用户的数据或共享数据被另一用户破坏,如以上所描述地,则还原可以是对同一硬盘驱动器的(重新格式化或对其上的空闲空间)。
为还原,最后一次硬盘驱动器备份数据672(例如,在硬盘驱动器状态1由某一备份实用程序674等先前备份的,其在先前硬盘驱动器126失效的情况下可不再存在)由还原实用程序676写入新的硬盘驱动器670,且来自非易失性存储器112的改变被应用来更新该新的硬盘驱动器670以重新创建其最后一个状态,状态2。如以上所描述地,此基本上可以是精确的重新创建、功能上的重新创建、或者指定数据的重新创建。
还在图6中表示的是可存在的一个或多个增量备份数据集678的概念。更具体地,用户可将非易失性存储器112的内容转移到包含备份改变的增量备份数据组,例如在非易失性存储器变得充满备份改变时。与备份状态1a相对应的该数据集或数据集的组678可被存储在任何地方,但是出于安全性的目的,由于失效或丢失的可能性,将不被存储在硬盘驱动器上,(虽然出于从数据破坏恢复的目的,它可被存储在硬盘驱动器上)。例如,可选择网络转储清除以将非易失性存储器112自动地转移到网络存储,这可保持最后一次硬盘驱动器备份数据672与一个或多个增量备份数据集678相关联。光学介质转储清除是另一替换方案,其可被插入不同的闪存设备,从而知道新的闪存设备相对于先前的增量备份数据678是增量的,而不与最后一次硬盘驱动器备份数据672直接相关。
可保留任何数目的增量备份数据集678,只要保持顺序。在还原之后,所备份硬盘驱动器数据(状态1)与任何增量备份数据集678中的改变一起与在开始在非易失性存储器112上写入改变之前的状态(在此一起称为状态1a且保持顺序)相对应。注意,一种还原方式是写入硬盘驱动器内容,并且然后在改变发生时按顺序通过任何增量备份数据集并且然后以非易失性存储器112中的改变结束来盖新写数据。一种替换的还原方式是一次填充每一块,从可针对该块找到的最新近的改变开始,在需要时在时间上返回以找到最后一次改变(如果不存在更新近的改变,则一直到状态1硬盘驱动器备份数据672)。注意在该后一还原替换方案中,非易失性存储器112中的改变被首先还原。
又一方面涉及在非易失性存储设备不可用时,例如被用户拆下或为满时,在硬盘驱动器自身上高速缓存改变。然后,在稍后可用后,(例如,重新附连或转移到另一介质),那些高速缓存的改变可被同步回到非易失性存储器。这在完全同步之前带有硬盘驱动器失效或丢失的奉献,但是仍提供益处。
作为示例,在块级,改变备份驱动程序或类似的组件可简单地记录哪些块关于需要被同步被改变(变脏)。类似地,在文件级,改变备份驱动程序可跟踪相关写的原数据。当非易失性存储器再次变得可用时,同步可以是自动的。通过使用事务概念来分别同步每一块或各块的子集、或文件的一部分或各部分,部分同步在完全同步不能在单个会话中完成时是可能的。
用户可以用各种方式被通知关于改变备份数据的状态,包括经由文本、图形等等。例如,在计算机显示的图标上或其它地方上的绿色指示器(例如,在非易失性存储器设备上的LED)可指示所有相关改变已被备份并且数据是安全的。黄色指示器可指示所有相关改变已被备份,但是非易失性存储器设备的空间不够,并且硬盘驱动器备份或增量转移应被执行。红色指示器可指示例如由于空间限制、设备已被移除等等所有改变尚未被备份,虽然如以上所描述地这些改变可被保留在硬盘驱动器上以用于同步。
转到处理写数据的示例性说明,图7是示出例如在改变备份驱动程序上可被采用处理写数据的可能步骤的流程图。步骤702表示接收写数据,且步骤704表示对作为过滤的结果被排除在改变备份存储之外的写数据的任何一个进行性能高速缓存。
如果至少一些写数据要作为改变来备份,则步骤706将其大小与非易失性存储器上的空闲空间量进行比较。该空闲空间包括任何性能高速缓存空间,这可经由步骤708和710来收缩。更进一步地,步骤706包括如果非易失性存储已被移除,在该情况中空闲空间为零。如果空间不足,则改变不能被备份,并且经由步骤720通知用户该数据不是安全的。虽然未被具体示出,但是可理解如以上描述地,未备份的数据改变可被记录或者以其他方式保存在硬盘驱动器上,以使同步可稍后在空间可用/非易失性存储器设备被重新附连时发生。
如果由于性能高速缓存空间而在非易失性存储器中有足够空间可用,但是在备份部分中空间不足,则步骤708和710通过收缩性能高速缓存空间来增长备份部分空间。步骤712然后将适当的数据和元数据写入备份部分。注意,数据可盖写已存在的相应数据(例如,在同一块或文件部分中),这或者通过直接盖写或者通过写入新空间并释放旧空间来进行。更进一步地,注意写错误等可以用已知方式来处理。
步骤714评估在写之后,空闲空间量是否接近阈值限制,该阈值限制可以是用户可配置的。如果是,则警告用户备份空间不够,即很快需要硬盘驱动器备份或转移到增量数据集以避免数据丢失的可能性。
图8表示可被采用来通过在可能时从非易失性存储器读取以有效方式处理读请求的示例步骤,各步骤在接收读请求的步骤802开始。步骤804评估所请求的数据是否在备份部分中。注意,这往往是频繁使用的数据,并且因而通常是存在的。替换地,可首先对性能部分评估所请求数据是否存在于其中。
在步骤804,如果数据的至少一些存在于改变备份部分中,则执行步骤806以将该数据读入读缓冲器,否则执行步骤812以在性能高速缓存中寻找所请求数据。如果在步骤806读取并且该请求如步骤808所示地被完全满足,则在步骤824返回具有适当成功状态的读缓冲器。
如果没有或仅一部分数据可从改变备份部分中获得,则步骤810将原始请求修改成寻找缺失数据的一个或多个读请求。在步骤812,如果数据中的至少一些存在于性能部分中,则步骤812分支到步骤814以执行一次读(或多次读),否则步骤812分支到步骤820以执行从硬盘驱动器的一次读(或多次读)。
如果执行步骤814,则步骤816表示原始读请求是否被完全满足。如果是,则在步骤824返回具有适当成功状态的读缓冲器。如果未完全满足,则然后步骤818调整一次或多次读以访问硬盘驱动器来寻找缺失数据,并且步骤820从硬盘驱动器读取;执行步骤822和824以使读请求对请求实体表现为是正常读操作。
应注意,图8的各步骤仅是满足读请求的一种方式,例如通过使用来自非易失性存储的数据建立读缓冲器到可能的程度,以使硬盘驱动器仅在必要时被访问以获得仅仅是完成请求所需的数据。然而,可实现其他替换方案,诸如确定读是否可经由非易失性存储来完全满足,并且如果不是,则像往常一样执行从硬盘驱动器的完整读取。
图9表示还原操作,步骤902和904表示备份硬盘驱动器(例如,经由备份实用程序备份到完全备份),以及步骤904表示保留任何增量备份,即自最后一次规则备份操作以来从非易失性存储转移。
步骤906表示等待还原操作,该还原操作可在遥远的将来发生。因而,步骤906通常不是过程中反复出现额循环,而是表示等待开始完全分开的还原操作过程。
步骤908和910表示基于诸如保留在网络备份位置处的所有保留的数据将硬盘驱动器的状态重新创建到某一接收介质(例如,新的硬盘驱动器)。如以上所描述地,硬盘驱动器状态可从初始备份数据(备份状态1)、以及按顺序应用的任何其它增量备份数据(如备份状态1a)来重新创建。
为还原最新近的状态,步骤910表示使用非易失性存储的备份改变数据。注意,步骤910可独立地执行,或者替换地可被合并到步骤908,例如通过转移非易失性存储内容以在执行步骤908之前变成最新近的增量备份,并且然后执行步骤908。
尽管本发明易于作出各种修改和替换构造,其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的具体形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。

Claims (20)

1.至少一个具有计算机可执行指令的计算机可读介质,所述指令在被执行时实现以下步骤,所述步骤包括:
保留与处于第一状态时的存储设备的内容相对应的备份数据;
接收涉及改变所述存储设备的内容的写请求;
将与所述写请求相对应的备份改变数据写入与所述存储设备分开的非易失性存储,同时允许所述写请求继续将所述存储设备的内容改变到第二状态;以及
还原接收存储设备以与所述第二状态的所述存储设备相对应,其包括通过读取所述非易失性存储中的所述备份改变数据以及读取所保留的备份数据。
2.如权利要求1所述的计算机可读介质,其特征在于,保留所述备份数据包括执行备份操作以及在所述备份操作之后保留与所述存储设备的内容相对应的数据结构。
3.如权利要求1所述的计算机可读介质,其特征在于,保留所述备份数据包括执行备份操作以及在所述备份操作之后保留与所述存储设备的内容相对应的数据结构,以及保留跟踪在所述备份操作之后并在所述写请求之前发生的写操作的至少一个增量改变备份数据集。
4.如权利要求1所述的计算机可读介质,其特征在于,写入所述备份改变数据包括将数据以及使所述数据与所述存储设备的至少一个数据块相关联的元数据一起写入所述非易失性存储。
5.如权利要求1所述的计算机可读介质,其特征在于,写入所述备份改变数据包括将数据以及使所述数据与所述存储设备上的文件的至少一部分相关联的元数据写入所述非易失性存储。
6.如权利要求1所述的计算机可读介质,其特征在于,写入所述备份改变数据包括过滤所述写请求以将所述写请求从不作为备份改变数据来写入的其它写请求中区分出来。
7.如权利要求6所述的计算机可读介质,其特征在于,还具有其他计算机可执行指令,包括将另一写请求写入所述非易失性存储上的性能高速缓存。
8.如权利要求7所述的计算机可读介质,其特征在于,还具有其他计算机可执行指令,包括调整所述非易失性存储中的存储空间以增大用于写入所述备份改变数据的部分的空间并且减小用于所述性能高速缓存的部分的空间。
9.如权利要求1所述的计算机可读介质,其特征在于,还具有其他计算机可执行指令,包括接收涉及读取所述存储设备的内容的读请求,以及从所述非易失性存储满足所述读请求的至少一部分。
10.如权利要求1所述的计算机可读介质,其特征在于,还具有其他计算机可执行指令,包括通过将所述备份改变数据的至少一部分转移到增量备份数据集来释放所述非易失性存储中的空间。
11.如权利要求1所述的计算机可读介质,其特征在于,写入所述备份改变数据包括:在所述非易失性存储不可用时将跟踪所述备份改变数据的信息写入所述存储设备,以及在稍后可用时通过处理所述信息来同步所述非易失性存储。
12.如权利要求1所述的计算机可读介质,其特征在于,还具有其他计算机可执行指令,包括:向用户提供指示所述非易失性存储的同步状态的指示,所述指示包括在所述非易失性存储不包含还原所述接收存储设备以与处于所述第二状态的存储设备相对应所需的备份改变数据时的一个指示、以及在所述非易失性存储包含还原所述接收存储设备以与处于所述第二状态的存储设备相对应所需的备份改变数据时的另一指示。
13.一种在包括计算设备的计算环境中的系统,包括:
耦合到所述计算设备的主非易失性存储,其在从初始状态做出改变时保留数据的当前状态;以及
耦合到所述计算设备的辅助非易失性存储,其保留从与晚于所述初始状态的所保存的数据状态相对应的开始点起的对所述数据的改变,以使还原机制可被配置成通过将所保存的数据状态的数据与保留在所述辅助非易失性存储中的对所述数据的改变相组合来重新创建与所述当前状态相对应的还原状态。
14.如权利要求13所述的系统,其特征在于,所述主非易失性存储包括第一硬盘驱动器,其中所述辅助非易失性存储包括闪存,并且其中所述还原机制通过将所述还原状态写入第二硬盘驱动器来重新创建所述还原状态。
15.如权利要求13所述的系统,其特征在于,所述辅助非易失性存储包括一集合的一个或多个项,所述集合包含闪存、电池备份RAM、另一硬盘驱动器、静态RAM、EEPROM设备、或者网络存储位置、或者其任何组合;并且其中,所述辅助非易失性存储作为卡、作为主板组件、通过有线连接、或者通过无线连接、或者通过其任何组合,经由通用串行总线接口耦合到所述计算设备。
16.一种在具有其数据被备份到第一状态的计算设备的计算环境中的方法,包括:
在第一非易失性存储中保留数据的当前状态,所述数据的当前状态包括如在第一状态之后被改变所修改的所述第一状态的数据;以及
在第二非易失性存储中保留发生在所述第一状态之后作为备份改变的对所述数据的修改,以使所述备份改变可与备份到第一状态的所述数据相组合以重新创建与所述当前状态相对应的还原状态。
17.如权利要求16所述的方法,其特征在于,保留所述改变包括过滤所述改变以仅选择所述改变中的某一些作为备份改变,以使所述还原状态包括如由第一状态之后的所述改变的所选子集修改的所述第一状态。
18.如权利要求16所述的方法,其特征在于,备份到所述第一状态的数据包括一备份数据集、以及在所述第二非易失性存储中保留在所述第一状态之后但在所述备份改变之前的备份改变数据的至少一个增量备份数据集。
19.如权利要求16所述的方法,其特征在于,保留所述备份改变数据包括将数据以及使所述数据与所述第一非易失性存储的至少一个数据块相关联的元数据一起写入所述第二非易失性存储,或者将数据以及使所述数据与所述第一非易失性存储上的文件的至少一部分相关联的元数据一起写入所述第二非易失性存储。
20.如权利要求16所述的方法,其特征在于,还包括接收涉及从所述第一非易失性存储读取内容的读请求,以及从所述第二非易失性存储满足所述读请求的至少一部分。
CN2007800464432A 2006-12-14 2007-11-29 用于数据安全性的非易失性盘高速缓存 Expired - Fee Related CN101583930B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/638,944 2006-12-14
US11/638,944 US7921258B1 (en) 2006-12-14 2006-12-14 Nonvolatile disk cache for data security
PCT/US2007/085910 WO2008073716A1 (en) 2006-12-14 2007-11-29 Nonvolatile disk cache for data security

Publications (2)

Publication Number Publication Date
CN101583930A true CN101583930A (zh) 2009-11-18
CN101583930B CN101583930B (zh) 2012-12-12

Family

ID=39512086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800464432A Expired - Fee Related CN101583930B (zh) 2006-12-14 2007-11-29 用于数据安全性的非易失性盘高速缓存

Country Status (7)

Country Link
US (1) US7921258B1 (zh)
EP (1) EP2115602B1 (zh)
JP (1) JP5047308B2 (zh)
KR (1) KR101247006B1 (zh)
CN (1) CN101583930B (zh)
ES (1) ES2385063T3 (zh)
WO (1) WO2008073716A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102520956A (zh) * 2011-12-19 2012-06-27 厦门游家网络有限公司 一种新型的数据存储方法及系统
CN102769658A (zh) * 2011-12-06 2012-11-07 北京安天电子设备有限公司 网络文件还原方法及装置
CN103197899A (zh) * 2012-04-02 2013-07-10 微软公司 增强基于闪存的存储的寿命和性能
CN104025057A (zh) * 2011-10-31 2014-09-03 甲骨文国际公司 协同储存管理
CN104050056A (zh) * 2013-03-15 2014-09-17 希捷科技有限公司 多存储介质设备的文件系统备份
WO2016095151A1 (en) * 2014-12-18 2016-06-23 Hua Zhong University Of Science Technology Storing log records in a non-volatile memory
CN103870208B (zh) * 2012-12-17 2017-08-25 联想(北京)有限公司 信息处理的方法及电子设备
CN113448888A (zh) * 2020-03-24 2021-09-28 皮尔茨公司 用于将数据存储在非易失性存储器中的设备

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1939874A1 (en) * 2006-12-28 2008-07-02 Deutsche Thomson OHG Method to restore a failed HDD of a PVR
US20100131696A1 (en) * 2008-11-21 2010-05-27 Pratt Thomas L System and Method for Information Handling System Data Redundancy
US9275678B2 (en) 2010-03-25 2016-03-01 International Business Machines Corporation Primary storage media with associated secondary storage media for efficient data management
US9430155B2 (en) 2010-03-25 2016-08-30 International Business Machines Corporation File index, metadata storage, and file system management for magnetic tape
US9063666B2 (en) 2010-03-25 2015-06-23 International Business Machines Corporation File index, metadata storage, and file system management for magnetic tape
GB2492320B (en) * 2011-06-21 2020-03-25 Metaswitch Networks Ltd Process recovery method and system
JP2014127015A (ja) * 2012-12-26 2014-07-07 Toshiba Corp 情報処理装置、分散データベースシステム、およびバックアップ方法
US20140181042A1 (en) * 2012-12-26 2014-06-26 Kabushiki Kaisha Toshiba Information processor, distributed database system, and backup method
US20150339065A1 (en) * 2014-05-20 2015-11-26 Munif M. Farhan Enhanced data reliability using solid-state memory-enabled storage devices
US10083299B2 (en) * 2015-12-16 2018-09-25 Carbonite, Inc. Systems and methods for automatic snapshotting of backups based on malicious modification detection
KR20170074264A (ko) * 2015-12-21 2017-06-30 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10509703B1 (en) 2017-10-25 2019-12-17 Gonen Ravid External backup and instant recovery system for a computer
CN108762987A (zh) * 2018-05-30 2018-11-06 上海顺舟智能科技股份有限公司 用于双备份单片机闪存的数据恢复方法及装置
US10983829B2 (en) 2019-07-12 2021-04-20 Micron Technology, Inc. Dynamic size of static SLC cache

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2256735B (en) 1991-06-12 1995-06-21 Intel Corp Non-volatile disk cache
EP0630499A4 (en) 1992-03-09 1996-07-24 Auspex Systems Inc ACCELERATION SYSTEM WITH NON-VOLATILE, PROTECTED, WRITABLE RAM CACHE.
US5241669A (en) * 1992-04-20 1993-08-31 International Business Machines Corporation Method and system for sidefile status polling in a time zero backup copy process
SE500599C2 (sv) 1992-12-08 1994-07-25 Ellemtel Utvecklings Ab Sätt att optimera minnesutrymme i en databas
US6035347A (en) 1997-12-19 2000-03-07 International Business Machines Corporation Secure store implementation on common platform storage subsystem (CPSS) by storing write data in non-volatile buffer
US6397229B1 (en) 1998-02-02 2002-05-28 International Business Machines Corporation Storage-controller-managed outboard incremental backup/restore of data
US6295577B1 (en) 1998-02-24 2001-09-25 Seagate Technology Llc Disc storage system having a non-volatile cache to store write data in the event of a power failure
JP3640802B2 (ja) 1998-06-08 2005-04-20 富士通株式会社 データバックアップ方式
US6725342B1 (en) 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
US6606694B2 (en) * 2000-12-22 2003-08-12 Bull Hn Information Systems Inc. Write logging in mirrored disk subsystems
US6848021B2 (en) * 2001-08-01 2005-01-25 International Business Machines Corporation Efficient data backup using a single side file
WO2003085677A1 (fr) 2002-04-05 2003-10-16 Renesas Technology Corp. Memoire non volatile
US6947956B2 (en) 2002-06-06 2005-09-20 International Business Machines Corporation Method and apparatus for selective caching of transactions in a computer system
JP2004046435A (ja) * 2002-07-10 2004-02-12 Hitachi Ltd バックアップ方法、その方法に用いた記憶制御装置
US6981004B2 (en) * 2002-09-16 2005-12-27 Oracle International Corporation Method and mechanism for implementing in-memory transaction logging records
US7664984B2 (en) * 2002-10-09 2010-02-16 Xpoint Technologies, Inc. Method and system for updating a software image
US6983352B2 (en) * 2003-06-19 2006-01-03 International Business Machines Corporation System and method for point in time backups
US7051223B2 (en) 2003-09-30 2006-05-23 International Business Madnine Corporation System, apparatus, and method for limiting non-volatile memory
US7412583B2 (en) * 2003-11-14 2008-08-12 International Business Machines Corporation Virtual incremental storage method
KR100605991B1 (ko) 2003-12-23 2006-07-26 삼성전자주식회사 휴대 단말의 사용자 데이터 보존 방법과 그 회로
US7644239B2 (en) 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
JP2005332067A (ja) 2004-05-18 2005-12-02 Hitachi Ltd バックアップ取得方法及びディスクアレイ装置
US7395452B2 (en) 2004-09-24 2008-07-01 Microsoft Corporation Method and system for improved reliability in storage devices
US7480761B2 (en) * 2005-01-10 2009-01-20 Microsoft Corporation System and methods for an overlay disk and cache using portable flash memory
TW200625083A (en) 2005-01-14 2006-07-16 Farstone Tech Inc Backup/recovery system and method thereof
US20070033356A1 (en) * 2005-08-03 2007-02-08 Boris Erlikhman System for Enabling Secure and Automatic Data Backup and Instant Recovery
US20070185879A1 (en) * 2005-12-23 2007-08-09 Metacommunications, Inc. Systems and methods for archiving and retrieving digital assets

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104025057A (zh) * 2011-10-31 2014-09-03 甲骨文国际公司 协同储存管理
CN102769658A (zh) * 2011-12-06 2012-11-07 北京安天电子设备有限公司 网络文件还原方法及装置
CN102520956A (zh) * 2011-12-19 2012-06-27 厦门游家网络有限公司 一种新型的数据存储方法及系统
CN103197899A (zh) * 2012-04-02 2013-07-10 微软公司 增强基于闪存的存储的寿命和性能
CN103197899B (zh) * 2012-04-02 2017-04-26 微软技术许可有限责任公司 增强基于闪存的存储的寿命和性能
CN103870208B (zh) * 2012-12-17 2017-08-25 联想(北京)有限公司 信息处理的方法及电子设备
CN104050056A (zh) * 2013-03-15 2014-09-17 希捷科技有限公司 多存储介质设备的文件系统备份
WO2016095151A1 (en) * 2014-12-18 2016-06-23 Hua Zhong University Of Science Technology Storing log records in a non-volatile memory
CN113448888A (zh) * 2020-03-24 2021-09-28 皮尔茨公司 用于将数据存储在非易失性存储器中的设备
CN113448888B (zh) * 2020-03-24 2023-12-22 皮尔茨公司 用于将数据存储在非易失性存储器中的设备

Also Published As

Publication number Publication date
US7921258B1 (en) 2011-04-05
WO2008073716A1 (en) 2008-06-19
ES2385063T3 (es) 2012-07-17
JP5047308B2 (ja) 2012-10-10
KR20090087509A (ko) 2009-08-17
KR101247006B1 (ko) 2013-04-02
JP2010514008A (ja) 2010-04-30
CN101583930B (zh) 2012-12-12
EP2115602B1 (en) 2012-05-23
EP2115602A1 (en) 2009-11-11
EP2115602A4 (en) 2011-04-20

Similar Documents

Publication Publication Date Title
CN101583930B (zh) 用于数据安全性的非易失性盘高速缓存
JP5346536B2 (ja) 情報バックアップ/リストア処理装置、及び情報バックアップ/リストア処理システム
CN102209952B (zh) 存储系统和用于操作存储系统的方法
CN100416508C (zh) 一种存储网络中的数据备份方法
US6567889B1 (en) Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
CN100419664C (zh) 存储网络中执行备份操作的方法
US7152184B2 (en) Storage device, backup method and computer program code of this storage device
CN100530116C (zh) 在存储设备阵列中存储数据的方法和系统
US8150851B2 (en) Data processing apparatus and method of processing data
US20060277226A1 (en) System and method for controlling storage of electronic files
CN100407121C (zh) 信息处理系统和一次存储装置
US7467273B2 (en) Storage apparatus for preventing falsification of data
CN100524235C (zh) 存储网络中的恢复操作
US20050132212A1 (en) Policy-driven file system with integrated RAID functionality
US20050120058A1 (en) File management apparatus, storage management system, storage management method, program, and recording medium
US20100306466A1 (en) Method for improving disk availability and disk array controller
US7831750B2 (en) Method, apparatus and software for processing input or output requests for a mirrored storage volume
US8296531B2 (en) Storage system, control unit, image forming apparatus, image forming method, and computer readable medium
JP7472341B2 (ja) ストレージシステム及びストレージシステムの制御方法
US7398420B2 (en) Method for keeping snapshot image in a storage system
CN101501653A (zh) 磁盘的长期备份
CN1991833B (zh) 文件系统和文件信息处理方法
CN114415968A (zh) 存储系统及其数据写入方法
JP2005284643A (ja) ディスクアレイ制御装置、ディスクアレイ制御装置の制御方法、及び制御プログラム
KR100775141B1 (ko) 저널링이 적용된 fat 파일 시스템의 구현 방법

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150507

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150507

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121212

Termination date: 20191129

CF01 Termination of patent right due to non-payment of annual fee