CN103608783A - 用于备份应用的存储体系结构 - Google Patents

用于备份应用的存储体系结构 Download PDF

Info

Publication number
CN103608783A
CN103608783A CN201280027956.XA CN201280027956A CN103608783A CN 103608783 A CN103608783 A CN 103608783A CN 201280027956 A CN201280027956 A CN 201280027956A CN 103608783 A CN103608783 A CN 103608783A
Authority
CN
China
Prior art keywords
data
chunk
address
storage system
source
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
CN201280027956.XA
Other languages
English (en)
Other versions
CN103608783B (zh
Inventor
A·阿里
A·辛格拉
V·普拉巴
S·杜格
P·坎佐德
V·森
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 CN103608783A publication Critical patent/CN103608783A/zh
Application granted granted Critical
Publication of CN103608783B publication Critical patent/CN103608783B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/0653Monitoring storage devices or systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本文所描述的主题的各方面涉及存储体系结构。在各方面,数据源所提供的地址被转换成虚拟存储的逻辑存储地址。这一逻辑存储地址被映射到可被用来将数据储存在存储系统上或从存储系统检索数据的标识符。虚拟存储的地址空间被分成可流传输到存储系统的各组块。

Description

用于备份应用的存储体系结构
背景技术
存在许多存储系统可用来备份数据。例如,磁带存储系统已经并且仍然被用来存储大型数据集。最近,部分因为每存储单元价格的降低,本地附属的盘存储系统已被用来存储备份数据。更近来,云存储系统已经变得可用于在经由因特网连接的远程存储设备上存储备份数据。支持新类型的存储涉及许多工程、测试以及集成努力并延迟了上市时间。另外,数据从一种类型的存储迁移到另一类型的存储是有挑战性的。
在此要求保护的主题不限于解决任何缺点或仅在诸如上述环境中操作的各个实施例。相反,提供该背景仅用以示出在其中可实践在此描述的部分实施例的一个示例性技术领域。
发明内容
简言之,本文所描述的主题的各方面涉及存储体系结构。在各方面,数据源所提供的地址被转换成虚拟存储的逻辑存储地址。这一逻辑存储地址被映射到可被用来将数据储存在存储系统上或从存储系统检索数据的标识符。虚拟存储的地址空间被划分成可流传输到存储系统的各组块(chunk)。将存储空间划分成各组块便于备份数据集管理操作、转换、以及下文更详细地描述的其他动作。
附图说明
图1是表示其中可结合本文所描述主题的各方面的示例性通用计算环境的框图;
图2是概括地表示根据本文所描述主题的各方面的环境的框图;
图3是示出根据本文所描述的主题的各方面的示例性虚拟存储格式的框图;
图4是示出根据本文所描述主题的各方面的各特征的框图;以及
图5-6是概括地表示根据本文所描述的主题的各方面的可发生的示例性动作的流程图。
具体实施方式
定义
如本文所使用的,术语“包括”及其变体被当作开放式术语,表示“包括但不限于”。除非上下文另外清楚地指示出,否则术语“或”被当作“和/或”。术语“基于”被当作“至少部分地基于”。术语“一个实施例”和“一实施例”被当作“至少一个实施例”。术语“另一实施例”被当作“至少一个其他实施例”。
如本文所使用的,诸如“一”和“该”等术语包括了所指示的项或动作中的一个或多个。具体而言,在权利要求书中,对某一项的引用一般表示存在至少一个这样的项,并且对一动作的引用表示执行该动作的至少一个示例。
本文中有时可使用术语“第一”、“第二”、“第三”等等。没有其他上下文,权利要求中对这些术语的使用不意在暗示排序,而是用于标识的目的。例如,短语“第一版本”和“第二版本”不一定意味着第一版本是真正的第一个版本或是在第二版本之前创建的,或甚至是第一版本是在第二版本之前被请求或操作的。相反,这些短语用于标识不同的版本。
标题是仅出于方便起见的;关于给定话题的信息可在其标题指示该话题的节之外找到。
其他显式或隐式定义可包括在下文中。
示例性操作环境
图1示出可在其上实现本文所描述的主题的各方面的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并非旨在对本文所描述的主题的各方面的使用范围或功能提出任何限制。也不应该将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本文所描述的主题的各方面可与众多其他通用或专用计算系统环境或配置一起操作。可适用于这里所述的主题的各方面的已知计算系统、环境或配置的例子包括个人计算机,服务器计算机,手持或膝上型设备,多处理器系统,基于微控制器的系统,机顶盒,可编程消费电子设备,网络PC,微型计算机,大型计算机,个人数字助理(PDA),游戏设备,打印机,包括机顶盒、媒体中心或其他家电的家电设备,嵌入汽车或附加到汽车的计算设备,其他移动设备,包括任何上述系统或设备的分布式计算环境等等。
本文所描述的主题的各方面可在由计算机执行的诸如程序模块等计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。本文所描述的主题的各方面也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图1,用于实现本文所描述的主题的各方面的示例性系统包括计算机110形式的通用计算设备。计算机可包括能够执行指令的任何电子设备。计算机110的组件可包括处理单元120、系统存储器130以及将包括系统存储器的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型的总线结构中的任一种,包括使用各种总线体系结构中的任一种的存储器总线或存储器控制器、外围总线、以及局域总线。作为示例,而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、也称为夹层(Mezzanine)总线的外围部件互连(PCI)总线、扩展外围部件互连(PCI-X)总线、高级图形端口(AGP)、以及PCI Express(PCIe)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,并包含易失性和非易失性介质以及可移动、不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EEPROM、闪存或其他存储器技术CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其他介质。
通信介质通常以诸如载波或其他传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并包括任何信息传送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其他无线介质。上述的任意组合也应包含在计算机可读介质的范围内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。包含诸如在启动期间帮助在计算机110内的元件之间传输信息的基本例程的基本输入/输出系统133(BIOS)通常储存在ROM131中。RAM132通常包含处理单元120可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图1示出了操作系统134、应用程序135、其他程序模块136和程序数据137。
计算机110也可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图1示出了从不可移动非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其他光学介质等可移动非易失性光盘156中读取或向其写入的光盘驱动器155。可以在该示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括磁带盒、闪存卡、数字多功能盘、其他光盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141可以通过如接口140与系统总线121相连,且磁盘驱动器151和光盘驱动器155可以用如接口150这样的可移动非易失性存储器的接口与系统总线121相连。
以上讨论并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其他程序模块146和程序数据147。注意,这些组件可与操作系统134、应用程序135、其他程序模块136和程序数据137相同,也可与它们不同。操作系统144、应用程序145、其他程序模块146和程序数据147在这里被标注了不同的附图标记是为了说明至少它们是不同的副本。
用户可以通过输入设备,如键盘162和定点设备161(通常被称为鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其他输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪、触敏屏、或写字板等。这些以及其他输入设备通常通过耦合到系统总线的用户输入接口160连接到处理单元120,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构来连接。
监视器191或其他类型的显示设备也经由诸如视频接口190之类的接口连接至系统总线121。除了监视器以外,计算机还可包括诸如扬声器197和打印机196之类的其他外围输出设备,它们可通过输出外围接口195来连接。
计算机110可使用到一个或多个远程计算机(诸如,远程计算机180)的逻辑连接而在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其他常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,但在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其他网络。这样的联网环境常见于办公室、企业范围计算机网络、内联网和因特网中。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接到LAN171。当在WAN联网环境中使用时,计算机110可包括调制解调器172或用于通过诸如因特网等WAN173来建立通信的其他装置。可为内置或可为外置的调制解调器172可以经由用户输入接口160或其他合适的机构连接至系统总线121。在联网环境中,相对于计算机110所示的程序模块或其部分可被储存在远程存储器存储设备中。作为示例而非限制,图1示出了远程应用程序185驻留在存储器设备181上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。
存储体系结构
如上所述,支持新类型的存储并将数据迁移到新类型的存储是有挑战性的。图2是概括地表示根据本文所描述主题的各方面的环境的框图。图2中示出的组件是示例性的且不意味着包括一切的可能需要或包括的组件。在其他实施例中,结合图2描述的组件可被包括在其他组件(示出或未示出)中或者被放置在子组件中而不背离本文所描述的主题的各方面的精神或范围。在某些实施例中,结合图2所描述的组件和/或功能可跨多个设备地分布。
转向图2,环境200包括数据源205、源读取器210、存储系统215,并且还可包括其他组件(未示出)。数据源205、源读取器210、以及存储系统215中的每一个可由一个或多个组件来实现。如本文所使用的,术语组件要被当作包括硬件,例如,设备的全部或一部分、一个或多个软件模块或其部分的集合、一个或多个软件模块或其部分与一个或多个设备或其部分的某种组合等等。
组件可包括代码或可由代码表示。代码包括指示计算机要采取的动作的指令。代码还可包括除了计算机要采取的动作之外的信息,如数据、资源、变量、定义、关系、关联等等。
组件可由一个或多个计算设备来托管。这些设备可包括,例如,个人计算机,服务器计算机,手持式或膝上型设备,多处理器系统,基于微控制器的系统,机顶盒,可编程消费电子产品,网络PC,小型计算机,大型计算机,蜂窝电话,个人数字助理(PDA),游戏设备,打印机,包括机顶盒、媒体中心或其他电器在内的电器,汽车嵌入式或附连的计算设备,其他移动设备,包括以上系统或设备中的任一种的分布式计算环境等。可被配置成系统200的各组件中的一个或多个组件的示例性设备包括图1的计算机110。
数据源205、源读取器210、以及存储系统215(此后有时称为组件)可定位得彼此相对近,或可分开巨大的距离并可经由各种通信链路彼此连接。各组件之间可采用的一些示例性通信链路包括无线连接、有线连接、以及上述其他通信介质。通信链路可以形成一个或多个网络,包括局域网、办公室间网络、因特网等。
在一个实施例中,数据源205可包括负责对一个或多个存储设备上托管的数据集进行备份的备份应用。数据源205可用于从数据集读取数据并将这一数据提供给源读取器210。术语“数据”要被宽泛地看作包括可由一个或多个计算机存储元素表示的任何东西。逻辑上,数据可被表示成易失性或非易失性存储器中的一系列1和0。在具有非二进制存储介质的计算机中,数据可根据存储介质的能力来表示。数据可被组织成不同类型的数据结构,包括诸如数字、字母等之类的简单数据类型,分层、链接或其他相关数据类型、包括多个其他数据结构或简单数据类型的数据结构等等。数据的某些例子包括信息、程序代码、程序状态、程序数据、其他数据等等。
当数据源205想要获得来自先前已备份的数据集的数据时,数据源205可向源读取器210请求该数据,源读取器210随后可从存储系统215获得该数据。
存储系统215是可被用来存储数据的数据存储。存储系统215可由一个或多个存储设备来实现,包括例如硬盘、磁带设备、光学存储设备、闪存、诸如RAM等易失性存储设备、云存储、其他存储设备等。存储系统215可支持具有语义的存储操作,包括CreateEntity(创建实体)、WriteData(实体Id,数据,偏移量)(写入数据)、ReadData(实体Id,偏移量,长度)(读取数据)、DeleteEntity(实体Id)(删除实体)等等。
源读取器210可从数据源205接收数据并且可按使得更易于对该数据执行各种转换的方式将该数据进行封装。在一个实施例中,源读取器210可被实现在托管数据源205的计算机的软件存储栈中。在数据源205沿存储栈向下发送数据时,源读取器210可获得该数据,将该数据置于数据结构中,并将该数据提供给存储系统215。
在一个实施例中,源读取器210可以使用图3所示的格式。图3是示出根据本文所描述的主题的各方面的示例性虚拟存储格式的框图。如图所示,格式300包括块地址转换表305、文件系统元数据部分310以及数据部分315。
块地址转换表305(本文中有时称为BAT305)可将文件系统卷的各块映射到存储设备的物理地址。使用这一映射,BAT305可以指示该卷的数据在何处或会被储存在存储设备上的何处。
上文使用了词语“会”,因为如果数据已被储存在存储设备上,则该数据会被储存在那里。然而,驻留在存储栈中的源读取器可将数据直接沿存储栈向下发送到外部存储系统,来代替将卷的数据储存在本地存储设备的物理地址空间中。源读取器可以使用该卷的目的地偏移量和BAT305来确定物理地址,但可将该数据发送到外部系统存储而非本地存储设备。
发送该数据的应用(例如,备份应用)可能不知道该数据被储存在何处。从该应用的观点看,该数据通过与该数据相关联的地址,如卷偏移量,被发送到存储栈组件。诸如源读取器等驻留在该栈中的组件可将该数据流传输到远程存储系统以代替将该数据存储栈本地存储上。如以下更详细地描述的,源读取器可将虚拟存储地址空间划分成组块,并在将该数据按经转换的方式发送给远程存储系统之前执行或使得执行各转换,如去重复、压缩、加密等。与划分、转换、以及映射有关的数据也可被存储,使得在应用(使用卷偏移量)请求该数据时,该数据可从外部存储系统被检索、逆转换、并按需组合。
在源读取器接收到写入数据的请求时,源读取器可确定虚拟地址空间的各组块中的对应于数据源所提供的地址的一个或多个组块。源读取器可基于逻辑地址(例如,经由BAT索引来确定)和数据的长度来作出这一确定。例如,对于32千字节的数据和64千字节的地址,源读取器可以使用BAT通过将地址(64K)除以组块大小(64K)并加1(假定起始组块是1而非0)来确定这一数据影响虚拟地址空间的组块2。在组块2已充满或以其他方式被传送时,源读取器可将该组块中的数据流传输到存储系统并维护将该组块映射到存储系统的存储标识符的数据结构(下文更详细地描述)。
文件系统元数据部分310可包括关于数据315的元数据。例如,文件系统元数据310可包括文件和目录属性、扩展数据、安全数据、访问数据、位置信息、关系数据等。
数据部分315可包括文件系统的各文件系统对象的内容。文件系统对象可包括目录、文件、或一些其他文件系统对象。文件系统对象在本文中有时被简称为对象。
图4是示出根据本文所描述主题的各方面的各特征的框图。图3的块地址转换表305、文件系统元数据部分310以及数据部分315已被复制在图4中。
结合存储虚拟硬盘驱动器的数据,源读取器可执行各种动作。例如,如在部分405所示,源读取器可将虚拟硬盘驱动器的虚拟地址存储空间划分成固定大小的组块。图4中示出的组块大小是64千字节,但组块大小可以更大或更小而不背离本文描述的主题的各方面的精神和范围。
在实践中,组块大小可被选择成足够大以能用于进一步转换,如去重复转换、压缩转换、加密转换等等。一些转换可例如将组块划分成更小的组块。
组块可具有虚拟存储(VS)格式的块大小的多倍的大小。例如,VS格式可具有4千字节块大小,而组块大小可以是64千字节。
表可被用来在组块与存储系统之间进行映射。在一个实施例中,表可将一个或多个VS地址的范围映射到一个或多个存储标识符的范围。以下是在VS块与存储标识符之间进行映射的示例性表:
VS偏移量 存储标识符
0-15 标识符1
16-31 标识符2
1024-1039 标识符N
存储标识符是可被用来标识存储系统上的数据的标识符(例如,数字、串等)。例如,在存储系统对卷进行建模时,标识符可表示该卷中的偏移量。作为另一示例,存储系统可以使用该标识符作为表或其他数据结构中的键。在该示例中,标识符可被用来在表中查找存储设备标识符、卷标识符、以及与关联于该标识符的数据相对应的地址范围。这一信息随后可被用来从存储系统的存储设备获得数据。
虽然在上文中已经提到表作为一种VS的各组块可被映射到存储系统上的数据的机制,基于本文的教导,本领域技术人员将理解,其他数据结构可被用来执行这一映射。例如,列表、分层数据结构、另一数据结构等可被用来执行这一映射。术语表一般被用来指示可被用来执行这一映射的传统表或任何其他数据结构。
在一个实施例中,表可被用来将部分405处的各组块映射到BAT表305中包括的VS偏移量。在这一实施例中,将部分405的各块划分成部分410中示出的更小的块的转换组件负责维护与这些更小的组块有关的数据,以使得转换组件可在需要时执行逆转换。
在另一实施例中,表可被用来将部分410处的各组块映射到BAT表305中包括的VS偏移量。在这一实施例中,表可被用来在存储系统中定位这些更小的块。
部分405的一个块可被划分成部分410的更小的块以用于去重复转换。在去重复算法中,重复数据可在存储系统上只被存储一次。例如,如果数据在从块403创建的各块中的两个或更多个之间是重复的,则该数据的单个实例可连同指示数据的这一重复的信息一起被储存在存储系统上。在根据该单个实例重构块时,该信息可被用来将该单个实例复制到最初在其中发现它的多个块中。
在部分415,诸如压缩算法等转换可被应用于各块以按需压缩数据。在部分420,诸如加密算法等转换可被应用于各块以按需加密数据。
在部分410、415以及420处的转换中的一个或多个可在该数据被发送到存储系统之前或之后应用。例如,源读取器可只将部分405处的块传送到存储系统并且允许存储系统按需去重复、压缩以及加密各块。作为另一示例,在将经转换的数据发送到存储系统之前,源读取器可去重复、压缩以及加密各块。从源读取器的观点看,所需要的是一种能存储数据并使用标识符检索该数据的存储系统。
基于以上描述,增量备份可被以高效的方式来存储。如果VS的数据变化,包括该数据的组块以及描述该变化的元数据可被发送到存储系统,以代替重新发送VS的整个数据。
对所保存的数据的检索也可高效且在粗或细粒度的情况下执行。例如,如果需要单个项,则备份应用可使用地址范围来请求该单个项。源读取器可将与该单个项相关联的VS地址转换成一个或多个块,并从存储系统获得该一个或多个块。源读取器随后可应用逆转换(如果需要的话),并且将该数据返回给备份应用,备份应用随后可将该项提供给请求者。
维护备份集合也可高效地执行。在一些备份方案中,维护数据集的祖-父-子模式是合乎需要的。祖-父-子模式的示例是在存储系统上存储上个月的每星期备份、上个星期的每天备份、以及上一天的每小时备份。基于上述机制,该数据可被如下备份:首先发送该数据的完整副本并随后只发送经改变的块给存储系统以用于每一时间点备份。
在不再需要备份集合时,来自该备份集合的数据可逻辑上与稍后的备份集合的数据归并在一起。这可通过删除不再需要的块并按需改变元数据来完成。
例如,第一备份集合可包括由标识符A、B、C以及D标识的块。块B和D中的数据可改变并且分别由B’和D’表示。B’和D’所表示的块随后可被复制到存储系统以创建第二备份集合。随后,在不再需要该第一备份集合时,B和D可被删除并且元数据可被改变以指示A和C属于第二备份集合。
在一些实现中,在将数据315中的任何数据发送给存储系统之前,文件系统元数据310可被生成并被发送到存储系统。在这些实现中,数据可被恢复,即使只执行了数据的部分备份。为此,元数据可从存储系统被检索并被用来找出在该部分备份中实际上使得其抵达存储系统的任何数据。元数据可指示数据的位置,它随后可被用来从存储系统检索各块(如果它们存在的话)。以此方式,即使数据只是部分地使得其抵达存储系统,确实使得其抵达的数据也可被恢复。
图5-6是概括地表示根据本文所描述的主题的各方面的可发生的示例性动作的流程图。为解释简明起见,结合图5-6描述的方法被描绘和描述为一系列动作。可以理解和明白,此处所描述的主题的各方面不受所示出的各动作和/或各动作次序的限制。在一个实施例中,各动作以如下描述的次序发生。然而,在其它实施例中,各动作可以并行地发生、以另一次序发生、和/或与此处未呈现和描述的其它动作一起发生。此外,并非所有示出的动作都是实现根据此处所描述的主题的各方面的方法所必需的。另外,本领域的技术人员将了解和明白,该方法也可以替代地经由状态图而被表示为一系列相互关联的状态或者被表示为事件。
转向图5,在框505处,动作开始。在框510,接收虚拟存储地址空间的指示。例如,参考图2,数据源205可指示它需要特定的空间量来备份一数据集。作为响应,源读取器210可创建虚拟存储并为该虚拟存储分配稀疏文件。源读取器210随后可查询文件系统以获得与该文件相关联的虚拟存储地址空间的指示。作为响应,源读取器210可接收与虚拟存储地址空间相对应的物理地址范围。
在框515,地址空间被划分成各个组块。例如,参考图2和4,源读取器210可将地址空间划分成部分405中示出的固定大小的组块。
在框520,从数据源接收数据。例如,参考图2,源读取器210可从数据源205接收数据。在框520,与该数据相关联的地址信息也可被接收。这一地址信息可与该数据一起传达或可在另一消息中接收。例如,参考图2,源读取器210可从数据源205接收卷偏移量。作为另一示例,源读取器210可接收与该数据相关联的虚拟存储地址范围。作为又一示例,源读取器210可接收该数据的虚拟存储偏移量和长度。
在框525,确定与该数据相关联的组块。确定组块可涉及使用BAT305来获得虚拟存储的逻辑地址并随后将该逻辑地址除以组块的大小,如上所述。
在框530,按需转换组块。这可包括在执行转换(如去重复、压缩、加密、或某一其他转换)之前如上所述地将组块进一步划分成更小组块。
在框535,将对应于该组块的数据提供给存储系统。例如,参考图2和4,源读取器210可以将与块403相对应的数据提供给存储系统215。该数据可作为更小组块的集合或作为单个组块来提供。
在框540,更新映射数据结构以从地址信息映射到向存储系统标识该组块的标识符。例如,参考图2,源读取器210可更新表的具有存储地址范围(例如,虚拟存储中的偏移量)的第一字段和存储可被用来从存储系统中检索该数据的标识符的第二字段的一行。这一标识符也可例如是地址范围、串、数字等,如上所述。
在框545处,可以执行其他动作(如果有的话)。其他动作可包括例如备份维护动作。例如,通过向存储系统发送删除第一备份集合的一个或多个块的消息并向存储系统发送指示第一备份集合的各块中的其他块要被包括在第二备份集合中的元数据,第一备份集合可与储存在该存储上的第二备份集合归并。
转向图6,在框605处,动作开始。在框610,从请求者接收对储存在存储系统上的数据的请求。例如,参考图2,源读取器210可从数据源205接收对存储系统215上的数据的请求。
在框615,可接收该数据的地址。例如,参考图2,源读取器210可从数据源205接收该数据的地址。该数据的地址可与对该数据的请求一起或分开接收。例如,该数据的地址可在与传达对该数据的请求的不同消息或同一消息中接收。
该数据的地址指示请求者与该数据相关联的存储位置。例如,数据源205可将卷偏移量与该数据相关联。虽然该数据可能实际上没有储存在该卷偏移量处,但这是请求者与该数据相关联的存储位置。
在框620,基于第一地址和映射数据结构来确定逻辑存储偏移量。例如,参考图2和4,源读取器210可以使用BAT305和它接收到的地址来确定图4中表示的虚拟存储的逻辑存储偏移量。如图4所示,虚拟存储的这一虚拟存储地址空间被划分成各组块。这些组块经由诸如表等数据结构被映射到存储系统的各存储位置。该数据结构提供请求者所识别的地址空间与虚拟存储地址空间之间的映射信息。
在框625,确定物理存储位置。例如,参考图2和4,源读取器210可将块403映射到可被用来从存储系统215检索块403的数据的标识符。
在框630,使用上述标识符从存储系统检索对应于所请求的数据的数据(例如,至少一个组块)。
在框635,转换数据。例如,参考图2和4,源读取器210和/或存储系统215可执行与部分420、415以及410相对应的逆转换。例如,源读取器210和/或存储系统215可解密该数据、解压该数据、逆转先前应用于该数据的去重复、或执行一个或多个其他转换。
在一个实施例中,该数据可在由存储系统传送之前被转换。在另一实施例中,该数据可在由存储系统传送之后被转换。在又一实施例中,该数据可在由存储系统传送之前经历一个或多个转换并在由存储系统传送之后经历一个或多个转换。
在框640处,将数据提供给请求者。例如,参考图2,源读取器210可将数据提供给数据源205。
在框645处,可以执行其他动作(如果有的话)。
如从上述详细描述中可以看到,已经描述了关于存储体系结构的各方面。尽管本文所描述的主题的各方面易于作出各种修改和替换构造,但其某些说明性实施例在附图中示出并在上面被详细地描述。然而,应当理解,并不旨在将所要求保护主题的各方面限制于所公开的具体形式,而是相反地,目的是要覆盖落入本文所描述的主题的各方面的精神和范围之内的所有修改、替换构造和等效方案。

Claims (10)

1.一种至少部分地由计算机实现的方法,所述方法包括:
接收虚拟存储地址空间的指示;
将所述虚拟存储地址空间划分成固定大小的各组块;
从数据源接收数据;
接收与所述数据相关联的地址信息;
基于所述地址信息确定所述组块中的至少一个;
将与所述组块中的所述至少一个组块相对应的数据提供给存储系统;以及
更新数据结构以从所述地址信息映射到向所述存储系统标识所述组块中的所述至少一个组块的标识符。
2.如权利要求1所述的方法,其特征在于,接收虚拟存储地址空间的指示包括接收与所述虚拟存储地址空间相对应的地址范围。
3.如权利要求2所述的方法,其特征在于,更新数据结构以从所述地址映射到标识符包括更新表的一行的第一字段和第二字段,所述更新第一字段包括将所述地址范围储存在所述第一字段中,所述更新第二字段包括将与所述存储系统的所述数据储存在其中或将要储存在其中的存储相对应的第二地址范围置于所述第二字段中,所述第二地址范围对应于所述标识符。
4.如权利要求1所述的方法,其特征在于,还包括生成与包括所述组块中的所述至少一个组块的备份数据集有关的元数据,并在发送所述组块中的所述至少一个之前将所述元数据提供给所述存储系统,所述元数据指示所述组块中的所述至少一个的位置,即使所述备份数据集的其他数据没有储存在所述存储系统上,所述元数据也能用于从所述备份数据集获得所述至少一个组块。
5.如权利要求1所述的方法,其特征在于,还包括通过向所述存储系统发送删除储存在所述存储系统上的第一备份集合的一个或多个块的消息并向所述存储系统发送指示所述第一备份集合的各块中的其他块要被包括在储存在所述存储系统上的第二备份集合中的元数据,归并所述第一备份集合和所述第二备份集合。
6.一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在被执行时执行以下动作,包括:
从请求者接收对储存在存储系统上的数据的请求;
接收所述数据的第一地址,所述第一地址在第一地址空间中,所述第一地址指示所述请求者与所述数据相关联的存储位置;
基于所述第一地址和一数据结构来确定第二地址,所述第二地址指示被划分成各组块的虚拟存储地址空间的逻辑存储偏移量,所述组块被映射到所述存储系统的各存储位置,所述数据结构提供所述第一地址空间和所述虚拟存储地址空间之间的映射信息;
将所述第二地址映射到第三地址,所述第三地址标识所述组块中的与所述存储系统上的数据相对应的至少一个组块的存储位置;
使用所述第三地址来从所述存储系统中检索所述组块中的所述至少一个组块;以及
将所述数据提供给所述请求者。
7.一种在计算环境中的系统,包括:
能用于向源读取器提供数据的数据源,所述数据源还能用于向所述源读取器提供所述数据源与所述数据相关联的第一地址;以及
所述源读取器,所述源读取器能用于创建虚拟存储地址空间以及将所述虚拟存储地址空间划分成固定大小的组块,所述源读取器还能用于基于所述第一地址和所述数据的长度来确定所述组块中的至少一个组块,所述源读取器还能用于将所述组块中的与所述数据相对应的至少一个组块流传输到存储系统,所述源读取器还能用于维护将所述组块中的所述至少一个组块映射到所述存储系统的存储标识符的数据结构。
8.如权利要求7所述的系统,其特征在于,所述源读取器还能用于将固定大小的组块划分成更小的组块,以准备使用这些更小的组块来执行去重复转换。
9.如权利要求7所述的系统,其特征在于,所述源读取器还能用于在将所述组块中的所述至少一个组块流传输到所述存储系统之前压缩所述组块中的所述至少一个组块。
10.如权利要求7所述的系统,其特征在于,所述源读取器还能用于在将所述组块中的所述至少一个组块流传输到所述存储系统之前加密所述组块中的所述至少一个组块。
CN201280027956.XA 2011-06-08 2012-05-29 用于备份应用的存储体系结构 Active CN103608783B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/155,401 US8868882B2 (en) 2011-06-08 2011-06-08 Storage architecture for backup application
US13/155,401 2011-06-08
PCT/US2012/039881 WO2012170235A2 (en) 2011-06-08 2012-05-29 Storage architecture for backup application

Publications (2)

Publication Number Publication Date
CN103608783A true CN103608783A (zh) 2014-02-26
CN103608783B CN103608783B (zh) 2017-08-08

Family

ID=47294160

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280027956.XA Active CN103608783B (zh) 2011-06-08 2012-05-29 用于备份应用的存储体系结构

Country Status (5)

Country Link
US (1) US8868882B2 (zh)
EP (1) EP2718825A4 (zh)
CN (1) CN103608783B (zh)
TW (1) TWI544333B (zh)
WO (1) WO2012170235A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108271420A (zh) * 2016-11-02 2018-07-10 华为技术有限公司 管理文件的方法、文件系统和服务器系统
US10152233B2 (en) 2014-08-12 2018-12-11 Huawei Technologies Co., Ltd. File management method, distributed storage system, and management node

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101973510B1 (ko) * 2011-06-30 2019-05-09 삼성전자주식회사 컨텐츠를 보호하기 위한 저장 장치 및 호스트 장치와 그 방법
CN103577281A (zh) * 2012-07-30 2014-02-12 北京网秦天下科技有限公司 一种数据恢复的方法和系统
CN103577280A (zh) * 2012-07-30 2014-02-12 北京网秦天下科技有限公司 一种数据备份的方法和系统
US10031961B1 (en) * 2013-06-20 2018-07-24 Ca, Inc. Systems and methods for data replication
CN104426971B (zh) * 2013-08-30 2017-11-17 华为技术有限公司 一种远程内存交换分区方法、装置及系统
JP6338257B2 (ja) * 2013-12-31 2018-06-06 華為技術有限公司Huawei Technologies Co.,Ltd. ネットワーク要素データアクセス方法および装置、およびネットワーク管理システム
US9626367B1 (en) * 2014-06-18 2017-04-18 Veritas Technologies Llc Managing a backup procedure
CN114356651A (zh) 2015-05-27 2022-04-15 谷歌有限责任公司 用于移动设备上的自动基于云的全数据备份和恢复的系统和方法
DE102015114544A1 (de) * 2015-08-31 2017-03-02 Uniscon Universal Identity Control Gmbh Verfahren zum sicheren und effizienten Zugriff auf Verbindungsdaten
US10742720B2 (en) * 2016-02-29 2020-08-11 Seagate Technology Llc Cloud storage accelerator
US10809920B1 (en) 2016-12-20 2020-10-20 Amazon Technologies, Inc. Block store management for remote storage systems
US11507283B1 (en) * 2016-12-20 2022-11-22 Amazon Technologies, Inc. Enabling host computer systems to access logical volumes by dynamic updates to data structure rules
US10185507B1 (en) * 2016-12-20 2019-01-22 Amazon Technologies, Inc. Stateless block store manager volume reconstruction
US10268593B1 (en) 2016-12-20 2019-04-23 Amazon Technologies, Inc. Block store managamement using a virtual computing system service
US10921991B1 (en) * 2016-12-20 2021-02-16 Amazon Technologies, Inc. Rule invalidation for a block store management system
US10701153B1 (en) * 2017-04-30 2020-06-30 EMC IP Holding Company LLC Cloud data archiving using latest snapshot metadata
JP2019159791A (ja) * 2018-03-13 2019-09-19 東芝メモリ株式会社 メモリシステム
CN111566622B (zh) * 2018-07-06 2023-11-10 华为技术有限公司 一种文件系统调整方法及设备
CN109947469B (zh) * 2019-03-08 2021-09-17 广州安加互联科技有限公司 地址划分方法、装置及计算机可读存储介质
CN114461762A (zh) * 2022-04-08 2022-05-10 深圳市科力锐科技有限公司 档案变更识别方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517906A (zh) * 2003-01-14 2004-08-04 联想(北京)有限公司 文件系统及文件管理方法
US20090150641A1 (en) * 2007-12-06 2009-06-11 David Flynn Apparatus, system, and method for efficient mapping of virtual and physical addresses
CN101876949A (zh) * 2009-11-30 2010-11-03 威盛电子股份有限公司 数据储存系统与方法
US20110107052A1 (en) * 2009-10-30 2011-05-05 Senthilkumar Narayanasamy Virtual Disk Mapping

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6880053B2 (en) 2002-12-19 2005-04-12 Veritas Operating Corporation Instant refresh of a data volume copy
US7584266B2 (en) 2003-12-16 2009-09-01 International Business Machines Corporation Autonomous storage for backup, restore, and file access
US7478101B1 (en) 2003-12-23 2009-01-13 Networks Appliance, Inc. System-independent data format in a mirrored storage system environment and method for using the same
US7415577B2 (en) * 2004-03-10 2008-08-19 Intel Corporation Method and apparatus to write back data
US7676502B2 (en) 2006-05-22 2010-03-09 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US7506010B2 (en) 2005-02-08 2009-03-17 Pro Softnet Corporation Storing and retrieving computer data files using an encrypted network drive file system
US8370819B2 (en) 2005-03-25 2013-02-05 Microsoft Corporation Mechanism to store information describing a virtual machine in a virtual disk image
US8321377B2 (en) 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US7613750B2 (en) 2006-05-29 2009-11-03 Microsoft Corporation Creating frequent application-consistent backups efficiently
US8069341B2 (en) 2007-06-29 2011-11-29 Microsoft Corporation Unified provisioning of physical and virtual images
US7962452B2 (en) * 2007-12-28 2011-06-14 International Business Machines Corporation Data deduplication by separating data from meta data
US7792934B2 (en) 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
US8312217B2 (en) 2008-12-30 2012-11-13 Rasilient Systems, Inc. Methods and systems for storing data blocks of multi-streams and multi-user applications
US9098207B2 (en) 2009-03-25 2015-08-04 International Business Machines Corporation Transforming logical data objected for storage includes identifying multiple write request to the same logical object and grouping transformed data chunks
US8682862B2 (en) 2009-04-10 2014-03-25 Phd Virtual Technologies Inc. Virtual machine file-level restoration
KR101674015B1 (ko) * 2009-06-23 2016-11-08 시게이트 테크놀로지 엘엘씨 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
US20100332549A1 (en) 2009-06-26 2010-12-30 Microsoft Corporation Recipes for rebuilding files
US9058298B2 (en) * 2009-07-16 2015-06-16 International Business Machines Corporation Integrated approach for deduplicating data in a distributed environment that involves a source and a target
US9122579B2 (en) * 2010-01-06 2015-09-01 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for a storage layer
US8856080B2 (en) 2009-10-30 2014-10-07 Microsoft Corporation Backup using metadata virtual hard drive and differential virtual hard drive

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1517906A (zh) * 2003-01-14 2004-08-04 联想(北京)有限公司 文件系统及文件管理方法
US20090150641A1 (en) * 2007-12-06 2009-06-11 David Flynn Apparatus, system, and method for efficient mapping of virtual and physical addresses
US20110107052A1 (en) * 2009-10-30 2011-05-05 Senthilkumar Narayanasamy Virtual Disk Mapping
CN101876949A (zh) * 2009-11-30 2010-11-03 威盛电子股份有限公司 数据储存系统与方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10152233B2 (en) 2014-08-12 2018-12-11 Huawei Technologies Co., Ltd. File management method, distributed storage system, and management node
US11029848B2 (en) 2014-08-12 2021-06-08 Huawei Technologies Co., Ltd. File management method, distributed storage system, and management node
US11656763B2 (en) 2014-08-12 2023-05-23 Huawei Technologies Co., Ltd. File management method, distributed storage system, and management node
CN108271420A (zh) * 2016-11-02 2018-07-10 华为技术有限公司 管理文件的方法、文件系统和服务器系统
CN108271420B (zh) * 2016-11-02 2020-11-27 华为技术有限公司 管理文件的方法、文件系统和服务器系统

Also Published As

Publication number Publication date
TW201303589A (zh) 2013-01-16
EP2718825A4 (en) 2014-11-26
US8868882B2 (en) 2014-10-21
EP2718825A2 (en) 2014-04-16
CN103608783B (zh) 2017-08-08
TWI544333B (zh) 2016-08-01
US20120317379A1 (en) 2012-12-13
WO2012170235A2 (en) 2012-12-13
WO2012170235A3 (en) 2013-02-28

Similar Documents

Publication Publication Date Title
CN103608783A (zh) 用于备份应用的存储体系结构
JP6373328B2 (ja) メモリ管理での重複排除のための参照ブロックの参照セットへの集約
CN103098035B (zh) 存储系统
US10430398B2 (en) Data storage system having mutable objects incorporating time
US20200142607A1 (en) Efficient data management through compressed data interfaces
US11093387B1 (en) Garbage collection based on transmission object models
US11188499B2 (en) Storing and retrieving restricted datasets to and from a cloud network with non-restricted datasets
US8924353B1 (en) Systems and methods for copying database files
US10972569B2 (en) Apparatus, method, and computer program product for heterogenous compression of data streams
CN104281533A (zh) 一种存储数据的方法及装置
US11803309B2 (en) Selective compression and encryption for data replication
CN102737205B (zh) 保护包括可编辑元数据的文件
CN104169902A (zh) 同步本地和远程数据
US9020902B1 (en) Reducing head and tail duplication in stored data
CN110019056B (zh) 用于云层的容器元数据分离
CN103403713A (zh) 文件系统中的文件变体
US20230188162A1 (en) Quantum data compression
US20140215209A1 (en) Enterprise distributed free space file system
US9898485B2 (en) Dynamic context-based data protection and distribution
JP5972455B2 (ja) 情報を削除する方法
US10540329B2 (en) Dynamic data protection and distribution responsive to external information sources
US20130218851A1 (en) Storage system, data management device, method and program
US11645333B1 (en) Garbage collection integrated with physical file verification
US11204845B2 (en) Workload coordination on disaster recovery site
US11314604B2 (en) Workload coordination on disaster recovery site

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

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

Effective date of registration: 20150728

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

GR01 Patent grant
GR01 Patent grant