CN104769555A - 增强型数据管理虚拟化系统 - Google Patents

增强型数据管理虚拟化系统 Download PDF

Info

Publication number
CN104769555A
CN104769555A CN201380043915.4A CN201380043915A CN104769555A CN 104769555 A CN104769555 A CN 104769555A CN 201380043915 A CN201380043915 A CN 201380043915A CN 104769555 A CN104769555 A CN 104769555A
Authority
CN
China
Prior art keywords
data
service
backup
hash
computing equipment
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
CN201380043915.4A
Other languages
English (en)
Inventor
马达夫·穆塔利克
安库尔·巴尔加瓦
陈永民
布莱恩·格鲁斯
艾伦·波特
克里斯多夫·A·普罗文扎诺
肖恩·B·沃尔特
马克·L·伍德沃德
张祥东
乌代·特卡德
萨钦德拉·库马尔
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.)
Eckert Fei Ou Co Ltd
Actifio Inc
Original Assignee
Eckert Fei Ou Co 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=49756844&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN104769555(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Eckert Fei Ou Co Ltd filed Critical Eckert Fei Ou Co Ltd
Publication of CN104769555A publication Critical patent/CN104769555A/zh
Pending legal-status Critical Current

Links

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
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • 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/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0617Improving the reliability of storage systems in relation to availability
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了用于以减少数据的冗余复制的方式同步操作数据记录的系统和方法。存储了操作数据记录集合,其中,每个数据记录基于所述数据记录的创建时间按照升序分配唯一ID。从操作数据记录集合中的操作数据集合中识别最高的唯一ID。识别公差号,所述公差号指出能够同时处理的唯一ID的范围,使得不能够保证由小于所述公差号分开的具有唯一ID的操作数据记录被分配唯一ID,以创建操作数据记录。计算同时ID,所述同时ID包括将公差号从所述最高唯一ID中减去。将所述同时ID传输到所述源操作数据存储。

Description

增强型数据管理虚拟化系统
背景技术
对管理应用数据的生命周期的商业要求在传统上通过使用多点解决方案来满足,其中每个解决方案处理生命周期的一部分。这导致复杂和昂贵的基础设施,其中数据的多个拷贝被创建和多次移动到对单独的存储库。服务器虚拟化的采用变成对简单、灵活和低成本计算机基础设施的促进因素。这导致虚拟主机和存储器的较大部署,进一步加重了新兴的计算机模型和当前的数据管理实现之间的差距。
提供商业服务的应用取决于在数据的生命周期的各种阶段的商业服务的数据的存储。图1示出数据管理操作的一般集合,其将应用于应用的数据例如在商业服务例如工资表管理之下的数据库。为了提供商业服务,应用102需要具有某个缩小水平的可靠性和可用性的主数据存储器122。
备份104被制作以防止恶化或主数据存储器通过硬件或软件的故障或人为误差。一般,备份可每日或每星期被制作到本地磁盘或磁带124,并较不频繁地(每周或每月)移动到在物理上远程的安全位置125。
基于同一数据库的新应用的同时开发和测试106需要开发团队以访问数据126的另一拷贝。这样的快照可每周被制作,取决于开发计划。
与合法或自愿策略的符合性108可能要求一些数据被保留用于在一些年的安全的未来访问;通常,数据被有规律地(比如,每月)拷贝到长期存档系统128。
如果提供主商业服务的系统由于某个物理灾难而失灵,则灾难恢复服务110防止数据的灾难性损失。给出其它约束(例如成本),主数据被合理地频繁地拷贝(130)到物理上不同的位置。在灾难的情况下,主站点可被重建,且数据从安全拷贝移动回。
如果主站点被损坏,则商业连续性服务112提供用于确保连续的商业服务的设施。通常这需要与主数据步调几乎一致的主数据的热拷贝132,以及用于将进入的请求切换到商业连续性服务器的复制系统和应用以及机构。
因此,数据管理当前是管理生命周期的不同部分的点应用的集合。这是在最近二十年中数据管理解决方案的发展的人为现象。
发明内容
根据本公开的主题,提供了用于增强型数据管理虚拟化系统的系统、方法和非暂时计算机可读介质。
所公开的主题包括一种用于以减少在同步期间数据的冗余拷贝的方式而同步在数据管理操作期间生成的操作数据记录的方法。所述方法包括:由中央操作数据存储来存储操作数据记录集合,其中,每个数据记录基于所述数据记录的创建时间按照升序分配唯一识别符(ID)。所述方法包括:由所述中央操作数据存储从操作数据记录集合中的操作数据记录中识别最高唯一ID。所述方法包括:由所述中央操作数据存储识别公差号,所述公差号指示出能够被同时处理的唯一ID的范围,使得不能够保证具有由小于所述公差号分开的唯一ID的操作数据记录被分配唯一ID以便于该操作数据记录被创建。所述方法包括:由所述中央操作数据存储计算同步ID,所述同步ID包括将公差号从所述最高唯一ID中减去。所述方法包括:由所述中央操作数据存储将所述同步ID传输到所述源操作数据存储,以指示所述源操作数据存储传输在具有大于所述同步ID的唯一ID的所述源操作数据存储处存储的任何操作数据记录。
在一些实施例中,从所述操作数据记录集合中识别唯一ID集合,其中,唯一ID集合中的每个唯一ID处于所述最高唯一ID和所述同步ID之间,并且传输唯一ID集合到所述源操作数据存储,以指示所述源操作数据存储不传输具有所述唯一ID集合的操作数据记录。可以传输所述最高唯一ID到所述源操作数据存储,以指示所述源操作数据存储不传输具有最高唯一ID的操作数据记录。
在一些实施例中,基于允许的并发事务的数量以及最大延迟来计算所述公差号。可以使并发事务的数量加倍。每个唯一ID可以为单调增加的唯一ID。所述操作数据记录集合可以为较大的操作数据记录集合,包括超过100000个操作数据记录;并且所述操作数据记录集合中的数据记录一旦创建就不会改变。
所公开的主题包括一种用于以减少在同步期间数据的冗余拷贝的方式而同步在数据管理操作期间生成的操作数据记录的方法。所述方法包括:由中央操作数据存储来存储操作数据记录集合,其中,每个数据记录基于所述数据记录的创建时间或修改时间被分配一个时间戳。所述方法包括:由所述中央操作数据存储从源操作数据存储中识别操作数据记录集合的最后备份时间。所述方法包括:由所述中央操作数据存储基于经过时间来计算公差号,所述公差号指示出能够被同时处理的时间戳的范围,使得不能够保证具有由小于所述公差号分开的时间戳的操作数据记录被分配时间戳以便于该操作数据记录被创建、修改、或者创建且修改。所述方法包括:由所述中央操作数据存储计算同步时间戳,所述同步时间戳包括将所述公差号从所述最后备份时间中减去。所述方法包括:由所述中央操作数据存储将所述同步时间戳传输到所述源操作数据存储,以指示所述源操作数据存储传输在具有大于所述同步时间戳的时间戳的所述源操作数据存储处存储的任何操作数据记录。
在一些实施例中,接收回复,所述回复包括:操作数据记录集合,其中每个操作数据记录具有在所述同步时间戳之后发生的时间戳;以及由所述源操作数据存储来存储的每个数据记录的唯一ID列表。可以删除具有不处于唯一ID列表中的唯一ID的所述操作数据记录集合中的任何操作数据记录。所述操作数据记录集合可以为中间的操作数据记录集合,包括超过1000个操作数据记录但小于100000个操作数据记录。
所公开的主题包括一种用于在去重数据存储中高速缓冲用于被去重数据的哈希的计算机化方法,其中,数据使用包括哈希集合的保留报头来存储,其中,哈希集合中的每个哈希表示在保留报头之后的去重数据存储中存储的、与由哈希集合中的剩余哈希表示的其它数据同地的数据。所述计算机化方法包括:由计算设备接收请求,以读取来自所述去重数据存储的数据。所述计算机化方法包括:由所述计算设备在没有存储在所述计算设备的存储器中存储的第一哈希结构中识别在去重数据存储中存储的保留报头。所述保留报头包括哈希集合,哈希集合包括指示出所述计算设备请求读取的数据的哈希。哈希集合中的每个哈希表示在保留报头之后的去重数据存储中存储的、与由哈希集合中的剩余哈希表示的其它数据同地的数据。所述计算机化方法包括:由所述计算设备来高速缓冲在所述计算设备的存储器中存储的第二哈希结构中的哈希集合,借此如果所述计算设备请求读取额外的数据,则如果所述额外数据由所述保留报头表示,那么计算设备能够使用第二哈希结构来识别额外的数据。
在一些实施例中,高速缓冲在所述计算设备的存储器中存储的所述第二哈希结构中的哈希集合包括:基于所述保留报头来存储哈希表中的哈希表结构。所述哈希表结构可以包括:包括所述数据的哈希的一部分的哈希片段;到保留报头参考阵列中的索引;以及针对识别所述数据的哈希的保留报头而到哈希集合的哈希索引。可以基于所述哈希片段来识别所述哈希表阵列中的所述哈希表结构。
在一些实施例中,基于所述保留报头来存储保留报头参考阵列中的保留报头参考结构。所述保留报头参考结构包括:到识别存储器中的所述保留报头的高速缓冲存储器页阵列的高速缓冲存储器页索引;以及验证由所述高速缓冲存储器页索引识别的高速缓冲存储器页阵列条目的识别的哈希代码。能够读取与所述保留报头相关联的数据包括:基于所述哈希片段来识别所述哈希表阵列中的所述哈希表结构;并且基于所述索引来识别所述保留报头参考阵列中的所述保留报头参考结构。可以基于所述高速缓冲存储器页索引来识别所述高速缓冲存储器页索引中的所述高速缓冲存储器页条目,并且可以基于所述哈希代码来验证所述高速缓冲存储器页阵列条目的识别。可以基于所述高速缓冲存储器页阵列来识别存储器中的所述保留报头,并且可以基于所述索引来识别所述哈希集合中的哈希。
在一些实施例中,接收第二请求以读取来自所述去重数据存储的第二数据,并且使用所述第二哈希结构而非第一哈希结构来识别所述第二数据,其中,所述第二数据包括所述哈希集合中的第二哈希。可以接收第二请求以读取来自所述去重数据存储的第二数据,确定没有处于所述第二哈希结构中的用于所述第二数据的第二哈希,并且识别所述第一哈希结构中的第二保留报头。第二保留报头可以包括所述第二保留报头中存储的第二哈希集合中的第二哈希。所述第二哈希可以指示出所述计算设备请求读取的第二数据。可以高速缓冲所述计算设备的所述存储器中存储的所述第二哈希结构中的所述第二哈希集合。
所公开的主题包括:一种用于备份带外存储的计算机化方法。所述计算机化方法包括:由计算设备在远程主机上激活用于带外存储的保护策略,其中,所述带外存储是不可由所述计算设备物理访问的,使得带外存储不通过所述计算设备与远程主机通信。所述计算机化方法包括:由所述计算设备向所述远程主机传输备份请求,所述备份请求包括指示出用于根据所述保护策略来备份的所述带外存储上的卷的数据。所述计算机化方法包括:由所述计算设备接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小。所述计算机化方法包括:基于所述响应来由所述计算设备确定阶梯磁盘。所述计算机化方法包括:由所述计算设备向所述远程主机呈现所述阶梯磁盘。所述计算机化方法包括:由所述计算设备接收来自所述远程主机的备份结果,所述备份结果包括指示卷到所述阶梯磁盘的备份成功了还是失败了的数据。
在一些实施例中,基于所述备份结果来确定所述备份失败了,并且识别所述备份结果中的错误代码并且存储所述错误代码。可以基于所述备份结果来确定所述备份成功了,可以创建所述阶梯磁盘的时间点快照,并且可以将所述阶梯磁盘的时间点快照编目成所述卷的最新备份。基于所述响应来确定所述阶梯磁盘可以包括:识别用于卷的之前编目的时间点快照;并且将之前编目的时间点图像用作阶梯磁盘,使得文件系统信息用于将之前编目的时间点图像与带外存储进行比较以仅拷贝从所述时间点图像中变化的带外存储中的信息。
在一些实施例中,基于所述响应来确定所述阶梯磁盘可以包括:确定不存在用于卷的之前编目的时间点快照;并且基于来自所述阶梯磁盘需求的所需大小来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小。可以确定用于卷的之前编目的时间点快照过期,并且可以删除之前编目的时间点快照。
在一些实施例中,确定用于卷的之前编目的时间点快照与之前的阶梯磁盘相关联,所述之前的阶梯磁盘包括在来自所述阶梯磁盘需求的所需大小之下的大小;并且基于来自所述阶梯磁盘需求的所需大小来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小,其中所述阶梯磁盘不包括之前编目的时间点快照。在所述远程主机上存储的所述带外存储可以包括到所述远程设备的内部磁盘、网络化的驱动器及其各项的任意组合。
所公开的主题包括:一种用于备份框架中的进程内通信的计算机化方法。所述方法包括:由计算设备向框架注册定制请求器,所述框架被配置为运行且协调一个或者多个请求器以及一个或者多个提供器,其中,所述框架为所述一个或者多个请求器和所述一个或者多个提供器提供应用编程接口,但所述框架没有提供用于所述一个或者多个请求器和所述一个或者多个提供器之间的直接通信的接口。所述一个或者多个请求器中的每一个都是被配置为请求与应用相关联的数据集合的备份的计算机化进程。所述一个或者多个提供器中的每一个包括被配置为创建与应用相关联的数据集合的备份的计算机化进程。所述计算设备使用来自所述一个或者多个请求器中的第一请求器来开始用于与第一应用相关联的第一数据集合的备份进程。所述计算设备使用所述第一请求器来确定与所述第一数据集合和所述第一应用相关联的所述数据存储设备由与所述计算设备相关联的数据管理系统输出。所述计算设备使用所述第一请求器来从所述一个或者多个第一提供器中选择所述第一提供器,以创建用于所述备份进程的第一数据集合的备份,其中,所述第一请求器和第一提供器在相同进程空间中为单独的线程,使得所述第一请求器和所述第一提供器能够使用一个或者多个进程内通信信道来彼此直接通信。
在一些实施例中,所述计算设备使用所述第一请求器来确定与所述第一数据集合和所述第一应用相关联的所述数据存储设备未由与所述计算设备相关联的所述数据管理系统输出,并且将请求传输到所述框架以用于所述备份进程,使得所述框架从所述一个或者多个提供器中选择第二提供器,以创建用于所述备份进程的所述第一数据集合的备份,其中,所述第一请求器和所述第二提供器是单独的进程,使得所述第一请求器和所述第二提供器不能彼此直接通信,而是通过所述框架进行通信。
在一些实施例中,所述框架为微软卷影复制服务且所述第二提供器为微软快照提供器。所述第一请求器可以向所述框架传输请求以初始化所述备份,使得所述请求器由所述框架阻止直到第一提供器完成了其相关联功能为止。所述第一提供器可以接收来自所述框架的第二请求,以创建所述第一数据集合的快照,并且向所述第一请求器传输所述框架准备好创建快照的通知。所述第一请求器可以向所述数据管理系统传输消息,以创建所述第一数据集合的快照,可以接收来自所述数据管理系统的指示所述快照正被创建的第二消息,并且可以向所述第一提供器传输所述快照被创建了的消息。
在一些实施例中,所述框架为微软卷影复制服务(VSS),所述一个或者多个提供器为VSS提供器,并且所述一个或者多个请求器为VSS请求器。所述框架可以包括VSS写入器,所述写入器被配置为写入且更新由所述框架管理的数据。所述第一请求器可以向所述第一提供器注册回调处理者,并且所述第一提供器可以使用所述回调处理者与所述第一请求器进行通信。
所公开的主题包括:一种用于实现数据管理虚拟化显示器的计算机化方法,所述显示器自动执行用于数据管理虚拟化系统的、跨服务集合的用户接口动作,其中,所述数据管理虚拟化系统包括子系统集合。所述计算机化方法包括:由所述计算设备存储数据存储中的服务集合。每个服务包括与所述服务相关联的用户接口集合,并且每个服务能够使用共享服务高速缓冲存储器来与剩余的服务通信,所述共享服务高速缓冲存储器允许所述服务接收来自服务集合中的剩余服务的数据,将数据传输到服务集合中的剩余服务,跨服务集合保存数据,及其各项任意组合。所述计算机化方法包括:由所述计算设备接收请求以执行数据管理虚拟化工作,所述工作在没有与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档的知识的情况下将需要所述数据管理虚拟化系统的用户通过跨所述服务集合中的两个或者多个服务的一系列网页来手动导航。所述计算机化方法包括:使用共享服务高速缓冲存储器基于与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档由所述计算设备来限定用于所述数据管理虚拟化工作的快速链接,其中,所述快速链接消除了所述数据管理虚拟化工作的手动导航中的一个或者多个。
在一些实施例中,所述数据管理虚拟化显示器扩展模型视图控制器(MVC),其中,用于所述数据管理虚拟化显示器的数据由控制器与用于每个服务的用户接口集合分离并且与服务集合分离,所述控制器将用于每个服务的用户接口集合链接到所述数据。
在一些实施例中,每个服务由服务目标来限定,其中,所述服务目标为其相关联的服务限定了:用于所述服务的用户接口集合;用于所述服务的窗口管理器,所述窗口管理器被配置为控制用于所述服务的用户接口集合;以及经由所述共享高速缓冲存储器与来自所述服务集合的其它服务交互的集合。所述子系统集合可以包括:数据管理子系统、数据保护子系统、灾难恢复子系统以及商业连续性子系统。
所公开的主题包括一种用于备份数据库存储的计算机化方法。所述方法包括:由计算设备在远程主机上激活用于数据库存储的保护策略,其中,所述数据库存储是不可由所述计算设备物理访问的,使得所述带外存储不通过所述计算设备与远程主机通信。所述方法包括:由所述计算设备向所述远程主机传输备份请求,所述备份请求包括指示出根据所述保护策略而备份的所述数据库存储上的卷的数据。所述方法包括:由所述计算设备接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小。所述方法包括:基于所述响应来由所述计算设备确定阶梯磁盘。所述方法包括:由所述计算设备向所述远程主机呈现所述阶梯磁盘,使得所述远程主机能够使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份。所述方法包括:由所述计算设备接收来自所述远程主机的备份结果,所述备份结果包括指示出卷到所述阶梯磁盘的备份成功了还是失败了的数据,其中,使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份。
在一些实施例中,所述方法包括:基于所述备份结果来确定所述备份失败了;并且识别所述备份结果中的错误代码并且存储所述错误代码。所述方法可以包括:基于所述备份结果来确定所述备份成功了;创建所述阶梯磁盘的时间点快照;并且将所述阶梯磁盘的时间点快照编目成所述卷的最新备份。
在一些实施例中,基于所述响应来确定所述阶梯磁盘包括:识别用于卷的之前编目的时间点快照;并且将之前识别的时间点图像用作阶梯磁盘。识别用于卷的之前编目的时间点快照可以包括:响应于备份请求来接收阶梯磁盘需求中的唯一签名;并且基于所需尺寸和唯一签名来识别用于卷的之前编目的时间点快照。基于所述响应来确定所述阶梯磁盘可以包括:确定不存在用于卷的之前编目的时间点快照;并且基于来自所述阶梯磁盘需求的所需尺寸来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小。可以基于预先确定的阈值来计算所述大小,所述预先确定的阈值指定在没有用尽存储的情况下允许对所述阶梯磁盘的重复备份的所述阶梯磁盘的大小。
在一些实施例中,所述方法包括:确定用于卷的之前编目的时间点快照过期;并且删除之前编目的时间点快照。所述方法可以包括:确定用于卷的之前编目的时间点快照与之前的阶梯磁盘相关联,所述之前的阶梯磁盘包括在来自所述阶梯磁盘需求的所需大小之下的大小;并且基于来自所述阶梯磁盘需求的所需大小来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小,其中,所述阶梯磁盘不包括之前编目的时间点快照。
在一些实施例中,在所述远程主机上存储的所述数据库存储包括到所述远程设备的内部磁盘上的数据库、网络化的驱动器上的数据库及其各项的任意组合。所述数据库存储可以为Oracle数据库,并且所述数据库备份工具可以为Oracle RMAN命令。
所公开主题的那些和其它能力在回顾了下面的附图、详细描述以及权利要求之后将被更充分地理解。要理解,本文中使用的措辞和术语是出于描述目的,而不应当视为限制。
附图说明
图1是用来管理商业服务的数据生命周期的当前方法的简化图。
图2是通过单个数据管理虚拟化系统在数据的整个生命周期中管理数据的概略图。
图3是数据管理虚拟化系统的简化方框图。
图4是数据管理虚拟化引擎的视图。
图5示出对象管理和数据移动引擎。
图6示出存储池管理器。
图7示出服务水平协议的分解。
图8示出应用特定模块。
图9示出服务策略管理器。
图10是服务策略调度器的流程图。
图11是内容可寻址存储(CAS)提供器的方框图。
图12示出在CAS系统内的对象句柄的定义。
图13示出为CAS内的对象存储的时间关系图的数据模型和操作。
图14是表示CAS中的垃圾收集算法的操作的图示。
图15是将对象拷贝到CAS的操作的流程图。
图16是数据管理虚拟化系统的一般部署的系统图。
图17是现有技术的微软Windows操作系统上的VSS框架的示意图。
图18A示出了根据一些实施例的组合的VSS请求器和VSS请求器。
图18B示出了根据一些实施例的用于组合的VSS请求器1802和VSS提供器1804的示例性数据流。
图19A是根据一些实施例的用于提供带外保护的系统的示意图。
图19B是根据一些实施例的用于提供带外保护的示例性计算机化的方法。
图20A是根据一些实施例的用于数据库保护的示意图。
图20B描绘了根据一些实施例的用于数据库保护的计算机化的方法。
图20C描述了根据一些实施例的用于数据库保护的计算机化的方法。
图21描绘了根据一些实施例的为实现用于保护且可用的(PAS)存储用具的系统和方法的用户接口的台式机。
图22描绘了根据一些实施例的具有快速链接的数据管理器接口的示意图。
图22A描绘了根据一些实施例的服务对象的示意图。
图23描绘了根据一些实施例的应用管理器服务。
图24描绘了根据一些实施例的其中台式机负责处理与工作有关的包括监视和管理的所有用户可视活动的系统监视器服务。
图25描绘了根据一些实施例的来自系统监视器服务内的特定工作的具体细节的显示。
图26描绘了根据一些实施例的在没有快速链接情况下的用户流程。
图27描绘了根据一些实施例的在快速链接情况下的用户流程。
图28描绘了根据一些实施例的管理控制台。
图29描绘了根据一些实施例的企业管理器操作数据。
图30A描绘了根据一些实施例的数据管理操作数据的示例。
图30B描绘了根据一些实施例的数据管理操作数据中的用于中间尺寸的数据的保护数据的示例。
图30C描绘了根据一些实施例的数据管理操作数据中的用于中间尺寸的数据的同步请求的示例。
图30D描绘了根据一些实施例的数据管理操作数据中的用于中间尺寸的数据的同步请求的响应的示例。
图30E描绘了根据一些实施例的数据管理操作数据中的较大尺寸的数据的历史数据的示例。
图30F描绘了根据一些实施例的数据管理操作数据中的较大尺寸的数据的历史数据的同步请求的示例。
图30G描绘了根据一些实施例的数据管理操作数据中的用于较大尺寸的数据的同步请求的响应的示例。
图31是根据一些实施例的保留报头示意图。
图32是根据一些实施例的哈希索引的示意图。
图33是根据一些实施例的存储系统中的索引页的示意图。
图34是根据一些实施例的页高速缓冲存储器的示意图。
图35是根据一些实施例的键/值哈希表的示意图。
图36是描绘根据一些实施例的使用记分板来找到哈希的系统的操作的流程图。
图37是描绘根据一些实施例的当找到哈希时记分板的操作的流程图。
图38是描绘根据某些实施例的可在其上实现某些元件的计算机化系统的各种部件的图。
具体实施方式
在下面的描述中,给出了与所公开主题的系统和方法以及其中这种系统和方法可以操作的环境等有关的大量具体细节,以提供所公开主题的透彻理解。然而,对于本领域的技术人员而言,明显地,可以在没有这些具体细节的情况下实施所公开主题,并且本领域公知的某些特征未被详细描述,以避免所公开主题的不必要复杂化。此外,要理解,下面提供的那些实施例为示例性的,并且预期存在落入本公开主体内的其它系统和方法。
例如上面描述的当前数据管理结构和实现涉及处理数据生命周期管理的不同部分的多个应用,所有应用都执行某些常见功能:(a)产生应用数据的拷贝(这个行动的频率通常被称为恢复点目标(RPO)),(b)一般以专用格式将数据的拷贝存储在专门的存储库中,以及(c)在作为保留时间被测量的某个持续时间内保留拷贝。在每个点解决方案中的主要差异在于RPO的频率、保留时间以及所使用的单独存储库的特征,包括容量、成本和地理位置。
本公开涉及数据管理虚拟化。数据管理虚拟化例如备份、复制和存档是虚拟化的,因为它们不必被配置以且单独和分开地运行。替代地,用户定义其关于数据的生命周期的商业要求,且数据管理虚拟化系统自动执行这些操作。快照从主存储器被带到次存储器;这个快照于是用于到其它次存储器的备份操作。本质上,假定由服务水平协议规定的数据保护的水平,可制作任意数量的这些备份。
该公开也涉及用于存储复制图像的方法,该图像的一部分以编码形式直接存储在哈希表中,该方法包括:组织每个数据对象的唯一内容作为多个内容段并且存储该内容段在数据存储中;对于每个数据对象而言,创建哈希结构的组织排列,其中,对于哈希结构的子集而言,每个结构包括包含用于对应内容段的哈希签名的字段,并且与对应内容段的参考相关联,其中,排列的逻辑组织表示内容段的逻辑组织,因为在数据对象内表示内容段的逻辑组织;接收包括在数据对象的复制图像中的内容;确定使用预先确定的非有损编码技术是否可以编码接收到的内容,并且其中编码值将适合用于包含哈希签名的字段内;如果是,则将该编码放置在字段中并且标记哈希结构以指示该字段包含用于复制图像的编码内容;否则,生成用于接收到的内容的哈希签名,并且放置该哈希签名在该字段中,并且如果对应内容段中的接收到的内容是唯一的则将其放置在所述数据存储中。
根据本公开的数据管理虚拟化技术基于以下面的引导原理为基础的结构和实现。
首先,定义使用用于其整个数据生命周期的服务水平协议(SLA)的应用的商业要求。SLA比单个RPO、保留和恢复时间目标(RTO)复杂得多。它描述数据生命周期的每个阶段的数据保护特征。每个应用可具有不同的SLA。
其次,提供管理数据保护生命周期的统一数据管理虚拟化引擎,在具有提高的存储容量和网络带宽的各种存储库中移动数据。通过跟踪随着时间而改变的数据的部分并通过接触复制和压缩算法(其减少需要被拷贝和移动的数据的量),数据管理虚拟化系统通过补充现代存储系统的扩展的能力来实现这些改进。
第三,补充应用数据的单个主拷贝以作为生命周期内的多个元件的基础。很多数据管理操作例如备份、存档和复制取决于将被保护的数据的稳定一致的拷贝。数据管理虚拟化系统为了多个目的而补充数据的单个拷贝。由系统维持的数据的单个实例可用作源,每个数据管理功能可根据需要从这个源制作额外的拷贝。这通过传统方法中的多个独立的数据管理应用与需要将被拷贝多次的应用数据形成对比。
第四,将物理存储资源提取到一系列数据保护存储池中,物理存储资源从不同类别的存储器——包括本地和远程磁盘、固态存储器、磁带和可选的介质、专用、公用和/或混合存储云——被虚拟化。存储池提供与类型、物理位置或基本存储技术无关的访问。数据的生命周期的商业要求可能要求在不同的时间将数据拷贝到不同类型的存储介质。数据管理虚拟化系统允许用户将不同的存储介质分类和聚集到存储池中,例如由高速磁盘组成的快速恢复存储池和可以是在高容量磁盘上的解除复制的存储库或磁带库的成本有效的长期存储池。数据管理虚拟化系统可在这些池当中移动数据以利用每个存储介质的唯一特征。存储池的提取提供与类型、物理位置或基本存储技术无关的访问。
第五,利用基本设备能力和接触复制后应用数据来改进在存储池与灾难位置之间的数据的移动。数据管理虚拟化系统发现包括存储池的存储系统的能力,并利用这些能力来有效地移动数据。如果存储系统是支持创建数据体的快照或克隆的能力的磁盘阵列,则数据管理虚拟化系统将利用这个能力并使用快照来制作数据的拷贝,而不是从一个地方读取数据并将它写到另一个地方。类似地,如果存储系统支持变化跟踪,则数据管理虚拟化系统将仅仅以变化更新较老的拷贝以有效地创建新拷贝。当在整个网络中移动数据时,数据管理虚拟化系统使用避免发送已经在网络的另一侧上可用的数据的解除复制和压缩算法。
改进数据移动的一个关键方面是识别出应用数据随着时间的过去而缓慢改变。今天制作的应用的拷贝将通常具有与昨天制作的同一应用的拷贝的很多类似性。事实上,数据的今天的拷贝可被表示为具有一系列增量变换的昨天的拷贝,其中增量变换本身的大小通常比拷贝本身中的所有数据小得多。数据管理虚拟化系统捕获并记录以位图或范围列表的形式的这些变换。在系统的一个实施例中,基本存储资源——磁盘阵列或服务器虚拟化系统——能够跟踪对容量或文件进行的变化;在这些环境中,数据管理虚拟化系统查询存储资源以得到这些变化列表,并将其与被保护数据一起保存。
在数据管理虚拟化系统的优选实施例中,存在用于窃听应用的主数据访问路径的机构,其使数据管理虚拟化系统能够观察应用数据的哪些部分被修改,并产生经修改的数据的其自己的位图。如果例如应用在特定的时期期间修改块100、200和300,则数据管理虚拟化系统将窃听这些事件,并创建指示这些特定的块被修改的位图。当处理应用数据的下一拷贝时,数据管理虚拟化系统将只处理块100、200和300,因为它知道这些块仅仅是被修改的块。
在系统的一个实施例(其中应用的主存储器是现代磁盘阵列或存储虚拟化装置)中,数据管理虚拟化系统利用基本存储设备制作数据的初始副本的时间点快照能力。这个虚拟拷贝机构是创建初始拷贝的快速、有效和低冲击技术,其不保证所有的位都将被拷贝或存储在一起。替代地,通过维持允许拷贝在访问时间被重建的元数据和数据结构例如写时拷贝卷位图或范围来构建虚拟拷贝。拷贝具有对应用和对主存储设备的比较轻的冲击。在另一实施例(其中应用基于服务器虚拟化系统例如VMware或Xen)中,数据管理虚拟化系统使用构造在服务器虚拟化系统内的类似的虚拟机快照能力。当虚拟拷贝能力不是可用的时,数据管理虚拟化系统可包括其自己的内置快照机构。
可能使用快照作为构成由系统支持的所有数据管理功能的基础的数据基元。因为它是轻便的,快照可用作内部操作,即使所请求的操作本身不是快照;它被创建来实现和便于其它操作。
在创建快照时,可能有所涉及的某些预备操作,以便创建相干快照或相干映像,使得映像可恢复到应用可使用的状态。这些预备操作只需要被执行一次,即使快照将在系统中的多个数据管理功能例如根据策略调度的备份拷贝中被补充。预备操作可包括应用静止,其包括清除数据高速缓冲存储器和冻结应用的状态;它也可能包括在本领域中已知的其它操作和对保持完整的映像有用的其它操作,例如从与映像一起储存的应用收集元数据信息。
图2示出虚拟化数据管理系统可根据这些原理处理早些时候描述的数据生命周期要求的一种方式。
为了服务于本地备份要求,在本地高可用性存储器202内产生一序列有效的快照。这些快照中的一些用于适应开发/测试要求,而不制作另一拷贝。为了本地备份的较长期保留,拷贝被有效地制作到长期本地存储器204中,长期本地存储器204在这个实现中使用解除复制来减少重复的拷贝。在长期存储器内的拷贝可作为备份被访问或作为档案被处理,取决于由SLA应用的保留策略。数据的拷贝被制作到远程存储器206,以便满足远程备份和商业连续性的要求——拷贝的单个集合再次满足这两个目的。作为对远程备份和灾难恢复的备选方案,数据的另一拷贝可被有效地制作到由商业或私人云存储提供商托管的存储库208。
数据管理虚拟化系统
图3示出实现上述原理的数据管理虚拟化系统的高级部件。优选地,该系统包括下文进一步描述的这些基本功能部件。
应用300创建并拥有数据。这是由用户已部署为例如电子邮件系统、数据库系统或财务报告系统以便满足某种计算需要的软件系统。应用一般在服务器上运行并利用存储器。为了说明性目的,只有一个应用被指示。实际上,可能有由单个数据管理虚拟化系统管理的数百个或甚至数千个应用。
存储资源302是应用数据在它的整个生命周期中被存储所在的地方。存储资源是物理存储资产,包括用户已获取来处理数据存储要求的内部磁盘驱动器、磁盘阵列、光学和磁带存储库和基于云的存储系统。存储资源由主存储器310和次存储器312组成,在主存储器中应用数据的在线活动拷贝被存储,在次存储器中应用数据的额外拷贝被存储,用于诸如备份、灾难恢复、存档、编索引、报告和其它用途的目的。次存储器资源可包括在与主存储器相同的外壳内的额外存储器以及基于同一数据中心内、另一位置或在跨越互联网的类似或不同的存储技术的存储器。
一个或多个管理工作站308允许用户规定服务水平协议(SLA)304,其定义应用数据的生命周期。管理工作站是用于配置、监控和控制数据管理虚拟化系统的桌上型或膝上型计算机或移动计算设备。服务水平协议是捕获关于应用数据的次拷贝的创建、保留和删除的详细商业要求的详细规范。SLA比在传统数据管理应用中用于表示单个次存储器类别的拷贝的频率和预期恢复时间的简单的RTO和RPO复杂得多。SLA捕获在数据生命周期规范中的多个阶段,并允许在每个次存储器类别内非一致的频率和保留规范。在图7中更详细地描述了SLA。
数据管理虚拟化引擎306管理如在SLA中规定的应用数据的整个生命周期。它可能管理用于大量应用的大量SLA。数据管理虚拟化引擎通过管理工作站从用户获取输入,并与应用交互以发现应用主存储资源。数据管理虚拟化引擎做出关于什么数据需要被保护和什么次存储资源最好地满足保护需要的决策。例如,如果企业为了商业连续性目的和备份目的而将其会计数据指定为需要拷贝以非常短的时间间隔被制作,则引擎可根据适当的一组SLA决定以短的时间间隔创建会计数据的拷贝到第一存储池,并且还以较长的时间间隔创建会计数据的备份拷贝到次存储池。这由存储应用的商业要求确定。
引擎接着使用可用的存储资源的高级能力来制作应用数据的拷贝。在上面的例子中,引擎可使用存储装置的内置虚拟拷贝或快照能力来调度短时间间隔的商业连续性拷贝。数据管理虚拟化引擎在存储资源当中移动应用数据,以便满足在SLA中捕获的商业要求。在图4中更详细地描述了数据管理虚拟化引擎。
数据管理虚拟化系统作为整体可部署在单个主机计算机系统或装置内,或者它可以是一个逻辑实体,但物理地分布在通用和特定用途系统的网络中。系统的某些部件也可部署在计算或存储云中。
在数据管理虚拟化系统的一个实施例中,数据管理虚拟化引擎主要作为多个进程在一对容错冗余计算机上运行。数据管理虚拟化引擎的某些部件可在应用服务器内的应用附近运行。一些其它部件可在主存储器和次存储器附近在存储结构内或在存储系统本身中运行。管理站一般是通过安全网络连接到引擎的桌上型和膝上型计算机以及移动设备。
数据管理虚拟化引擎
图4示出根据本发明的某些实施例的数据管理虚拟化引擎306的体系结构概览。引擎306包括下列模块:
应用特定模块402。该模块负责控制和收集来自应用300的元数据。应用元数据包括关于应用的信息,例如应用的类型、关于其配置的细节、其数据存储库的位置、其当前操作状态。控制应用的操作包括各种行动,例如将高速缓冲存储器的数据清除到磁盘、冻结和解冻应用I/O、旋转或截断日志文件,以及关闭和重新启动应用。应用特定模块执行这些操作,并响应于来自下面描述的服务水平策略引擎406的命令而发送和接收元数据。参照图8更详细地描述应用特定模块。
服务水平策略引擎406根据由用户提供的SLA 304来操作以做出关于应用数据的拷贝的创建、移动和删除的决策。每个SLA描述与一个应用的保护有关的商业要求。服务水平策略引擎分析每个SLA并得出一系列行动,其中每个行动涉及应用数据从一个存储位置到另一存储位置的拷贝。服务水平策略引擎接着审查这些行动以确定优先级和相关性,并调度和发起数据移动作业。参照图9更详细地描述服务水平策略引擎。
对象管理器和数据移动引擎410创建它按照来自策略引擎的指令移动通过不同的存储池的应用数据、应用元数据和SLA所组成的复合对象。对象管理器从服务策略引擎406接收以命令的形式的指令以基于属于应用300的实时主数据413而在特定的池中或从现有的拷贝例如415在另一池中创建应用数据的拷贝。由对象管理器和数据移动引擎创建的复合对象的拷贝是自身完备的和自我描述的,因为它不仅包含应用数据,而且包含应用元数据和用于应用的SLA。参照图5更详细地描述了对象管理器和数据移动引擎。
存储池管理器412是调适和提取基本物理存储资源302并将其呈现为虚拟存储池418的部件。物理存储资源是实际存储资产,例如用户为了支持用户的应用的数据的生命周期的目的而已部署的磁盘阵列和磁带库。这些存储资源可基于不同的存储技术,例如磁盘、磁带、闪存或光学存储器。存储资源也可具有不同的地理位置、成本和速度属性,并可支持不同的协议。存储池管理器的作用是将存储资源组合和聚集,并掩蔽在其编程接口之间的差异。存储池管理器将物理存储资源呈现给对象管理器410作为一组存储池,这组存储池具有使这些池适合于应用数据的生命周期中的特定阶段的特征。参照图6更详细地描述了存储池管理器。
对象管理器和数据移动引擎
图5示出对象管理器和数据移动引擎410。对象管理器和数据移动引擎发现并使用由池管理器504呈现给它的虚拟存储资源510。它接受来自服务水平策略引擎406的请求以从虚拟存储池中的资源创建和维持数据存储对象实例,且它根据来自服务水平策略引擎的指令在虚拟存储池中的存储对象的实例之间拷贝应用数据。被选择用于拷贝的目标池隐含地指定被选择的商业操作,例如备份、复制或恢复。服务水平策略引擎在本地常驻到对象管理器(在同一系统上)或远程地常驻并通过标准联网通信使用协议来进行通信。可在优选实施例中使用TCP/IP,因为它是被很好地理解的、广泛可用的,并允许服务水平策略引擎在本地定位到对象管理器或在几乎没有修改的情况下远程地定位。
在一个实施例中,系统可为了实现的容易而将服务水平策略引擎与对象管理器部署在同一计算机系统上。在另一实施例中,系统可使用多个系统,如果对应用有益或方便,则每个系统托管部件的子集,而不改变设计。
对象管理器501和存储池管理器504是可常驻在计算机系统平台上的软件部件,该计算机系统平台将存储资源和使用那些存储资源的计算机系统互连,其中用户的应用常驻在所述计算机系统上。在互连平台上的这些软件部件的放置被指定为优选实施例,并可提供经由广泛用于这样的应用的通信协议(例如,光纤信道、iSCSI等)将客户系统连接到存储器的能力,并且还可提供各种软件部件的部署的便捷。
对象管理器501和存储池管理器504经由由基本存储虚拟化平台提供的应用编程接口与该平台通信。这些接口允许软件部件查询并控制计算机系统的行为和它如何将存储资源和该计算机系统互连,其中用户的应用常驻在所述计算机系统上。如在实践中常见的那样,部件应用模块化技术,以允许对给定平台特定的互通信代码的替换。
对象管理器和存储池管理器经由协议进行通信。这些通过一般在计算机系统上可用的标准联网协议例如TCP/IP或标准进程间通信(IPC)机制来传输。取决于特定的计算机平台,如果部件常驻在同一计算机平台上或由网络连接的多个计算机平台上的话,这允许在部件之间的可比较的通信。为了容易部署,当前配置具有常驻在同一计算机系统上的所有本地软件部件。如上所述,这不是设计的严格要求,并可在未来按需要重新配置。
对象管理器
对象管理器501是用于维持数据存储对象的软件部件,并提供一组协议操作来控制它。操作包括在对象之间的数据的创建、销毁、复制和拷贝,维持对对象的访问,且特别是允许用于创建拷贝的存储池的规范。没有所有池都支持的共同的功能子集;然而,在优选实施例中,主池可以是性能优化的,即,较低的时延,而备份或复制池可以是容量优化的,支持较大数量的数据和是内容可寻址的。池可以是远程的或本地的。存储池根据各种标准来分类,包括用户可用来进行商业决策的手段,例如每千兆字节存储的成本。
首先,特定的存储设备(存储从其取出)可以是一个考虑因素,因为为了不同的商业目的连同相关的成本和其它实际考虑因素而分配设备。一些设备可以甚至不是实际硬件,而是作为服务而提供的容量,且这样的资源的选择可以为了实际商业目的而完成。
其次,网络拓扑“接近度”被考虑,因为附近的存储器一般由低时延、不昂贵的网络资源连接,而远处的存储器可由高时延、带宽限制的昂贵网络资源连接;相反,当地理多样性免受影响本地资源的物理灾难时,存储池相对于源的距离可能是有益的。
第三,考虑存储优化特征,其中一些存储对空间有效的存储而优化,但需要计算时间和资源来在数据被存储之前分析或转换数据,而其它存储器相比之下是“性能优化的”,相比之下采用更多的存储资源,但使用比较少的计算机时间或资源来转换数据(如果有的话)。
第四,考虑“访问速度”特征,其中存储计算机平台所固有的一些资源对用户的应用例如虚拟SCSI块设备容易和快速地变得可用,而一些资源可能只被间接地使用。恢复的这些容易和速度常常由所使用的存储的类型控制,且这允许它被适当地分类。
第五,考虑到所使用的存储器的数量和在给定池中可用的数量,因为可能有集中或扩展所使用的存储容量的益处。
如下所述的服务水平策略引擎组合用户所提供的SLA与分类标准以确定如何和何时维持应用数据,且存储池从其提取所需资源以满足服务水平协议(SLA)。
对象管理器501创建、维持和使用历史机制来跟踪对性能池内的数据对象执行的操作系列,并使那些操作与将对象移动到其它存储池的其它操作特别是容量优化的操作相关。每个数据对象的这系列记录被维持在主池中的所有数据对象的对象管理器处,所有数据对象最初由主数据对象关联,接着按操作顺序关联:每个对象的时间线和所有这样的时间线的列表。所执行的每个操作展示基本虚拟化基元以在给定时间点捕获数据对象的状态。
此外,基本存储虚拟化装置可被修改以暴露并允许内部数据结构例如位图的取回,位图指示在数据对象内的数据的部分的修改。这些数据结构被利用来在数据点捕获数据对象的状态:例如,数据对象的快照,并提供在规定的时间获取的快照之间的差异,并从而实现最佳备份和恢复。虽然特定的实现和数据结构可在来自不同供货商的不同装置当中改变,数据结构用来跟踪对数据对象的变化,且存储器用来保持对象的已改变的那些部分的原始状态:数据结构中的指示相应于在存储器中保留的数据。当访问快照时,数据结构被咨询,且对于已改变的部分,保存的数据而不是当前数据被访问,因为数据对象在这样指示的区域处被修改。所使用的一般数据结构是位图,其中每个位相应于数据对象的区段。设置位指示区段在快照操作的时间点之后被修改。基本快照基元机制维持此,只要快照对象存在。
上面描述的时间线对照给定原始数据对象来维持快照操作的列表,包括操作开始的时间、它停止的时间(如果有的话)、对快照对象的引用以及对内部数据结构的引用(例如,位图或范围列表),使得它可从基本系统得到。还维持对在任何给定时间点将数据对象的状态拷贝到另一池中——作为例子,使用在对象句柄中的内容寻址结果将数据对象的状态拷贝到容量优化池407中——的结果的引用。该对象句柄相应于给定快照,并使用快照操作存储在时间线中。该关联用于识别适当的起始点。
最佳备份和恢复咨询从期望起始点到终点的操作的列表。操作的时间排序的列表及其相应的数据结构(位图)被构造成使得从开始到结束的连续时间系列被实现:在系列中的操作的起始时间之间没有间隔。这确保对数据对象的所有变化由相应的位图数据结构表示。取回从开始到结束的所有操作不是必要的;同时存在的数据对象和基本快照在时间上重叠;在时间中没有间隔仅仅是必须的,其中不被跟踪的改变可能出现。当位图指示某个存储块已改变但不是改变是什么时,位图可被添加或组成在一起以实现在时间间隔中出现的一组所有变化。不是使用这个数据结构来访问在时间点处的状态,系统替代地利用数据结构表示当时间向前流逝时修改的数据的事实。更确切地,数据对象的终结状态在所指示的区域处被访问,因而将这组变化返回到从给定开始时间到终止时间的给定数据对象。
备份操作利用这个时间线、相关的引用和对内部数据结构的访问以实现我们的备份操作。类似地,它以补充的方式使用系统来实现我们的恢复操作。下面在“最佳备份/恢复”的章节中描述特定的步骤。
虚拟存储池类型
图5示出几个代表性存储池类型。虽然在附图中描绘了一个主存储池和两个次存储池,在一些实施例中可配置更多的存储池。
主存储池507——包含用于创建数据对象的存储资源,其中用户应用存储其数据。这与其它存储池相反,其它存储池存在来主要实现数据管理虚拟化引擎的操作。
性能优化池508——能够通过用户应用提供高性能备份(即,下面描述的时间点复制)以及对备份映像的快速访问的虚拟存储池。
容量优化池509——主要以高度空间有效的方式通过使用下面描述的复制技术来提供数据对象的存储的虚拟存储池。虚拟存储池提供对数据对象的拷贝的访问,但不作为其主要目的以高性能这么做,与上面的性能优化池相反。
初始部署包含如上所述的存储池作为最小操作集合。设计充分预期表示上面说明的标准的各种组合的各种类型的多个池和方便地表示在未来部署中的所有存储器的多个池管理器。上面示出的折衷是计算数据存储系统的特征。
从实际观点看,这三个池表示以非常简单的方式处理大部分用户要求的优选实施例。大部分用户将发现,如果他们有用于紧急恢复需要的一个存储池(其提供快速恢复)以及低成本的另一个池,使得大量映像可在长时间段内被保留,则对数据保护的几乎所有商业要求可以在很少损害的情况下被满足。
在每个池中的数据的格式由在池内的所使用的目标和技术指示。例如,快速恢复池以非常类似于原始数据的形式被维持以最小化所需的转换并提高恢复的速度。另一方面,长期存储池使用解除复制和压缩来减小数据的大小并因此减小存储的成本。
对象管理操作505
对象管理器501根据由服务水平协议引擎406发送给它的指令来创建并维持来自虚拟存储池418的数据存储对象503的指令。对象管理器在五个主要区域中提供数据对象操作:时间点复制或拷贝(通常被称为“快照”)、标准拷贝、对象维护、映射和访问维护以及收集。
对象管理操作还包括用于维护虚拟存储池本身并取回关于它们的信息的一系列资源发现操作。池管理器504最终提供用于这些的功能性。
时间点拷贝(“快照”)操作
快照操作创建表示在特定的时间点处的初始对象实例的数据对象实例。更具体地,快照操作使用规定的虚拟存储池的资源来创建集合的成员的完整虚拟拷贝。这被称为数据存储对象。数据存储对象的多个状态随着时间的过去而被维持,使得在数据点处存在的数据存储对象的状态是可用的。如上所述,虚拟拷贝是使用基本存储虚拟API来实现的拷贝,基本存储虚拟API允许使用写时靠背或其它带内技术而不是将复制数据的所有位拷贝和存储到磁盘来以轻便的方式被创建。在一些实施例中,这可使用被写入的软件模块来实现以得到由例如EMC、vmware或IBM提供的现用的基本存储虚拟系统的能力。在这样的基本虚拟不是可用的场合,所述系统可提供其自己的用于与智能硬件通过接口连接的虚拟层。
快照操作要求应用将数据的状态冻结到特定的点,使得映像数据是相干的,并使得快照可稍后用于在快照的时间时恢复应用的状态。也可能需要其它预备步骤。这些由在随后的章节中描述的应用特定模块302处理。因此对于实时应用,需要最轻便的操作。
快照操作在系统中用作所有高水平操作的数据基元。实际上,它们提供对在特定的时间点的数据的状态的访问。因为快照也一般使用区分开所改变的内容与常驻在磁盘上的内容的写时拷贝技术来实现,这些快照提供也可被组成或添加在一起来在整个系统中有效地拷贝数据的差异。快照的格式可以是由数据移动器502拷贝的数据的格式,这在下面被描述。
标准拷贝操作
当拷贝操作不是快照时,它可被认为是标准拷贝操作。标准拷贝操作将一个存储池中的源数据对象的全部或子集拷贝到另一存储池中的数据对象。结果是两个不同的对象。可被使用的一种类型的标准拷贝操作是初始“基线”拷贝。这一般在数据最初从一个虚拟存储池拷贝到另一虚拟存储池例如从性能优化池到容量优化存储池时完成。可使用另一类型的标准考虑操作,其中只有改变的数据或差异被拷贝到目标存储池以更新目标对象。这将在初始基线拷贝以前被执行之后出现。
对象的完全详尽的版本不需要每当拷贝被制作时保存在系统中,即使当数据虚拟系统首先被初始化时需要基线拷贝。这是因为每个虚拟拷贝提供对完整拷贝的访问。任何增量或差异可被表示为与虚拟拷贝有关而不是与基线有关。这具有实质上消除走查一系列改变列表的共同步骤的积极的副作用。
标准拷贝操作由池管理器所提供的和数据移动器所接收的一系列指令或请求发起,以引起在数据存储对象当中数据的移动,并维持数据存储对象本身。拷贝操作允许规定的数据存储对象的拷贝使用规定的虚拟存储池来创建。结果是在存储池中的目标数据对象中的源数据对象的拷贝。
快照和拷贝操作每个使用预备操作和激活操作来构造。预备和激活的两个步骤允许长期运行资源分配操作(其是预备阶段的特征)从激活去耦。这可以是只暂停短短一会儿同时实现快照操作的时间点特征的应用所需要的,快照实际上花费有限但非零数量的时间来实现。对于拷贝和快照操作类似地,这个二步骤预备和激活结构只有当所有集合成员的资源可被分配时才允许策略引擎继续操作。
对象维护
对象维护操作是用于维持数据对象的一系列操作,包括创建、破坏和复制。对象管理器和数据移动器使用池请求中介(下面更多)的功能来实现这些操作。数据对象可被维持在全局水平处、每个存储池处或优选地两者。
集合
收集操作是辅助功能。收集是抽象的软件概念,在存储器中由对象管理器维持的列表。它们允许策略引擎206对集合中的所有成员请求一系列操作,允许对所有成员的请求的一致的应用。集合的使用允许时间点快照的同时激活,使得多个数据存储对象都精确地在同一时间点被捕获,因为这一般是对逻辑上正确的恢复的应用所需要的。集合的使用允许在集合的所有成员中拷贝操作的方便请求,其中应用将使用多个存储对象作为逻辑整体。
资源发现操作
对象管理器通过向池管理器504发出对象管理操作505来发现虚拟存储池,并使用关于每个池得到的信息来选择满足给定请求的所需标准的池,或在没有匹配的情况下,故障池被选择,且对象管理器可接着使用来自选定的虚拟存储池的资源来创建数据存储对象。
映射和访问
对象管理器还提供对象管理器操作的集合来允许并维持这些对象对外部应用的可用性。第一集合是用于注册和取消注册用户的应用常驻的计算机的操作。通过对在使用中的存储网络来说典型的身份(例如,光纤信道WWPN、iSCSI身份等)来注册计算机。第二集合是“映射”操作,且当被存储池(对象从存储池创建)允许时,数据存储对象可被“映射”,也就是说,对用户应用常驻的计算机变得可用。
这个可用性采取对存储适当的形式,例如存在于SAN上作为光纤信道磁盘或网络上的iSCSI设备的块设备、在文件共享网络上的文件系统等,并可由应用计算机上的操作系统使用。类似地,“未映射”操作将网络上的虚拟存储设备的可用性反转到用户应用。以这种方式,对一个应用存储的数据,即,备份可以是在稍后的时间另一计算机上的另一应用可用的,即,恢复。
502数据移动器
数据移动器502是在对象管理器内的软件部件以及根据从对象管理器接收的对快照(时间点)拷贝请求和标准拷贝请求的指令在各种数据存储对象503当中读和写数据的数据移动器。数据移动器在整个系统中的数据对象的实例当中提供用于读和写数据的操作。数据移动器还提供操作,其允许查询并维持对象管理器请求它来执行的长期运行操作的状态。
数据移动器使用来自池功能提供器(见图6)的功能来实现其操作。快照功能提供器608允许表示在特定的时间点的初始对象实例的数据对象实例的创建。差异引擎功能提供器614用于请求在时间链上相关的两个数据对象之间的差异的描述。对于存储在内容可寻址池上的数据对象,提供特殊功能,其可提供任何两个任意数据对象之间的差异。在一些情况下也由基本存储虚拟化系统且在其它情况下由在商品存储上实现此的模块来为性能优化池提供该功能。数据移动器502使用关于差异的信息来选择它在数据对象503的实例之间拷贝的数据集。
对于给定池,差异引擎提供器提供随着时间的过去在数据存储对象的两个状态之间的差异的特定表示。对于快照提供器,在两个时间点之间的改变被记录为到数据存储对象的给定部分的写入。在一个实施例中,差异被表示为位图,其中每个位相应于在第一开始并上升到最后一个的数据对象区域的有序列表,其中设定的位指示修改的区域。这个位图从基本存储虚拟化系统所使用的写时拷贝位图得到。在另一实施例中,差异可被表示为相应于数据的改变的区域的范围的列表。对于内容可寻址存储提供器610,该表示在下面被描述,并用于有效地确定不同的两个内容可寻址数据对象的部分。
数据移动器使用这个信息来只拷贝不同的那些部分,使得数据对象的新版本可通过首先复制它、得到差异的列表并接着只移动相应于列表中的那些差异的数据来从现有的版本创建。数据移动器502遍历差异的列表,将所指示的区域从源数据对象移动到目标数据对象。(见数据备份和恢复的最佳方式)。
506拷贝操作——请求转换和指令
对象管理器501指示数据移动器502穿过一系列操作以在虚拟存储池418中拷贝数据对象当中的数据。该过程包括在接收到指令时开始的下列步骤:
首先,创建集合请求。集合的名称被返回。
其次,将对象添加到集合。来自上文的集合名称也用作将被拷贝的源数据对象的名称和两个前例的名称:在源存储资源池中被对照来获取差异的数据对象以及在目标存储资源池中的相应数据对象。这个步骤对将被这个集合中操作的每个源数据对象重复。
第三,准备拷贝请求。集合名称也被提供,以及存储资源池充当目标。准备命令指示对象管理器接触存储池管理器以创建相应于集合中的每个资源的必要的目标数据对象。准备命令也提供待复制的在目标存储资源池中的相应数据对象,所以提供器可复制所提供的对象并使用其作为目标对象。拷贝请求的引用名称被返回。
第四,激活拷贝请求。上面返回的拷贝请求的引用名称被提供。数据移动器被指示来将给定源对象拷贝到其相应的目标对象。每个请求包括引用名称以及描述总体工作(源目标对的整个集合)的序列号以及描述每个单独的源-目标对的序列号。除了源-目标对以外,相应的前例的名称作为拷贝指令的部分而被提供。
第五,拷贝引擎使用存储池中的数据对象的名称来得到前例和来自在源处的差异引擎之间的差异。所指示的差异接着从源传输到目标。在一个实施例中,这些差异作为位图和数据被传输。在另一实施例中,这些差异作为范围列表和数据被传输。
503数据存储对象
数据存储对象是使用计算机数据处理设备和软件熟悉的惯用语和方法来允许应用数据的存储和取回的软件结构。实际上,这些当前采用在存储网络上的SCSI块设备的形式,例如SCSI LUN或内容可寻址容器,其中内容的指示器由其中的数据构造并唯一地识别该数据。通过向池管理器发出指令来创建和维持数据存储对象。用于使应用数据持久的实际存储从虚拟存储池提取,数据存储对象从虚拟存储池创建。
数据存储对象的结构根据存储池而变化,数据存储对象从存储池创建。对于采取在存储网络上的块设备——给定块设备的数据结构——的形式的对象,数据对象实现在数据对象内的每个块的逻辑块地址(LBA)与实际存储位置的设备标识符和LBA之间的映射。数据对象的标识符用于识别待使用的映射集合。当前实施例依赖于基本物理计算机平台所提供的服务来实现这个映射,并依赖于其内部数据结构例如位图或范围列表。
对于采取内容可寻址容器的形式的对象,内容识别特征用作标识符,且数据对象被存储,如下面在关于解除复制的章节中描述的。
504池管理器
池管理器504是用于管理虚拟存储资源和如下所述的相关功能特征的软件部件。对象管理器501和数据移动引擎502与一个或多个池管理器504通信以维持数据存储对象503。
510虚拟存储资源
虚拟存储资源510是用于实现存储池功能的池管理器可采用的各种存储器,如下所述。在这个实施例中,存储虚拟器用于将各种外部光纤信道或iSCSI存储LUN作为虚拟化存储器提供给池管理器504。
存储池管理器
图6进一步示出存储池管理器504。存储池管理器的目的是向作为存储资源池的对象管理器/数据移动器提供基本虚拟存储资源,存储资源池是具有由系统的其它部件利用的公共接口的存储和数据管理功能的抽象。这些公共接口一般包括用于识别并处理与特定的时间状态相关的数据对象和用于产生以位图或范围的形式的数据对象之间的差异的机构。在本实施例中,工具管理器提供主存储池、性能优化池和容量优化池。公共接口允许对象管理器创建和删除在这些池中的数据存储对象,作为其它数据存储对象的拷贝或作为新对象,且数据移动器可在数据存储对象之间移动对象,并可使用数据对象区分操作的结果。
存储池管理器具有用于实现类似功能的不同实现的公共接口的一般结构,其中一些功能由“智能”基本资源提供,而其它功能必须在较少的功能基本资源上实现。
池请求中介602和池功能提供器604是在与对象管理器/数据移动器相同的过程中或在经由本地或网络协议例如TCP通信的另一过程中执行的软件模块。在本实施例中,提供器包括主存储提供器606、快照提供器608、内容可寻址提供器610和差异引擎提供器614,且这些提供器在下文被进一步描述。在另一实施例中,这组提供器可以是这里所示的提供器的超集。
虚拟存储资源510是用于实现存储池功能的池管理器可采用的不同类型的存储器。在本实施例中,虚拟存储资源包括存储虚拟化系统的SCSI逻辑单元的组:存储虚拟化系统在与池管理器相同的硬件上运行并且通过编程接口可访问(对于数据和管理操作):除了标准块存储功能以外,另外的能力是可用的,包括创建和删除快照,以及跟踪卷的改变的部分。在另一实施例中,虚拟资源可以来自暴露类似能力的外部存储系统,并可在接口(例如通过文件系统或通过网络接口例如CIFS、iSCSI或CDMI访问的)上、在能力(例如,资源是否支持产生写时复制快照的操作)上、或在非功能方面(例如,高速/有限容量例如固态磁盘相对于低速/高容量例如SATA磁盘)上不同。可用的能力和接口确定哪些提供器可消耗虚拟存储资源,以及哪个池功能需要在池管理器内由一个或多个提供器实现:例如,内容可寻址存储提供器的这个实现只需要“哑”存储,且实现完全在内容可寻址提供器610内;基本内容可寻址虚拟存储资源可替代地用在较简单的“通过”提供器上。相反,快照提供器的这个实现通常“通过”,并需要暴露快速时间点拷贝操作的存储。
池请求中介602是简单的软件部件,其通过对照所配置的虚拟存储资源510执行一组适当的池功能提供器来提供对存储池特定的功能的请求。可被提供的请求包括但不限于在池中创建对象;从池删除对象;将数据写到对象;从对象读数据;在池内拷贝对象;在池之间拷贝对象;请求在池中的两个对象之间的差异的概述。
主存储提供器606实现虚拟存储资源的管理接口(例如,创建和删除快照以及跟踪文件的改变的部分),虚拟存储资源也经由接口例如光纤信道、iSCSI、NFS或CIFS直接暴露于应用。
快照提供器608实现制作来自主存储池的数据的时间点拷贝的功能。这创建填充有快照的另一资源池的抽象。如所实现的,时间点拷贝是来自主存储池的对象的写时拷贝快照,消耗第二虚拟存储资源以适应写时拷贝的拷贝,因为这个管理功能由用于主存储器和用于快照提供器的虚拟存储资源暴露。
差异引擎提供器614可满足对池中的待比较的两个对象的请求,这两个对象连接在时间链中。在这两个对象之间的差异部分被识别并以提供器特定的方式例如使用位图或范围而被概述。例如,差异部分可被表示为位图,其中每个设定的位表示固定大小区域,其中这两个对象不同;或差异可在程序上被表示为一系列功能调用或回调。
根据池所基于的虚拟存储资源或实现池的其它提供器,差异引擎可用各种方式有效地产生结果。如所实现的,在经由快照提供器实现的池上起作用的差异引擎使用快照提供器的写时拷贝特征来跟踪快照做出的对物体的变化。单个变化的原始对象的连续快照因此具有和它们一起由快照提供器存储的差异的记录,且快照池的差异引擎仅仅取回变化的这个记录。如也实现的,在经由内容可寻址提供器实现的池上起作用的差异引擎使用内容可寻址实现的有效的树结构(见下面,图12)来在要求时完成在对象之间的快速比较。
内容可寻址提供器610实现它消耗的虚拟存储资源的一写多读内容可寻址接口。它满足读、写、复制和删除操作。每个写入或拷贝的对象由从其内容得到的唯一句柄识别。下面进一步描述内容可寻址提供器(图11)。
池管理器操作
在操作中,池请求中介502接受对数据操作操作例如拷贝、快照或删除池或对象的请求。请求中介通过查看池或对象的名称或引用来确定来自池504的哪个提供器代码被执行。中介接着将进入的服务请求转换成可由特定的池功能提供器处理的形式,并调用适当序列的提供器操作。
例如,进入的请求可请求将来自主存储池中的卷的快照制作到快照池中。进入的请求按照名称识别主存储池中的对象(卷),且名称和操作(快照)的组合确定快照提供器应被调用,该快照提供器可使用基本快照能力从主池产生时间点快照。这个快照提供器将请求转换成由基本存储虚拟化装置所执行的本地写时拷贝功能所需的确切形式例如位图或范围,且它将本地写时拷贝功能的结果转换成可返回到对象管理器并在对池管理器的未来请求中使用的存储卷句柄。
使用对象管理器和数据移动器的数据备份的最佳方式
数据备份的最佳方式是随着时间的过去产生应用数据对象的连续版本同时最小化数据的量的一系列操作,该数据必须通过使用位图、范围和存储在对象移动器的其它时间差异信息来被拷贝。它将应用数据存储在数据存储对象中,并使它与元数据相关,元数据随着时间的过去使各种变化与应用数据有关,使得改变随着时间的过去可以容易被识别。
在优选实施例中,该过程包括下列步骤:
1.机制提供在数据存储对象内的应用数据的初始引用状态,例如T0。
2.随着时间的过去在要求时创建具有差异引擎提供器的虚拟存储池中的
数据存储对象的随后的实例(版本)。
3.每个连续的版本例如T4、T5使用虚拟存储池的差异引擎提供器来得到它和在它之前创建的实例之间的差异,使得T5被存储为T4的引用和在T5和T4之间的一组差异。
4.拷贝引擎接收将数据从一个数据对象(源)拷贝到另一数据中心(目的地)的请求。
5.如果虚拟存储池(其中目的地对象将被创建)不包含从源数据对象的以前版本创建的其它对象,则新对象在目的地虚拟存储池中被创建,且源数据对象的全部内容被拷贝到目的地对象;该过程结束。否则,下一步骤紧接着。
6.如果虚拟存储池(其中对象被创建)包含从源数据对象的以前版本创建的对象,则在目的地虚拟存储池中的最近创建的以前版本被选择,对这个以前版本存在源数据对象的虚拟存储池中的相应的以前版本。例如,如果T5的拷贝从快照池发起,且在时间T3创建的对象是在目标处可用的最近版本,T3被选择为以前的版本。
7.构造源数据对象的版本的时间排序的列表,其以在以前的步骤中识别的初始版本开始并以将被拷贝的源数据对象结束。在上面的例子中,在快照池处,对象的所有状态是可用的,但只有包括T3和在T3后面的状态有意义:T3、T4、T5。
8.构造列表中的每个连续版本之间的差异的相应列表,使得从列表的起始版本到最终版本的所有差异被表示。差异都识别数据的哪个部分被改变,并包括相应时间的新数据。这产生从目标版本到源版本的一组差异,例如在T3和T5之间的差异。
9.通过复制在目的地虚拟存储池中的在步骤6中识别的对象的以前版本来创建目的地对象,例如在目标存储库中的对象T3。
10.将在步骤8中创建的列表中识别的这组差异从源数据对象拷贝到目的地对象,该过程结束。
在目的地虚拟存储池内的每个数据对象是完整的;也就是说,它代表整个数据对象,并允许对在时间点处的所有应用数据的访问而不需要对在其它时间点处的状态或表示的外部引用。对象是可访问的,而不将所有增量从基线状态分程传递到当前状态。此外,在目的地虚拟存储池中的数据对象的初始和随后的版本的复制不需要其中应用数据内容的详尽复制。最后,到达第二和随后的状态只需要所跟踪和维持的改变的传输,如上所述,而没有数据存储对象的内容的遍历、传输或复制。
使用对象管理器和数据移动器的数据资源的最佳方式
直观地,数据资源的最佳方式是数据备份的最佳方式的转换。在给定时间点处重新创建目的地虚拟存储池中的数据对象的期望状态包括下列步骤:
1.识别具有差异引擎提供器的另一虚拟存储池中的数据对象的版本,其相应于将被创建的期望状态。这是源虚拟存储池中的源数据对象。
2.识别在目的地虚拟存储池中重新创建的数据对象的以前版本。
3.如果没有数据对象在步骤2中被识别出,则创建在目的地虚存储池中的新目的地对象并将数据从源数据对象拷贝到目的地数据对象。该过程是完整的。否则,继续下列步骤。
4.如果数据对象的版本在步骤2中被识别出,则识别相应于在步骤2中识别的数据对象的源虚拟存储池中的数据对象。
5.如果没有数据对象在步骤4中被识别出,则创建在目的地虚存储池中的新目的地对象并将数据从源数据对象拷贝到目的地数据对象。该过程是完整的。否则,继续下列步骤。
6.通过复制在步骤2中识别的数据对象来创建目的地虚拟存储池中的新目的地数据对象。
7.使用源虚拟存储池的差异引擎提供器来得到在步骤1中识别的数据对象和在步骤4中识别的数据对象之间的差异集合。
8.将由步骤7创建的列表所识别的数据从源数据对象拷贝到目的地数据对象。该过程结束。
对期望状态的访问是完整的:它不需要对其它容器或外部状态的外部引用。建立给定的期望状态的引用状态既不需要详尽的遍历也不需要详尽的传输,只有由在源虚拟存储池内的提供的表示指示的所取回的改变。
服务水平协议
图7示出服务水平协议。服务水平协议捕获关于应用数据的次拷贝的详细的商业要求。在最简单的描述中,商业要求定义拷贝何时被创建和多久被创建一次,它们保留多长时间以及这些拷贝以什么类型的存储池存在。这个过分简单化的描述不捕获商业要求的几个方面。给定类型的池的拷贝创建的频率在一天的所有小时中或一星期的所有天中可能不是一致的。一天的某些小时或一星期或一月的某些天可表示应用数据中的更多(更少)的临界期,且因此可要求更多(或更少)频率的拷贝。类似地,在特定池中的应用数据的所有拷贝可能不需要保留相同长度的时间。例如,在每月处理结束时创建的应用数据的拷贝可能需要比在一月中旬创建的同一存储池中的拷贝保留更长的时间段。
某些实施例的服务水平协议304被设计成表示存在于商业要求中的所有这些复杂性。服务水平协议具有四个主要部分:名称、目的地、内务处理属性和服务水平策略的集合。如上所述,每个应用有一个SLA。
名称属性701允许每个服务水平协议具有唯一的名称。
描述属性702是用户可指定服务水平协议的有帮助的描述。
服务水平协议也具有很多内务处理属性703,其使它能够被维持和修改。这些属性包括但不限于所有者的身份、创建的日期和时间、修改和访问、优先级、启用/禁用标志。
服务水平协议还包含多个服务水平策略705。一些服务水平协议可只具有单个服务水平策略。更一般地,单个SLA可包含数十个策略。
在某些实施例中,每个服务水平策略至少由下列项组成:源存储池位置706和类型708;目标存储池位置710和类型712;被表示为时间段的创建拷贝的频率714;被表示为时间段的拷贝的保留期的长度716;在一天中这个特定的服务水平策略的操作时间718;以及这个服务水平策略适用的星期、月或年中的那些日子720。
每个服务水平策略规定源和目标存储池以及在那些存储池之间需要的应用数据的拷贝的频率。此外,服务水平策略规定其操作的小时和它可应用的天。每个服务水平策略是对应用数据的保护的商业要求中的单个声明的表示。例如,如果特定的应用具有对在每月关闭之后和保留三年之后在每月创建的档案拷贝的商业要求,这可能转换到需要在一月的最后一天的半夜从本地备份存储池到长期档案存储池的拷贝的服务水平策略,保留期为三年。
具有源和目的地池和位置例如源主存储池和目的地本地快照池的特定组合的所有服务水平策略当在一并考虑时规定对将拷贝创建到该特定的目的地池中的商业要求。商业要求可指示例如快照拷贝在有规律的工作时间期间的每小时但只在这些时间之外的每四个小时被创建。具有相同源和目标存储池的两个服务水平策略将有效地捕获以可由服务策略引擎实施的形式的这些要求。
这种形式的服务水平协议允许每日、每星期和每月商业活动的计划的表示,并因此捕获对比传统的基于RPO和RPO的方案准确地多地保护和管理应用数据的商业要求。通过允许操作的小时和一年的日、星期和月,调度可在“日历基础”上发生。
具有源和目的地的一个特定组合例如“源:本地主要和目的地:本地性能优化”的所有服务水平策略合起来捕获对一种类型的存储的非一致数据保护要求。单个RPO号另一方面强制在一天的所有时间和所有天中数据保护的单个一致的频率。例如,服务水平策略的组合可能要求大量快照被保存一段短时间,例如10分钟,较少数量的快照被保存一段较长的时间,例如8个小时;这允许被意外地删除的少量信息可回复到不大于10分钟之前的状态,同时仍然在较长时间水平线提供实质性的数据保护,而不需要存储每十分钟拍摄的所有快照的存储开销。作为另一例子,备份数据保护功能可以是在工作周期间以一个频率和在周末期间以另一频率操作的给定的一个策略。
当所有不同类的源和目的地存储的服务水平策略被包括时,服务水平协议完全捕获对整个应用——包括本地快照、本地长持续时间存储库、装置外存储、档案等——的所有数据包括要求。在SLA内的策略的集合能够表示给定功能应何时被执行,并能够表示应在给定的数据源上执行的多个数据管理功能。
服务水平协议由用户通过管理工作站上的用户接口来创建和修改。这些协议是由它管理的结构SQL数据库或其它存储库中的服务策略引擎所存储的电子文件。策略被取回、电子地分析并由服务策略引擎通过如上所述的其正常调度计划而起作用。
图8示出应用特定模块402。应用特定模块在应用300(如上所述)附近运行,并与应用和其操作环境交互以收集元数据并查询和控制数据管理操作所需的应用。
应用特定模块与应用的各种部件和的其操作环境交互,操作环境包括应用服务进程和守护程序801、应用配置数据802、操作系统存储服务803(例如窗口上的VSS和VDS)、逻辑卷管理和文件系统服务804以及操作环境驱动器和模块805。
应用特定模块响应于来自服务策略引擎406的控制命令而执行这些操作。存在用于与应用的这些交互的两个目的:元数据收集和应用一致性。
元数据收集是一过程,应用特定模块通过该过程收集关于应用的元数据。在一些实施例中,元数据包括信息,例如:应用的配置参数;应用的状态和状况;应用的控制文件和启动/关闭脚本;应用的数据文件、日志和事务记录的位置;以及符号链接、文件系统固定点、逻辑卷名称和可影响对应用数据的访问的其它这样的实体。
元数据连同应用数据和SLA信息一起被收集和保存。这保证在系统内的应用数据的每个拷贝是完备的,并包括重建应用数据所需的所有细节。
应用一致性是当应用数据的拷贝被创建时确保拷贝是有效的并可恢复到应用的有效实例的一组行动。当商业要求在应用是活动的、在其在线操作状态中时指示应用被保护时,这是关键的。应用可在其数据存储库内具有相互依赖的数据关系,且如果这些没有在一致的状态中被拷贝,则将不提供有效的可恢复的映像。
实现应用一致性的确切过程从一个应用到另一应用改变。一些应用具有迫使高速缓冲存储器的数据到磁盘的简单清除命令。一些应用支持热备份模式,其中应用确保它的操作以保证一致性的方式被记录,即使当应用数据改变时。一些应用需要与操作系统存储设备例如VSS和VDS的交互以确保一致性。应用特定模块是为特定目的而建造的,以与特定的应用一起工作并确保该应用的一致性。应用特定模块与基本存储虚拟化设备和对象管理器交互以提供应用数据的一致快照。
为了效率,应用特定模块402的优选实施例是在与应用300相同的服务器上运行。这确保在与应用的交互中的最小时延,并提供对应用主机上的存储服务和文件系统的访问。应用主机是一般考虑的主存储器,其接着被快照到性能优化存储库。
为了最小化运行应用的中断,包括最小化预备步骤,应用特定模块只被触发来当对应于数据的访问在特定的时间被需要时且当对该时间的快照不存在于系统中的其它地方时产生快照,如对象管理器所跟踪的。通过跟踪快照被产生的时间,对象管理器能够实现来自性能优化数据存储库的随后的数据请求,包括用于满足对备份和复制的多个请求,其可从次级容量优化池发出。对象管理器可能能够向性能优化存储库中的快照提供对象句柄,并可引导以快照的格式所特有的本地格式的性能优化存储库,这取决于基本存储装置。在一些实施例中,该格式可以是与指示哪些块改变的一个或多个LUN位图组合的应用数据;在其它实施例中,它可以是特定的范围。用于数据传输的格式因此能够只使用位图或范围来传输两个快照之间的增量或差异。
也可对每个应用存储元数据例如应用的版本号连同快照。当SLA策略被执行时,应用元数据被读取并用于策略。这个元数据连同数据对象一起被存储。对于每个SLA,应用元素据将只在轻便的快照操作期间被读一次,且在那个时间例如清除高速缓冲存储器出现的预备操作将只在轻便快照操作期间被执行一次,即使应用数据的这个拷贝连同其元数据一起可用于多个数据管理功能。
服务策略引擎
图9示出服务策略引擎406。服务策略引擎包含服务策略调度器902,其检查由用户配置的所有服务水平协议并作出调度决策来满足服务水平协议。它依赖于几个数据存储库来捕获信息并使它随着时间的过去而持久,数据存储库在一些实施例中包括:SLA存储库904,其中所配置的服务水平协议持续并被更新;资源配置文件存储库906,其存储提供逻辑存储池名称和实际存储工具之间的映射的资源配置文件;保护目录存储库908,其中关于在各种工具中创建的还没有到期的以前的成功拷贝而对信息编目录;以及集中式历史数据库910。
历史存储库910是为了使用所有数据管理应用而保存关于过去的行动的历史信息,包括每个应用到各种存储工具的以前拷贝的时间戳、顺序和层次。例如,在下午1点发起并被安排为在下午9点到期的从主存储数据库到容量优化数据存储库的快照拷贝将被记录在临时数据存储库中的历史存储库910中,临时数据存储库还包括在上午11点和中午12点发生的同一源和目标的快照的链接的对象数据。
这些存储库由服务策略引擎管理。例如,当用户通过管理工作站创建服务水平协议或修改其内的策略之一时,它是使在其存储库中的新SLA持久并通过调度如SLA所指示的拷贝来对这个修改作出反应的服务策略引擎。类似地,当服务策略引擎成功地完成导致在存储池中的应用的新拷贝的数据移动工作时,存储策略引擎更新历史存储库,使得该拷贝将分解成未来决策的因素。
服务策略引擎所使用的各种存储库的优选实施例在极接近服务策略引擎的冗余数据库管理系统中是以表格的形式。这在查询和更新存储库时确保一致的业务语义,并在取回相互依赖的数据中允许灵活性。
服务策略调度器902的调度算法在图10中示出。当服务策略调度器决定它需要制作应用数据从一个存储池到另一存储池的拷贝时,它发起数据移动请求器和监控器任务912。这些任务不是重现的任务,并在它们完成后终止。根据服务水平策略被规定的方式,这些请求器中的多个是同时操作的。
当确定承担哪些额外的任务时,服务策略调度器考虑服务水平协议的优先级。例如,如果一个服务水平协议具有高优先级,因为它规定对任务关键的应用的保护,而另一SLA具有较低的优先级,因为它规定对测试数据库的保护,则服务策略引擎可选择只运行对任务关键的应用的保护,并可推迟或甚至完全跳过对较低优先级应用的保护。这由调度在较低优先级SLA之前的较高优先级SLA的服务策略引擎实现。在优选实施例中,在这样的情况下,为了检查目的,服务策略引擎也将向管理工作站触发通知事件。
策略调度算法
图10示出策略调度引擎的流程图。策略调度引擎连续地循环过所定义的所有SLA。当它到达所有SLA的末尾时,它休眠片刻,例如10秒,并重新开始再次浏览SLA。每个SLA封装对一个应用的数据保护商业要求,因此所有SLA代表所有应用。
对于每个SLA,调度引擎1000在具有相同的源池和目的地池1004的过程状态的所有服务水平策略收集在一起,并在1002对这组SLA中的下一SLA重复。服务水平策略的这个子集合起来代表对从该源存储池到该特定的目的地存储池的拷贝的所有要求。
在服务水平策略的这个子集当中,服务策略调度器丢弃不可应用于今天或在其操作时间之外的策略。在留下的策略当中,找到具有最短频率的策略(1006),并基于历史数据和在历史存储库910中,找到需要接着运行(1008)的具有最长保持的策略。
接着,有一系列检查1010-1014,其在此时阻止制作应用数据的新拷贝,因为新拷贝还没有到期,因为拷贝已经在进行中或因为没有新数据要拷贝。如果这些条件中的任一个适用,则服务策略调度器移动到源和目的地池1004的新组合。如果这些条件中没有一个适用,则新拷贝被发起。拷贝如在这个SLA 1016内的相应服务水平策略中规定的被执行。
接着,调度器移动到同一服务水平协议1018的下一源和目的地池组合。如果不再有不同的组合,则调度器继续移动到下一服务水平协议1020。
在服务策略调度器穿过所有服务水平协议的所有源/目的地池组合之后,它暂停一段短时间并接着重新开始循环。
具有快照存储库和备份存储库的简单示例性系统(只有2个策略被定义)将如下与服务策略调度器交互。给出两个策略,一个陈述“每小时备份,备份将保持4个小时”而另一个陈述“每2个小时备份,备份将保持8个小时”,结果将是每小时拍摄的单个快照,每个快照被拷贝到备份存储库,但在快照存储库和备份存储库保留不同数量的时间。“每2个小时备份”策略被调度以在中午12点由系统管理员实施。
在下午4点,当服务策略调度器开始在步骤1000操作时,它在步骤1002找到两个策略。(这两个策略都适用,因为自从中午12点以来流逝了两小时的倍数)。在步骤1004只有一个源和目的地池组合。在步骤1006有两个频率,且系统选择1小时频率,因为它比2小时频率短。在步骤1008有具有不同保留期的两个操作,且系统选择具有8小时保留期的操作,因为它具有较长的保留值。不是制作一个拷贝以满足4小时要求和制作另一拷贝以满足8小时要求,这两个要求都合并到较长的8小时要求中,并被单个快照拷贝操作满足。系统在步骤1010确定拷贝到期,并在历史存储库910检查相关的对象以确定拷贝是否已经在目标(在步骤912)和在源(在步骤914)被制作。如果这些检查通过,则系统在步骤916发起拷贝,且在过程中触发快照被制作并保存在快照存储库。快照接着从快照存储库拷贝到备份存储库。系统接着休眠(1022)并在短时间段例如10秒之后再次醒来。结果是在备份存储库处的拷贝和在快照存储库处的拷贝,其中每个偶数小时快照持续8个小时,而每个奇数小时快照持续4个小时。在备份存储库和快照存储库的偶数小时快照都被附上8小时保留期的标签,且将在此时通过另一过程从系统被自动探测。
注意,没有在2点拍摄两个快照或制作两个备份拷贝的原因,即使这两个策略都适用,因为这两个策略都由单个拷贝满足。组合和合并这些快照导致不需要的操作的减少,同时保持多个单独的策略的灵活性。它也可有助于对具有多个保留期的同一目标有同时活动的两个策略。在给定例子中,存在比两小时拷贝多的每小时拷贝,导致更大的粒度用于在较接近于目前的时间恢复。例如,在前面的系统中,如果在下午7:30映像从下午的较早时候发现,则备份将对过去四个小时:下午4、5、6、7点的每个小时是可用的。再多两个备份将从下午2点和中午12点被保留。
内容可寻址存储库
图11是实现内容可寻址提供器510的内容可寻址存储库的模块的方框图。
内容可寻址存储库510的实现提供对容量而不是对拷贝进或拷贝出速度优化的存储资源池,如将是早些时候描述的在快照中实现的性能优化池的情况的,并因此一般用于离线备份、复制和远程备份。内容可寻址存储器提供存储不同对象的公共子集仅仅一次的方式,其中那些公共子集可以具有变化的大小,但一般小至4千字节。与快照存储库比较,内容可寻址存储库的存储开销低,虽然访问时间通常较高。通常,在内容可寻址存储库中的对象没有与彼此的内在关系,即使它们可共享其大部分内容,虽然在这个实现中,历史关系也被维持,其是将被描述的各种优化的启动器。这与快照固有地形成链的快照存储库相反,每个存储库只存储来自以前的快照的增量或基线拷贝。特别是,内容可寻址存储库将只存储在单个对象内重复多次的数据子集的一个拷贝,而基于快照的存储库将存储任何对象的至少一个拷贝。
内容可寻址存储库510是经由本地传输例如TCP在同一过程中或在分开的过程中在与池管理器相同的系统上执行的软件模块。在这个实施例中,内容可寻址存储模块在分开的过程中运行以便最小化来自不同部件的软件故障的影响。
该模块的目的是通过复制内容(即,确保在单个或多个数据对象内的重复的内容只存储一次)来允许以高度空间有效的方式存储数据存储对象403。
内容可寻址存储模块经由可编程API向池管理器提供服务。这些服务包括下列项:
处理映射1102的对象:可通过经由API将数据写到存储库中来创建对象;一旦数据被完全写入,API就将返回对象的内容所确定的对象句柄。相反,数据可作为字节流通过提供句柄从对象内的偏移读出。参照图12的描述来解释如何构造句柄的细节。
时间树管理1104跟踪在所存储的数据对象之间的父/子关系。当数据对象被写到存储库510中时,API允许它作为孩子链接到已经在存储库中的父对象。这向内容可寻址存储库指示子对象是父对象的修改。单个父级可具有带有不同的修改的多个孩子,如可能是例如如果应用的数据被有规律地保存到存储库中一会儿的情况;然后早期拷贝被恢复并用作新的起始点用于随后的修改。下面更详细地描述时间树管理操作和数据模型。
差异引擎1106可产生在存储库中的两个任意对象之间的不同区域的概述。区分操作经由规定待比较的两个对象的句柄的API被调用,且差异概述的形式是具有偏移量的一系列回调和连续的差异部分的大小。通过比较并行的对象的两个哈希表示来计算差异。
垃圾收集器1108是分析存储库以找到不被任何对象句柄引用的所保存的数据并收回调拨给该数据的存储空间的服务。内容可寻址存储库的性质是,很多数据被多个对象句柄引用,即,数据在数据对象之间被共享;一些数据将被单个对象句柄引用;但没有被对象句柄引用的数据(如可能是如果对象句柄从内容可寻址系统删除的情况的)可安全地被新数据盖写。
对象复制器1110是复制在两个不同的内容可寻址存储库之间的数据对象的服务。多个内容可寻址存储库可用于满足额外的商业要求,例如离线备份或远程备份。
这些服务使用图11所示的功能模块实现。数据哈希模块1112为高达固定大小限制的数据块产生固定长度的密钥。例如,在本实施例中,块(哈希发生器将为该块产生密钥)的最大大小是64KiB。固定长度密钥是哈希,其被附上标签以指示所使用的哈希方案或无损算法编码。在这个实施例中使用的哈希方案是SHA-1,其产生具有均匀的分布和没有设施需要合并到该系统中以探测并处理冲突的足够接近零的哈希冲突的概率的安全加密哈希。
数据句柄高速缓冲存储器1114是管理存储器内数据库的软件模块,数据库提供对数据和句柄到数据映射的短暂存储。
持久性句柄管理索引1104是CAH到数据映射的可靠持久性数据库。在本实施例中,它被实现为B树,将哈希从哈希发生器映射到包含这个哈希的数据的持久性数据存储库1118中的页面。因为全B树不能一次保存在存储器中,为了效率,本实施例也使用存储器内发展过滤器以避免对不被知道存在的哈希的昂贵的B树搜索。
永久性数据存储模块1118将数据和句柄存储到长期永久性存储器,返回指示数据存储在哪里的令牌。句柄/令牌对随后用于取回数据。当数据被写到永久性存储器时,它穿过在本实施例方式中使用zlib实现的一层无损数据压缩1120以及在本实施例中未启用的一层可选的可逆加密1122。
例如,将数据对象拷贝到内容可寻址存储库中是由对象/句柄映射器服务所提供的操作,因为进入的对象将被存储,且句柄将被返回到请求器。对象/句柄映射器读取进入的对象,请求由数据哈希发生器产生的哈希,将数据存储到永久性数据存储器且将句柄存储到永久性句柄管理索引。为了句柄的数据的未来快速查找,数据句柄高速缓冲存储器保持被更新。存储到永久性数据存储器的数据被压缩并(可选地)在写到磁盘之前被加密。一般,对数据对象中的拷贝的请求也将调用时间树管理服务以产生对象的历史记录,且这经由永久数据存储器保持持久。
作为另一例子,从被给了句柄的内容可寻址存储库拷贝数据对象是由对象/句柄映射器服务所提供的另一操作。句柄在数据句柄高速缓冲存储器中被查找以定位相应的数据;如果数据在高速缓冲存储器中失去,则永久性索引被使用;一旦数据位于磁盘上,它就经由永久性数据存储模块(其加密并解压缩磁盘数据)被取回并接着重新分布以返回到请求器。
内容可寻址存储库句柄
图12示出内容寻址对象的句柄如何产生。数据对象管理器引用具有内容可寻址句柄的所有内容可寻址对象。这个句柄由三个部分构成。第一部分1201是句柄直接指向的基本数据对象的大小。第二部分1202是它指向的对象的深度。第三1203是它指向的对象的哈希。字段1203可选地包括指示哈希是基本数据的无损编码的标签。标签指示所使用的编码方案,例如用作算法编码的数据的行程编码(RLE)的形式,如果数据块可被充分表示为短长度RLE。如果基本数据对象太大而不能被表示为无损编码,则从哈希到数据的指针或引用的映射被单独地存储在永久性句柄管理索引1104中。
内容可寻址对象被分成块1204。每个块的大小必须由一个内容可寻址句柄1205可寻址。数据被数据哈希模块1102哈希,且块的哈希用于产生句柄。如果对象的数据配合在一个块中,则所创建的句柄是对象的最终句柄。如果不,则句柄本身被一起分组成块1206,且哈希对每组句柄产生。句柄的这个分组继续(1207),直到只有一个所产生的句柄1208,其于是为对象的句柄。
当对象将从内容句柄重建(存储资源池的拷贝出操作)时,顶级内容句柄被解引用以得到下一级内容句柄的列表。这些又被解引用以得到内容句柄的另外的列表,直到深度0句柄被得到。这些通过查找句柄管理索引或高速缓冲存储器中的句柄扩展到数据,或(在算法哈希例如行程长度编程的情况中的)确定地扩展到全内容。
时间树管理
图13示出为存储在内容可寻址存储库内的数据对象创建的时间树关系。这个特定的数据结构仅在内容可寻址存储库内被利用。时间树管理模块将数据结构1302维持在使每个内容寻址数据对象与父级(其可能为零,以致使在修改序列中的第一个)相关的永久性存储库中。树的单独节点包含单个哈希值。这个哈希值引用数据的块——如果哈希是深度0哈希,或其它哈希的列表——如果哈希是深度1或更高的哈希。映射到哈希值的引用包含在永久性句柄管理索引1104中。在一些实施例中,树的边缘可具有权重或长度,其可在算法中用于找到邻居。
这是标准树结构,且模块支持标准操纵操作,特别是:1310添加:添加父级之下的叶,这导致在初始状态1302和添加后状态1304之间的树的变化;以及1312移除:移除节点(并给其孩子重定其父亲的父级),这导致在添加后状态1304和移除后状态1306之间的树的变化。
每当对象从外部池拷贝进CAS时,“添加”操作被使用。如果拷贝进是经由用于数据备份的最佳方式,或如果对象起源于不同的CAS池,则前辈对象需要被指定,且添加操作被调用以记录这个前辈/子孙关系。
当策略管理器确定对象的保留期到期时,“移除”操作被对象管理器调用。这可导致存储在CAS中的数据在引用它的时间树中没有对象,且因此随后的垃圾收集通过可为可用的那个数据释放存储空间用于再使用。
注意,单个前辈可能有多个子孙或子节点。例如,如果对象最初在时间T1被创建并在时间T2被修改,则这可能出现,修改经由恢复操作来重新执行,且随后的修改在时间T3做出。在本实例中,状态T1具有两个孩子,状态T2和状态T3。
不同的CAS池可用于实现不同的商业目标,例如在远程位置提供灾难恢复。当从一个CAS拷贝到另一CAS时,拷贝可作为哈希和偏移量被发送,以利用目标CAS的本地解除复制能力。由任何新哈希指向的基本数据也在按需基础上被发送。
时间树结构作为各种服务的实现的部分而被读取或设法穿过:
●垃圾收集设法穿过树以便减小“标记”阶段的成本,如下所述。
●复制到不同的CAS池在也被已知已经传输到其它CSA池的时间树中找到一组近邻,使得只有一小组差异需要被额外地传输。
●用于数据恢复的最佳方式使用时间树来找到可用作恢复操作的基础的前辈。在CAS时间树数据结构中,孩子是随后的版本,例如,如档案策略所指示的。多个孩子被支持在同一父节点上;这种情况下可能在父节点改变、然后用作恢复的基础并随后再次改变时发生。
CAS差异引擎
CAS差异引擎1106比较如在图11和12中的哈希值或句柄所标识的两个对象,并在对象内产生一序列偏移量和范围,其中已知对象数据不同。通过在图12的哈希数据结构中并行地遍历两个对象树来实现该序列。树遍历是标准深度或宽度优先遍历。在遍历期间,比较在当前深度处的哈希。在节点的哈希在两侧之间相同的场合,不需要从树下来得更远,所以遍历可被缩短。如果节点的哈希不是相同的,则遍历继续下降到树的下一最低水平。如果遍历到达与其对应物不相同的深度0哈希,则被比较的在数据对象内的绝对偏移量(其中不相同的数据连同数据长度一起出现)被发出到输出序列中。如果一个对象在大小上比另一对象小,则它的遍历将在较早时候完成,且在其它树的遍历中遇到的所有随后的偏移量作为差异被发出。
经由区分的垃圾收集
如在图11下所述的,垃圾收集器是分析特定的CAS存储库的服务,以找到被CAS存储库时间数据结构中的任何对象句柄引用的保存的数据,并收回被调拨到该数据的存储空间。垃圾收集使用标准“标记和扫描”方法。因为“标记”阶段可能相当昂贵,用于标记阶段的算法试图最小化标记相同的数据多次,即时它可被引用很多次;然而,标记阶段必须是完整的,确保没有被引用的数据被保持未标记,因为这将导致来自存储库的数据损失,因为在扫描阶段之后未标记的数据将以后由新数据盖写。
用于标记所引用的数据的算法使用下列事实:在CAS中的对象使用在图13中描绘的数据结构布置在具有时间关系的曲线中。共享这些曲线中的边缘的对象可能仅在其数据的小子集上不同,且当对象从前辈创建时出现的任何新的数据块应在任何两个其它对象之间再次出现也是罕见的。因此,垃圾收集的标记阶段处理时间曲线的每个连接的分量。
图14是在某些实施例中使用时间关系的垃圾收集的例子。包含时间关系的数据结构的深度优先搜索被进行,由箭头1402表示。采用起始节点1404,树遍历从该起始节点1404开始。节点1404是树根且没有引用对象。节点1406包含对对象H1和H2的引用,表示对象1的哈希值和对象2的哈希值。被节点1406(在这里是H1和H2)引用的所有深度0、深度1和更高的数据对象被列举并标记为已引用的。
接着,处理节点1408。当它与所标记的节点1406共享边缘时,差异引擎应用于被1406引用的对象和被1408引用的对象之间的差异,得到存在于未标记的对象中但不在标记的对象中的一组深度0、深度1和更高哈希。在附图中,存在于节点1408中但不在节点1406中的哈希是H3,所以H3被标记为已引用的。这个过程继续,直到所有边缘被耗尽。
由现有技术算法1418产生的结果和本实施例1420的比较表明,通过现有技术算法来处理节点1408时,以前看到的哈希H1和H2连同新哈希H3一起被发出到输出流中。本实施例1420不将以前看到的哈希发出到输出流中,从而导致只有新哈希H3、H4、H5、H6、H7被发出到输出流中,并且在性能上有相应的提高。注意,这个方法不保证数据将不被标记多于一次。例如,如果哈希值H4在节点1416中独立地出现,则它将被独立地标记第二次。
将对象拷贝到CAS中
将对象从另一池拷贝到CAS中使用图11中所述的软件模块来产生被如在图12中的对象句柄引用的数据结构。对过程的输入是(a)在规定的偏移量处的一系列数据块,其适当地被设置大小以便生成深度0句柄,以及可选地(b)同一对象的前一版本。隐含地,新对象将与前一版本相同,除了其中输入数据被提供且其本身与前一版本不同以外。拷贝进操作的算法在图15的流程图中示出。
如果前一版本(b)被提供,则序列(a)可以是从(b)的一组稀疏更改。在已知待拷贝的对象仅在几个点处与以前的对象不同的情况下,这可极大地减少需要被拷贝进的数据的量,且因此减少所需的计算和i/o活动。这是例如当对象经由以前描述的数据备份的最佳方式被拷贝进时的情况。
即使序列(a)包括从前辈大部分未改变的部分,识别前辈(b)也允许拷贝进过程对于数据是否确实已改变进行快速检查,并因此避免以比对于向CAS提供输入的某个其它存储池中的差异引擎可能的粒度更精细的粒度水平的数据复制。
于是隐含地,新对象将与前一版本相同,除了其中输入数据被提供且其本身与前一版本不同以外。拷贝进操作的算法在图15的流程图中示出。
当在临时存储库中的任意大小的数据对象被提供时,该过程在步骤1500开始,并继续进行到1502,其列举被前辈对象中的哈希值引用的任何和所有哈希(深度0到最高水平),如果这样的哈希被提供。这将用作快速检查以避免存储已经包含在前辈中的数据。
在步骤1504,如果前辈被输入,则创建其在内容可寻址数据存储库时间数据结构中的克隆的引用。该克隆将被更新以变成新对象。因此,新对象将变成从拷贝源池拷贝到CAS中的差异所修改的前辈的拷贝。
在步骤1506、1508,数据移动器502将数据推到CAS中。数据附随有对象引用和偏移量,其是数据的目标位置。数据可以是稀疏的,因为只有与前辈的差异需要移动到新对象中。此时,进入的数据被分成大小足够小的深度0块,每个块可由单个深度0哈希表示。
在步骤1510,数据哈希模块为每个深度0块产生哈希(散列)。
在步骤1512,读取在同一偏移量处的前辈哈希。如果在同一偏移量处数据的哈希匹配前辈的哈希,则没有数据需要被存储,且深度1和更高对象不需要对这个深度0块更新。在这种情况下,返回以接受数据的下一深度0块。这实现了临时解除复制,而不必进行昂贵的全局查找。即使源系统理想地只发送与以前存储在CAS中的数据的差异,这个检查也可能是必要的,如果源系统正在不同的粒度水平处执行区分,或如果数据被标记为改变的但改变回到其以前存储的值。区分可在不同的粒度水平处执行,如果例如源系统是在32KiB边界上创建增量的快照池,且CAS存储库在4KiB块上创建哈希。
如果匹配未找到,则数据可被哈希并存储。一旦新数据被耗尽,数据就被写入,在以前的偏离量开始并结束。一旦数据被存储,在步骤1516,如果偏移量仍然包含在同一深度1对象中,则深度1、深度2和所有更高对象1518被更新,在每个水平处产生新哈希,且深度0、深度1和所有更高对象在步骤1514存储到本地高速缓冲存储器。
然而,在步骤1520,如果待存储的数据的量超过深度1块大小且偏移量将包含在新的深度1对象中,则当前的深度1必须被清除到存储库,除非它被确定已经存储在那里。首先在全局索引1116中查看它。如果发现它在那里,则从本地高速缓冲存储器移除深度1和所有相关的深度0对象,并继续进行新块1522。
在步骤1524,作为避免浏览全局索引的快速检查,对于在本地高速缓冲存储器中的每个深度0、深度1和更高对象,在1502中建立的本地存储库中查找其哈希。丢弃匹配的任何东西。
在步骤1526。对于在本地高速缓冲存储器中的每个深度0、深度1和更高对象,在全局索引1116中查找其哈希。丢弃匹配的任何东西。这确保数据被全局地解除复制。
在步骤1528:将来自本地高速缓冲存储器的所有其余的内容存储到持久性存储库中,接着继续处理新块。
从CAS读取对象是较简单的过程,且在CAS的很多实现中是常见的。对象的句柄经由全局索引被映射到持久性数据对象,且所需的偏移量从该持久性数据内被读取。在一些情况下,穿过对象句柄树中的几个深度递归可能是必要的。
CAS对象网络复制
如在图11下描述的,复制器1110是在两个不同的内容可寻址存储库之间复制数据对象的服务。复制的过程可通过从一个存储库读出并写回到另一存储库中来实现,但这个体系结构允许通过有限的带宽连接(例如局域网或广域网)进行更有效的复制。
对每个CAS存储库操作的复制系统使用上面描述的差异引擎服务连同如图13中所述的时间关系结构,且此外在每个对象的基础上在CAS存储库所使用的时间数据结构中存储对象已被复制到哪个远程存储库的记录。这提供在某个数据存储库处的对象存在的明确知识。
使用时间数据结构,系统可能确定哪些对象存在于哪些数据存储库上。该信息由数据移动器和差异引擎利用以确定将在拷贝操作期间通过网络发送的数据的最小子集以使目标数据存储库最新。例如,如果数据对象O已在时间T3从波士顿的服务器拷贝到西雅图的远程服务器,则保护目录存储库908将存储在时间T3存在于波士顿和西雅图两地的对象O。在时间T5,在从波士顿到西雅图的随后拷贝期间,时间数据结构将被咨询以确定应当用于在波士顿的源服务器上的区分的在西雅图的对象O的前一状态。波士顿服务器将接着获取T5和T3的差异,并将该差异发送到西雅图服务器。
复制对象A的过程于是如下:识别被记录为已经被复制到目标存储库的对象A0和在本地存储库中的A的近邻。如果没有这样的对象A0存在,则将A发送到远程存储库,并在本地将它记录为已发送。为了将本地对象发送到远程存储库,如在这里体现的一般方法是:发送对象内的数据块的所有哈希和偏移量;查询远程存储库关于哪些哈希代表远程地不存在的数据;将所需数据发送到远程存储库(发送数据和哈希在本实施例中通过将它们封装在TCP数据流中而实现)。
相反,如果A0被识别,则运行差异引擎以识别在A中但不在A0中的数据块。这应是需要被发送到远程存储库的数据的超集。发送在A中但不在A0中的块的哈希和偏移量。查询远程存储库关于哪些哈希代表远程地不存在的数据;将所需数据发送到远程存储库。
样本部署体系结构
图16示出包括数据管理虚拟化(DMV)系统的一个实施例的软件和硬件部件。包括该系统的软件作为三个分布式部件来执行:
主机代理软件1602a、1602b、1602c实现上面描述的一些应用特定模块。它与应用在相同的服务器1610a、1610b、1610c上执行,其中该应用的数据被管理。
DMV服务器软件1604a、1604b实现如这里所述的系统的其余部分。它在也提供高度可用的虚拟化存储服务的一组Linux服务器1612、1614上运行。
该系统由在桌上型或膝上型计算机1620上运行的管理客户端软件1606控制。
这些软件部件通过IP网络1628经由网络连接彼此通信。数据管理虚拟化系统通过IP网络(例如公共互联网的骨干网)在主站点1622和数据复制(DR)站点1624之间彼此通信。
在主站点和DR站点的DMV系统经由光纤信道网络1626访问一个或多个SAN存储系统1616、1618。运行主应用的服务器经由光纤信道网络上的光纤信道或IP网络上的iSCSI访问被DMV系统虚拟化的存储器。在远程DR站点处的DMV系统在Linux服务器1628上运行DMV服务器软件1604c的并行实例。Linux服务器1628也可以是Amazon Web服务EC2实例或其它类似的云计算资源。
在单个处理空间中的VSS请求器和VSS提供器
VSS(卷影复制服务)为微软Windows操作系统自从2003版本上存在的框架。该框架有助于备份产品、应用和存储组件之间的协作来创建应用一致性的备份。然而,VSS框架期望每个组件将独立执行特定任务,这会导致不必要的低效和开销,如下面进一步解释的。
图17是微软Windows操作系统上的VSS框架的示意图。VSS框架包括:卷影复制服务1701、VSS请求器1702、VSS写入器1703以及VSS提供器1704。
卷影复制服务1701协调各个VSS框架组件例如VSS请求器172、VSS写入器1703以及VSS提供器1704之间的通信,并且能够创建应用一致性的快照。卷影复制服务1701为例如微软Windows操作系统的一部分且由微软提供。卷影复制服务1701提供系统基础设施以用于在基于Windows的系统上运行VSS应用。卷影复制服务1701可以对用户和开发者大部分透明。在一些实施例中,卷影复制服务1701被配置为执行大量不同任务,例如协调提供器(例如,VSS提供器1704)、写入器(例如,VSS写入器1703)以及请求器(例如,VSS请求器1702)在创建和使用影复制(例如,影复制为卷的快照,其及时复制了在一个清晰的时刻在那个卷上保持的所有数据)中的活动;供应默认的系统提供器;并且实现任何提供器工作所需要的低级驱动器功能。
备份供应商开发VSS请求器1702。VSS请求器为备份程序或者可以开始备份操作的代理。通常,VSS请求器被安装在需要备份且作为单个处理运行的系统上。VSS请求器可以为任何应用,该应用使用VSS API(例如,IVss备份组件接口)以请求卷影复制服务1701的服务来创建且管理一个或者多个卷的影复制和影复制集合。请求器的示例性示例为VSS意识的备份/恢复应用,该应用使用影复制数据作为稳定源以用于其备份操作。
由微软和其它供应商开发的应用(例如,SQL,Oracle,微软交换应用)与以下VSS写入器1703一起,该VSS写入器1703特定于具有冻结该应用的能力且使能该应用在自一致性的且可恢复的硬盘上存储的产品。每个VSS写入器针对应用具体地被创建,并且通常与该应用一起被安装。例如,SQL服务器VSS写入器对I/O操作和VSS服务进行协调以用于SQL服务器。当VSS服务请求VSS写入器允许VSS提供器采集应用数据存储的应用一致性快照时,VSS写入器冻结和解冻应用I/O操作。如果在VSS备份操作期间不存在写入器,则仍然可以创建影复制。
存储技术供应商开发VSS提供器1704,该VSS提供器1704能够在应用由VSS请求器1702冻结时采集应用的自一致性图像的状态,从而该应用可以重新开始正常操作。VSS提供器1704例如在系统的软件内或者通过使用系统外的硬件和/或软件来呈现一些快照。VSS提供器被安装在应用运行且通常作为独立过程运行的系统上。作为一个示例性示例,响应于来自请求器的请求,提供器向到来的影复制的单个应用生成事件,并且然后创建且维持那个复制直到不再需要那个复制为止。虽然影复制是现存的,但是提供器可以创建存在已经影复制的任何卷的两个有效独立的复制的环境;一个在运行盘上被使用且像正常一样被更新,另一个复制是盘固定的并且稳定用于备份。默认提供器可以被提供作为Windows操作系统的一部分。
在VSS框架的常规使用中,请求器和提供器为独立的处理,且没有彼此直接通信。请求器和提供器被设计为通用的并且分别与其它提供器和请求器一起操作。当VSS请求器向VSS服务提出请求时,VSS服务阻止VSS请求器线程直到VSS服务接收到来自VSS提供器的响应。进一步地,VSS框架没有提供给VSS写入器与VSS请求器有关的任何内容,这导致VSS服务调用VSS提供器。
VSS应用编程接口除了用于请求器学习现存的各种提供器且选择它们中的一个之外,不包含用于VSS请求器和VSS提供器彼此通信的装置。所有的VSS请求器和提供器动作由VSS服务来协调。
本文所描述的技术针对被实现为作为相同程序一部分的单独线程的VSS请求器和VSS提供器来提供。因此,例如,当VSS服务阻止VSS请求器线程称为API创建快照时,VSS提供器仍然作为相同程序一部分执行并且因此可以使用进程内通信装置与VSS请求器通信。例如,VSS提供器可以确定要创建什么(例如,哪种类型的复制、用于什么样的程序等),使用多少存储空间,从哪里分配存储空间和/或另外不可用于VSS提供器的其它信息。在一些示例中,用于VSS请求器和VSS提供器之间通信的机制为回调处理者,该回调处理者针对进程内通信来提供。例如,VSS提供器使用回调处理者与VSS请求器通信,并且当特定事件发生例如快照提交事件(Snapshot Commit Event)时通知VSS请求器。
VSS提供器也可以被创建为秘密提供器,使得该秘密提供器没有以提供器来向其它VSS请求器示出。例如,VSS请求器在当其使用VSS框架API开始备份操作时可以向VSS框架注册定制VSS提供器,并且一旦备份操作完成时未注册VSS提供器。这可以使VSS提供器仅在备份操作期间在系统上可用。
益处在于可以通过具有请求器和提供器彼此通信来实现。例如,请求器可以使供应者具有即将要运行的来自备份工作的配置信息,这可以由提供器来使用,以在创建快照的过程中选择资源池或者其它参数。可能需要通信消息的其它功能示例包括跨多个主机的快照的协调、在外部备份服务器的准确一致时刻处的信令或者多个其它使用情况。
在本公开中,呈现了用于请求器和提供器之间通信的方法,并且该方法实现了上述益处。
图18A示出了根据一些实施例的组合的VSS请求器和VSS请求器。如图17所示,存在卷影复制服务1701以及VSS写入器1703。在该实施例中,VSS请求器1802和VSS提供器1804已经链接在一起作为在相同单个处理空间1805中的独立的线程集合。这使请求器和提供器能够使用多个进程内通信信道1806中的一个或者多个例如全局存储器、指针通过或者线程信令以同步以及请求器和提供器线程之间的交换信息。
定制VSS提供器1804可以为软件或者硬件快照提供器。这可以实现由VSS框架规定的COM接口例如IVss软件快照提供器(IVssSoftwareSnapshotProvider),IVss提供器创建快照集合(IVssProviderCreateSnapshotSet)等。VSS服务1701使用这些接口来调用定制VSS提供器。此外,VSS提供器1804通过向VSS提供器1804注册回调处理者来意识到VSS请求器1802的存在。回调处理者由VSS请求器1802来注册,且充当VSS请求器1802和VSS提供器1804之间的通信信道。当某个事件发生时,VSS提供器使用回调处理者来通知VSS请求器。
VSS请求器1802使用VSS框架API例如IVss备份组件(IVssBackupComponent)接口来调用VSS框架功能。VSS请求器1802向定制VSS提供器注册回调处理者以接收来自提供器的通知并且处理从接收者接收到的回调通知消息。
该实施例没有排除请求器和提供器在它们常规作用下运行。这实现了额外的功能,该功能能够向数据保护和数据恢复问题提供更有效且更高效的方案。
图18B示出了在示例性备份序列期间VSS请求器1802和VSS提供器1804之间的进程内通信方案。在该说明中,单个连接器处理1844主控VSS提供器和VSS请求器。连接器1844为由备份供应商开发的备份程序以用于备份应用。该备份程序作为单个处理来运行,并且由VSS请求器和VSS提供器消耗的所有资源由那个处理所拥有。
在步骤1812处,当连接器在步骤1810处开始运行时,连接器向VSS框架注册定制VSS提供器1804。一旦连接器充分运行,连接器开始侦听备份请求。
在步骤1814处,一旦从数据管理虚拟化系统接收用于备份应用的请求,在步骤1816处连接器就通过使用VSS请求器1802来开始备份序列。在步骤1816处,VSS请求器1802检查该应用是否在运行且可用于备份,并且用于每个应用备份的写入器是否处于健康状态。
在步骤1818处,如果从数据管理虚拟化系统(“DMV”)中输出由应用使用的存储,则VSS请求器1802选择定制VSS提供器1804用于备份序列1820,使VSS提供器1804预先准备好应用专用信息并且向VSS提供器注册回调处理者。例如,VSS请求器1802可以通过使用VSS API(例如IVss备份组件(IVssBackupComponent)::添加到快照集(AddToSnapshotSet))来选择VSS提供器。通过将应用使用的存储卷的LUN(逻辑单元号)id与由DMA输出的卷的LUN id进行比较来完成使用定制VSS提供器的确定。
针对需要备份的每个应用,VSS请求器1802选择用于VSS快照的由那个应用的数据存储使用的卷。在步骤1824处,在选择用于快照的卷之后,VSS请求器1802请求创建快照(例如通过使用IVss备份组件接口)。通过使用单独的线程来完成创建快照的请求,因为VSS服务将阻止回调线程直到快照成功或者失败。这允许VSS请求器1802继续使用从VSS提供器1804之前注册的回调处理者来接收回调消息,同时快照创建仍然在进行中。作为快照创建的一部分,VSS服务1701请求VSS写入器1803冻结正在备份的应用。一旦应用被冻结了,VSS服务1701就请求VSS提供器1804创建由应用使用的卷的快照。在步骤1826处,响应于创建快照的请求,VSS提供器使用之前注册的回调处理者来通知VSS请求器1802:VSS框架准备好创建快照并且自身暂停。
一旦在步骤1826处接收了来自VSS提供器的通知,就在步骤1828处,VSS请求器1802请求DMV创建由应用数据存储使用的卷的快照并且等待响应。然后,DMV在步骤1830处创建请求的卷的写入时复制的快照并且在步骤1832处以请求状态响应于VSS请求器1802。在成功创建快照之后,VSS请求器1802通知VSS提供器1804继续VSS处理,使得应用可以在步骤1834处继续正常处理。例如,在成功地完成快照创建之后或者当快照创建失败时,应用由VSS服务来解冻。
需要在特定时间帧(例如10秒)内完成步骤1824和步骤1834之间的整个处理,否则VSS写入器1803拒绝应用冷冻请求。在相同处理内具有VSS请求器和VSS提供器可以减少与进程间通信相关联的通信开销,并且有助于在该时间间隔内完成快照处理。
VSS请求器1802在步骤1836处完成备份,并且在步骤1838处通知DMV备份请求的状态。
连接器在步骤1840处未注册VSS提供器1804,并且连接器在步骤1842处停止运行。
在一些实施例中,请求器和提供器不处于相同处理空间内。例如,请求器和提供器可以在它们自身处理空间内为多线程的,并且使用进程间通信信道例如共享存储器、套接口或者甚至基于硬盘的文件来通过侧信道彼此通信。
带外数据的智能拷贝保护
该公开描述了对虚拟数据管线(VDP)技术的扩展,以覆盖即在内部或者网络驱动器上的数据保护。带外数据(OOB)指的是VDP系统不向主机呈现存储的事实。例如,带外存储可以为不能由VDP系统物理访问的存储,例如由台式机/膝上型计算机的本地驱动器(例如“C”驱动器)或者从私有网络提供的网络存储。该存储通过一些其他路径对主机可见的,而没有以VDP系统可以直接访问该存储的方式由VDP系统提供以供使用。这种带外存储可以为例如在文件系统中存储的数据(例如,Window的文件系统、Linux文件系统等)。
在该公开之前,没有想法去使用VDP技术(该VDP技术通过待备份的主机系统来放置)来采集且保护在不能由VDP系统直接访问的带外驱动器(例如主机系统内(例如膝上型计算机或者台式机内)的直接附接的驱动器或者(例如,在私有网络例如公司网络中)在其自身存储内、由外部文件服务器服务的网络附接的存储)上存在的数据。
使用本公开,可以使用VDP系统内的所有益处来保护数据。图像被递增地采集,且仍可用作虚拟全图像。该数据被暂时组织,从而更容易采集时间有序的依赖性并且在较小存储空间中得到益处,更有效去重(deduplication)且更有效数据管理。虚拟全图像也能够在不需要在全部之上的增量之上的层增量的情况下容易呈现给主机,减少了恢复或者克隆的时间,且能够加载能力。
可以使用在待保护的主机上执行的智能拷贝代理来保护数据。该智能拷贝代理可以呈现有来自VDP系统的存储且使用呈现的存储来拷贝仅对主机可见的数据。针对在第一拷贝之后的随后拷贝,智能拷贝代理可以仅拷贝由于最后一个拷贝而已经改变的新数据。例如,智能拷贝代理可以将该数据与拷贝进行比较以仅更新改变的数据。例如,不是使用时间戳,而是智能拷贝代理可以走过文件机构以看见是否存在任何新文件,是否已经改变了针对文件的任何元数据(例如,这指示由于最后拷贝已经修改了文件),或者是否由于最后拷贝而删除了任何文件。
图19A是根据一些实施例的提供带外保护的系统1900的示意图。该系统1900包括主机1901,该主机运行智能拷贝代理1902。该智能拷贝代理1902为在主机1901上的后面中运行的处理,这在本文中进一步详细描述。该系统1900也包括与主机1901通信的主数据库存储器1903,该主数据库存储器1903不能由VDP系统1904直接访问。要被保护的数据存活在直接附接的或带外的或网络附接的存储器1903中。智能拷贝代理1902与VDP系统1904通信。VDP系统1904与性能池1906通信,该性能池对VDP系统1904直接可访问的。该系统1900也包括备份阶梯(staging)卷1905(例如,在本文中也称为“阶梯磁盘”),该备份阶梯卷从性能池1906中分配使得性能池1906与主机1901、智能拷贝代理1902和性能池1906通信。
参照主机1901,该主机1901可以为例如用于运行由智能拷贝代理1902支持的Microsoft Windows、Linux、AIX、Solaris、HP-UX操作系统的计算机或者虚拟机。该主机1901可以经由网络连接(例如和可选地经由光纤通道)而连接到VDP 1904。
参照智能拷贝代理1902,该智能拷贝代理1902可以例如为在主机1901上运行的特定操作系统可执行的智能拷贝程序。该程序可以通过使用用于特定操作系统的标准包安装程序来安装在主机上。例如,在Windows上,用户运行安装智能拷贝代理的安装程序以作为服务来运行。作为另一个示例,在Linux主机上,用户安装安装了智能拷贝代理的RPM包作为守护进程。在一些实施例中,智能拷贝代理在后面连续地运行并且使用TCP/IP与VDP通信。
参照主存储器1903,该主存储器1903可以为例如即由主机1901可使用的磁盘系统,例如安装的SATA、SCSI或者SAS硬盘或者提供SAN的磁盘,该SAN磁盘由光纤通道或者其它高速磁盘互联例如NetApp或者EMC SAN设备附接。被保护主机1901使用主存储器1903来在文件系统上读取且写入文件。
参照VDP系统1904,该VDP系统1904可以为例如本文中所述的VDP系统。
参照备份阶梯卷1905,该备份阶梯卷1905可以为例如虚拟磁盘设备,该虚拟磁盘设备从在性能池1906中可用的自由空间中提供。
参照性能池1906,该性能池1906可以为例如磁盘系统,该磁盘系统经由光纤通道例如NetApp或者EMC SAN设备而附接到VDP系统1904。
图19B描述了提供带外保护的系统的消息和数据流。VDP系统1904(例如根据SLA)激活保护策略1907。在步骤1908中,然后,VDP系统向代理1902发送备份请求。在步骤1909中,智能拷贝代理1902接收备份请求。在步骤1910中,智能拷贝代理1902然后将阶梯磁盘需要请求发送回到VDP系统。VDP系统1904接收来自智能拷贝代理1902的响应。VDP系统1904然后将阶梯磁盘呈现给被保护主机1902。在步骤1913中,智能拷贝代理1902加载被呈现的阶梯磁盘。智能拷贝代理1902然后在阶梯磁盘1905上拷贝、删除或者更新文件,使得内容在步骤1914中匹配主存储器1903。在步骤1915中,智能拷贝代理1902向VDP系统1904发送备份结果。VDP系统1904在步骤1916中接收备份结果,并且未映射来自被保护主机1901的阶梯磁盘。如果备份成功,则VDP系统1904呈现阶梯磁盘1905的时间点快照。VDP系统1904然后分类备份元数据。
参照步骤1907,这为正被激活的保护策略。这可以由例如手动运行保护策略的用户来开始,或者它被运行为保护策略限定的时间表的一部分。该保护策略可以由用户预先创建,以在被保护主机1901(在该情况下的主存储器1903)上保护特定数据片。
参照步骤1908,VDP系统1904向智能拷贝代理1902发送请求,例如包含描述哪个卷应当被备份的XML的字符串。
参照步骤1909,智能拷贝代理1902接收请求,例如包含描述哪个卷应当被备份的XML的字符串。使用操作系统专用名来识别要被备份的卷。例如,在Windows上,卷可以称为C:、D:、E:等。在Linux上,卷可以称为/,/usr,/mnt/卷等。如果使用XML来发送,例如,XML也可以包含备份卷所需要的任何其它数据,例如用于在主机上验证的证书,用于控制其它备份特征的由用户指定的选项。工作标识也可以被包括在XML中,使得工作可以由VDP来跟踪。该XML被解析并且结果在步骤1910中被使用。
参照步骤1910,智能拷贝代理1902计算该备份所需要的阶梯磁盘的大小。例如,如果该请求为备份40千兆(gigabyte)字节大小的卷,这将确定阶梯磁盘必须也为至少40千兆字节大小。作为包含描述该需要的XML的字符串将该需要发送给VDP系统1904。
参照步骤1911,VDP系统1904接收包含阶梯磁盘的所需大小的响应(例如,XML响应字符串)。VDP系统找到当前正在运行的用于保护策略的任何现有的阶梯磁盘。如果现有的阶梯磁盘至少与所需的阶梯磁盘大小一样大,则现有的阶梯磁盘可以用作阶梯磁盘。如果没有现有的阶梯磁盘被找到(例如,这是用于该保护策略的第一备份或者之前的阶梯磁盘已经失效)或者现有的阶梯磁盘小于所需大小,则可以从性能池1906中分配新阶梯磁盘。一旦已经分配了用于备份的阶梯磁盘,那个相同的阶梯磁盘可以用于相同保护策略的所有随后备份,除非必须增加磁盘的大小,在该情况中,较大阶梯磁盘被创建且用户未来备份。如果用户终止用于保护策略的所有备份,则删除阶梯磁盘,并且必须为相同保护策略的随后备份分配新阶梯磁盘。在步骤1917中时间点快照取决于该时间点快照从其创建的阶梯磁盘,但是该时间点快照不用作阶梯磁盘,并且对阶梯磁盘的变化不影响时间点快照,对时间点快照的变化也不改变他们所依赖于的阶梯磁盘的内容。
参照步骤1912,VDP系统1904向被保护主机1901呈现阶梯磁盘。如果1901为物理计算机,则这可以例如经由iSCSI或者光纤信道来完成。例如,可以使用用于使磁盘在iSCSI或者光纤信道上可见的标准技术来呈现阶梯磁盘。VDP系统为目标且被保护主机为使用SCSI术语的发起者。在一些实施例中,如果1902为虚拟机,则首先向虚拟机超级监督者例如VMware ESXi呈现磁盘,并且然后将阶梯磁盘添加到虚拟机1901。在一些实施例中,VDP系统向包含用于在步骤1913中的阶梯磁盘的LUN标识符的智能拷贝代理发送XML字符串。
参照步骤1913,智能拷贝代理1902扫描其存储总线,以找到用于物理机的iSCSI或者光纤信道磁盘。如果1901为虚拟机,则磁盘将看起来像是由超级监督者呈现的SCSI磁盘,并且扫描SCSI总线以找到阶梯磁盘。智能拷贝代理继续扫描该总线直到找到具有VDP系统在步骤1912中发送的相同LUN识别符的磁盘。一旦在存储总线上找到了阶梯磁盘,该阶梯磁盘就被分区并且如果该阶梯磁盘没有被格式化则被格式化。使用与主存储器1903相同的文件系统来格式化该磁盘。如果主存储器1903的文件系统不能被确定或者不被支持,则使用用于被保护主机1901运行的操作系统类型的标准文件系统来格式化阶梯磁盘。例如,微软Windows系统可以使用NTFS,且Linux可以使用ext3。阶梯磁盘然后在安装点被安装在被保护主机1901上。例如,在Linux系统上,阶梯磁盘可以在位于/act/mnt的目录下被安装,并且基于当前工作标识符和时间来命名特定目录。作为另一个示例,在Windows系统上,阶梯磁盘可以在位于C:\Windows\act目录下被安装,并且可以基于当前工作标识符和时间来命名特定目录。
参照步骤1914,如果文件存在在主存储器上而没有在阶梯卷上,则智能拷贝代理1902将任何文件或者目录从主存储器1903拷贝到阶梯卷1905。将从阶梯卷中删除没有存在于主存储器上但存储于阶梯卷上的任何文件或者目录。在一些实施例中,具有不同内容或者元数据例如时间戳、文件属性或者安全描述符的任何文件或者目录将在阶梯卷上被更新以匹配主存储器。当该步骤完成时,阶梯卷将为主存储器的复制品。唯一的差别(若有的话)可以为文件系统不相容性的结果或者特定于磁盘的文件系统元数据例如卷标识符。在完成了拷贝和删除之后,阶梯卷从主机中卸载。
参照步骤1915,将备份的结果从智能拷贝代理1902发送到VDP系统1904。这为包含描述备份结果的XML的字符串,例如是否成功,且如果不成功,描述错误的错误代码出现。
参照步骤1916,VDP系统1904接收备份结果,该备份结果为包含XML的字符串。该备份结果被解析以确定备份是否成功。然后从保护主机1901中未映射阶梯磁盘。
参照步骤1917,如果步骤1916的结果指示备份成功,则仅到达该步骤。使用VDP系统的闪速拷贝特征来创建阶梯磁盘的时间点快照。该阶梯磁盘的快照为文件系统在阶梯磁盘上的虚拟全拷贝并且存储在性能池1906中。该阶梯磁盘的快照在VDP系统内具有带内备份的相同特征。这些快照可以作为全独立的磁盘被安装,可以为长期存储而进行的克隆、恢复、复制这些快照,或者为了灾难恢复和商业连续性在WAN上运输这些快照。
参照步骤1918,新时间点快照(若有的话)被编目成最新的主机文件系统的备份。当下次需要在相同被保护主机1901上保护相同文件系统时,阶梯磁盘将被再用,由此基本上减少了必须在未来备份中由智能拷贝代理拷贝的数据的量。
用于数据库备份的智能拷贝
该公开描述了对虚拟数据管线(VDP)系统的扩展,以支持数据库系统的保护和复制,该数据库系统另外对VDP系统不可访问。例如,该扩展允许VDP系统保护VDP系统不能与其直接通信的数据库(例如,该数据库存储在系统的本地驱动器上,或者存储在由VDP系统不可访问的私有网络提供的网络存储上)。
使用在该公开中描述的实施例,关系数据库系统(RDBMS)例如Oracle、SQL服务以及Sybase可以使用虚拟数据管线系统的所有工作流的益处来保护和复制。数据采集可以有效且递增地完成,并且该备份可以为虚拟全备份,该虚拟全备份可以快速且有效地被加载、克隆和恢复。
在该公开之前,没有想法去使用虚拟数据管线(VDP)技术,该技术位于来自待备份的主机系统的不同主机上,以采集且保护在主机系统内的直接附接驱动器上的关系数据库中的存在的、或者具有其自身存储的由外部文件服务器提供的网络附接的存储上存在的保护数据。不存在VDP系统与这种数据库直接通信以管理数据库的方式;该数据库通过一些其它路径对主机是可见的。
通过本公开,可以使用VDP系统的所有益处来保护数据库系统。备份图像被递增地采集,并且仍可用作虚拟全图像。该数据被暂时组织,从而更容易采集时间有序的依赖性且在较小存储空间中得到益处,更有效去重且更有效数据管理。虚拟全图像也能够在不需要在全拷贝之上的增量拷贝之上的层增量(以此类推)的情况下容易呈现给主机,以减少了恢复或者克隆的时间,并且能够立即加载能力。
可以使用在要被保护的主机上执行的RDBMS代理来保护数据。RDBMS代理可以呈现来自VDP系统的存储,并且使用呈现的存储来拷贝仅对主机可见的数据库。RDBMS代理可以被配置为使用数据库拷贝工具,使得数据库拷贝可以由数据库系统加载和使用,甚至在随后的增加的拷贝之后。
图20A描绘了根据一些实施例的用于数据库的保护的配置2000。该配置2000包括主机2001,该主机2001运行RDBMS激活的代理2002。RDBMS代理2002为主机2001上的后面运行的处理,其在本文中详细描述。该配置2000也包括在主机2001上加载的主数据库存储器2003,该主数据库存储器不能由VDP系统2004直接访问。要被保护的数据库数据靠直接附接的或者带外或者网络附接的存储2003存在。RDBMS代理2002与VDP系统2004通信。VDP系统2004与性能池2006通信,该性能池2006对VDP系统2004直接可访问。该配置2000也包括备份阶梯卷2005,该备份阶梯卷2005在备份期间加载在主机2001上,并且从性能池2006中分配,并且与RDBMS代理2002通信;在性能池2006之外创建阶梯卷。
主机2001为运行RDBMS的服务器,该RDMBS为需要备份保护的实际数据库。在主机2001上运行的RDBMS使用对VDP系统2004而言被认为是带外的主数据库存储器。例如,Oracle数据库使用由除了性能池2006之外的阵列供应的数据库存储来在Linux服务器上运行。该数据库服务器存在于数据中心并且用作各个应用的持久性数据储存库。
RDBMS代理2002为在主机2001上运行软件组件。RDMBS代理2002部署在主机2001上并且在数据备份期间与VDP系统2004、主数据存储器2003以及备份阶梯卷2005通信。RDBMS代理2002与RDBMS通信并且将可用的传统方法用于增加的永远方法论。
主数据库存储器2003为在主机2001上运行的RDBMS的数据存储。主数据库存储器2003可以为本地附接的磁盘驱动器或者由在主机2001上运行的RDBMS消耗的网络附接的存储。
VDP系统2004可以为本文所述的虚拟化数据保护系统的实施例。
备份阶梯卷2005为性能池2006之外提供的备份目的并且由VDP系统2004来管理。备份阶梯卷2005被加载到主机2001,因此允许执行读取和写入操作。RDBMS代理2002将RDBMS备份伪像(artifact)写入到备份阶梯卷2005中。
性能池2006为由VDP系统2004使用的存储池,以执行保护操作。保护操作请求来自性能池2006的存储,以用于备份,例如,备份阶梯卷2005在性能池2006之外提供并且被映射到主机2001。
图20B示出了配置数据库以与VDP系统一起使用的示例性处理。在步骤2050处,将备份请求从VDP系统2004发送到RDBMS代理2002以用于备份阶梯卷2005需要。下面参照图20B的步骤2007至2012进一步详细解释步骤2050。在步骤2051处,VDP系统2004处理备份阶梯卷2005需要消息并且准备备份阶梯卷2005。下面参照图20B的步骤2013至2015进一步详细解释步骤2051。在步骤2052处,VDP系统2004将备份阶梯卷2005映射到主机2001;RDBMS代理2002使备份阶梯卷2005准备好接受备份I/O。下面参照图20B的步骤2016至2017进一步详细解释步骤2052。在步骤2053处,RDBMS代理2002执行主数据库存储器2003的备份。下面参照图20B的步骤2018至2020进一步详细解释步骤2053。在步骤2054处,RDBMS代理2002将增量变化与最后备份合并以使它最新,并且拷贝所需要的数据库伪像到备份阶梯卷2005上。下面参照图20B的步骤2021至2024进一步详细解释步骤2054。在步骤2055处,VDP系统2004创建备份阶梯卷2005的快照并且分类元数据。下面参照图20B的步骤2025至2027进一步详细解释步骤2055。
图20C示出了永远增加的备份保护的示例性详细消息和数据流。图20A和图20B详述了VDP系统2004和RDBMS代理2002之间的通信、以及VDP系统2004和RDBMS代理2002之间的执行步骤。
保护策略在步骤2007中由VDP系统2004的调度程序来激活。保护策略为SLA(服务水平协议)的一部分,该部分由最终用户限定并且由VDP系统2004来存储并且在要被保护的主机2001上应用于RDBMS。SLA具有由VDP系统2004的调度程序限定且评估的计划表。一旦确定了满足限定的标准,该策略就由计划表激活。
在步骤2008处,VDP系统2004在保护主机2001上向RDBMS代理2002发送请求。步骤2008的请求包含用于备份操作的指示以由RDBMS代理2002消耗。
在步骤2009处,在接收来自VDP系统2004的备份指令之后,RDBMS代理2002处理备份指令。
在步骤2010处,RDBMS代理2002与RDBMS通信,以确定RDBMS的配置大小用作用于备份阶梯卷2005的大小。在一些示例中,最终用户选择使用用户指定的大小来重写计算出的大小。以以下这种方式计算备份阶梯卷2005的大小:允许增加的备份在没有运行至针对备份的空间之外的情况下永远执行。
在步骤2011处,RDBMS代理2002向VDP系统2004发送用于备份阶梯卷2005的大小需要和唯一签名。唯一签名为可以用于在性能存储池2006中唯一地识别备份阶梯卷的字符串。例如,针对Oracle数据库,其SID(Oracle系统ID)可以用作备份阶梯卷2005的唯一签名。
在步骤2012处,VDP系统2004接收来自RDBMS代理2002的用于备份阶梯卷2005的大小需要和唯一签名。
在步骤2013处,VDP系统2004检查性能池2006中的现有的阶梯磁盘来确定具有该唯一签名和所需大小的磁盘是否已经存在。该方法如果没有找到阶梯磁盘则移动到步骤2014,或者如果在性能池2006中找到了阶梯磁盘则转移到步骤2015。
在步骤2014处,VDP系统2004创建来自性能池2006的具有所需大小和签名的备份阶梯磁盘。
在步骤2015处,VDP系统2004从性能池2006中取回在步骤2013中找到的备份阶梯磁盘。
在步骤2016处,VDP系统2004向要被保护的主机2001呈现在步骤2014中创建的阶梯磁盘或者在步骤2015中得到的阶梯磁盘作为备份阶梯卷2005。该呈现在于向要被保护的主机2001映射阶梯磁盘,向要被保护的主机2001发送唯一磁盘签名。
RDBMS代理扫描总线以找到呈现的备份阶梯卷2005,并且如果呈现的备份阶梯卷2005为未初始化的卷,则RDBMS格式化未初始化的卷并且创建文件系统来接收步骤2017中的数据。在主机操作系统上自然支持的且与数据库软件可兼容的任何文件系统类型是可接受的。在优选实施例中,NTFS文件系统用于Windows系统,并且ext3文件系统用于Linux系统。
在步骤2018处,RDBMS代理2002首先通过检查备份阶梯卷2005来确定是否需要用于RDBMS的备份的全摄取(full ingest)。如果之前备份伪像被发现并且确定不需要全摄取,则RDBMS代理2002将移动到步骤2020。否则,RDBMS代理2002将移动到步骤2018以针对于全摄取。
在步骤2019处,RDBMS代理2002拷贝要被保护的数据库的逻辑内容到阶梯卷2005上。该拷贝的目的在于以可以在类似主机器上开始数据库数据的图像的格式来创建数据库数据的图像。数据库的采集图像的内容为在特定时间点处的原始数据库的精确复制。
用于创建图像拷贝的方法可以从一个数据库申请变化到另一个。本领域的一些技术人员将清楚地知道如何使用数据库供应商的常规方法来创建特定数据库系统的图像。例如,供应商通常为数据库系统提供备份工具,其允许数据库以该数据库可以被加载为操作数据库的方式被拷贝。例如,针对Oracle数据库,创建图像的优选方法在于使用Oracle RMAN命令“备份增量等级0作为具有标签“xyz”的拷贝数据库”。否则,使用不是被设计用于数据库的常规备份方法可能没有保存数据库结构,并且因此使用常规备份方法备份的数据库可能没有导致操作数据库(例如,备份的数据库不能由数据库实用工具来加载和使用)。
在步骤2020处,RDBMS代理2002执行主数据库存储器2003的增量备份,将备份伪像写入到备份阶梯卷2005上。
在步骤2021处,RDBMS代理2002将该变化与数据文件的图像拷贝进行合并以使这些图像拷贝在备份阶梯卷2005最新。
一旦在阶梯磁盘上的图像创建完成,RDBMS代理就可以拷贝额外的伪像到阶梯磁盘如在步骤2022中备份图像子一致性所需要的。本领域的技术人员可以识别备份控制文件,存档记录文件、数据库配置文件和VSS写入器元数据文档以作为可以被拷贝到备份阶梯卷2005上的伪像。
在步骤2023处,RDBMS代理2002卸载阶梯盘2005,以阻止图像拷贝并且其它备份伪像被重写或者损伤以保存备份数据完整性。
在步骤2024处,RDBMS代理2002向VDP系统2004发送包含备份的元数据的备份结果消息,以完成备份操作。现在完成了RDBMS代理2002的参与。
在步骤2025处,VDP系统2004未映射来自要被保护的主机2001的备份阶梯卷2005。最终用户选择了保持映射到主机2001的备份阶梯卷2005以重写默认行为。
在步骤2026处,VDP系统2004创建备份阶梯卷2005的时间点快照。该步骤在于创建备份阶梯卷2005的时间点闪速拷贝。闪速拷贝可旨在在与采取快照时刻的状态处的数据内容一起的多个用途。例如,备份阶梯卷2005的闪速拷贝图像可以被加载到用于测试的质量保证部门中的主机。
在步骤2027处,备份阶梯卷2005的快照被编目成最新的RDBMS应用的备份。
下次在保护的情况下按日程向相同数据库激活保护策略,可以重用表示阶梯卷2005的相同图像模式磁盘,由此减少可能潜在需要的数据移动的数量。在这种情况下,如在步骤2015中完成,VDP系统2004向主机2001呈现相同备份阶梯卷2005。RDBMS代理2002扫描这些卷并且加载文件系统,由此在步骤2017中使能之前创建的图像对主机可视。RDBMS代理2002现在更新阶梯磁盘上的图像,在步骤2020和2021中提出该图像到最新时间点。再次,详细方法可以根据数据库供应商的常规方法而变化。针对Oracle数据库,作为一个示例,该程序意图运行RMAN命令“用于具有标签“xyz”数据库的拷贝恢复的备份增量等级1”接着是命令“具有标签“xyz”数据库的恢复拷贝”。在步骤2022中,在步骤2023中卸载阶梯卷之前再次将用于自一致性的伪像拷贝到阶梯卷,并且向VDP系统2004发送消息。在步骤2026中,VDP系统2004未映射来自主机2001的阶梯磁盘,并且创建阶梯磁盘的最新时间点快照。该组快照在步骤2027中被编目成数据库应用的最新备份。
阶梯磁盘的快照为在保护之下的数据库的虚拟全备份并且具有VDP系统内的带内备份的所有特征。这些备份图像可以被加载并且开始为全独立实例;可以为了长期存储克隆、恢复、去重这些备份图像,或者为了灾难恢复和商业连续性在WAN上运输这些备份图像。
当从RDBMS设备执行复制时,在主机2001上执行最初备份。复制操作由RDBMS代理2002执行。完成到卷集合2005的复制,该复制由VDP系统2004来呈现。
用户接口中的快速链接服务
该公开涉及数据管理虚拟化空间中的产品的用户接口。更具体地,如本文所述的,本公开描述了用于快速链接数据管理、数据保护、灾难恢复以及来自数据管理提供器的存储管理站顶部上运行的商业连续性服务的系统和方法。快速链接可以被限定为以下动作,其通过使用共享服务缓冲而跨服务共享服务上的数据和信息来跨越由服务对象限定的多个不同服务。快速链接服务可以用于基于系统实现的子系统的上下文信息来自动执行工作流中的步骤(例如,数据管理、数据保护、灾难恢复和商业连续性服务),而在没有上下文信息的情况下该步骤需要(例如由系统用户)手动执行。例如在视图中固有地表示用户的作用和权力,并且因此审视服务内可用的功能。快速链接可以解决上下文意识和用户初始化的工作标识符的问题,同时简化了端到端工作流。对数据管理虚拟化显示的基础子系统的访问可以允许数据管理虚拟化显示使用特定数据管理虚拟化实现的角色,其结合能够从基本子系统中搜集到的数据和其它信息,以自动执行另外需要由用户手动控制和操控的工作步骤。
数据管理提供器台式机
图21描绘了根据一些实施例的数据管理提供器台式机。数据管理提供器台式机为实现用于数据管理虚拟化引擎306的系统和方法的用户接口。数据管理提供器台式机允许用户管理、监视、配置且报告管理的数据、应用以及它们相关联的存储,如从数据管理虚拟化引擎306中可视的那样。在数据管理提供器台式机内,每个主使用情况分解成用户角色在以系统执行时可能感兴趣的动作组。每个基于角色的逻辑组构成了“服务”。
在一些实施例中,所支持的服务可以包括仪表板。该仪表板可以包括但不限于当前和历史的数据的集合视图以及用于系统组件的性能。该仪表板也可以包括构成数据管理虚拟化引擎的大部分组件的时间点状态以及需要立即用户干涉的任何关键事件。
在一些实施例中,所支持的服务可以包括域名管理器。域名管理器可以包括功能组,该功能组传统上由负责它们组织内的配置管理、主机管理以及安全管理的用户执行。
在一些实施例中,所支持的服务可以包括服务水平协议(SLA)体系结构。这允许用户创建且管理指定用于其生命周期的应用的商业需求的SLA。如本文中进一步所述,SLA为以下详细说明,该详细说明采集与应用数据的拷贝的创建、保留以及删除有关的详细商业需求。
在一些实施例中,所支持的服务可以包括应用管理器,该应用管理器参照图23进一步详细来描述。
在一些实施例中,所支持的服务可以包括报告管理器。报告管理器基于与基本平台子系统的数据集成和连接性来提供基本报告和商业分析。
在一些实施例中,所支持的服务可以包括系统监视器,该系统监视器关于图24进一步详细来描述。
数据管理提供器台式机2100在客户PC上运行(例如,运行Windows或者Mac OS),并且在IP网络2101上与数据管理虚拟化引擎306(例如参照图3所描述的)通信。在一些实施例中,该通信使用安全HTTPS协议。在一些实施例中,API以REST为基础。数据管理虚拟化引擎经由IP或者光纤通道(FC)网络2104连接到主机2103和存储源2102。主机2103可以为例如感兴趣的程序、应用以及文件系统存在的物理机或者虚拟机。存储源2102可以为实际数据存储的位置。
图22描绘了根据一些实施例的具有快速链接的数据管理提供器台式机UI内服务管理器接口的示意图。该服务管理器在台式机UI内运行。服务组2201存在于窗口管理器2200。这些服务仪器表2202、域名管理器2203、SLA体系结构、应用管理器2205以及系统监视器2206中的每一个经由快速链接2208彼此连接。每个服务存在于共享缓冲2207的顶部,由UI控制器2209来管理,并且遵循模型视图控制器体系结构。数据模型2210维持讨论中的用于服务的对象。快速链接除了向这些服务提供入口点之外也允许共享服务之间的数据。
参照窗口管理器2200,窗口管理器可以为在其里面创建且可视化视图和服务的壳。窗口管理器抽象化基本OS底部并且提供与窗口框架一起工作(例如,改变大小、款式以及布局)的便利。
参照快速链接2208,快速链接2208将服务2201一起连结,以通过它们的用例来无缝地引导用户。例如,快速链接机制可以用于与备份数据管理有关的各种工作初始化用户动作,包括但不限于:加载、克隆、恢复、卸载以及删除、过期、故障转移、测试故障转移、和/或备份工具等。快速链接2208在服务2201之间提供切换内容的可视且直觉方法而同时在它们的现有子系统上给用户提供实时状态和反馈。
快速链接为服务通过其可以彼此通信、更新它们的上下文且最后解决连系客户需求的用例的过程。快速链接通过使用服务对象的便利和能力来实现;快速链接可以通过服务的任何组合来调用且管理。平台上的基本API在切换上下文的过程中起到重要部分,其基于快速链接用例来为查找和复杂寻求提供便利。
参照共享服务缓冲2207,这可以为以名称/数值对来保持数据的数据结构。这些数据集合经由公开方法对所有服务可访问。存在实现共享服务缓冲的多种方法例如哈希表。
参照UI控制器2209,UI控制器2208可以类似于基于模型视图控制器(MVC)的体系结构来实现,在该体系结构中,商业知识存在于UI控制器2209中并且将窗口管理器2200中的UI视图与数据模型2210分开。UI控制器2209可以被配置为倾听UI视图和/或数据模型二者中的变化。
参照数据模型2210,这为存储大部分服务中心数据的地方。每个服务可以被配置有其自己的模型,并且控制器获得来自视图的事件,将它们转换成实体以更新该模型。
图22A示出服务和它们链接的实现方式和体系结构。服务对象2222实现窗口管理器2220和多个定向的视图2224。服务对象2222也具有到共享服务高速缓冲存储器2207的指针。UI控制器2209运用服务对象内的大部分功能。
根据本文所公开的系统和方法,用于数据管理虚拟化系统的各个视图一起逻辑上分组成服务集合2201。体系结构提供了共享服务高速缓冲存储器2207,以允许所有服务访问、运输且保存服务2201上的数据。体系结构也提供能够用于限定特定服务的组分的服务对象2222(例如,包括用于服务的特定窗口管理器,用于服务的定向视图,如何将服务与共享高速缓冲存储器相互作用以及控制器管理服务的方法)。服务对象2222包括用于服务对象的名字、对窗口管理器2220的参考、用于服务对象2222的当前加载的视图的指示、对共享服务高速缓冲存储器2207的访问方法的集合、其它服务对象用于访问服务对象的公开访问方法以及数据模型(例如数据模式2210)。
可以实现用于特定服务对象2222的窗口管理器2220。如本文中所述,窗口管理器为在其里面对用户创建且可视视图的壳。窗口管理器2220包括用于窗口管理器2220的名字、窗口管理器实例、电流负载状态、电流可视状态以及用于窗口管理器2220的公共访问方法。
定向视图2224为用于服务对象2222的视图。每个定向视图2224包括用于定向视图2224的名字、用于定向视图2224的HTML模板以及用于定向视图2224的公共访问方法。
UI控制器2209被配置为管理服务对象2222。在一些实施例中,UI控制器2209经由共享服务高速缓冲存储器2207来管理服务对象2222之间的数据转移。如上所述,共享服务高速缓冲存储器2207可以以键/数值对的阵列形式共享数据。数据可以例如针对功能上下文和/或可视上下文等而被共享。
工作
在数据管理域中,存在能够影响系统状态的大量的用户初始化的操作,这些通常需要仔细的监视和报告。这些用户驱动的端对端任务中的每一个都触发系统水平活动(例如,数据管理虚拟化引擎306中的过程),其在此后被称为“工作”。工作可以包括具有它们自己状态和生命周期的多个子工作。数据管理虚拟化子系统内的工作的管理和监视为显著活动且从系统监视服务内来执行。
在一些实施例中,服务策略引擎负责管理工作。数据管理虚拟化引擎306执行跨越多个存储池的几个工作,例如备份、恢复等。例如,如果存在操作涉及的多个卷,则每个工作实例化其它子工作。
服务2201
参照服务2201,每个服务被实现为其自己窗口管理器内的独立应用。每个服务共享库的框架和用于处理常见函数行为和可视组件的所写入的代码。服务对象的阵列被存储在基本窗口管理器内并且当开始台式机应用时被实例化。
应用管理器2205
图23描绘了示例性应用管理器服务。应用管理器服务提供用于发现、保护且管理应用生命周期的图形用户接口。在其框架内逻辑上组织且显示由服务水平协议(SLA)保护的所有应用。备份、恢复和其它数据管理虚拟化引擎306操作从该服务开始。
包括用于应用管理器的元素的导航列表2302的应用管理器服务2301的虚拟化包括在由数据管理虚拟化子系统管理下的所有应用。备份列表2303用于所选择的应用,图像ID 2304用于识别图像,并且2305为该图像上所支持的动作。该图像为对服务而言可视的样品,并且用户可以触发动作,以初始化快速链接。
系统监视器2206
图24描绘了示例性系统监视器服务,其中,该数据管理提供器台式机负责处理与工作有关的所有用户可视活动,包括监视和管理。图24页识别系统监视器的布局。
系统监视器服务2401列出子系统中的工作和事件。工作列表2402让用户为数据网格选择上下文。过滤器2403允许用户基于预先确定的过滤器来缩小该网格中的数据集合。个别工作2404在网格中被列出,每个工作具有对应的工作ID 2405。
图25描绘了来自系统监视器服务内的特定工作的具体细节的显示。用户可以通过双击行或者选择带来细节的“视图细节”选项来选择个别工作,如图25中所示的那样。
服务管理器
服务管理器为允许管理个别服务实例的框架。服务管理器提供与几个服务有关的操作,包括:增加新服务,移除现有服务,显示且隐藏服务并且管理它们的可视状态。
快速链接
如上所述,快速链接2208将服务2201一起连系,以无缝地通过它们的用例来引导用户。为了说明这些技术,使用了备份加载操作的样品任务。用于备份加载操作的服务包括应用管理器2205和系统监视器2206。用户初始化来自应用管理器2205内的加载操作。系统识别该应用以及可以加载的其相关联的备份,接受与加载点和期望加载的个别备份卷有关的来自用户的输入。一旦用户输入已经被验证,数据管理虚拟化引擎306系统就初始化加载请求,该加载请求实例化了对应工作和/或需要的子工作。
在数据管理虚拟化引擎306的平台子系统内维持工作之间的关联。将实例化工作和/或所需子工作的请求从数据管理提供器台式机2100发送到数据管理虚拟化引擎306。在成功实例化工作时,数据管理虚拟化引擎306将工作(或者当存在所需子工作时的父工作)的唯一ID返回到数据管理提供器台式机2100。在一些示例中,可以经由网络服务应用编程接口(API)将请求传输到数据管理虚拟化引擎306。网站服务可以为基于Java的表述性状态转移(REST)建筑原理的服务定制实现方式。平台和用户接口之间的通信可以使用在超文本传输协议协议安全(HTTPS)协议上的JavaScript对象记号(JSON)-形成的字符串。数据管理提供器台式机2100然后使用该ID漫游所有可用工作的列表。
图25描绘了根据一些实施例的来自系统监视器服务2206内的特定工作的具体细节的显示。一旦识别了与工作的匹配,工作细节就从数据管理虚拟化引擎306请求。这些细节在适当服务中被适当格式化、可视化且可用于用户。在该示例中,将服务上下文切换到系统监视器2206,并且向用户呈现工作细节窗口。如果工作处于运行状态,则动态更新工作的细节。从由数据管理提供器台式机2100初始化的查询获得状态信息以作为每5秒的客户端轮询回路的一部分。工作平台一确认已成功启动了工作,该轮询就开始。
在图形上下文中,应用管理器2205视图(图23)切换到工作细节视图(图25),并且背景服务切换到系统监视器2206视图(图24)。
服务上下文切换
在数据管理提供器台式机2100实例水平上维持当前加载的服务的阵列,并且该阵列还存储每个服务的状态,包括该服务是否是用户可视的。当切换上下文出现时,该切换上下文更新在加载的服务的阵列中的存储的状态,并且使用窗口管理器2200来改变可视上下问文。如果之前没有加载服务(该服务没有处于当前加载的服务的阵列中),则它也涉及实例化服务实例。
图26描绘了在没有快速链接情况下的用户流程。在步骤2601处,用户初始化来自应用管理器2205的工作。在步骤2602,该系统响应于用户请求来触发工作或者工作列表。在步骤2603,系统监视器2206通过开始日期、状态和工作类型来组织工作。在步骤2604处,系统监视器2206显示有序的工作列表,该工作列表基于新用户请求来定期地更新。在步骤2605处,用户将服务从应用管理器2205切换到系统监视器2206。在步骤2606处,用户选择适当过滤器来缩小系统监视器2206内的可能工作的列表。在步骤2607处,用户基于系统监视器2206中的动作类型来识别工作。在步骤2608,用户选择工作并且在所选择的行上双击以获得在系统监视器2206中的工作具体细节。该处理可能需要多个复杂步骤。
图27描绘了具有快速链接的用户流程。在步骤2701处,用户初始化来自应用管理器2205的工作。在步骤2702中,数据管理提供器台式机2100使用快速链接来显示用于适当工作的细节。该过程在没有来自用户的额外互动的情况下是复杂的。
智能数据同步
下面部分处理了数据管理系统内的操作数据。因为数据存储在系统内,所以与快照时间有关的元数据、内容可访问的控键以及其它这种元数据在系统中累计。该数据为呼叫的操作数据。操作数据也包括策略、计划表以及系统配置。平台服务器为集中的数据管理系统,该系统为每个子系统在本地地收集且维持(平台服务器正在管理的)来自每个子系统的操作数据的拷贝。同样,远程站点复制需要用于每个站点的一个系统。如果两个站点是靠近的,则单个管理控制台可以用于二者。
在一些情形中,多个数据管理系统的使用可以提供优势。这可以出现例如在系统中存储的用户数据的数量超过最大阈值例如127兆兆字节(TB)时。可以通过使用集中管理服务器来促进多个数据管理系统的使用,该集中管理服务器同步用于多个数据管理系统中的每一个的操作数据。下面讨论用于复制且同步操作数据的方法。在一些实施例中,可以基于数据自身来为数据部署不同同步策略。在一些实施例中,可以基于数据记录(较小数量的记录、中间尺寸的记录集合或者较大尺寸的记录集合)的数量来为数据部署不同同步策略。同步操作数据可以例如消除集中管理服务器的用户转到每个数据管理系统以管理每个系统的需要;相反,同步操作数据可以通过集中管理服务器来简单管理所有数据管理系统。用户可以容易得到用户在集中管理服务器的帮助下负责的所有数据管理系统的全局视图。
传统上,通过比较来自源和目标的数据、将仅在源中存在的数据增加到目标、删除仅在目标中存在的数据、并且如果目标数据和源数据不同则使用来自源的数据更新目标数据,从而同步操作数据。本文公开了这些技术以复制操作数据。可以基于操作数据记录的数量来使用不同技术。例如,每次同步出现时,可以简单复制较小集合;因为数据通常变化且可以迅速完成。针对中等集合,时间戳和记录ID二者可以用于同步数据(例如由于ID的数量是可管理的,并且可以用于指示删除信息)。针对较大集合,记录ID单独可以用于同步数据连同公差号,以解释同时处理窗口(例如由于不能保证一些操作在其它操作之前出现)。这是可能的,因为一旦被创建,较大的数据集合通常就不会改变,并且通常基于一些保留策略来删除。
图28描绘了根据一些实施例的能够管理多个数据移动虚拟化引擎306的管理控制台2801。这描绘了当将多个数据移动虚拟化引擎306上的数据被同步到单个管理控制台2801时的情景。管理控制台2801可以包括企业管理器操作数据2802的数据库,该数据库包括被同步到管理控制台2801的多个数据移动虚拟化引擎306中的每一个的数据管理操作数据3001的被复制的拷贝。这些数据管理操作数据3001维持定期操作,或者通过正常操作来生成。虽然其它类型的存储也是可能的,但是它们通常存储在关系数据库系统中。
图29描绘了根据一些实施例的企业管理器操作数据2802的数据库。该数据库可以存储例如与执行操作所需要的数据有关的操作数据以及这些操作的结果。在数据库中存储的操作数据包括服务水平协议(SLA)数据2902、保护数据2904、历史数据2905、事件存储数据2903以及应用数据。数据移动虚拟化引擎内的唯一ID可以用于唯一地识别在数据库中存储的每个记录。
针对管理多个数据移动虚拟化引擎306的管理控制台2801,这些操作数据可以同步到管理控制台2801,这些操作数据也存在于关系数据库中。每个数据移动虚拟化引擎306也与唯一ID相关联。唯一记录ID和数据移动虚拟化引擎ID的组合唯一地识别管理控制台中的记录以及该记录的来源。
图29描绘了管理控制台操作数据2802的示例,该管理控制台操作数据2802包含从数据移动虚拟化引擎复制的数据。图30A描绘了根据一些实施例的数据管理操作数据3001的示例。这些数据可以包括SLA数据3002、保护数据3004以及历史数据3005。事件存储数据3006和应用数据3306也可以与操作数据3001处于同地(co-locate)。应用数据表示数据管理系统管理的应用。SLA数据表示用于保护应用的策略。保护数据表示用于保护各种应用的策略。历史数据表示无论其是否成功都在系统上执行的所有保护操作。事件数据收集在数据管理系统上出现的所有事件。
通常,操作数据可以分为:较小尺寸的数据集合,通常小于几百个记录,例如SLA 3002;或者中间尺寸的数据集合,通常在数千,例如保护数据3004;或者较大尺寸的数据集合,其可以为成千上万或者甚至更多,例如历史数据3005。在一些实施例中,记录的尺寸不是要紧的而是仅仅记录的数量。针对较大尺寸的数据集合,因为它们通常以较高速率来生成,它们通常不被修改并且仅大批地删除。历史数据3005符合该标准,因为它们表示在数据管理操作数据3001中执行的所有操作的历史记录。另一个示例为事件数据3003。较小数据集合的同步(或者频繁改变数据集合)。
针对包含较小记录集合的表(记录集合),所有记录的传统比较是足够的。这涉及将所有数据从源复制到目标且比较它们。因为数据集合是较小的,所以网络带宽消耗和处理它们的CPU通常是最小的。较小数据集合可以包括小于1000个的操作数据记录。
中间尺寸的数据集合的同步
随着记录集合的总尺寸增加,提取所有记录且比较它们的成本也增加。不同策略可以用于更有效同步数据。中间尺寸的数据集合可以包括超过1000个的操作数据记录但小于100000个的操作数据记录。
在一些实施例中,当每次改变(例如更新或者创建)记录时,当前时间戳被包括。因为每个记录包含最后修改的日期,所以可以仅检查自从最后同步而已经改变的记录。每个同步请求伴随着最后同步时间,所以仅最新改变从源发送到目标。
由于在关系数据库中保存变化没有立即发生,所以最后同步时间的使用可能不足以区别两个同时保存的变化。同样,如果记录的时间戳在分配的时间戳和同步时间之间正好下降,则也可能丢失记录。该问题可以通过增加(或者退回)公差调整到同步时间来避免。这可能导致更多数据被发送,但是可以保证正确性,因为如果发生了变化则仍然比较且更新每个记录或者如果没有变化则丢弃每个记录。随着提交变化所需要的最大持续时间,可以计算公差。
通常存在在记录上设置时间戳的时间和实际保存的时间之间的延迟,使得如果在第二记录之前保存第一记录,则在系统上运行的并发事务可以导致第二记录在第一记录之前的时间戳。可以计算该公差,以更足够覆盖那个时间段,以及更多。当较大公差导致更多记录被检查时,较大公差可以更好保证正确性。通过检查允许的并发事务和由于数据的实际保存而导致的最大延迟,可以选择合理的公差。然后,为了安全起见,可以增加额外的因素(例如使计算出的公差加倍不太大地影响性能,但是保证适当同步数据)。2分钟的公差例如可以用于做额外的因素。
如果从未删除数据,则该同步程序良好工作。然而,在能够删除记录的情况下,不存在存储记录内的时间戳的地方,因为该记录不再存在。为了解释从源中删除的数据,可以施加不同的策略。因为使用唯一的ID来标记每个记录,所以除了发送最后的同步时间之外,可以将目标系统中的所有已知ID发送到源侧。然后,源侧可以检查源ID,并且退回不再处于在源侧的ID列表。然后,目标侧可以删除待删除的源标记的数据。
图30B描绘了数据管理操作数据3001中的保护数据3004,该保护数据3004具有保护数据记录,该数据记录具有在1月1日(1-1;年份针对该示例不是必须的)修改的ID 10002、在1月13日(1-13)修改的ID 10004、在1月12日(1-12)修改的ID 10012、在1月16日(1-16)修改的ID 10015、以及在1月20日(1-20)修改的ID 10020。每个入口在保护数据3004中的椭圆指示其它字段可以被包括,以及用于该记录自身的数据。在之前同步期间,在1月1日(1-1)修改的ID 10002、在1月13日(1-13)修改的ID 10004、在1月2日(1-2)修改的ID 10007、在1月12日(1-12)修改的ID 10012以及在1月12日(1-12)修改的ID 10015在管理控制台2801中被同步到保护数据2904。在该示例中,保护数据3004到保护数据2904的最后同步发生在1月15日(1-15),所以保护数据3004中的到记录ID 10015的1-16修改以及到记录ID 10020的1-20修改没有被同步到管理控制台2801(保护数据2904),并且记录10007从保护数据3004中被删除,其没有在管理控制台2801中被反应。最后同步时间(例如针对该示例的1-15)被记录以便于下一个同步的容易计算。
在下一个同步期间,管理控制台2801可以向数据管理虚拟化引擎306发送请求以同步保护数据,如图30C所示。该请求30041包含系统从其减去公差(针对该示例,我们将使用1天)的时间戳,如上所述。所以在请求30041中,在减去一天的公差之后,将来自向前的1-14而不是1-15的所有数据的请求由管理控制台2801发送到数据管理虚拟化引擎306。作为另一个示例,时间戳可以包括分信息、秒信息等。例如,如果公差为60秒,如果最后备份的时间戳为在下午1时的1-15,则管理控制台2801将从数据管理虚拟化引擎306中在下午12:59时请求来自1-15的数据。
当数据管理虚拟化引擎306接收请求30041时,数据管理虚拟化引擎3006取回自1-14即在1-16处修改的ID 10015、在1-20处修改的ID 10020创建/修改的保护数据。用于ID 10015(1-16)以及ID 10020(1-20)的内容被送回到管理控制台2801,保护数据3004中的所有已知ID(ID 10002、ID 10004、ID 10012、ID 10015、ID 10020)以答复30042被送回到管理控制台2801,如图30D所示。管理控制台2801仅可以更新ID 10015,并且创建ID 10020。然后,因为记录100017作为答复30042不再存在于已知ID列表中,所以删除记录100017,这意味着其由于到保护数据2904的最后同步而从保护数据3004中。可以针对管理控制台2802需要管理的数据管理虚拟化引擎306中的每一个(例如具有其自己修改的数据和用于每个数据管理虚拟化引擎306的ID列表的每一个数据管理虚拟化引擎)来重复该处理。
较大数据集合(一点也没有改变而仅大块删除了数据的数据)的同步
最后修改的时间的使用引发取回当前时间且使用该时间标记记录的成本。因为使用唯一ID来标记每个记录,所以如果在创建数据之后没有修改该数据,则通过使用ID生成策略而可以进一步提高同步较大数据集合的效率。较大数据集合可以为例如具有超过100000个操作数据记录的集合。
一种策略在于以不断增加的方式分配ID,并且不重用相同ID。这些ID可以在它们的顺序中具有间隔,但是通常较大ID指出稍后创建该记录。使用该系统或者方法,不存在以创建时间来加标签每个记录的需要。
为了有效分配不断增加的ID号,可以使用下面的策略。大块ID被预约以被分发(例如1024个ID、2048个ID等),并且在数据库中记录最后可能分配的ID(例如,ID 1024、ID 2048等)。每次需要ID,就使用一个ID。当使用了所有ID时,预约另一个大块ID,并且再次记录可能最大的ID。如果系统崩溃,可以丢弃没有发出的那些ID,并且该处理可以从记录的最大ID再次开始。这种方式,可以有效分配ID,并且ID通常与时间处于相同顺序,使得较大ID通常分配给时间方面稍后发生的数据。将预先确定的尺寸例如64位用于ID可以保证ID没有回路循环。
在同步期间,目标系统中的最大ID(并且减去一些公差号如在时间戳的情况下)将被发送到源系统而不是同步时间戳。仅具有较大ID的记录被发送到目标系统。此外,公差内的那些已知ID也被从目标发送到源。所以源仅需要发送大于从目标发送的ID且在公差期间不存在于ID列表中的那些ID。使用该系统或者方法,目标系统可以在不必比较记录的情况下获得本来从源发送的记录。
图30E描绘了数据管理操作数据3001中的历史数据3005,该历史数据的记录具有ID 1、2等等直到10010、10011、10012、10013、10014以及增加直到10100。每个ID与工作相关联(例如,ID 1与工作_00001相关联)。每个入口在保护数据3004中的椭圆指出其它字段可以被包括以及用于记录自身的数据。在将历史数据3005之前同步到历史数据2905期间,ID 1、ID 2、ID 10010、ID 10011以及ID 10013已经同步到管理控制台2801中的历史数据2905。
在下一个同步期间,管理控制台2801向数据管理虚拟化引擎306发送请求30051,以同步历史数据,如图30F所示。为了生成该请求,管理控制台2801首先检查其拥有的为10013的最大ID。然后,管理控制台2801将记录的公差号从最大ID中减去。在该示例中,我们可以使用3的公差号。从10013向后计数3个记录导致了10010的ID。所以请求30051针对于大于10010的所有历史数据。作为另一个示例,200的公差可以被使用,使得从最大ID 10013记录向后计数200个记录导致可以为ID 9801的ID。出于安全起见由于一些因素而可以通过检查并发事务以及提交处理的过程中的最大延迟来选择公差。
管理控制台2801也确定其是否已经具有在计算出的ID 10010和最大ID1014之间的任何记录。管理控制台2801确定历史数据2905包括ID 10011和10013,并且因此,历史数据不需要接收该数据的另一个拷贝。所以管理控制台2801生成针对大于ID 10010的所有数据的请求30051,但是不包括(10011,10013)。然后将该请求30051发送到数据管理虚拟化引擎306。
图30G描绘了在接收请求3051之后的数据管理虚拟化引擎306;该数据管理虚拟化引擎取回具有大于10010的ID的数据,但是排除具有ID 10011和10013的数据。数据管理虚拟化引擎306以答复3052将该结果送回到管理控制台2801。然后,管理控制台2801可以仅以答复30052来添加历史数据,这将仅包含历史数据2905没有具有的数据。可以针对管理控制台2801需要管理的数据管理虚拟化引擎306中的每一个(例如具有其自己修改的数据和用于每个数据管理虚拟化引擎306的ID列表的每一个数据管理虚拟化引擎306)来重复该处理。
如上所述,不同策略可以取决于数据的性质而施加于系统中的不同类型的数据。随着数据在系统中累积,可以提前知道数据的性质,并且可以基于这些性质而施加不同策略以实现不断增加的性能。
可以通过这些策略的组合来完成将数据从数据移动虚拟化引擎306同步到管理控制台2800。这些组合的示例包括:
·使用较小的数据集合的策略,将数据移动虚拟化引擎306上的SLA 2902同步到管理控制台2800上的SLA 3002。
·使用中间的数据集合的策略,将数据移动虚拟化引擎306上的保护2904同步到管理控制台2800上的保护3004。
·使用较大的数据集合的策略,将数据移动虚拟化引擎306上的历史2905同步到管理控制台2800上的历史3005。
基于位置的哈希索引高速缓冲
所公开的数据存储和去重引擎将任意尺寸的计算机文件或者磁盘图像源转换为一个或者多个固定尺寸的数据块。这些数据块可以被写入到容量最佳存储池(CAS)中,如上面在步骤1528处所述。随着数据被读取到CAS中,将数据块以它们被接收的顺序成批地被写到或者保存到文件系统。保留报头块(persistheader block)在每批之前。保留报头块包含与遵循所述保留报头块的每个数据块有关的信息,包括尺寸、位置和哈希代码。每批保留操作每次包含来自仅一个源的大约200个数据块。
本文所述的系统和方法提高了从去重数据存储中读取数据的性能。从去重数据存储中读取数据通常是耗时的,因为去重数据存储中存储的很自然数据通常通过各个指针(等)的数据存储被扩展以避免重复数据。因此,从去重数据存储中读取需要在整个数据存储中扩展的读取数据(例如,而不是依次,例如读取磁盘上存储的单个文件)。例如,每个用于数据的哈希必须首先被放置、然后用于查找相关联数据存储在磁盘上的索引,并且然后数据可以从系统中的读出(例如,其通常需要硬盘驱动器的许多次耗时机械移动)。通常使用B树来存储哈希信息,B树为保持数据被分类的且以对数时间允许搜索、依次访问、插入和删除的数据结构。然而,当从去重数据存储中读取时,使用B树通常不是足够快。
本文所描述的系统和计算机化方法提供了常规保留报头数据结构,该数据结构用于在最新数据被写到去重数据存储时存储最新数据。保留报头包括用于由保留报头表示的数据的哈希集合。该系统和计算机化方法也提供用于高速缓冲最近访问的哈希的退化的哈希表(也称为“计分板”)以及位于最近访问的哈希附近的哈希。例如,为保留报头中存储的数据读取哈希,则与保留报头相关联的剩余哈希可以预先高速缓冲到存储器中,以提高读取速度(例如,因为存在着在被查找的哈希之后也将读取数据的高可能性,这是由于哈希在相同写操作期间被写入到去重数据存储中)。如果下一个数据请求为用于退化的哈希表中预先加载的哈希,则预先加载的数据避免了在主哈希索引中查找数据的需要(这会是耗时的)。
图31是根据一些实施例的磁盘上的保留报头和随后数据的示意图。保留报头3100先于多个数据块0、1、2、3、4、……1919写入到磁盘以作为逻辑上单独的操作。针对保留报头3100,块0-1919表示来自源图像3102的第一块0-1919。保留报头3104也先于1920块(0、1、2、3、4、……1919)。针对保留报头3104,块0-1919表示第二1920块或者来自源图像3102的块1920-3839。当存储数据时,保留报头首先被写入到磁盘并且然后接着是多达1920个单独数据块。保留报头维持与接着发生的数据块中的每一个有关的识别哈希信息。
虽然每个保留报头中存储的数据被示出为与源图像上存储的数据线性对应,但是这仅仅出于示出目的。例如,针对去重数据存储,仅将新数据(且非重复数据)从源图像写入到去重数据存储。因此,在这些实施例中,保留报头仅存储用于每个写的新数据,所以,由每个保留报头存储的数据可能未必与源图像中存储的数据成线性关系。但是通过以这种方式在保留报头中排列数据,保留报头存储潜在相关内容、和/或邻近内容等。
图32是保留报头数据结构的示意图。1920个哈希的阵列3205包括接着保留报头的随后的数据块中的每一个的哈希值,如图31中所记录。256个块的阵列3204包含与精准位置、格式以及多达16个哈希值的“块”的有效校验和(checksum)有关的信息。
I/O报头3201为磁盘上存储的所有系统元数据共享的数据结构(例如C语言结构)。该结构可以包括例如用于错误校验、页识别号、页版本、当它被写入时的时间戳以及数据类型标识符的数据。
块计数3202为包含跟着该保留报头的用户数据的块的数量的整数。“块”包含多达16个4K(4096字节)的数据。
索引计数3203为包含跟着该保留报头的随后之前提及的块中包含的哈希数量的整数。
256个块的阵列3204为描述用户数据的随后块的结构(例如C语言结构)的阵列,该用户数据包括例如:位置、压缩、检验和、哈希的数量(多达16)以及加密。
1920个哈希的阵列3205为包含由该保留报头描述的所有4K数据块的SHAI哈希值的结构(例如C语言结构)的阵列。
未用空间3206为64K(65536字节)的填充物,以对齐整个保留报头结构。
校验和3207为用于验证数据完整性的结构的整数校验和。
图33是去重哈希索引的示意图。例如,去重哈希索引可以在B-树中来实现。内部页形成了对叶页(leaf page)的参考的索引阵列,该叶页继而为对保留报头(图32)中包含的哈希值的索引阵列参考。哈希值的一部分用作到内部页中的索引。在分层样式中,则更多的哈希值用于识别适当的叶页。最后,保留报头用于找到相关的数据块。
参照“内部页3301”,其为在磁盘上存储的且描述对“叶页3302”的参考的块的位置的结构(例如C语言结构)的阵列。每个内部页结构包含例如其中找到叶页的磁盘位置的阵列。
参照“叶页3302”,其为在磁盘上存储的且对“保留报头”3200交叉引用哈希值的结构(例如C语言结构)。
参照“保留报头”,见图32。
哈希索引为以下机制,系统中存储的数据基于其哈希值通过该机制而被找到。图32中示出的三个层次(内部页3301、叶页3302以及保留报头3200)创建了三排层级,以提供以下能力:在不需要在系统RAM中放置的索引的全部的情况下通过其哈希放置任何具体资料。例如,内部页可以驻留于RAM中而叶页如所需要的那样被加载和卸载。同理,保留报头被加载得如叶页参考所需要的那样。
图34是根据一些实施例的“页高速缓冲存储器”的示意图。页高速缓冲存储器为系统中的预分配的存储器页的阵列;每个存储器页被称为“高速缓冲存储器页”。高速缓冲存储器页在“页高速缓冲存储器”内被管理为LRU(最近最少使用的)列表。页高速缓冲存储器可以用作系统内的存储器的中央库。例如,由应用使用的大部分动态存储器可以从页高速缓冲存储器中获得。
当需要具体资料时,从最多最近使用的至至少最近使用的以线性方式搜索页高速缓冲存储器LRU列表,并且如果找到,适当高速缓冲存储器页3404从LRU列表中移除并且被返回。如果没有找到资料,则返回最少最近使用的高速缓冲存储器页。当释放高速缓冲存储器页时,它被放置在LRU列表的前面,使得如果再次需要可以迅速找到它。
参照“高速缓冲存储器页阵列3401”,其为描述多个预先分配的64K(65536字节)的存储器块的高速缓冲存储器页阵列条目3402结构(例如,C语言结构)的阵列。所有高速缓冲存储器页的大小为64K(65536字节)。该系统内的内部页3301、叶页3302、保留报头3200以及所有内部结构的大小符合一个高速缓冲存储器页。
参照“高速缓冲存储器页阵列条目3402”,其为描述高速缓冲存储器页阵列中的单个高速缓冲存储器页条目的结构(例如,C语言结构)。“列表3411”为用于管理链表包含物(例如这用于管理LRU)的结构(例如,C语言结构)。“索引3412”为索引值。“标志3413”值用于描述页如何用在应用内,例如,标志可以指出高速缓冲存储器页是否在使用中或者高速缓冲存储器页是否包含需要保存的数据。“tran_id 3414”字段用于使用高速缓冲存储器页来识别当前任务。“哈希代码3415”字段为通常包含由该条目识别的高速缓冲存储器页的SHAL哈希代码的C语言结构。高速缓冲存储器页3403可以用于任何数量的目的;内部页3301、叶页3302、保留报头3200或者其它系统数据。哈希标识符用于在页高速缓冲存储器中找到特定高速缓冲存储器页。“数据3416”字段为到由该条目所述的存储器的指针(例如,C语言指针)。在一些实施例中,数据指向保留报头,如图32所示。
图35是退化的计分板系统的示意图。“哈希表阵列3501”为包含一对数字的数据结构的阵列;该一对数字为:到“保留报头参考3502”阵列的索引以及到“1920个哈希的阵列”的保留报头的索引(图3205)。保留报头参考为保留报头哈希代码的MRU(最多最近使用的)阵列。保留报头哈希代码用于从“页缓冲”(图34)中取回“保留报头”(图32)。通过使用其识别哈希值的一部分作为到导致保留报头参考索引的“哈希表阵列3501”的索引以及到保留报头“1920个哈希的阵列3205”的索引来找到数据。页报头参考索引用于从“保留报头参考3502”中获得保留报头(图32)哈希代码。然后哈希代码3512用于从页高速缓冲存储器(图34)中取回保留报头数据。对保留报头“1920个哈希的阵列3204”的索引用于放置具体识别哈希代码。
参照“哈希表阵列3501”,其为链接哈希值到“保留报头参考3502”中的条目的结构(例如,C语言结构)的阵列。每个条目包含三个字段:“哈希片段3521”、“页索引3522”以及“哈希索引3523”。“哈希片段”为用于检查找到的入口匹配参考的哈希值的SHA1的一部分。“页索引”为到“保留报头参考”的数值索引。“哈希索引”为到“保留报头”的“1920个哈希的阵列”(图32)的索引。
参考“保留报头参考3502”,其为参考“保留报头”(图32)如在“页高速缓冲存储器”(图34)内包含的结构(例如,C语言结构)的阵列。保留报头参考中的每个条目包括对高速缓冲存储器页条目3402、哈希代码以及磁盘参考的参考。该高速缓冲存储器页3511用作到高速缓冲存储器页阵列(参见图3401)的索引。哈希代码用于验证当搜索用于高速缓冲存储器页的高速缓冲存储器页阵列时识别的适当高速缓冲存储器页阵列条目。
哈希表阵列用作退化的哈希表(或者“记分板”)。例如,当从去重数据存储中读取数据时,第一哈希(例如,如图36中所述,例如在B树中)被取回,并且来自包括第一哈希的保留报头3200的1920个哈希的阵列3205被加载到哈希表阵列。如果随后的请求用于具有哈希表阵列中存储的哈希的数据,则可以仅使用退化的哈希表(例如如图37所述)来处理请求。如果随后的请求为用于具有在哈希表阵列中没有存储的新哈希的数据的请求,则使用主树(例如,如图36中所述)来处理该请求,并且来自包括新哈希的新保留报头3200的1920个哈希的阵列3205被加载到哈希表阵列中。
随着增加新的哈希阵列来使哈希表阵列退化,这是因为哈希表阵列具有固定尺寸。例如,哈希表阵列可以被配置为使得该哈希表阵列为1920个哈希的阵列3205的尺寸的大约10倍。因此,一旦哈希表阵列用来自各个保留报头的哈希填满,随着增加新哈希,之前的哈希被重写。可以在没有使用用于管理哈希表阵列的其它策略(例如LRU老化算法)的情况下基于增加哈希到哈希表阵列来实现该处理。
图36是描绘使用记分板来找到没有由图35中示出的记分板引用的哈希的系统的操作流程的流程图。在失败之后,哈希在较大去重索引系统(例如,图33中所示)中找到且添加到记分板。在步骤3601处,我们查找记分板中的数据。在步骤3610处,我们测试在哈希表阵列中是否找到哈希。在步骤3620处,如果找到哈希,则返回哈希。在步骤3630处,如果没有找到哈希,我们在主索引中查找索引(例如,如图33中所示)。在步骤3640处,我们测试是否找到哈希。在步骤3650处,如果没有找到哈希,我们返回。在步骤3660,如果步骤3640在主索引中找到哈希,我们取回哈希的保留报头(图32)。在步骤3670、步骤3680、以及步骤3690处,我们通过保留报头的“哈希阵列”来迭代且填充来自保留报头的具有数据的记分板。
图37是描绘使用记分板来找到由记分板引用的哈希的系统的操作流程的流程图。在步骤3701处,记分板接收哈希代码。在步骤3705处,哈希代码的较小部分用于创建“哈希片段”。在步骤3710处,“哈希片段”用作到记分板“哈希表阵列”(图35)的索引。在步骤3715处,我们测试“哈希片段”是否与“哈希表阵列”条目(图35)内的片段匹配。在步骤3720处,如果哈希没有匹配,我们退出“没有找到”的例程。在步骤3725处,我们使用来自“哈希表阵列”条目的“页索引”来取回保留报头(图32)的高速缓冲存储器页参考,这应当处于“页高速缓冲存储器”(图34)。在步骤3730处,我们测试是否在页高速缓冲存储器中找到正确的保留报头页。在步骤3735处,如果它不是,我们退出“没有找到”。在步骤3740处,我们将在步骤3701中接收的哈希代码与保留报头中的条目进行比较。在步骤3745处,我们测试该比较结果。在步骤3750处,如果哈希值不匹配,我们退出“没有找到”。在步骤3755处,返回“找到”。
本文描述的系统和方法可以通过使用数据位置来加速定位数据,以增加广义索引系统。加密哈希代码例如SHA1有意地没有提供用于预测随后的哈希值的方法。本文描述的记分板为在没有转到主哈希索引(图33)的情况下使用数据位置的特征来找到数据的处理。此外,退化(其中没有系统的主动维护的)记分板的性质减少管理更传统高速缓冲存储器系统的开销。
系统实现
图38是描绘根据本公开的某些实施例的可在其上实现某些元件的计算机化系统的各种部件的图。所述逻辑模块可以在包含易失性存储器3802、持久性存储设备(例如硬盘驱动器3808)、处理器3803和网络接口3804的主机计算机3801上实现。使用网络接口,系统计算机可通过SAN或光纤信道设备以及其它实施例与存储池3805、3806交互。虽然图38示出其中系统计算机与各种存储池分离的系统,但一些或全部存储池可安置在主机计算机内,从而消除对网络接口的需要。编程过程可在如图38所示的单个主机上执行,或它们可分布在多个主机当中。
图38所示的主机计算机可用作管理工作站,或可实现应用和应用特定代理402,或可实现在此说明书中描述的任何和所有逻辑模块,包括数据虚拟化系统本身,或可用作用于将物理介质的存储池暴露于系统的存储控制器。工作站可连接到图形显示设备3807和输入设备(例如鼠标3809和键盘3810)。或者,活动用户的工作站可包括手持设备。
在整个此说明书中提到软件部件,但对软件部件的提及预期适用于在硬件上运行的软件。在本说明书中提到的对象和数据结构预期适用于实际上存储在存储器——易失性或非易失性的——中的数据结构。同样,服务器预期适用于软件,且引擎预期适用于软件,软件都在硬件例如图38所述的计算机系统上运行。
前述内容概述主题的一些更相关的特征。这些特征应被解释为仅仅是例证性的。很多其它有益的结果可通过以不同的方式应用所公开的主题或通过修改如将被描述的主题来得到。

Claims (62)

1.一种用于备份框架中的进程内通信的计算机化方法,所述方法包括:
由计算设备向框架注册定制请求器,所述框架被配置为运行且协调一个或者多个请求器以及一个或者多个提供器,其中,所述框架为所述一个或者多个请求器和所述一个或者多个提供器提供应用编程接口,但所述框架没有提供用于所述一个或者多个请求器和所述一个或者多个提供器之间的直接通信的接口,其中:
所述一个或者多个请求器中的每一个都是被配置为请求与应用相关联的数据集合的备份的计算机化进程;并且
所述一个或者多个提供器中的每一个包括被配置为创建与应用相关联的数据集合的备份的计算机化进程;
使用来自所述一个或者多个请求器中的第一请求器由所述计算设备来开始用于与第一应用相关联的第一数据集合的备份进程;
使用所述第一请求器由所述计算设备来确定与所述第一数据集合和所述第一应用相关联的所述数据存储设备由与所述计算设备相关联的数据管理系统输出;并且
使用所述第一请求器由所述计算设备来从所述一个或者多个第一提供器中选择所述第一提供器,以创建用于所述备份进程的第一数据集合的备份,其中,所述第一请求器和第一提供器在相同进程空间中为单独的线程,使得所述第一请求器和所述第一提供器能够使用一个或者多个进程内通信信道来彼此直接通信。
2.根据权利要求1所述的计算机化方法,还包括:
使用所述第一请求器由所述计算设备来确定与所述第一数据集合和所述第一应用相关联的所述数据存储设备未由与所述计算设备相关联的所述数据管理系统输出;并且
由所述计算设备将请求传输到所述框架以用于所述备份进程,使得所述框架从所述一个或者多个提供器中选择第二提供器,以创建用于所述备份进程的所述第一数据集合的备份,其中,所述第一请求器和所述第二提供器是单独的进程,使得所述第一请求器和所述第二提供器不能彼此直接通信,而是通过所述框架进行通信。
3.根据权利要求2所述的计算机化方法,其中,所述框架为微软卷影复制服务且所述第二提供器为微软快照提供器。
4.根据权利要求2所述的计算机化方法,还包括:
由所述第一请求器向所述框架传输请求以初始化所述备份,使得所述请求器由所述框架阻止直到第一提供器完成了其相关联功能为止;
由所述第一提供器接收来自所述框架的第二请求,以创建所述第一数据集合的快照;并且
由所述第一提供器向所述第一请求器传输所述框架准备好创建快照的通知。
5.根据权利要求4所述的方法,还包括:
由所述第一请求器向所述数据管理系统传输消息,以创建所述第一数据集合的快照;
由所述第一请求器接收来自所述数据管理系统的指示所述快照正被创建的第二消息;并且
由所述第一请求器向所述第一提供器传输所述快照被创建了的消息。
6.根据权利要求1所述的方法,其中,所述框架为微软卷影复制服务(VSS),所述一个或者多个提供器为VSS提供器,并且所述一个或者多个请求器为VSS请求器。
7.根据权利要求6所述的方法,其中,所述框架还包括VSS写入器,所述写入器被配置为写入且更新由所述框架管理的数据。
8.根据权利要求1所述的方法,还包括:
由所述第一请求器向所述第一提供器注册回调处理者;并且
使用所述回调处理者由所述第一提供器与所述第一请求器进行通信。
9.一种用于备份框架中的进程内通信的计算设备,所述服务器包括:
数据库;以及
与所述数据库通信的处理器,并且所述处理器被配置运行在存储器中存储的模块,所述模块被配置为使所述处理器执行以下操作:
向框架注册定制请求器,所述框架被配置为运行且协调一个或者多个请求器以及一个或者多个提供器,其中,所述框架为所述一个或者多个请求器和所述一个或者多个提供器提供应用编程接口,但所述框架没有提供用于所述一个或者多个请求器和所述一个或者多个提供器之间的直接通信的接口,其中:
所述一个或者多个请求器中的每一个都是被配置为请求与应用相关联的数据集合的备份的计算机化进程;并且
所述一个或者多个提供器中的每一个包括被配置为创建与应用相关联的数据集合的备份的计算机化进程;
使用来自所述一个或者多个请求器中的第一请求器来开始用于与第一应用相关联的第一数据集合的备份进程;
使用所述第一请求器来确定与所述第一数据集合和所述第一应用相关联的所述数据存储设备由与所述计算设备相关联的数据管理系统输出;并且
使用所述第一请求器来从所述一个或者多个第一提供器中选择第一提供器,以创建用于所述备份进程的第一数据集合的备份,其中,所述第一请求器和第一提供器在相同处理空间中为单独的线程,使得所述第一请求器和所述第一提供器能够使用一个或者多个进程内通信信道来彼此直接通信。
10.一种具有可执行指令的非暂时计算机可读介质,所述可执行指令使设备执行以下操作:
向框架注册定制请求器,所述框架被配置为运行且协调一个或者多个请求器以及一个或者多个提供器,其中,所述框架为所述一个或者多个请求器和所述一个或者多个提供器提供应用编程接口,但所述框架没有提供用于所述一个或者多个请求器和所述一个或者多个提供器之间的直接通信的接口,其中:
所述一个或者多个请求器中的每一个都是被配置为请求与应用相关联的数据集合的备份的计算机化进程;并且
所述一个或者多个提供器中的每一个都是被配置为创建与应用相关联的数据集合的备份的计算机化进程;
使用来自所述一个或者多个请求器中的第一请求器来开始用于与第一应用相关联的第一数据集合的备份进程;
使用所述第一请求器来确定与所述第一数据集合和所述第一应用相关联的所述数据存储设备由与所述计算设备相关联的数据管理系统输出;并且
使用所述第一请求器来从所述一个或者多个第一提供器中选择第一提供器,以创建用于所述备份进程的第一数据集合的备份,其中,所述第一请求器和第一提供器在相同处理空间中为单独的线程,使得所述第一请求器和所述第一提供器能够使用一个或者多个进程内通信信道来彼此直接通信。
11.一种用于备份带外存储的计算机化方法,包括:
由计算设备在远程主机上激活用于带外存储的保护策略,其中,所述带外存储是不可由所述计算设备物理访问的,使得带外存储不通过所述计算设备与远程主机通信;
由所述计算设备向所述远程主机传输备份请求,所述备份请求包括指示出用于根据所述保护策略来备份的所述带外存储上的卷的数据;
由所述计算设备接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小;
基于所述响应来由所述计算设备确定阶梯磁盘;
由所述计算设备向所述远程主机呈现所述阶梯磁盘;并且
由所述计算设备接收来自所述远程主机的备份结果,所述备份结果包括指示卷到所述阶梯磁盘的备份成功了还是失败了的数据。
12.根据权利要求11所述的方法,还包括:
基于所述备份结果来确定所述备份失败了;并且
识别所述备份结果中的错误代码并且存储所述错误代码。
13.根据权利要求11所述的方法,还包括:
基于所述备份结果来确定所述备份成功了;
创建所述阶梯磁盘的时间点快照;并且
将所述阶梯磁盘的时间点快照编目成所述卷的最新备份。
14.根据权利要求11所述的方法,其中,基于所述响应来确定所述阶梯磁盘包括:
识别用于卷的之前编目的时间点快照;并且
将之前编目的时间点图像用作阶梯磁盘,使得文件系统信息用于将之前编目的时间点图像与带外存储进行比较以仅拷贝从所述时间点图像中变化的带外存储中的信息。
15.根据权利要求11所述的方法,其中,基于所述响应来确定所述阶梯磁盘包括:
确定不存在用于卷的之前编目的时间点快照;并且
基于来自所述阶梯磁盘需求的所需大小来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小。
16.根据权利要求11所述的方法,还包括:
确定用于卷的之前编目的时间点快照过期;并且
删除之前编目的时间点快照。
17.根据权利要求11所述的方法,还包括:
确定用于卷的之前编目的时间点快照与之前的阶梯磁盘相关联,所述之前的阶梯磁盘包括在来自所述阶梯磁盘需求的所需大小之下的大小;并且
基于来自所述阶梯磁盘需求的所需大小来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小,其中所述阶梯磁盘不包括之前编目的时间点快照。
18.根据权利要求11所述的方法,其中,在所述远程主机上存储的所述带外存储包括到所述远程设备的内部磁盘、网络化的驱动器及其各项的任意组合。
19.一种用于备份带外存储的计算设备,所述服务器包括:
存储池;以及
与所述数据库通信的处理器,所述处理器被配置为运行在存储器上存储的模块,所述模块被配置为使所述处理器执行以下操作:
在远程主机上激活用于带外存储的保护策略,其中,所述带外存储是不可由所述计算设备物理访问的,使得带外存储不通过所述计算设备与远程主机通信;
向所述远程主机传输备份请求,所述备份请求包括指示出根据所述保护策略而备份的所述带外存储上的卷的数据;
接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小;
基于所述响应来从存储池确定阶梯磁盘;
向所述远程主机呈现所述阶梯磁盘;并且
接收来自所述远程主机的备份结果,所述备份结果包括指示出卷到所述阶梯磁盘的备份成功了还是失败了的数据。
20.一种具有可执行指令的非暂时计算机可读介质,所述可执行指令使设备执行以下操作:
在远程主机上激活用于带外存储的保护策略,其中,所述带外存储是不可由所述计算设备物理访问的,使得带外存储不通过所述计算设备与远程主机通信;
向所述远程主机传输备份请求,所述备份请求包括指示出根据所述保护策略而备份的所述带外存储上的卷的数据;
接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小;
基于所述响应来确定阶梯磁盘;
向所述远程主机呈现所述阶梯磁盘;并且
接收来自所述远程主机的备份结果,所述备份结果包括指示出卷到所述阶梯磁盘的备份成功了还是失败了的数据。
21.一种用于备份数据库存储的计算机化方法,包括:
由计算设备在远程主机上激活用于数据库存储的保护策略,其中,所述数据库存储是不可由所述计算设备物理访问的,使得所述带外存储不通过所述计算设备与远程主机通信;
由所述计算设备向所述远程主机传输备份请求,所述备份请求包括指示出根据所述保护策略而备份的所述数据库存储上的卷的数据;
由所述计算设备接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小;
基于所述响应来由所述计算设备确定阶梯磁盘;
由所述计算设备向所述远程主机呈现所述阶梯磁盘,使得所述远程主机能够使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份;并且
由所述计算设备接收来自所述远程主机的备份结果,所述备份结果包括指示出卷到所述阶梯磁盘的备份成功了还是失败了的数据,其中,使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份。
22.根据权利要求21所述的方法,还包括:
基于所述备份结果来确定所述备份失败了;并且
识别所述备份结果中的错误代码并且存储所述错误代码。
23.根据权利要求21所述的方法,还包括:
基于所述备份结果来确定所述备份成功了;
创建所述阶梯磁盘的时间点快照;并且
将所述阶梯磁盘的时间点快照编目成所述卷的最新备份。
24.根据权利要求21所述的方法,其中,基于所述响应来确定所述阶梯磁盘包括:
识别用于卷的之前编目的时间点快照;并且
将之前识别的时间点图像用作阶梯磁盘。
25.根据权利要求24所述的方法,其中,识别用于卷的之前编目的时间点快照包括:
响应于备份请求来接收阶梯磁盘需求中的唯一签名;并且
基于所需尺寸和唯一签名来识别用于卷的之前编目的时间点快照。
26.根据权利要求21所述的方法,其中,基于所述响应来确定所述阶梯磁盘包括:
确定不存在用于卷的之前编目的时间点快照;并且
基于来自所述阶梯磁盘需求的所需尺寸来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小。
27.根据权利要求26所述的方法,其中,基于预先确定的阈值来计算所述大小,所述预先确定的阈值指定在没有用尽存储的情况下允许对所述阶梯磁盘的重复备份的所述阶梯磁盘的大小。
28.根据权利要求21所述的方法,还包括:
确定用于卷的之前编目的时间点快照过期;并且
删除之前编目的时间点快照。
29.根据权利要求21所述的方法,还包括:
确定用于卷的之前编目的时间点快照与之前的阶梯磁盘相关联,所述之前的阶梯磁盘包括在来自所述阶梯磁盘需求的所需大小之下的大小;并且
基于来自所述阶梯磁盘需求的所需大小来给来自所述计算设备的数据存储的所述阶梯磁盘分配一个大小,其中,所述阶梯磁盘不包括之前编目的时间点快照。
30.根据权利要求21所述的方法,其中,在所述远程主机上存储的所述数据库存储包括到所述远程设备的内部磁盘上的数据库、网络化的驱动器上的数据库及其各项的任意组合。
31.根据权利要求21所述的方法,其中,所述数据库存储为Oracle数据库,并且所述数据库备份工具为Oracle RMAN命令。
32.一种用于备份数据库存储的计算设备,所述服务器包括:
存储池;以及
与所述数据库通信的处理器,所述处理器被配置为运行在存储器上存储的模块,所述模块被配置为使所述处理器执行以下操作:
在远程主机上激活用于数据库存储的保护策略,其中,所述数据库存储是不可由所述计算设备物理访问的,使得所述带外存储不通过所述计算设备与远程主机通信;
向所述远程主机传输备份请求,所述备份请求包括指示出根据所述保护策略而备份的所述数据库存储上的卷的数据;
接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小;
基于所述响应来确定阶梯磁盘;
向所述远程主机呈现所述阶梯磁盘,其中所述阶梯磁盘从存储池分配,使得所述远程主机能够使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份;并且
接收来自所述远程主机的备份结果,所述备份结果包括指示出所述卷到所述阶梯磁盘的备份成功了还是失败了的数据,其中,使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份。
33.一种具有可执行指令的非暂时计算机可读介质,所述可执行指令使设备执行以下操作:
在远程主机上激活用于数据库存储的保护策略,其中,所述数据库存储是不可由所述计算设备物理访问的,使得所述带外存储不通过所述计算设备与远程主机通信;
向所述远程主机传输备份请求,所述备份请求包括指示出根据所述保护策略而备份的所述数据库存储上的卷的数据;
接收对所述备份请求的响应,所述响应包括指示出用于所述卷的阶梯磁盘需求的数据,所述阶梯磁盘需求包括用于备份所述卷的阶梯磁盘的所需大小;
基于所述响应来确定阶梯磁盘;
向所述远程主机呈现所述阶梯磁盘,使得所述远程主机能够使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份;并且
接收来自所述远程主机的备份结果,所述备份结果包括指示出所述卷到所述阶梯磁盘的备份成功了还是失败了的数据,其中,使用由所述数据库存储的供应商提供的数据库备份工具来执行所述卷到所述阶梯磁盘的备份。
34.一种用于实现数据管理虚拟化显示器的计算机化方法,所述显示器自动执行用于数据管理虚拟化系统的、跨服务集合的用户接口动作,其中,所述数据管理虚拟化系统包括子系统集合,所述计算机化方法包括:
由所述计算设备存储数据存储中的服务集合,其中:
每个服务包括与所述服务相关联的用户接口集合;并且
每个服务能够使用共享服务高速缓冲存储器来与剩余的服务通信,所述共享服务高速缓冲存储器允许所述服务接收来自服务集合中的剩余服务的数据,将数据传输到服务集合中的剩余服务,跨服务集合保存数据,及其各项任意组合;
由所述计算设备接收请求以执行数据管理虚拟化工作,所述工作在没有与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档的知识的情况下将需要所述数据管理虚拟化系统的用户通过跨所述服务集合中的两个或者多个服务的一系列网页来手动导航;并且
使用共享服务高速缓冲存储器基于与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档由所述计算设备来限定用于所述数据管理虚拟化工作的快速链接,其中,所述快速链接消除了所述数据管理虚拟化工作的手动导航中的一个或者多个。
35.根据权利要求34所述的方法,其中,所述数据管理虚拟化显示器扩展模型视图控制器(MVC),其中,用于所述数据管理虚拟化显示器的数据由控制器与用于每个服务的用户接口集合分离并且与服务集合分离,所述控制器将用于每个服务的用户接口集合链接到所述数据。
36.根据权利要求34所述的方法,其中,每个服务由服务目标来限定,其中,所述服务目标为其相关联的服务限定了:
用于所述服务的用户接口集合;
用于所述服务的窗口管理器,所述窗口管理器被配置为控制用于所述服务的用户接口集合;以及
经由所述共享高速缓冲存储器与来自所述服务集合的其它服务交互的集合。
37.根据权利要求34所述的方法,其中,所述子系统集合包括:数据管理子系统、数据保护子系统、灾难恢复子系统以及商业连续性子系统。
38.一种用于实现数据管理虚拟化显示器的计算设备,所述显示器自动执行用于数据管理虚拟化系统的、跨服务集合的用户接口动作,其中,所述数据管理虚拟化系统包括子系统集合,所述计算设备包括:
存储器;以及
与所述存储器通信的处理器,所述处理器被配置为运行在存储器中存储的模块,所述模块被配置为使所述处理器执行以下操作:
存储数据存储中的服务集合,其中:
每个服务包括与所述服务相关联的用户接口集合;并且
每个服务能够使用共享服务高速缓冲存储器来与剩余的服务通信,所述共享服务高速缓冲存储器允许所述服务接收来自服务集合中的剩余服务的数据,将数据传输到服务集合中的剩余服务,跨服务集合保存数据及其各项任意组合;
接收请求以执行数据管理虚拟化工作,所述工作在没有与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档的知识的情况下需要所述数据管理虚拟化系统的用户通过跨所述服务集合中的两个或者多个服务的一系列网页来手动导航;并且
使用共享服务高速缓冲存储器基于与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档来限定用于所述数据管理虚拟化工作的快速链接,其中,所述快速链接消除了所述数据管理虚拟化工作的手动导航中的一个或者多个。
39.一种具有可执行指令的非暂时计算机可读介质,所述可执行指令使设备执行以下操作:
存储数据存储中的服务集合,其中:
每个服务包括与所述服务相关联的用户接口集合;并且
每个服务能够使用共享服务高速缓冲存储器来与剩余的服务通信,所述共享服务高速缓冲存储器允许所述服务接收来自服务集合中的剩余服务的数据,将数据传输到服务集合中的剩余服务,跨服务集合保存数据及其各项任意组合;
接收请求以执行数据管理虚拟化工作,所述工作在没有与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档的知识的情况下需要所述数据管理虚拟化系统的用户通过跨所述服务集合中的两个或者多个服务的一系列网页来手动导航;并且
使用共享服务高速缓冲存储器基于与所述数据管理虚拟化系统、子系统集合或者二者相关联的简档来限定用于所述数据管理虚拟化工作的快速链接,其中,所述快速链接消除了所述数据管理虚拟化工作的手动导航中的一个或者多个。
40.一种用于以减少在同步期间数据的冗余拷贝的方式而同步在数据管理操作期间生成的操作数据记录的方法,包括:
由中央操作数据存储来存储操作数据记录集合,其中,每个数据记录基于所述数据记录的创建时间按照升序分配唯一识别符(ID);
由所述中央操作数据存储从操作数据记录集合中的操作数据记录中识别最高唯一ID;
由所述中央操作数据存储识别公差号,所述公差号指示出能够被同时处理的唯一ID的范围,使得不能够保证具有由小于所述公差号分开的唯一ID的操作数据记录被分配唯一ID以便于该操作数据记录被创建;
由所述中央操作数据存储计算同步ID,所述同步ID包括将公差号从所述最高唯一ID中减去;并且
由所述中央操作数据存储将所述同步ID传输到所述源操作数据存储,以指示所述源操作数据存储传输在具有大于所述同步ID的唯一ID的所述源操作数据存储处存储的任何操作数据记录。
41.根据权利要求40所述的方法,还包括:
从所述操作数据记录集合中识别唯一ID集合,其中,唯一ID集合中的每个唯一ID处于所述最高唯一ID和所述同步ID之间;并且
传输唯一ID集合到所述源操作数据存储,以指示所述源操作数据存储不传输具有所述唯一ID集合的操作数据记录。
42.根据权利要求40所述的方法,还包括:传输所述最高唯一ID到所述源操作数据存储,以指示所述源操作数据存储不传输具有最高唯一ID的操作数据记录。
43.根据权利要求40所述的方法,还包括:基于允许的并发事务的数量以及最大延迟来计算所述公差号。
44.根据权利要求43所述的方法,还包括:使并发事务的数量加倍。
45.根据权利要求40所述的方法,其中,每个唯一ID为单调增加的唯一ID。
46.根据权利要求40所述的方法,其中,所述操作数据记录集合为较大的操作数据记录集合,包括超过100000个操作数据记录;并且所述操作数据记录集合中的数据记录一旦创建就不会改变。
47.一种用于以减少在同步期间数据的冗余拷贝的方式而同步在数据管理操作期间生成的操作数据记录的方法,包括:
由中央操作数据存储来存储操作数据记录集合,其中,每个数据记录基于所述数据记录的创建时间或修改时间被分配一个时间戳;
由所述中央操作数据存储从源操作数据存储中识别操作数据记录集合的最后备份时间;
由所述中央操作数据存储基于经过时间来计算公差号,所述公差号指示出能够被同时处理的时间戳的范围,使得不能够保证具有由小于所述公差号分开的时间戳的操作数据记录被分配时间戳以便于该操作数据记录被创建、修改、或者创建且修改;
由所述中央操作数据存储计算同步时间戳,所述同步时间戳包括将所述公差号从所述最后备份时间中减去;并且
由所述中央操作数据存储将所述同步时间戳传输到所述源操作数据存储,以指示所述源操作数据存储传输在具有大于所述同步时间戳的时间戳的所述源操作数据存储处存储的任何操作数据记录。
48.根据权利要求47所述的方法,还包括接收回复,所述回复包括:
操作数据记录集合,其中每个操作数据记录具有在所述同步时间戳之后发生的时间戳;以及
由所述源操作数据存储来存储的每个数据记录的唯一ID列表。
49.根据权利要求48所述的方法,还包括:删除具有不处于唯一ID列表中的唯一ID的所述操作数据记录集合中的任何操作数据记录。
50.根据权利要求47所述的方法,其中,所述操作数据记录集合为中间的操作数据记录集合,包括超过1000个操作数据记录但小于100000个操作数据记录。
51.一种具有可执行指令的非暂时计算机可读介质,所述可执行指令使设备执行以下操作:
存储操作数据记录集合,其中,每个数据记录基于所述数据记录的创建时间或者修改时间来分配时间戳;
从源操作数据存储中识别操作数据记录集合的最后备份时间;
基于经过时间来计算公差号,所述公差号指示出能够被同时处理的时间戳的范围,使得不能够保证具有由小于所述公差号分开的时间戳的操作数据记录被分配时间戳以便于该操作数据记录被创建、修改、或者创建且修改;
计算同步时间戳,所述同步时间戳包括将所述公差号从所述最后备份时间中减去;并且
将所述同步时间戳传输到所述源操作数据存储,以指示所述源操作数据存储传输在具有大于所述同步时间戳的时间戳的所述源操作数据存储处存储的任何操作数据记录。
52.一种用于在去重数据存储中高速缓冲用于被去重数据的哈希的计算机化方法,其中,数据使用包括哈希集合的保留报头来存储,其中,哈希集合中的每个哈希表示在保留报头之后的去重数据存储中存储的、与由哈希集合中的剩余哈希表示的其它数据同地的数据,所述计算机化方法包括:
由计算设备接收请求,以读取来自所述去重数据存储的数据;
由所述计算设备在没有存储在所述计算设备的存储器中存储的第一哈希结构中识别在去重数据存储中存储的保留报头,其中:
所述保留报头包括哈希集合,哈希集合包括指示出所述计算设备请求读取的数据的哈希;并且
其中,哈希集合中的每个哈希表示在保留报头之后的去重数据存储中存储的、与由哈希集合中的剩余哈希表示的其它数据同地的数据;并且
由所述计算设备来高速缓冲在所述计算设备的存储器中存储的第二哈希结构中的哈希集合,借此如果所述计算设备请求读取额外的数据,则如果所述额外数据由所述保留报头表示,那么计算设备能够使用第二哈希结构来识别额外的数据。
53.根据权利要求52所述的方法,其中,高速缓冲在所述计算设备的存储器中存储的所述第二哈希结构中的哈希集合包括:
基于所述保留报头来存储哈希表中的哈希表结构,所述哈希表结构包括:
包括所述数据的哈希的一部分的哈希片段;
到保留报头参考阵列中的索引;以及
针对识别所述数据的哈希的保留报头而到哈希集合的哈希索引。
54.根据权利要求53所述的方法,还包括:
基于所述哈希片段来识别所述哈希表阵列中的所述哈希表结构。
55.根据权利要求53所述的方法,还包括:
基于所述保留报头来存储保留报头参考阵列中的保留报头参考结构,所述保留报头参考结构包括:
到识别存储器中的所述保留报头的高速缓冲存储器页阵列的高速缓冲存储器页索引;以及
验证由所述高速缓冲存储器页索引识别的高速缓冲存储器页阵列条目的识别的哈希代码。
56.根据权利要求55所述的方法,还包括:读取与所述保留报头相关联的数据包括:
基于所述哈希片段来识别所述哈希表阵列中的所述哈希表结构;并且
基于所述索引来识别所述保留报头参考阵列中的所述保留报头参考结构。
57.根据权利要求56所述的方法,还包括:
基于所述高速缓冲存储器页索引来识别所述高速缓冲存储器页索引中的所述高速缓冲存储器页条目;
基于所述哈希代码来验证所述高速缓冲存储器页阵列条目的识别。
58.根据权利要求57所述的方法,还包括:
基于所述高速缓冲存储器页阵列来识别存储器中的所述保留报头;并且
基于所述索引来识别所述哈希集合中的哈希。
59.根据权利要求52所述的方法,还包括:
接收第二请求以读取来自所述去重数据存储的第二数据;并且
使用所述第二哈希结构而非第一哈希结构来识别所述第二数据,其中,所述第二数据包括所述哈希集合中的第二哈希。
60.根据权利要求52所述的方法,包括:
接收第二请求以读取来自所述去重数据存储的第二数据;
确定没有处于所述第二哈希结构中的用于所述第二数据的第二哈希;
识别所述第一哈希结构中的第二保留报头,其中:
第二保留报头包括所述第二保留报头中存储的第二哈希集合中的第二哈希;并且
所述第二哈希指示出所述计算设备请求读取的第二数据;并且
高速缓冲所述计算设备的所述存储器中存储的所述第二哈希结构中的所述第二哈希集合。
61.一种用于在去重数据存储中高速缓冲用于去重数据的哈希的计算设备,其中,数据使用包括哈希集合的保留报头来存储,其中,哈希集合中的每个哈希表示在保留报头之后的去重数据存储中存储的、与由哈希集合中的剩余哈希表示的其它数据同地的数据,所述计算设备包括:
去重数据存储;以及
与所述去重数据通信的处理器,并且所述处理器被配置为运行在存储器中存储的模块,所述模块被配置为使所述处理器执行以下操作:
接收请求,以读取来自所述去重数据存储的数据;
在没有存储在所述计算设备的存储器中存储的第一哈希结构中识别在去重数据存储中存储的保留报头,其中:
所述保留报头包括哈希集合,哈希集合包括指示出所述计算设备请求读取的数据的哈希;并且
其中,哈希集合中的每个哈希表示在保留报头之后的在去重数据存储中存储的与由哈希集合中的剩余哈希表示的其它数据同地的数据;并且
高速缓冲在所述计算设备的存储器中存储的第二哈希结构中的哈希集合,借此如果所述计算设备请求读取额外的数据,则如果所述额外数据由素数保留报头表示,那么计算设备能够使用第二哈希结构来识别额外的数据。
62.一种具有可执行指令的非暂时计算机可读介质,所述可执行指令使设备执行以下操作:
接收请求,以读取来自所述去重数据存储的数据;
在没有存储在所述计算设备的存储器中存储的第一哈希结构中识别在去重数据存储中存储的保留报头,其中:
所述保留报头包括哈希集合,哈希集合包括指示出所述计算设备请求读取的数据的哈希;并且
其中,哈希集合中的每个哈希表示在保留报头之后的去重数据存储中存储的、与由哈希集合中的剩余哈希表示的其它数据同地的数据;并且
高速缓冲在所述计算设备的存储器中存储的第二哈希结构中的哈希集合,借此如果所述计算设备请求读取额外的数据,则如果所述额外数据由所述保留报头表示,那么计算设备能够使用第二哈希结构来识别额外的数据。
CN201380043915.4A 2012-06-18 2013-06-18 增强型数据管理虚拟化系统 Pending CN104769555A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261661135P 2012-06-18 2012-06-18
US61/661,135 2012-06-18
PCT/US2013/046351 WO2013192198A2 (en) 2012-06-18 2013-06-18 Enhanced data management virtualization system

Publications (1)

Publication Number Publication Date
CN104769555A true CN104769555A (zh) 2015-07-08

Family

ID=49756844

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380043915.4A Pending CN104769555A (zh) 2012-06-18 2013-06-18 增强型数据管理虚拟化系统

Country Status (8)

Country Link
US (6) US9384254B2 (zh)
EP (1) EP2862051A4 (zh)
JP (1) JP2015525419A (zh)
KR (1) KR20150021117A (zh)
CN (1) CN104769555A (zh)
AU (1) AU2013277351A1 (zh)
CA (1) CA2877284A1 (zh)
WO (1) WO2013192198A2 (zh)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389335A (zh) * 2015-10-15 2016-03-09 佛山市云端容灾信息技术有限公司 一种基于自动演练的数据挖掘分析方法和装置
CN105468699A (zh) * 2015-11-18 2016-04-06 珠海多玩信息技术有限公司 去重数据统计方法及设备
CN106446275A (zh) * 2016-10-21 2017-02-22 国云科技股份有限公司 一种支持文件系统扩容的容器实现方法
CN106527961A (zh) * 2015-09-15 2017-03-22 伊姆西公司 用于保证数据一致性的方法和装置
CN106897335A (zh) * 2016-06-28 2017-06-27 阿里巴巴集团控股有限公司 一种业务数据的存储方法、记录标识符的生成方法及装置
CN107291576A (zh) * 2017-06-16 2017-10-24 郑州云海信息技术有限公司 一种异步的快照卷解耦合的方法及装置
CN108289306A (zh) * 2017-01-10 2018-07-17 中兴通讯股份有限公司 一种流程冲突处理方法及装置
CN109302300A (zh) * 2017-07-25 2019-02-01 阿里巴巴集团控股有限公司 数据分配方法及装置、数据处理方法及服务器
CN109474429A (zh) * 2018-12-24 2019-03-15 无锡市同威科技有限公司 一种面向fc存储加密网关的密钥配置策略方法
CN109906439A (zh) * 2016-11-16 2019-06-18 国际商业机器公司 通过存储控制器向对象存储云的时间点备份
CN110100228A (zh) * 2017-01-06 2019-08-06 甲骨文国际公司 利用云对象存储的文件系统层次结构的高效增量备份和恢复
CN110737542A (zh) * 2018-07-19 2020-01-31 慧与发展有限责任合伙企业 冻结和解除冻结上游卷和下游卷
CN112241337A (zh) * 2019-07-19 2021-01-19 伊姆西Ip控股有限责任公司 用于管理备份数据的方法、设备和计算机程序产品
CN112546617A (zh) * 2020-12-29 2021-03-26 珠海金山网络游戏科技有限公司 任务处理方法及装置
CN112988754A (zh) * 2021-04-08 2021-06-18 中煤科工集团重庆研究院有限公司 一种面向数据集成的快速查询方法
CN115086326A (zh) * 2017-07-26 2022-09-20 亚马逊科技公司 Iot装置集群的分层数据处理
CN116529724A (zh) * 2020-10-14 2023-08-01 甲骨文国际公司 在无共享分布式数据库中快速检测和修复故障的系统和方法
CN117895509A (zh) * 2024-03-14 2024-04-16 国网山东省电力公司经济技术研究院 一种多能源耦合型配电网调度方法及系统

Families Citing this family (350)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US8468318B2 (en) 2010-09-15 2013-06-18 Pure Storage Inc. Scheduling of I/O writes in a storage environment
US8589655B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of I/O in an SSD environment
US12008266B2 (en) 2010-09-15 2024-06-11 Pure Storage, Inc. Efficient read by reconstruction
US8589625B2 (en) 2010-09-15 2013-11-19 Pure Storage, Inc. Scheduling of reconstructive I/O read operations in a storage environment
US11275509B1 (en) 2010-09-15 2022-03-15 Pure Storage, Inc. Intelligently sizing high latency I/O requests in a storage environment
US8732426B2 (en) 2010-09-15 2014-05-20 Pure Storage, Inc. Scheduling of reactive I/O operations in a storage environment
US8775868B2 (en) 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US9244769B2 (en) 2010-09-28 2016-01-26 Pure Storage, Inc. Offset protection data in a RAID array
US9933978B2 (en) 2010-12-16 2018-04-03 International Business Machines Corporation Method and system for processing data
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11636031B2 (en) 2011-08-11 2023-04-25 Pure Storage, Inc. Optimized inline deduplication
US8719540B1 (en) 2012-03-15 2014-05-06 Pure Storage, Inc. Fractal layout of data blocks across multiple devices
AU2013277351A1 (en) 2012-06-18 2015-01-22 Actifio, Inc. Enhanced data management virtualization system
US9952909B2 (en) * 2012-06-20 2018-04-24 Paypal, Inc. Multiple service classes in a shared cloud
US9582559B1 (en) * 2012-06-29 2017-02-28 EMC IP Holding Company LLC Multi-site storage system with replicated file system synchronization utilizing virtual block storage appliances
US9733991B2 (en) 2012-09-14 2017-08-15 International Business Machines Corporation Deferred re-MRU operations to reduce lock contention
US9547604B2 (en) 2012-09-14 2017-01-17 International Business Machines Corporation Deferred RE-MRU operations to reduce lock contention
US11032259B1 (en) 2012-09-26 2021-06-08 Pure Storage, Inc. Data protection in a storage system
US8745415B2 (en) 2012-09-26 2014-06-03 Pure Storage, Inc. Multi-drive cooperation to generate an encryption key
US10623386B1 (en) 2012-09-26 2020-04-14 Pure Storage, Inc. Secret sharing data protection in a storage system
US9201739B1 (en) * 2012-12-10 2015-12-01 Emc Corporation Method and system for a database management system add-in for third party backup and restore applications
JP6127489B2 (ja) * 2012-12-11 2017-05-17 株式会社リコー 処理要求装置、処理要求装置の制御プログラム
US9589008B2 (en) * 2013-01-10 2017-03-07 Pure Storage, Inc. Deduplication of volume regions
US11768623B2 (en) 2013-01-10 2023-09-26 Pure Storage, Inc. Optimizing generalized transfers between storage systems
US11733908B2 (en) 2013-01-10 2023-08-22 Pure Storage, Inc. Delaying deletion of a dataset
US10908835B1 (en) 2013-01-10 2021-02-02 Pure Storage, Inc. Reversing deletion of a virtual machine
US9805104B2 (en) * 2013-02-15 2017-10-31 Microsoft Technology Licensing, Llc Recovery point objective enforcement
US9189480B2 (en) * 2013-03-01 2015-11-17 Hewlett-Packard Development Company, L.P. Smart content feeds for document collaboration
US9690711B2 (en) * 2013-03-13 2017-06-27 International Business Machines Corporation Scheduler training for multi-module byte caching
US9298637B2 (en) 2013-03-13 2016-03-29 International Business Machines Corporation Dynamic caching module selection for optimized data deduplication
US9116737B2 (en) * 2013-04-30 2015-08-25 Vmware, Inc. Conversion of virtual disk snapshots between redo and copy-on-write technologies
WO2014185918A1 (en) * 2013-05-16 2014-11-20 Hewlett-Packard Development Company, L.P. Selecting a store for deduplicated data
CN105324765B (zh) 2013-05-16 2019-11-08 慧与发展有限责任合伙企业 选择用于去重复数据的存储区
US9417815B1 (en) * 2013-06-21 2016-08-16 Amazon Technologies, Inc. Capturing snapshots of storage volumes
US9158472B2 (en) 2013-06-25 2015-10-13 Google Inc. Hierarchical chunking of objects in a distributed storage system
US9600558B2 (en) 2013-06-25 2017-03-21 Google Inc. Grouping of objects in a distributed storage system based on journals and placement policies
EP2821913A1 (en) * 2013-07-01 2015-01-07 Open Text S.A. A method and system for storing documents
US10362145B2 (en) * 2013-07-05 2019-07-23 The Boeing Company Server system for providing current data and past data to clients
US9424133B2 (en) * 2013-07-10 2016-08-23 Netapp, Inc. Providing an eventually-consistent snapshot of nodes in a storage network
US9716746B2 (en) * 2013-07-29 2017-07-25 Sanovi Technologies Pvt. Ltd. System and method using software defined continuity (SDC) and application defined continuity (ADC) for achieving business continuity and application continuity on massively scalable entities like entire datacenters, entire clouds etc. in a computing system environment
US9524215B1 (en) * 2013-07-30 2016-12-20 Veritas Technologies Llc Systems and methods for managing virtual machine backups
US11128448B1 (en) 2013-11-06 2021-09-21 Pure Storage, Inc. Quorum-aware secret sharing
US10263770B2 (en) 2013-11-06 2019-04-16 Pure Storage, Inc. Data protection in a storage system using external secrets
US10365858B2 (en) 2013-11-06 2019-07-30 Pure Storage, Inc. Thin provisioning in a storage device
US9516016B2 (en) 2013-11-11 2016-12-06 Pure Storage, Inc. Storage array password management
US9323764B2 (en) * 2013-11-12 2016-04-26 International Business Machines Corporation Copying volumes between storage pools
US10120617B2 (en) 2013-11-12 2018-11-06 International Business Machines Corporation Using deterministic logical unit numbers to dynamically map data volumes
WO2015074033A1 (en) * 2013-11-18 2015-05-21 Madhav Mutalik Copy data techniques
WO2015074200A1 (zh) * 2013-11-20 2015-05-28 华为技术有限公司 一种生成快照的方法、系统和装置
US9396202B1 (en) * 2013-12-27 2016-07-19 Google Inc. Weakly synchronized garbage collection and compaction for aggregated, replicated object stores
US9411811B2 (en) * 2014-01-06 2016-08-09 International Business Machines Corporation Coordinated point-in-time snapshots of multiple computing platforms
US9208086B1 (en) 2014-01-09 2015-12-08 Pure Storage, Inc. Using frequency domain to prioritize storage of metadata in a cache
US11611473B2 (en) 2014-01-14 2023-03-21 Zixcorp Systems, Inc. Provisioning a service using file distribution technology
US12013819B2 (en) * 2014-01-14 2024-06-18 Zixcorp Systems, Inc. Asynchronous method for provisioning a service using file distribution technology
US9633100B2 (en) * 2014-01-15 2017-04-25 Dell Products, L.P. System and method for data structure synchronization
CN103747255A (zh) * 2014-01-27 2014-04-23 深圳大学 一种基于空域感知哈希的视频篡改检测方法和装置
US9720778B2 (en) 2014-02-14 2017-08-01 Actifio, Inc. Local area network free data movement
US9537745B1 (en) 2014-03-07 2017-01-03 Google Inc. Distributed virtual machine disk image deployment
US10437720B2 (en) * 2014-03-12 2019-10-08 Optumsoft, Inc. Deferred destruction for efficient resource reclamation
US10656864B2 (en) 2014-03-20 2020-05-19 Pure Storage, Inc. Data replication within a flash storage array
US9430490B1 (en) * 2014-03-28 2016-08-30 Formation Data Systems, Inc. Multi-tenant secure data deduplication using data association tables
US9946724B1 (en) * 2014-03-31 2018-04-17 EMC IP Holding Company LLC Scalable post-process deduplication
US9600188B2 (en) 2014-04-02 2017-03-21 International Business Machines Corporation Collision avoidance using dynamic target volume allocation from a shared resource pool
US9817724B2 (en) 2014-04-02 2017-11-14 International Business Machines Corporation Efficient FlashCopy backup target volume allocation with reuse and a shared resource pool
US9817718B2 (en) 2014-04-02 2017-11-14 International Business Machines Corporation Efficient flashcopy backup and mount, clone, or restore collision avoidance using dynamic volume allocation from a shared resource pool
US9454315B2 (en) * 2014-04-02 2016-09-27 International Business Machines Corporation Efficient flashcopy backup target volume allocation from a shared resource pool while ingesting a flashcopy backup in a repository
US9442664B2 (en) * 2014-04-02 2016-09-13 International Business Machines Corporation Efficient flashcopy backup target volume allocation from a shared resource pool
US9817723B2 (en) 2014-04-02 2017-11-14 International Business Machines Corporation Efficient FlashCopy backup and mount, clone, or restore collision avoidance using dynamic volume allocation with reuse
US9817719B2 (en) 2014-04-02 2017-11-14 International Business Machines Corporation Efficient Flashcopy backup and mount, clone, or restore collision avoidance using dynamic volume allocation with reuse and from a shared resource pool
US9672118B2 (en) 2014-04-02 2017-06-06 International Business Machines Corporation Collision avoidance using dynamic target volume allocation
US9710339B2 (en) 2014-04-02 2017-07-18 International Business Machines Corporation Collision avoidance using dynamic volume allocation with reuse
US9690500B2 (en) 2014-04-02 2017-06-27 International Business Machines Corporation Efficient flashcopy backup target volume allocation
US9513820B1 (en) 2014-04-07 2016-12-06 Pure Storage, Inc. Dynamically controlling temporary compromise on data redundancy
US9823978B2 (en) * 2014-04-16 2017-11-21 Commvault Systems, Inc. User-level quota management of data objects stored in information management systems
US10007602B2 (en) 2014-05-06 2018-06-26 International Business Machines Corporation Flash copy relationship management
US10831864B2 (en) * 2014-05-12 2020-11-10 International Business Machines Corporation Visual comparison of data clusters
US9823842B2 (en) 2014-05-12 2017-11-21 The Research Foundation For The State University Of New York Gang migration of virtual machines using cluster-wide deduplication
WO2015178944A1 (en) * 2014-05-23 2015-11-26 Hewlett-Packard Development Company, L.P. Using location addressed storage as content addressed storage
US9594636B2 (en) * 2014-05-30 2017-03-14 Datto, Inc. Management of data replication and storage apparatuses, methods and systems
US9779268B1 (en) 2014-06-03 2017-10-03 Pure Storage, Inc. Utilizing a non-repeating identifier to encrypt data
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9218407B1 (en) 2014-06-25 2015-12-22 Pure Storage, Inc. Replication and intermediate read-write state for mediums
CN105302817B (zh) * 2014-06-25 2019-10-01 苏宁云计算有限公司 分布式文件系统管理方法和装置
US10496556B1 (en) 2014-06-25 2019-12-03 Pure Storage, Inc. Dynamic data protection within a flash storage system
US10897506B2 (en) 2014-07-02 2021-01-19 Hewlett Packard Enterprise Development Lp Managing port connections
US9645892B1 (en) * 2014-07-08 2017-05-09 EMC IP Holding Company LLC Recording file events in change logs while incrementally backing up file systems
CN104102857B (zh) * 2014-07-17 2017-02-15 浪潮电子信息产业股份有限公司 一种windows系统下的可执行文件全生命周期安全管理系统
US10296469B1 (en) 2014-07-24 2019-05-21 Pure Storage, Inc. Access control in a flash storage system
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9864761B1 (en) 2014-08-08 2018-01-09 Pure Storage, Inc. Read optimization operations in a storage system
CN105468989B (zh) * 2014-09-04 2018-10-12 中国石油化工股份有限公司 基于Linux内核监控的云存储配额管理方法
US10430079B2 (en) 2014-09-08 2019-10-01 Pure Storage, Inc. Adjusting storage capacity in a computing system
US11386115B1 (en) * 2014-09-12 2022-07-12 Amazon Technologies, Inc. Selectable storage endpoints for a transactional data storage engine
US10164841B2 (en) 2014-10-02 2018-12-25 Pure Storage, Inc. Cloud assist for storage systems
US10430282B2 (en) 2014-10-07 2019-10-01 Pure Storage, Inc. Optimizing replication by distinguishing user and system write activity
US9489132B2 (en) 2014-10-07 2016-11-08 Pure Storage, Inc. Utilizing unmapped and unknown states in a replicated storage system
US9846642B2 (en) * 2014-10-21 2017-12-19 Samsung Electronics Co., Ltd. Efficient key collision handling
CN106852174A (zh) * 2014-10-22 2017-06-13 慧与发展有限责任合伙企业 使用区块盘呈现的数据恢复
US10168916B2 (en) * 2014-11-02 2019-01-01 Infinidat Ltd. System, method and a non-transitory computer readable medium for reduction of consumption of storage system resources
US9732593B2 (en) 2014-11-05 2017-08-15 Saudi Arabian Oil Company Systems, methods, and computer medium to optimize storage for hydrocarbon reservoir simulation
CN104410683B (zh) * 2014-11-21 2017-10-17 四川神琥科技有限公司 一种数据备份方法
US9727485B1 (en) 2014-11-24 2017-08-08 Pure Storage, Inc. Metadata rewrite and flatten optimization
WO2016085537A1 (en) * 2014-11-26 2016-06-02 Hewlett Packard Enterprise Development Lp Backup operations
US9773007B1 (en) 2014-12-01 2017-09-26 Pure Storage, Inc. Performance improvements in a storage system
US9552248B2 (en) 2014-12-11 2017-01-24 Pure Storage, Inc. Cloud alert to replica
US9588842B1 (en) 2014-12-11 2017-03-07 Pure Storage, Inc. Drive rebuild
US9864769B2 (en) 2014-12-12 2018-01-09 Pure Storage, Inc. Storing data utilizing repeating pattern detection
US10769023B1 (en) * 2014-12-17 2020-09-08 Amazon Technologies, Inc. Backup of structured query language server to object-based data storage service
US10521449B1 (en) * 2014-12-17 2019-12-31 Amazon Technologies, Inc. Cross-region replication architecture
US10545987B2 (en) 2014-12-19 2020-01-28 Pure Storage, Inc. Replication to the cloud
CN104407945B (zh) * 2014-12-26 2018-03-30 北京奇虎科技有限公司 数据备份的方法、装置及系统
US9594765B2 (en) 2014-12-27 2017-03-14 Ascava, Inc. Performing keyword-based search and retrieval on data that has been losslessly reduced using a prime data sieve
US9292584B1 (en) * 2014-12-27 2016-03-22 Ascava, Inc. Efficient data communication based on lossless reduction of data by deriving data from prime data elements resident in a content-associative sieve
US9569357B1 (en) 2015-01-08 2017-02-14 Pure Storage, Inc. Managing compressed data in a storage system
US10853201B1 (en) * 2015-01-09 2020-12-01 EMC IP Holding Company LLC Backing up files storing virtual machines
WO2016115135A1 (en) * 2015-01-12 2016-07-21 Xiangdong Zhang Disk group based backup
US10296354B1 (en) 2015-01-21 2019-05-21 Pure Storage, Inc. Optimized boot operations within a flash storage array
US11947968B2 (en) 2015-01-21 2024-04-02 Pure Storage, Inc. Efficient use of zone in a storage device
US10296422B1 (en) 2015-01-31 2019-05-21 Veritas Technologies Llc Low cost, heterogeneous method of transforming replicated data for consumption in the cloud
US9971821B1 (en) * 2015-02-17 2018-05-15 Cohesity, Inc. Search and analytics for a storage systems
US9710165B1 (en) 2015-02-18 2017-07-18 Pure Storage, Inc. Identifying volume candidates for space reclamation
US10108352B2 (en) * 2015-03-03 2018-10-23 International Business Machines Corporation Incremental replication of a source data set
US10853242B2 (en) * 2015-03-13 2020-12-01 Hitachi Vantara Llc Deduplication and garbage collection across logical databases
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US9998477B2 (en) 2015-03-31 2018-06-12 Comcast Cable Communications, Llc Digital content access control
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US10282201B2 (en) * 2015-04-30 2019-05-07 Actifo, Inc. Data provisioning techniques
US9652406B2 (en) 2015-04-30 2017-05-16 International Business Machines Corporation MRU batching to reduce lock contention
US9807169B2 (en) * 2015-05-04 2017-10-31 Sap Se Distributed tagging of data in a hybrid cloud environment
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US9940337B2 (en) * 2015-05-31 2018-04-10 Vmware, Inc. Predictive probabilistic deduplication of storage
CN106293498B (zh) * 2015-06-05 2019-11-19 华为技术有限公司 一种数据拷贝的方法及设备
US11461456B1 (en) * 2015-06-19 2022-10-04 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory
US11176240B1 (en) * 2021-04-20 2021-11-16 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory
US10002050B1 (en) * 2015-06-22 2018-06-19 Veritas Technologies Llc Systems and methods for improving rehydration performance in data deduplication systems
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US9547441B1 (en) 2015-06-23 2017-01-17 Pure Storage, Inc. Exposing a geometry of a storage device
US10387264B1 (en) * 2015-06-25 2019-08-20 EMC IP Holding Company LLC Initiating backups based on data changes
US11561863B2 (en) * 2015-08-20 2023-01-24 International Business Machines Corporation PDSE member generation clustering and recovery
US11176096B2 (en) * 2015-08-24 2021-11-16 International Business Machines Corporation File system for genomic data
US10423588B2 (en) 2015-08-25 2019-09-24 International Business Machines Corporation Orchestrated disaster recovery
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
KR20170028825A (ko) 2015-09-04 2017-03-14 퓨어 스토리지, 아이앤씨. 압축된 인덱스들을 사용한 해시 테이블들에서의 메모리 효율적인 스토리지 및 탐색
US11269884B2 (en) 2015-09-04 2022-03-08 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10338973B2 (en) * 2015-09-30 2019-07-02 The Mitre Corporation Cross-cloud orchestration of data analytics
US10146631B1 (en) * 2015-09-30 2018-12-04 EMC IP Holding Company LLC Incremental forever backups for exchange
US10360072B2 (en) 2015-09-30 2019-07-23 The Mitre Corporation Cross-cloud orchestration of data analytics for a plurality of research domains
CN105302480B (zh) * 2015-10-08 2019-01-18 天脉聚源(北京)教育科技有限公司 一种多媒体记录处理方法及装置
US10169358B2 (en) 2015-10-08 2019-01-01 International Business Machines Corporation Data deduplication using a small hash table
US9934083B2 (en) 2015-10-14 2018-04-03 International Business Machines Corporation Requesting manual intervention on failure of initial microcode load attempts during recovery of modified customer data
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
CN105335254B (zh) * 2015-11-03 2018-07-24 烽火通信科技股份有限公司 虚拟化备份容错系统及方法
AU2016373662B2 (en) 2015-12-16 2019-07-11 Ab Initio Technology Llc High throughput, high reliability data processing system
US20170177895A1 (en) * 2015-12-21 2017-06-22 Datanomix, Inc. In-situ cloud data management solution
US10496672B2 (en) 2015-12-30 2019-12-03 EMC IP Holding Company LLC Creating replicas at user-defined points in time
US10459883B1 (en) * 2015-12-30 2019-10-29 EMC IP Holding Company LLC Retention policies for unscheduled replicas in backup, snapshots, and remote replication
US9952935B2 (en) * 2016-01-06 2018-04-24 International Business Machines Corporation Excluding content items from a backup operation
US9996541B2 (en) 2016-02-10 2018-06-12 Red Hat, Inc. Hash-based mount point lookup in virtual file systems
US10222987B2 (en) 2016-02-11 2019-03-05 Dell Products L.P. Data deduplication with augmented cuckoo filters
CN105787008A (zh) * 2016-02-23 2016-07-20 浪潮通用软件有限公司 一种大数据量的数据去重清洗方法
EP3726732B1 (en) 2016-04-19 2024-07-31 Huawei Technologies Co., Ltd. Vector processing for segmentation hash values calculation
JP6537202B2 (ja) 2016-04-19 2019-07-03 ホアウェイ・テクノロジーズ・カンパニー・リミテッド ベクトル処理を使用する並行セグメント化
US10133503B1 (en) 2016-05-02 2018-11-20 Pure Storage, Inc. Selecting a deduplication process based on a difference between performance metrics
US10452297B1 (en) 2016-05-02 2019-10-22 Pure Storage, Inc. Generating and optimizing summary index levels in a deduplication storage system
US10254969B2 (en) * 2016-05-13 2019-04-09 Seagate Technology Llc Data refresh in flash memory
US10331524B2 (en) 2016-06-21 2019-06-25 International Business Machines Corporation Optimizing data backup schedules
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US12079171B2 (en) * 2016-08-02 2024-09-03 Microsoft Technology Licensing, Llc Symbolic link based placeholders
US20180059990A1 (en) * 2016-08-25 2018-03-01 Microsoft Technology Licensing, Llc Storage Virtualization For Files
CN106354605B (zh) * 2016-09-05 2019-06-21 上海爱数信息技术股份有限公司 一种数据库的访问方法、系统及具有该系统的服务器
US10169152B2 (en) 2016-09-12 2019-01-01 International Business Machines Corporation Resilient data storage and retrieval
US11368528B2 (en) 2016-09-20 2022-06-21 Microsoft Technology Licensing, Llc Dynamic storage management in cloud storage synchronization
US10320907B2 (en) * 2016-09-26 2019-06-11 Netapp, Inc. Multi-stage prefetching to exploit long-term future data access sequence knowledge
US10204059B2 (en) * 2016-09-29 2019-02-12 International Business Machines Corporation Memory optimization by phase-dependent data residency
US10331362B1 (en) * 2016-09-30 2019-06-25 EMC IP Holding Company LLC Adaptive replication for segmentation anchoring type
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10191662B2 (en) 2016-10-04 2019-01-29 Pure Storage, Inc. Dynamic allocation of segments in a flash storage system
US10162523B2 (en) 2016-10-04 2018-12-25 Pure Storage, Inc. Migrating data between volumes using virtual copy operation
US10613974B2 (en) 2016-10-04 2020-04-07 Pure Storage, Inc. Peer-to-peer non-volatile random-access memory
US10969961B2 (en) 2016-10-18 2021-04-06 International Business Machines Corporation Using volume header records to identify matching tape volumes
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US10614131B2 (en) * 2016-10-26 2020-04-07 Lookingglass Cyber Solutions, Inc. Methods and apparatus of an immutable threat intelligence system
US10185505B1 (en) 2016-10-28 2019-01-22 Pure Storage, Inc. Reading a portion of data to replicate a volume based on sequence numbers
US10359942B2 (en) 2016-10-31 2019-07-23 Pure Storage, Inc. Deduplication aware scalable content placement
US10209892B2 (en) 2016-11-28 2019-02-19 Hewlett Packard Enterprise Development Lp Storage of format-aware filter format tracking states
US10635639B2 (en) * 2016-11-30 2020-04-28 Nutanix, Inc. Managing deduplicated data
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US10452290B2 (en) 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US11093146B2 (en) 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
US10210170B2 (en) 2017-01-28 2019-02-19 Microsoft Technology Licensing, Llc Chunk storage deduplication using graph structures
TWI613652B (zh) * 2017-03-27 2018-02-01 慧榮科技股份有限公司 資料儲存裝置以及其操作方法
US11526404B2 (en) * 2017-03-29 2022-12-13 International Business Machines Corporation Exploiting object tags to produce a work order across backup engines for a backup job
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
JP7289034B2 (ja) * 2017-03-31 2023-06-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ストレージ非依存アプリケーション一貫性スナップショット及び複製
US10289708B2 (en) 2017-04-05 2019-05-14 Amadeus S.A.S. Management of unique identifiers in a database
US10565068B1 (en) * 2017-04-19 2020-02-18 EMC IP Holding Company LLC Primary array data dedup/compression using block backup statistics
US12045487B2 (en) 2017-04-21 2024-07-23 Pure Storage, Inc. Preserving data deduplication in a multi-tenant storage system
US11403019B2 (en) 2017-04-21 2022-08-02 Pure Storage, Inc. Deduplication-aware per-tenant encryption
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US10855554B2 (en) 2017-04-28 2020-12-01 Actifio, Inc. Systems and methods for determining service level agreement compliance
US10846339B2 (en) * 2017-06-20 2020-11-24 Cisco Technology, Inc. Structured schema for temporal graph storage and retrieval
US10706082B1 (en) * 2017-06-29 2020-07-07 Seagate Technology Llc Deduplication database management
US11429587B1 (en) 2017-06-29 2022-08-30 Seagate Technology Llc Multiple duration deduplication entries
US10587694B1 (en) * 2017-07-20 2020-03-10 EMC IP Holding Company Application aware copy data management of apps deployed in public cloud environments
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
CN110019502B (zh) 2017-08-29 2023-03-21 阿里巴巴集团控股有限公司 在主数据库和备数据库之间的同步方法、数据库系统和设备
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US10776202B1 (en) 2017-09-22 2020-09-15 Pure Storage, Inc. Drive, blade, or data shard decommission via RAID geometry shrinkage
US10789211B1 (en) 2017-10-04 2020-09-29 Pure Storage, Inc. Feature-based deduplication
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
JP7203102B2 (ja) * 2017-10-31 2023-01-12 アビニシオ テクノロジー エルエルシー コンピュータクラスタインターフェースを管理すること
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US11204842B2 (en) * 2017-11-22 2021-12-21 Acronis International Gmbh System and method for automating formation and execution of a backup strategy using machine learning
US11138156B2 (en) * 2017-11-27 2021-10-05 DataCommand Corp. Continuous data management system and operating method thereof
US10922307B2 (en) * 2017-12-11 2021-02-16 NextWorld, LLC Automated transaction engine
CN108108438A (zh) * 2017-12-20 2018-06-01 深圳市恒腾网络有限公司 行为数据的识别方法及装置
US10572184B2 (en) 2018-01-11 2020-02-25 International Business Machines Corporation Garbage collection in data storage systems
US11010233B1 (en) 2018-01-18 2021-05-18 Pure Storage, Inc Hardware-based system monitoring
US11144638B1 (en) 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
US10970395B1 (en) 2018-01-18 2021-04-06 Pure Storage, Inc Security threat monitoring for a storage system
US10552075B2 (en) 2018-01-23 2020-02-04 Vmware, Inc. Disk-image deduplication with hash subset in memory
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US10713216B2 (en) * 2018-01-31 2020-07-14 EMC IP Holding Company LLC Using relative generation numbers to deduplicate file system events
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US10936540B2 (en) * 2018-03-14 2021-03-02 Netapp, Inc. Methods for accelerating storage media access and devices thereof
US11360955B2 (en) * 2018-03-23 2022-06-14 Ebay Inc. Providing custom read consistency of a data object in a distributed storage system
US11934322B1 (en) 2018-04-05 2024-03-19 Pure Storage, Inc. Multiple encryption keys on storage drives
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US10678433B1 (en) 2018-04-27 2020-06-09 Pure Storage, Inc. Resource-preserving system upgrade
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US10768834B2 (en) * 2018-04-27 2020-09-08 Netapp, Inc. Methods for managing group objects with different service level objectives for an application and devices thereof
CN110413214B (zh) * 2018-04-28 2023-07-18 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备和计算机程序产品
US10678436B1 (en) 2018-05-29 2020-06-09 Pure Storage, Inc. Using a PID controller to opportunistically compress more data during garbage collection
US10671370B2 (en) * 2018-05-30 2020-06-02 Red Hat, Inc. Distributing file system states
US11755499B2 (en) * 2018-05-31 2023-09-12 Secturion Systems, Inc. Locally-stored remote block data integrity
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US10592363B2 (en) 2018-06-04 2020-03-17 International Business Machines Corporation Asynchronous remote mirror cloud archival
US11176001B2 (en) 2018-06-08 2021-11-16 Google Llc Automated backup and restore of a disk group
US10776046B1 (en) 2018-06-08 2020-09-15 Pure Storage, Inc. Optimized non-uniform memory access
US11281577B1 (en) 2018-06-19 2022-03-22 Pure Storage, Inc. Garbage collection tuning for low drive wear
US11119654B2 (en) * 2018-07-10 2021-09-14 International Business Machines Corporation Determining an optimal storage environment for data sets and for migrating data sets
US11869586B2 (en) 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US20200034244A1 (en) * 2018-07-26 2020-01-30 EMC IP Holding Company LLC Detecting server pages within backups
US11270339B1 (en) * 2018-08-21 2022-03-08 Amdocs Development Limited System, method, and computer program for using full and partial dynamic customer criteria sets for targeting promotions
US10949341B2 (en) 2018-08-27 2021-03-16 Samsung Electronics Co., Ltd. Implementing snapshot and other functionality in KVSSD through garbage collection and FTL
US10877949B2 (en) * 2018-09-05 2020-12-29 International Business Machines Corporation Transaction monitoring through a dual-layer datastore based on a hash filter
US11133076B2 (en) 2018-09-06 2021-09-28 Pure Storage, Inc. Efficient relocation of data between storage devices of a storage system
US11194759B2 (en) 2018-09-06 2021-12-07 Pure Storage, Inc. Optimizing local data relocation operations of a storage device of a storage system
US10846216B2 (en) 2018-10-25 2020-11-24 Pure Storage, Inc. Scalable garbage collection
US11113409B2 (en) 2018-10-26 2021-09-07 Pure Storage, Inc. Efficient rekey in a transparent decrypting storage array
US11036416B2 (en) 2018-11-07 2021-06-15 International Business Machines Corporation Deduplicated storage with multiple storage domains
US11204940B2 (en) * 2018-11-16 2021-12-21 International Business Machines Corporation Data replication conflict processing after structural changes to a database
US11068351B2 (en) * 2018-11-19 2021-07-20 International Business Machines Corporation Data consistency when switching from primary to backup data storage
WO2020112914A1 (en) * 2018-11-30 2020-06-04 Shaun Cutts Systems and methods for distributed resource allocation
USD886143S1 (en) 2018-12-14 2020-06-02 Nutanix, Inc. Display screen or portion thereof with a user interface for database time-machine
US10817157B2 (en) 2018-12-20 2020-10-27 Nutanix, Inc. User interface for database management services
US11816066B2 (en) 2018-12-27 2023-11-14 Nutanix, Inc. System and method for protecting databases in a hyperconverged infrastructure system
US11010336B2 (en) 2018-12-27 2021-05-18 Nutanix, Inc. System and method for provisioning databases in a hyperconverged infrastructure system
US11194473B1 (en) 2019-01-23 2021-12-07 Pure Storage, Inc. Programming frequently read data to low latency portions of a solid-state storage array
US11588633B1 (en) 2019-03-15 2023-02-21 Pure Storage, Inc. Decommissioning keys in a decryption storage system
CN111694505B (zh) * 2019-03-15 2021-11-02 北京京东尚科信息技术有限公司 数据存储管理方法、装置和计算机可读存储介质
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11397674B1 (en) 2019-04-03 2022-07-26 Pure Storage, Inc. Optimizing garbage collection across heterogeneous flash devices
US10990480B1 (en) 2019-04-05 2021-04-27 Pure Storage, Inc. Performance of RAID rebuild operations by a storage group controller of a storage system
US12087382B2 (en) 2019-04-11 2024-09-10 Pure Storage, Inc. Adaptive threshold for bad flash memory blocks
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11226904B2 (en) 2019-04-26 2022-01-18 Hewlett Packard Enterprise Development Lp Cache data location system
US10963182B2 (en) 2019-05-29 2021-03-30 Nutanix, Inc. System and method for on-demand recovery points
US11487665B2 (en) 2019-06-05 2022-11-01 Pure Storage, Inc. Tiered caching of data in a storage system
US11237747B1 (en) 2019-06-06 2022-02-01 Amazon Technologies, Inc. Arbitrary server metadata persistence for control plane static stability
US11100092B2 (en) 2019-06-17 2021-08-24 Bank Of America Corporation Database tool
US11269861B2 (en) 2019-06-17 2022-03-08 Bank Of America Corporation Database tool
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11537554B2 (en) * 2019-07-01 2022-12-27 Elastic Flash Inc. Analysis of streaming data using deltas and snapshots
CN110297729B (zh) * 2019-07-02 2023-03-28 四川效率源信息安全技术股份有限公司 一种基于区间块来恢复apfs中被损坏数据及被删除数据的方法
US10929046B2 (en) 2019-07-09 2021-02-23 Pure Storage, Inc. Identifying and relocating hot data to a cache determined with read velocity based on a threshold stored at a storage device
US11422751B2 (en) 2019-07-18 2022-08-23 Pure Storage, Inc. Creating a virtual storage system
US11086713B1 (en) 2019-07-23 2021-08-10 Pure Storage, Inc. Optimized end-to-end integrity storage system
US11334539B2 (en) * 2019-07-30 2022-05-17 Salesforce.Com, Inc. Change-protected database system
US11514002B2 (en) * 2019-08-30 2022-11-29 EMC IP Holding Company LLC Indexing splitter for any pit replication
US11963321B2 (en) 2019-09-11 2024-04-16 Pure Storage, Inc. Low profile latching mechanism
US11063833B2 (en) * 2019-09-23 2021-07-13 Capital One Services, Llc Dependency tracking using application layer and network layer information
US11403043B2 (en) 2019-10-15 2022-08-02 Pure Storage, Inc. Efficient data compression by grouping similar data within a data segment
KR102160816B1 (ko) * 2019-10-16 2020-09-28 주식회사 엘에프아이티 Gis 기반 서비스 제공 시스템
CN110798520B (zh) * 2019-10-25 2021-12-03 苏州浪潮智能科技有限公司 一种业务处理方法、系统、装置及可读存储介质
US20210132808A1 (en) * 2019-11-01 2021-05-06 EMC IP Holding Company LLC System and method for auto configuration of application settings using data source administration scripts
US11593226B2 (en) 2019-11-01 2023-02-28 EMC IP Holding Company LLC System and method for ensuring compliance of protection policy requirements using visual representation of backups
US11308050B2 (en) * 2019-11-15 2022-04-19 Bank Of America Corporation Conversion mechanism for complex cohabitation databases
US11500788B2 (en) 2019-11-22 2022-11-15 Pure Storage, Inc. Logical address based authorization of operations with respect to a storage system
US12079356B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Measurement interval anomaly detection-based generation of snapshots
US11755751B2 (en) 2019-11-22 2023-09-12 Pure Storage, Inc. Modify access restrictions in response to a possible attack against data stored by a storage system
US11341236B2 (en) 2019-11-22 2022-05-24 Pure Storage, Inc. Traffic-based detection of a security threat to a storage system
US12079502B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Storage element attribute-based determination of a data protection policy for use within a storage system
US12079333B2 (en) 2019-11-22 2024-09-03 Pure Storage, Inc. Independent security threat detection and remediation by storage systems in a synchronous replication arrangement
US11675898B2 (en) 2019-11-22 2023-06-13 Pure Storage, Inc. Recovery dataset management for security threat monitoring
US11645162B2 (en) 2019-11-22 2023-05-09 Pure Storage, Inc. Recovery point determination for data restoration in a storage system
US11651075B2 (en) 2019-11-22 2023-05-16 Pure Storage, Inc. Extensible attack monitoring by a storage system
US11615185B2 (en) 2019-11-22 2023-03-28 Pure Storage, Inc. Multi-layer security threat detection for a storage system
US11625481B2 (en) 2019-11-22 2023-04-11 Pure Storage, Inc. Selective throttling of operations potentially related to a security threat to a storage system
US11657155B2 (en) 2019-11-22 2023-05-23 Pure Storage, Inc Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system
US12067118B2 (en) 2019-11-22 2024-08-20 Pure Storage, Inc. Detection of writing to a non-header portion of a file as an indicator of a possible ransomware attack against a storage system
US11720692B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Hardware token based management of recovery datasets for a storage system
US11720714B2 (en) 2019-11-22 2023-08-08 Pure Storage, Inc. Inter-I/O relationship based detection of a security threat to a storage system
US12050689B2 (en) 2019-11-22 2024-07-30 Pure Storage, Inc. Host anomaly-based generation of snapshots
US11520907B1 (en) 2019-11-22 2022-12-06 Pure Storage, Inc. Storage system snapshot retention based on encrypted data
US11941116B2 (en) 2019-11-22 2024-03-26 Pure Storage, Inc. Ransomware-based data protection parameter modification
US11687418B2 (en) 2019-11-22 2023-06-27 Pure Storage, Inc. Automatic generation of recovery plans specific to individual storage elements
US12050683B2 (en) * 2019-11-22 2024-07-30 Pure Storage, Inc. Selective control of a data synchronization setting of a storage system based on a possible ransomware attack against the storage system
CN113297003B (zh) * 2020-02-24 2024-08-02 伊姆西Ip控股有限责任公司 管理备份数据的方法、电子设备和计算机程序产品
US20210294783A1 (en) * 2020-03-19 2021-09-23 Red Hat, Inc. Scalable Object Storage
US11169974B1 (en) * 2020-05-08 2021-11-09 Sap Se Database setup using a master copy
US11556513B2 (en) 2020-06-30 2023-01-17 Hewlett Packard Enterprise Development Lp Generating snapshots of a key-value index
US11461299B2 (en) 2020-06-30 2022-10-04 Hewlett Packard Enterprise Development Lp Key-value index with node buffers
US11604705B2 (en) 2020-08-14 2023-03-14 Nutanix, Inc. System and method for cloning as SQL server AG databases in a hyperconverged system
US11907167B2 (en) 2020-08-28 2024-02-20 Nutanix, Inc. Multi-cluster database management services
US11397718B2 (en) 2020-09-09 2022-07-26 International Business Machines Corporation Dynamic selection of synchronization update path
US11461240B2 (en) 2020-10-01 2022-10-04 Hewlett Packard Enterprise Development Lp Metadata cache for storing manifest portion
US11640340B2 (en) 2020-10-20 2023-05-02 Nutanix, Inc. System and method for backing up highly available source databases in a hyperconverged system
US11704335B2 (en) 2020-11-13 2023-07-18 International Business Machines Corporation Data synchronization in a data analysis system
US11513899B2 (en) 2020-11-30 2022-11-29 International Business Machines Corporation Selectively capturing snapshots of volumes based on modified capacity
US11604806B2 (en) 2020-12-28 2023-03-14 Nutanix, Inc. System and method for highly available database service
US11182260B1 (en) 2021-03-02 2021-11-23 International Business Machines Corporation Avoiding recovery log archive access in database accelerator environments
US11604810B2 (en) 2021-03-02 2023-03-14 Microsoft Technology Licensing, Llc Asynchronous replication of linked parent and child records across data storage regions
US11599294B2 (en) 2021-03-02 2023-03-07 Microsoft Technology Licensing, Llc Media storage for online meetings in edge network storage
US11675809B2 (en) 2021-03-02 2023-06-13 International Business Machines Corporation Replicating data changes using multiple storage devices and tracking records of pending data changes stored on the storage devices
US20220284042A1 (en) * 2021-03-02 2022-09-08 Microsoft Technology Licensing, Llc Replication of parent record having linked child records that were previously replicated asynchronously across data storage regions
US11226878B1 (en) 2021-03-02 2022-01-18 International Business Machines Corporation Accelerator-based database recovery
US11797570B2 (en) 2021-03-19 2023-10-24 International Business Machines Corporation Asynchronous persistency of replicated data changes in a database accelerator
US11500733B2 (en) 2021-03-19 2022-11-15 International Business Machines Corporation Volatile database caching in a database accelerator
US11892918B2 (en) 2021-03-22 2024-02-06 Nutanix, Inc. System and method for availability group database patching
US11513915B2 (en) 2021-04-09 2022-11-29 EMC IP Holding Company LLC System and method for micro-backup generation
US20220327030A1 (en) * 2021-04-09 2022-10-13 EMC IP Holding Company LLC System and method for restoration using micro-backups
US20220391418A1 (en) * 2021-06-08 2022-12-08 Kyndryl, Inc. Operating a storage server with a storage volume
US11922043B2 (en) * 2021-06-08 2024-03-05 EMC IP Holding Company LLC Data migration between storage systems
CN113486097B (zh) * 2021-06-21 2023-03-24 上海百秋新网商数字科技有限公司 大数据导出方法、装置、设备及存储介质
JP7387679B2 (ja) * 2021-07-12 2023-11-28 株式会社日立製作所 バックアップシステム及び方法
US11687416B2 (en) * 2021-09-27 2023-06-27 Kyndryl, Inc. Data backup optimization
US11928131B2 (en) 2021-09-27 2024-03-12 International Business Machines Corporation Synchronized activation of datasets in multicloud computing environment
US11803368B2 (en) 2021-10-01 2023-10-31 Nutanix, Inc. Network learning to control delivery of updates
US20230126234A1 (en) * 2021-10-25 2023-04-27 Rubrik, Inc. Independent object data backup between clusters
US12001293B2 (en) 2021-10-28 2024-06-04 Pure Storage, Inc. Coordinated data backup for a container system
US20230289079A1 (en) * 2022-03-10 2023-09-14 Kyndryl, Inc. Rapid data replication and data storage
US20240119030A1 (en) * 2022-10-11 2024-04-11 Caret Holdings, Inc. Managing and providing a rule independent data model
WO2024143735A1 (ko) * 2022-12-27 2024-07-04 삼성전자 주식회사 분산형 데이터 베이스 구조를 지원하는 서버 및 이의 동작 방법
US11797508B1 (en) * 2023-06-02 2023-10-24 Black Cape Inc. Systems and methods for geospatial correlation

Family Cites Families (103)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4626829A (en) 1985-08-19 1986-12-02 Intelligent Storage Inc. Data compression using run length encoding and statistical encoding
EP0516900B1 (en) 1991-06-04 1996-05-01 International Business Machines Corporation Data backup and recovery in a data processing system
US5410667A (en) 1992-04-17 1995-04-25 Storage Technology Corporation Data record copy system for a disk drive array data storage subsystem
US5497483A (en) 1992-09-23 1996-03-05 International Business Machines Corporation Method and system for track transfer control during concurrent copy operations in a data processing storage subsystem
WO1994029807A1 (en) 1993-06-03 1994-12-22 Network Appliance Corporation Write anywhere file-system layout
US5963962A (en) 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US5535381A (en) 1993-07-22 1996-07-09 Data General Corporation Apparatus and method for copying and restoring disk files
KR970076238A (ko) 1996-05-23 1997-12-12 포만 제프리 엘 클라이언트 데이타 화일의 다수의 복사본을 생성하고 관리하는 서버, 방법 및 그 프로그램 제품
US5857208A (en) 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US5828876A (en) 1996-07-31 1998-10-27 Ncr Corporation File system for a clustered processing system
US6119208A (en) 1997-04-18 2000-09-12 Storage Technology Corporation MVS device backup system for a data processor using a data storage subsystem snapshot copy capability
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
US6081875A (en) 1997-05-19 2000-06-27 Emc Corporation Apparatus and method for backup of a disk storage system
US6192444B1 (en) 1998-01-05 2001-02-20 International Business Machines Corporation Method and system for providing additional addressable functional space on a disk for use with a virtual data storage subsystem
US6212531B1 (en) 1998-01-13 2001-04-03 International Business Machines Corporation Method for implementing point-in-time copy using a snapshot function
US6131148A (en) 1998-01-26 2000-10-10 International Business Machines Corporation Snapshot copy of a secondary volume of a PPRC pair
US6065018A (en) 1998-03-04 2000-05-16 International Business Machines Corporation Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases
US6199146B1 (en) 1998-03-12 2001-03-06 International Business Machines Corporation Storage management system and method for increasing capacity utilization of nonvolatile storage devices using partially filled substitute storage devices for continuing write operations
US6330614B1 (en) 1998-03-20 2001-12-11 Nexabit Networks Llc Internet and related networks, a method of and system for substitute use of checksum field space in information processing datagram headers for obviating processing speed and addressing space limitations and providing other features
US6092085A (en) 1998-03-24 2000-07-18 International Business Machines Corporation Method and system for improved database disaster recovery
US6163856A (en) 1998-05-29 2000-12-19 Sun Microsystems, Inc. Method and apparatus for file system disaster recovery
US6269381B1 (en) 1998-06-30 2001-07-31 Emc Corporation Method and apparatus for backing up data before updating the data and for restoring from the backups
US6269431B1 (en) 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US6226759B1 (en) 1998-09-28 2001-05-01 International Business Machines Corporation Method and apparatus for immediate data backup by duplicating pointers and freezing pointer/data counterparts
US6341291B1 (en) 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6487561B1 (en) 1998-12-31 2002-11-26 Emc Corporation Apparatus and methods for copying, backing up, and restoring data using a backup segment size larger than the storage block size
US6654772B1 (en) 1999-04-28 2003-11-25 Emc Corporation Multi-volume extent based file system
US6324548B1 (en) 1999-07-22 2001-11-27 Unisys Corporation Database backup and recovery using separate history files for database backup and audit backup
US6772302B1 (en) 1999-11-12 2004-08-03 International Business Machines Corporation Virtual copy method for data spanning storage boundaries
US6434681B1 (en) 1999-12-02 2002-08-13 Emc Corporation Snapshot copy facility for a data storage system permitting continued host read/write access
US6460055B1 (en) 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
US6484186B1 (en) 2000-02-15 2002-11-19 Novell, Inc. Method for backing up consistent versions of open files
US6779094B2 (en) 2000-06-19 2004-08-17 Storage Technology Corporation Apparatus and method for instant copy of data by writing new data to an additional physical storage area
US6665815B1 (en) 2000-06-22 2003-12-16 Hewlett-Packard Development Company, L.P. Physical incremental backup using snapshots
US7072916B1 (en) 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6823336B1 (en) 2000-09-26 2004-11-23 Emc Corporation Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor
US6654912B1 (en) 2000-10-04 2003-11-25 Network Appliance, Inc. Recovery of file system data in file servers mirrored file system volumes
US6557089B1 (en) 2000-11-28 2003-04-29 International Business Machines Corporation Backup by ID-suppressed instant virtual copy then physical backup copy with ID reintroduced
US6850929B2 (en) 2001-03-08 2005-02-01 International Business Machines Corporation System and method for managing file system extended attributes
US6510500B2 (en) 2001-03-09 2003-01-21 International Business Machines Corporation System and method for minimizing message transactions for fault-tolerant snapshots in a dual-controller environment
US6668264B1 (en) 2001-04-03 2003-12-23 Network Appliance, Inc. Resynchronization of a target volume with a source volume
US20020169926A1 (en) * 2001-04-19 2002-11-14 Thomas Pinckney Systems and methods for efficient cache management in streaming applications
US6915397B2 (en) 2001-06-01 2005-07-05 Hewlett-Packard Development Company, L.P. System and method for generating point in time storage copy
US6625704B2 (en) 2001-08-08 2003-09-23 Sangate Systems, Inc. Data backup method and system using snapshot and virtual tape
WO2003028183A1 (en) 2001-09-28 2003-04-03 Commvault Systems, Inc. System and method for generating and managing quick recovery volumes
US6823436B2 (en) 2001-10-02 2004-11-23 International Business Machines Corporation System for conserving metadata about data snapshots
US7296125B2 (en) 2001-11-29 2007-11-13 Emc Corporation Preserving a snapshot of selected data of a mass storage system
US6948039B2 (en) 2001-12-14 2005-09-20 Voom Technologies, Inc. Data backup and restoration using dynamic virtual storage
JP4108973B2 (ja) 2001-12-26 2008-06-25 株式会社日立製作所 バックアップシステム
US6898688B2 (en) 2001-12-28 2005-05-24 Storage Technology Corporation Data management appliance
US7072915B2 (en) 2002-01-22 2006-07-04 International Business Machines Corporation Copy method supplementing outboard data copy with previously instituted copy-on-write logical snapshot to create duplicate consistent with source data as of designated time
US6957362B2 (en) 2002-08-06 2005-10-18 Emc Corporation Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US7707184B1 (en) 2002-10-09 2010-04-27 Netapp, Inc. System and method for snapshot full backup and hard recovery of a database
US6928526B1 (en) 2002-12-20 2005-08-09 Datadomain, Inc. Efficient data storage system
JP4325211B2 (ja) 2003-02-14 2009-09-02 富士ゼロックス株式会社 情報処理システム
AU2003901806A0 (en) 2003-04-15 2003-05-01 Aristocrat Technologies Australia Pty Ltd Data access and communication system
US7814128B2 (en) 2003-05-30 2010-10-12 Symantec Operating Corporation Multi-volume file support
US7143251B1 (en) 2003-06-30 2006-11-28 Data Domain, Inc. Data storage using identifiers
US7664798B2 (en) 2003-09-04 2010-02-16 Oracle International Corporation Database performance baselines
JP4354233B2 (ja) 2003-09-05 2009-10-28 株式会社日立製作所 バックアップシステム及び方法
US7865485B2 (en) 2003-09-23 2011-01-04 Emc Corporation Multi-threaded write interface and methods for increasing the single file read and write throughput of a file server
US7647355B2 (en) 2003-10-30 2010-01-12 International Business Machines Corporation Method and apparatus for increasing efficiency of data storage in a file system
US7539685B2 (en) 2003-12-30 2009-05-26 Microsoft Corporation Index key normalization
US8180742B2 (en) 2004-07-01 2012-05-15 Emc Corporation Policy-based information management
US7366858B2 (en) 2004-09-09 2008-04-29 Microsoft Corporation Framework for taking shadow copies and performing backups in a networked environment
US7502961B2 (en) 2004-09-09 2009-03-10 Microsoft Corporation Method, system, and apparatus for providing alert synthesis in a data protection system
US7689633B1 (en) 2004-09-15 2010-03-30 Data Domain, Inc. Network file system-based data storage system
JP4239940B2 (ja) 2004-09-22 2009-03-18 セイコーエプソン株式会社 ファイル管理プログラム、及びファイル管理装置
US20060112219A1 (en) 2004-11-19 2006-05-25 Gaurav Chawla Functional partitioning method for providing modular data storage systems
US20060123210A1 (en) 2004-12-06 2006-06-08 St. Bernard Software, Inc. Method for logically consistent backup of open computer files
GB0428108D0 (en) 2004-12-23 2005-01-26 Ibm Storage system with multiple copy targeting
US7310716B2 (en) * 2005-03-04 2007-12-18 Emc Corporation Techniques for producing a consistent copy of source data at a target location
WO2007002398A2 (en) 2005-06-24 2007-01-04 Syncsort Incorporated System and method for virtualizing backup images
US7917915B2 (en) 2005-09-15 2011-03-29 Hewlett-Packard Development Comapny, L.P. Model driven application framework
JP4668763B2 (ja) 2005-10-20 2011-04-13 株式会社日立製作所 ストレージ装置のリストア方法及びストレージ装置
US7325111B1 (en) 2005-11-01 2008-01-29 Network Appliance, Inc. Method and system for single pass volume scanning for multiple destination mirroring
US7774391B1 (en) 2006-03-30 2010-08-10 Vmware, Inc. Method of universal file access for a heterogeneous computing environment
US7685460B1 (en) 2006-09-28 2010-03-23 Emc Corporation Multiple concurrent restore using same user interface
US8706833B1 (en) 2006-12-08 2014-04-22 Emc Corporation Data storage server having common replication architecture for multiple storage object types
US8139575B2 (en) 2007-06-29 2012-03-20 International Business Machines Corporation Device, system and method of modification of PCI express packet digest
US9098432B1 (en) 2008-04-08 2015-08-04 Emc Corporation System and method for data deduplication of backup images
US8296398B2 (en) * 2008-04-29 2012-10-23 Overland Storage, Inc. Peer-to-peer redundant file server system and methods
US8037032B2 (en) 2008-08-25 2011-10-11 Vmware, Inc. Managing backups using virtual machines
US8495316B2 (en) 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
US8694466B2 (en) 2008-10-07 2014-04-08 Dell Products L.P. Object deduplication and application aware snapshots
WO2010102084A2 (en) 2009-03-05 2010-09-10 Coach Wei System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
US8321385B2 (en) 2010-03-12 2012-11-27 Lsi Corporation Hash processing in a network communications processor architecture
US8180740B1 (en) 2009-08-12 2012-05-15 Netapp, Inc. System and method for eliminating duplicate data by generating data fingerprints using adaptive fixed-length windows
US8161077B2 (en) 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US8150808B2 (en) * 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8468135B2 (en) 2010-04-14 2013-06-18 International Business Machines Corporation Optimizing data transmission bandwidth consumption over a wide area network
US9401967B2 (en) 2010-06-09 2016-07-26 Brocade Communications Systems, Inc. Inline wire speed deduplication system
US8407191B1 (en) 2010-06-29 2013-03-26 Emc Corporation Priority based data scrubbing on a deduplicated data store
JP5565157B2 (ja) * 2010-07-14 2014-08-06 富士通株式会社 データ処理装置、データ処理方法、データ処理プログラムおよびストレージ装置
US8548944B2 (en) 2010-07-15 2013-10-01 Delphix Corp. De-duplication based backup of file systems
US20120078899A1 (en) 2010-09-27 2012-03-29 Fontana James A Systems and methods for defining objects of interest in multimedia content
US8299944B2 (en) 2010-11-16 2012-10-30 Actifio, Inc. System and method for creating deduplicated copies of data storing non-lossy encodings of data directly in a content addressable store
US8788769B2 (en) 2010-11-16 2014-07-22 Actifio, Inc. System and method for performing backup or restore operations utilizing difference information and timeline state information
US8904126B2 (en) 2010-11-16 2014-12-02 Actifio, Inc. System and method for performing a plurality of prescribed data management functions in a manner that reduces redundant access operations to primary storage
US8468174B1 (en) 2010-11-30 2013-06-18 Jedidiah Yueh Interfacing with a virtual database system
US9020900B2 (en) * 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US20130139113A1 (en) * 2011-11-30 2013-05-30 Microsoft Corporation Quick action for performing frequent tasks on a mobile device
AU2013277351A1 (en) 2012-06-18 2015-01-22 Actifio, Inc. Enhanced data management virtualization system

Cited By (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106527961A (zh) * 2015-09-15 2017-03-22 伊姆西公司 用于保证数据一致性的方法和装置
CN106527961B (zh) * 2015-09-15 2019-06-21 伊姆西公司 用于保证数据一致性的方法和装置
CN105389335A (zh) * 2015-10-15 2016-03-09 佛山市云端容灾信息技术有限公司 一种基于自动演练的数据挖掘分析方法和装置
CN105389335B (zh) * 2015-10-15 2018-08-28 佛山市云端容灾信息技术有限公司 一种基于自动演练的数据挖掘分析方法和装置
CN105468699B (zh) * 2015-11-18 2019-06-18 珠海多玩信息技术有限公司 去重数据统计方法及设备
CN105468699A (zh) * 2015-11-18 2016-04-06 珠海多玩信息技术有限公司 去重数据统计方法及设备
CN106897335A (zh) * 2016-06-28 2017-06-27 阿里巴巴集团控股有限公司 一种业务数据的存储方法、记录标识符的生成方法及装置
CN106897335B (zh) * 2016-06-28 2020-11-27 创新先进技术有限公司 一种业务数据的存储方法、记录标识符的生成方法及装置
CN106446275A (zh) * 2016-10-21 2017-02-22 国云科技股份有限公司 一种支持文件系统扩容的容器实现方法
CN109906439A (zh) * 2016-11-16 2019-06-18 国际商业机器公司 通过存储控制器向对象存储云的时间点备份
CN110100228A (zh) * 2017-01-06 2019-08-06 甲骨文国际公司 利用云对象存储的文件系统层次结构的高效增量备份和恢复
US11755535B2 (en) 2017-01-06 2023-09-12 Oracle International Corporation Consistent file system semantics with cloud object storage
CN110100228B (zh) * 2017-01-06 2023-08-22 甲骨文国际公司 利用云对象存储的文件系统层次结构的高效增量备份和恢复
US11714784B2 (en) 2017-01-06 2023-08-01 Oracle International Corporation Low-latency direct cloud access with file system hierarchies and semantics
CN108289306B (zh) * 2017-01-10 2023-03-10 中兴通讯股份有限公司 一种流程冲突处理方法及装置
CN108289306A (zh) * 2017-01-10 2018-07-17 中兴通讯股份有限公司 一种流程冲突处理方法及装置
CN107291576A (zh) * 2017-06-16 2017-10-24 郑州云海信息技术有限公司 一种异步的快照卷解耦合的方法及装置
CN109302300A (zh) * 2017-07-25 2019-02-01 阿里巴巴集团控股有限公司 数据分配方法及装置、数据处理方法及服务器
CN115086326A (zh) * 2017-07-26 2022-09-20 亚马逊科技公司 Iot装置集群的分层数据处理
CN110737542A (zh) * 2018-07-19 2020-01-31 慧与发展有限责任合伙企业 冻结和解除冻结上游卷和下游卷
CN109474429A (zh) * 2018-12-24 2019-03-15 无锡市同威科技有限公司 一种面向fc存储加密网关的密钥配置策略方法
CN109474429B (zh) * 2018-12-24 2022-02-15 无锡市同威科技有限公司 一种面向fc存储加密网关的密钥配置策略方法
CN112241337A (zh) * 2019-07-19 2021-01-19 伊姆西Ip控股有限责任公司 用于管理备份数据的方法、设备和计算机程序产品
CN112241337B (zh) * 2019-07-19 2024-07-02 伊姆西Ip控股有限责任公司 用于管理备份数据的方法、设备和计算机程序产品
CN116529724A (zh) * 2020-10-14 2023-08-01 甲骨文国际公司 在无共享分布式数据库中快速检测和修复故障的系统和方法
CN116529724B (zh) * 2020-10-14 2024-04-12 甲骨文国际公司 在无共享分布式数据库中快速检测和修复故障的系统和方法
CN112546617B (zh) * 2020-12-29 2022-08-30 珠海金山数字网络科技有限公司 任务处理方法及装置
CN112546617A (zh) * 2020-12-29 2021-03-26 珠海金山网络游戏科技有限公司 任务处理方法及装置
CN112988754B (zh) * 2021-04-08 2023-07-14 中煤科工集团重庆研究院有限公司 一种面向数据集成的快速查询方法
CN112988754A (zh) * 2021-04-08 2021-06-18 中煤科工集团重庆研究院有限公司 一种面向数据集成的快速查询方法
CN117895509A (zh) * 2024-03-14 2024-04-16 国网山东省电力公司经济技术研究院 一种多能源耦合型配电网调度方法及系统
CN117895509B (zh) * 2024-03-14 2024-05-10 国网山东省电力公司经济技术研究院 一种多能源耦合型配电网调度方法及系统

Also Published As

Publication number Publication date
US20130339303A1 (en) 2013-12-19
US9495435B2 (en) 2016-11-15
CA2877284A1 (en) 2013-12-27
EP2862051A2 (en) 2015-04-22
AU2013277351A1 (en) 2015-01-22
US20130339302A1 (en) 2013-12-19
US20130339643A1 (en) 2013-12-19
US9754005B2 (en) 2017-09-05
WO2013192198A2 (en) 2013-12-27
US9501545B2 (en) 2016-11-22
JP2015525419A (ja) 2015-09-03
US20130339319A1 (en) 2013-12-19
US9501546B2 (en) 2016-11-22
US20130339471A1 (en) 2013-12-19
WO2013192198A3 (en) 2015-04-02
US9659077B2 (en) 2017-05-23
US9384254B2 (en) 2016-07-05
EP2862051A4 (en) 2016-08-10
US20130339297A1 (en) 2013-12-19
KR20150021117A (ko) 2015-02-27

Similar Documents

Publication Publication Date Title
US11573859B2 (en) Content-independent and database management system-independent synthetic full backup of a database based on snapshot technology
CN104769555A (zh) 增强型数据管理虚拟化系统
US10540236B2 (en) System and method for multi-hop data backup
CN103415842B (zh) 用于数据管理虚拟化的系统和方法
US10795927B2 (en) On-demand metadata extraction of clinical image data
US20190109870A1 (en) Ransomware detection and intelligent restore
US20170123890A1 (en) Monitoring, diagnosing, and repairing a management database in a data storage management system
US12056384B2 (en) Skipping data backed up in prior backup operations
US11645175B2 (en) Automatic failover of a storage manager
US20230058573A1 (en) Mobile storage manager control application for managing a storage manager of an information management system
US20220179986A1 (en) Methods for managing user permissions
US20220108167A1 (en) Artificial intelligence-based information management system performance metric prediction

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150708

WD01 Invention patent application deemed withdrawn after publication