CN104903871B - 虚拟磁带库系统 - Google Patents

虚拟磁带库系统 Download PDF

Info

Publication number
CN104903871B
CN104903871B CN201380069599.8A CN201380069599A CN104903871B CN 104903871 B CN104903871 B CN 104903871B CN 201380069599 A CN201380069599 A CN 201380069599A CN 104903871 B CN104903871 B CN 104903871B
Authority
CN
China
Prior art keywords
virtual tape
virtual
tape
logical data
storage
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.)
Active
Application number
CN201380069599.8A
Other languages
English (en)
Other versions
CN104903871A (zh
Inventor
P·文森
C·卡尔
A·森达拉姆
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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
Priority claimed from US13/722,743 external-priority patent/US10013166B2/en
Priority claimed from US13/722,814 external-priority patent/US20140181396A1/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN104903871A publication Critical patent/CN104903871A/zh
Application granted granted Critical
Publication of CN104903871B publication Critical patent/CN104903871B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • G06F3/0686Libraries, e.g. tape libraries, jukebox
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Abstract

一种虚拟磁带库系统,其用以通过仿真物理磁带操作而将来自客户端存档系统的预期所述物理磁带操作的数据备份到存储服务的逻辑数据容器和/或元数据存储器上。举例来说,虚拟磁带库装置安装在顾客所在地位置以与客户端存档系统对接。所述虚拟磁带库装置提供虚拟接口以呈现为物理磁带库子系统,例如磁带驱动器和介质转换器接口。然而,这些虚拟接口在存储服务和元数据存储器中通过逻辑数据容器来支持。所述虚拟磁带库系统允许所述客户端存档系统产生请求,从而导入新的虚拟磁带,导出虚拟磁带用于存档,在虚拟位置处存储虚拟磁带,将虚拟磁带载入和驱逐到虚拟磁带驱动器中,以及对虚拟磁带驱动器中虚拟磁带进行操作。

Description

虚拟磁带库系统
相关申请的交叉引用
本申请要求来自2012年12月20日提交的标题为“VIRTUAL TAPE LIBRARY SYSTEM”的美国专利申请第13/722,743号(代理人案号0097749-152US0(P6273))以及2012年12月22日提交的标题为“VIRTUAL TAPE USING A LOGICAL DATA CONTAINER”的美国专利申请第13/722,814号的权益的优先权。
技术领域
本发明涉及虚拟磁带库系统。
背景技术
若干组织机制备份数据以防数据丢失或破坏。举例来说,客户端数据可能受到许多不同的威胁,包括环境威胁、安全威胁、事故和/或故障。环境危险包括可能扰乱或损害客户端系统的风暴或其它自然灾害。安全威胁包括可能恶意地进入生产系统并破坏或毁坏数据和/或软件的黑客。事故威胁包括如破坏或产生不一致数据的软件错误的问题。故障威胁包括硬件系统的故障,例如含有关键数据的多个存储设备的相关故障。如果存在备份,那么可以及时将至少数据和/或软件重置回已知的良好点。
备份数据的一个方法是通过磁带备份系统。磁带备份系统使用磁带盒来存储数据。在一些公司中,磁带备份系统可以部分或完全自动,使得磁带可以通过机器人手臂而从存储位置移动到磁带驱动器且接着返回到存储位置。举例来说,客户端存档系统发送命令到机器人系统以将磁带从一个位置移动到另一位置,且跟踪磁带的移动。客户端存档系统还可以跟踪写入到磁带的信息,以便在恢复操作需要时召回文件或其它信息。这些机器人系统可能需要所述机械系统的较大空间和维护以有效地进行操作。
发明内容
本发明提供一种用于仿真存储的计算机实施的方法,其包括:接收产生虚拟磁带的请求;请求在存储服务中产生逻辑数据容器;使所述逻辑数据容器与所述虚拟磁带相关联;接收将来自虚拟存储位置的所述虚拟磁带载入到虚拟磁带驱动器的请求;将与所述虚拟磁带相关联的所述逻辑数据容器映射到与所述虚拟磁带驱动器相关联的输入/输出接口;在所述输入/输出接口上将请求转换到与映射到所述虚拟磁带驱动器的所述虚拟磁带相关联的所述逻辑数据容器;响应于接收存储所述虚拟磁带的请求:去除所述逻辑数据容器到所述输入/输出接口的所述映射;响应于接收将所述虚拟磁带存储在档案存储服务中的请求:将所述虚拟磁带映射到导入/导出位置;从虚拟磁带库去除所述虚拟磁带;确定用于制备所述逻辑数据容器用于在所述输入/输出接口上使用的可接受的响应时间;至少部分地基于所述确定来从多个存储层级选择存储层级以得到选定的存储层级,至少部分基于用于访问在所述存储层级中的逻辑数据容器的响应时间而限定所述多个存储层级的存储层级,所述多个存储层级包括对应于具有第一响应时间的第一数据存储服务的第一存储层级和对应于具有第二响应时间的第二数据存储服务的第二存储层级;从与所述输入/输出接口一起使用的主动层级传送所述逻辑数据容器到所述选定的存储层级;以及使所述虚拟磁带与虚拟库位置相关联。
本发明还提供一种用于存储数据的计算机实施的方法,其包括:在虚拟磁带与虚拟磁带驱动器相关联的时间期间,将磁带操作从输入/输出接口转换到与所述虚拟磁带驱动器相关联的逻辑数据容器;响应于从所述虚拟磁带驱动器去除所述虚拟磁带的请求而使所述虚拟磁带驱动器从所述虚拟磁带和所述逻辑数据容器解除关联;响应于存储所述虚拟磁带的请求:确定用于制备所述逻辑数据容器用于在所述输入/输出接口上使用的响应时间;至少部分地基于所述确定从多个存储层级选择存储层级,该存储层级的选择至少部分地基于所述存储层级的访问属性的速度;以及从包括所述输入/输出接口的当前存储层级传送所述逻辑数据容器到所选择存储层级上的逻辑数据容器,所述当前存储层级具有不同于所选择存储层级的响应时间。
本发明还提供一种用于管理虚拟磁带库的计算机系统,其包括:一个或多个计算资源,其具有包括可执行指令的一个或多个处理器和存储器,所述可执行指令在被所述一个或多个处理器执行时促使所述一个或多个处理器至少实施:虚拟磁带库系统,其提供到客户端存档系统的接口,并且:通过提供以下内容来提供磁带库系统的仿真:虚拟磁带集合,所述虚拟磁带集合中的每一虚拟磁带包括来自存储服务的存储逻辑数据容器,所述存储服务根据请求提供存储逻辑数据容器;虚拟磁带驱动器集合,来自所述虚拟磁带驱动器集合的每一虚拟磁带驱动器提供到所述客户端存档系统的接口以与所述虚拟磁带驱动器相关联的虚拟磁带交互;介质转换器接口,其被配置来使虚拟磁带与虚拟磁带驱动器相关联;以及元数据存储器,其将虚拟磁带链接到所述存储逻辑数据容器;确定用于制备所述逻辑数据容器用于在输入/输出接口上使用的可接受的响应时间;至少部分地基于所述确定来从多个存储层级选择存储层级以得到选定的存储层级,至少部分基于用于访问在所述存储层级中的逻辑数据容器的响应时间而限定所述多个存储层级的存储层级,所述多个存储层级包括对应于具有第一响应时间的第一数据存储服务的第一存储层级和对应于具有第二响应时间的第二数据存储服务的第二存储层级;从与所述输入/输出接口一起使用的主动层级传送所述逻辑数据容器到所述选定的存储层级;以及使所述虚拟磁带与虚拟库位置相关联。
附图说明
将参照附图描述根据本公开的各个实施方案,在附图中:
图1示出根据至少一个实施方案的虚拟磁带库的说明性实例;
图2示出根据至少一个实施方案的虚拟磁带库系统的说明性实例;
图3示出根据至少一个实施方案的虚拟磁带库系统的说明性实例;
图4示出根据至少一个实施方案的虚拟磁带库系统的说明性实例;
图5示出根据至少一个实施方案的可用以操作虚拟磁带库系统的流程的说明性实例;
图6示出根据至少一个实施方案的可用以备份到虚拟磁带库系统的流程的说明性实例;
图7示出根据至少一个实施方案的可用以从虚拟磁带库系统进行恢复的流程的说明性实例;
图8示出根据至少一个实施方案的可用以操作虚拟磁带库系统的流程的说明性实例;
图9示出根据至少一个实施方案的虚拟磁带的说明性实例;
图10示出根据至少一个实施方案的虚拟磁带标头的说明性实例;
图11示出根据至少一个实施方案的虚拟磁带数据块组的说明性实例;
图12示出根据至少一个实施方案的可用以产生虚拟磁带的流程的说明性实例;
图13示出可用以将经修改数据持续到逻辑数据容器的流程的说明性实例;
图14示出根据至少一个实施方案的可用以写入到虚拟磁带的流程的说明性实例;
图15示出根据至少一个实施方案的可用以使用虚拟磁带来寻找记录的流程的说明性实例;
图16示出根据至少一个实施方案的可用以使用虚拟磁带来寻找文件标志的流程的说明性实例;
图17示出根据至少一个实施方案的可用以使用虚拟磁带来进行读取的流程的说明性实例;
图18示出根据至少一个实施方案的可用以从虚拟磁带中的事件来进行恢复的流程的说明性实例;以及
图19图示其中可能实施各种实施方案的环境。
具体实施方式
在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供实施方案的透彻理解。然而,对本领域的技术人员将是显而易见的是,在没有具体细节的情况下也可以实行实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。
本文所描述和建议的技术包括实施虚拟磁带库系统,以通过仿真物理磁带操作将来自客户端存档系统的预期所述物理磁带操作的数据备份到存储服务的逻辑数据容器和/或元数据存储器上。举例来说,虚拟磁带库装置安装在顾客所在地位置以与客户端存档系统对接。虚拟磁带库仿真物理磁带库,使得客户端存档系统可以对虚拟磁带进行操作从而对客户端数据进行存档。虚拟磁带库装置提供虚拟接口以呈现为物理磁带库子系统,例如磁带驱动器和介质转换器接口。然而,这些虚拟接口在存储服务和元数据存储器中通过逻辑数据容器来支持。虚拟磁带库系统允许客户端存档系统产生请求,从而导入新的虚拟磁带,导出虚拟磁带用于存档,在虚拟位置处存储虚拟磁带,将虚拟磁带载入和驱逐到虚拟磁带驱动器中,以及对虚拟磁带驱动器中虚拟磁带进行操作。
对虚拟磁带驱动器中的虚拟磁带进行的操作可包括寻找、读取、写入、初始化、标记和通过虚拟磁带库系统仿真的其它物理磁带操作。用于通过客户端存档系统进行的磁带盒的操纵的这些请求由虚拟磁带库系统转换,从而对存储服务的元数据存储器和/或逻辑数据容器进行操作。移动操作,例如移动虚拟磁带从一个虚拟位置到另一虚拟位置,可以通过改变元数据存储器中虚拟磁带与虚拟位置之间的关联来实现。数据操作,例如读取或写入到虚拟磁带,可以通过结合存储服务对逻辑数据容器进行操作的接口来实现。存储服务可以是按需存储服务,其中在按需基础上提供逻辑数据容器。在一些实施方案中,存储服务和虚拟磁带库装置可以通过公用网络(例如因特网)而分开。通过提供虚拟磁带库系统,客户端可能够主动地管理资源用于按需备份,同时降低磁带硬件维护所需的成本。举例来说,虚拟磁带可以按需构建或删除以匹配存储需要和成本。
在一个实施方案中,客户端将数据备份到虚拟磁带且将虚拟磁带存储到档案存储器中。客户端通过主动存储供应接口来请求新的虚拟磁带。虚拟磁带通过在存储服务中供应新的逻辑数据容器以及使逻辑数据容器与虚拟磁带识别符(ID)相关联(例如元数据存储器中的关联)而产生。接着将新的虚拟磁带实际上放置在虚拟磁带库中的虚拟导入/导出槽中。虚拟磁带的移动通过在元数据存储器中使虚拟磁带ID与虚拟导入/导出槽相关联来实现。一旦虚拟磁带处于虚拟导入/导出槽中,客户端存档系统即可承担虚拟磁带的控制。客户端存档系统接着可请求虚拟磁带通过虚拟磁带库系统的虚拟介质转换器而移动到虚拟磁带驱动器。此移动可以通过去除虚拟磁带ID与虚拟导入/导出槽的关联以及使虚拟磁带ID与虚拟磁带驱动器相关联而实现。可以将与选定的具体虚拟磁带驱动器相关联的虚拟磁带驱动器接口(例如因特网小型计算机系统接口(iSCSI))指派到与虚拟磁带ID相关联的逻辑数据容器。接着可以初始化新的虚拟磁带,其可包括将基础虚拟磁带结构(例如全局标头)写入到逻辑数据容器。在初始化之后,客户端系统可通过客户端存档系统将数据备份到虚拟磁带。数据的备份可以通过虚拟磁带库装置接收磁带命令且将所述磁带命令转换为操作而实现,所述操作对指派到存储服务中的虚拟磁带驱动器的逻辑数据容器上的虚拟磁带结构进行操作。这些操作可包括写入数据、进行记录和产生文件标志。在完成备份之后,客户端存档系统可请求虚拟磁带从虚拟磁带驱动器移动到虚拟导入/导出槽以用于档案存储。作为响应,虚拟磁带库装置可促使虚拟磁带驱动器与虚拟磁带ID的关联,以及虚拟磁带驱动器接口到逻辑数据容器的指派被去除。接着可使逻辑数据容器分级,用于从主动存储的存储服务传送到档案服务。
在另一实施方案中,客户端从档案存储中的虚拟磁带恢复数据。客户端可请求虚拟磁带通过供应商存储系统而从档案存储传送到虚拟导入/导出槽。作为响应,供应商可将与虚拟磁带相关联的逻辑数据容器从档案存储传送到主动存储。在完成所述传送后,虚拟磁带库系统可以使虚拟磁带ID与虚拟导入/导出槽相关联。一旦虚拟磁带处于虚拟导入/导出槽中,客户端存档系统即可承担虚拟磁带的控制。客户端存档系统接着可请求虚拟磁带通过虚拟磁带库系统的虚拟介质转换器而移动到虚拟磁带驱动器。此移动可以通过去除虚拟磁带ID与虚拟导入/导出槽的关联以及使虚拟磁带ID与虚拟磁带驱动器相关联而实现。可以将与选定的具体虚拟磁带驱动器相关联的虚拟磁带驱动器接口指派到与虚拟磁带ID相关联的逻辑数据容器。客户端存档系统接着可以对虚拟磁带执行操作,例如定位、间隔、读取或其它磁带操作。这些操作接着可以用于确定从逻辑数据容器检索哪些数据。在完成恢复之后,客户端存档系统可请求虚拟磁带从虚拟磁带驱动器移动到虚拟导入/导出槽以用于档案存储或移动到虚拟磁带槽位置来等待进一步动作。作为响应,虚拟磁带库装置可促使虚拟磁带驱动器与虚拟磁带ID的关联,以及虚拟磁带驱动器接口到逻辑数据容器的指派被去除。在重新存档的情况下,接着可使逻辑数据容器分级,用于从主动存储的存储服务传送到档案服务。在虚拟磁带槽位置的情况下,可以存储虚拟磁带ID与虚拟磁带槽位置之间的关联。
在其它实施方案中,虚拟磁带可被重新初始化或销毁。在重新初始化中,虚拟磁带被擦除其当前数据。客户端存档系统可请求虚拟磁带通过虚拟介质转换器而载入虚拟磁带驱动器中。如上文论述,作为请求载入虚拟磁带的结果,与虚拟磁带相关联的逻辑数据容器可变得与虚拟磁带驱动器的接口相关联。客户端存档系统接着可请求虚拟磁带驱动器重新初始化所述虚拟磁带。在一些实施方案中,此重新初始化可以通过改变逻辑数据容器的全局标头中的产生识别符以使逻辑数据容器内的所有数据无效而实现。在重新初始化之后,客户端存档系统可使用虚拟磁带或请求所述磁带移动回到虚拟磁带槽位置以等待使用。客户端存档系统还可以请求磁带被销毁。客户端存档系统可请求虚拟磁带从虚拟磁带驱动器移动到虚拟导入/导出槽以用于销毁。作为响应,虚拟磁带库装置可促使虚拟磁带驱动器与虚拟磁带ID的关联,以及虚拟磁带驱动器接口到逻辑数据容器的指派被去除。接着可取消供应逻辑数据容器。
当前系统的优点在于使用成本可按比例调整到所述系统的实际使用。举例来说,客户端可使用每小时、每天、每周、每月、每年和备份到虚拟磁带之间的其它时间跨度。在一周之后,客户端可希望销毁除了午夜备份之外的所有的每小时备份以表示每天备份。剩余的每小时备份的销毁并未产生用于所销毁虚拟磁带的进一步成本。
存储服务可提供可以用以存储虚拟磁带的多个存储层级。存储服务可使用包括对象存储或块存储的不同的存储系统。在一个实施方案中,可使用主动存储和档案存储。主动存储可提供足够用于读取和写入数据的响应。档案服务可提供具有太高延时而使得不足以读取或写入的服务,但足以用于长期存储。举例来说,主动存储逻辑数据容器可提供同步的读取和写入响应,例如来自读取或写入的确认或数据。档案存储逻辑数据容器可提供异步的响应,例如用于每一请求的作业识别符。接着可查询作业识别符以确定作业是否已完成。逻辑数据容器两者还可以包括不同大小的数据对象,其包括一个或多个逻辑数据容器。在使用中,当虚拟磁带放置在虚拟导入/导出槽中时,在虚拟磁带后方的逻辑数据容器可以分级以用于在主动存储和档案存储之间传送。
在另一实施方案中,可使用三层级存储。可按与虚拟磁带相关联的逻辑数据容器准备数据传送需要多长的时间来查看三层级存储。举例来说,可以将三逻辑数据容器存储在虚拟库的位置中。第一逻辑数据容器可以存储在准备好访问的第一层级中。当客户存端档系统请求与第一逻辑数据容器相关联的虚拟磁带被载入到虚拟磁带驱动器中时,一旦虚拟磁带驱动器接口变得与逻辑数据容器相关联,逻辑数据容器即可准备好。第二逻辑数据容器可以存储在准备好在几分钟后访问的第二层级中。当客户端存档系统请求与第二逻辑数据容器相关联的虚拟磁带被载入到虚拟磁带驱动器中时,第二逻辑数据容器可以在虚拟磁带准备好接收数据之前传送到较高存储层级。归因于存储层级的中等性能,可使得第二逻辑数据容器在几分钟后可用。第三逻辑数据容器可以存储在可以准备好在几小时或更长时间后访问的第三层级中。当客户端存档系统请求与第三逻辑数据容器相关联的虚拟磁带被载入到虚拟磁带驱动器中时,第三逻辑数据容器可以在虚拟磁带准备好接收数据之前传送到较高存储层级。归因于存储层级的较低性能,可使得第三逻辑数据容器在几小时或更长时间后可用。在一些实施方案中,可以通过虚拟导入/导出槽而非虚拟库存储位置来路由第二或第三逻辑数据容器。多个层级结构的优点在于客户端可决定其针对备份数据的可用性的需要。长期存储可以是具有较长响应时间的较廉价存储,而主动数据可以较昂贵的成本而容易可用。
术语供应(provisioning)意图被广泛地理解以包括指派计算资源来使用。在一些实施方案中,此包括准备计算资源用于使用。在一个实施方案中,资源的供应将包括服务器的指派、操作系统的安装、待放置到资源上的软件的安装和配置以及实现构建资源用于使用。举例来说,供应系统可选择服务器以用作用于元数据存储器的数据库。供应系统接着可产生准备服务器用于用作数据库的工作流程。作为工作流程的部分,可将机器图像载入到服务器上。机器图像可包括操作系统、数据库软件和/或设置。在载入机器图像后,可使服务器启动到操作系统中且接收任何进一步的软件和/或设置。此类设置可包括域名和/或初始元数据和安全配置。在完成供应后,可使服务器移交到管理系统用于用作元数据存储器且包括在虚拟磁带库系统中。
在以下描述中,将描述各种实施方案。出于解释的目的,将阐述具体的配置和细节,以便提供实施方案的透彻理解。然而,对本领域的技术人员将是显而易见的是,在没有具体细节的情况下也可以实行实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。
本文所描述和建议的技术包括在逻辑数据容器上构建虚拟磁带,以帮助提供磁带功能性、快速寻找性能和在故障情况下的改进的恢复时间。举例来说,逻辑数据容器可包括全局标头,其后接着一个或多个数据块组。逻辑数据容器可为可寻址数据容器,例如块存储容量、文件存储逻辑数据容器或对象存储逻辑数据容器。全局标头可提供元数据以跟踪记录位置、文件标志位置、存储器中的虚拟磁带数据、数据确认信息和虚拟磁带标头位置。全局磁带标头中的此元数据可使得能够较快的寻找逻辑数据容器中的记录和文件标志,使得能够使用存储器中的最新已知数据位置来较快的恢复,使得能够通过使数据无效来快速地擦除虚拟磁带以及能够提供磁带标头位置信息。为了仿真物理磁带,还可以仿真线性访问。物理磁带通过在磁带头上移动磁性介质来访问。磁带头位置表示存储在磁性介质上的数据内的磁带标头的位置。在虚拟磁带中,虚拟磁带标头位置可表示为数据块组中的数据块的参考。数据块组可包括信息,所述信息使数据有效、提供误差校正、提供关于记录和文件标志的信息以及提供数据块中的客户端数据的存储。数据块组可进一步一起组合在宏块中,所述宏块可作为组而载入到存储器中。
在一些实施方案中,全局标头可还包括全局产生识别符(全局产生ID)、日志、全局记录旗标和全局文件标志旗标。全局标头提供允许数据在虚拟磁带中的迅速定位的信息。物理磁带使用线性访问,其可使用磁带的线性扫描以确定与数据内联标记的记录或文件标志。通过使用全局元数据,例如全局记录旗标,可以更快速地确定位置,这是因为可以扫描元数据而非扫描整个逻辑数据容器。举例来说,寻找操作可请求来自磁带开始(BOT)的第十记录。虽然物理磁带可倒带到磁带的开始且接着向前扫描直到找到第十记录标志为止,但虚拟磁带可扫描全局记录旗标中的较小的元数据量。从全局记录旗标的开始计数,可以指出设置为真的第十旗标。可以确定位置且可以更新日志中的虚拟磁带标头位置以匹配确定的位置。由于元数据的量与整个虚拟磁带大小相比较小且可以随机访问,所以逻辑数据容器的寻找时间可以小于等效物理磁带的寻找时间。类似流程可以用于使用全局文件标志旗标的文件标志。
虚拟磁带恢复可以通过使用全局标头中的日志来改进。日志可用以识别来自虚拟磁带的哪些元数据载入到存储器中用于操作。在一个实施方案中,所述日志识别载入到存储器中的宏块元数据。宏块对应于数据块组的连续组。写入到宏块的数据可持续与逻辑数据容器同步,但宏块元数据的改变可持续与全局标头异步,例如在从存储器释放宏块后。全局标头的此异步更新可促使全局标头变得与同步持续宏块数据不同步。不时地,托管与虚拟磁带相关联的逻辑数据容器的服务器可遭遇故障。可以检查日志,且可以目标日志中参考的宏块以用于恢复。关于存储器中的宏块的元数据可以与来自全局标头的元数据进行比较。可以通过更新全局元数据以匹配数据组元数据来解决差异。在一些实施方案中,可以通过经由对每一数据块组中的元数据进行误差校正而重建破坏数据来解决数据破坏问题。
在一些实施方案中,数据块组可以形成为标准大小。标准大小可允许计算偏移,使得可以在数学上计算数据块组的位置且将其请求为逻辑数据容器中的某一位置处的数据的读取。元数据和数据块组中的数据块还可以形成为用于相同偏移计算的标准大小。在实施方案中,数据可被硬件对准,使得数据的每一区段可以在硬件的数据边界上开始。作为说明性实例,磁盘驱动器可以使用4千字节的扇区。数据块组可以包括4千字节的元数据,其后接着16个各自4千字节的数据块。因此,每一数据块组的大小可以是68千字节。通过使用此大小,可以计算出第四数据块组处于距离第一数据块组的开始204千字节的位置处。因为元数据占据磁盘驱动器的扇区且与所述扇区对准,所以可以使用单个读取命令来访问元数据。出于类似原因,单个读取命令可以访问数据块中的每一者。
在一个实施方案中,记录可以具有可变的大小,而数据块可以具有标准大小。具有标准大小块的此可变的尺寸通过允许可变的大小数据同时还较佳使用利用标准大小存储容器的硬件来提供虚拟磁带较佳利用空间的能力,。记录还可以具有最大大小。小于块大小的记录可以使用一个块。大于块大小的记录可以使用多个块。大于最大记录大小的记录可以使用多个记录。举例来说,例如硬盘驱动器的存储装置可以使用标准大小扇区,例如四千字节。可以将数据块大小设置为四千字节以利用四千字节的硬件存储最小访问。一千字节的记录可以使用块的前1千字节,且所述块的剩余部分可以保持不使用,使得下一记录可以与4千字节块对准。然而,可以在描述数据块组中的记录的元数据中指出1千字节大小。五千字节的记录可以使用两个块,其中第一块被充分利用且第二块保持剩余的一千字节。可以在数据块组元数据中将五千字节块的第一块标记为记录开始位置。如果最大记录大小是四兆字节且存储具有四兆字节和一千字节的大小的数据,那么可以使用两个记录。第一记录可以包括1024数据块,且第二记录可以包括存储剩余的一千字节的一个块。
虚拟磁带结构因此可含有优于物理磁带的若干优点。在一个实施方案中,虚拟磁带结构可以存储在逻辑数据容器上以帮助仿真虚拟磁带的功能性,例如记录、磁带标头定位、文件标志、寻找、写入和其它磁带数据结构或操作。逻辑数据容器可以提供对数据的随机访问而非物理磁带的依序访问。在另一实施方案中,虚拟磁带结构经组织以帮助加速误差恢复。举例来说,虚拟磁带结构可以含有识别恢复中的潜在不一致数据的日志。在一些实施方案中,虚拟磁带结构含有加速寻找操作的元数据结构。举例来说,标头中的元数据可以识别数据中的记录和/或文件标志位置,以避免扫描用于标志的整个数据集。在实施方案中,虚拟磁带结构中的一些可存在于元数据存储器中而非虚拟磁带结构中。举例来说,虚拟磁带标头位置可以存储在元数据存储器中而非全局标头元数据中。在另一实施方案中,虚拟磁带结构还提供可变的大小记录。举例来说,小的记录可占据磁带的一个数据块,而较大记录可占据跨越数据块组的多个数据块。
现转向图1,示出根据至少一个实施方案的虚拟磁带库100的说明性实例。在所示出实施方案中,客户端存档系统102可与虚拟磁带库装置104通信,使得客户端存档系统102可使用存储服务105而非物理磁带介质。客户端存档系统102可以被配置来与物理磁带介质一起操作。虚拟磁带库装置104可以连接到客户端存档系统102以使用存储服务105来仿真物理磁带库。虚拟磁带库装置104可接收经转换为存储服务105中的操作的命令,例如产生元数据存储器108中的虚拟结构之间的关联或经由与存储系统110的通信而将数据存储在供应商存储系统112中的虚拟磁带结构中,例如应用程序编程接口(API)调用。虚拟磁带库装置104还可以请求来自管理系统106的管理任务,例如产生或破坏逻辑数据容器。
举例来说,客户端存档系统102可从逻辑数据容器寻找信息。客户端存档系统102可发送请求到虚拟磁带库装置104以将虚拟磁带载入虚拟磁带驱动器中。虚拟磁带库装置104可请求元数据存储器108返回与虚拟磁带ID相关联的逻辑数据容器识别符。虚拟磁带库装置104接着可产生逻辑数据容器与虚拟磁带驱动器之间的关联。指派到虚拟磁带驱动器的接口还可以被引导到逻辑数据容器。通过使用逻辑数据容器的虚拟磁带结构,虚拟磁带库装置104可将请求转换为逻辑数据容器上的操作。所述请求可包括从所识别的记录进行读取。在完成虚拟磁带的使用之后,客户端存档系统102可请求虚拟磁带从虚拟磁带驱动器移动到虚拟库位置以等待进一步动作。作为响应,虚拟磁带库装置104可促使去除虚拟磁带驱动器与虚拟磁带ID之间的以及虚拟磁带驱动器接口到逻辑数据容器的指派之间的关联。
现转向图2到4,示出虚拟磁带库系统200的基础结构的虚拟实施方案,且示出虚拟磁带库300的基础结构的物理实施方案。可以在图4中看见图3中的逻辑数据容器到图2中的虚拟位置的实例映射400,其表示为来自图3的数据存储器。在一个实施方案中,客户端存档系统预期与物理磁带存储系统对接。然而,代替物理系统,虚拟磁带库系统提供预期物理系统的虚拟版本,例如虚拟介质转换器228、虚拟磁带驱动器222、224和226、虚拟导入/导出槽204和206、具有虚拟磁带槽位置232、234和236的虚拟磁带槽231、以及如图2中可见的其它虚拟磁带系统。虚拟磁带库装置304提供到客户端存档系统302的接口,从而经由使用供应商存储系统312和314中的存储器以及如图3中可见的元数据存储器310来提供这些虚拟系统。供应商存储系统312和314经由帮助响应磁带命令的虚拟磁带结构来提供用于虚拟磁带的存储空间。元数据存储器提供虚拟磁带库中的虚拟磁带、逻辑数据容器与位置之间的关联。客户端存档系统可经由虚拟介质转换器228来请求位置的改变。这些关联可包括元数据存储器中用于“位置”、“逻辑数据容器ID”和“虚拟磁带ID”的条目。举例来说,客户端可经由虚拟介质转换器228请求虚拟磁带214从虚拟导入/导出槽204移动到虚拟磁带驱动器226。作为响应,代表虚拟磁带214的供应商主动存储系统312中的逻辑数据容器可以物理方式保持在同一空间中,而虚拟磁带214可以通过改变元数据存储器310中的虚拟磁带214的“位置”值而实际上从虚拟导入/导出槽204移动到虚拟磁带驱动器226。虚拟磁带库装置提供接口(例如虚拟磁带驱动器和虚拟介质转换器),以将来自客户端存档系统的请求转换到元数据存储器或供应商存储系统312和314。举例来说,虚拟磁带驱动器222接口可保持相同,但数据可从所述接口重新引导到当前与元数据存储器310中的虚拟磁带驱动器相关联的逻辑数据容器。经由使用这些虚拟系统,客户端可产生虚拟磁带,备份数据到虚拟磁带,从虚拟磁带恢复数据,存储虚拟磁带和销毁虚拟磁带。
在一个实施方案中,客户端可产生虚拟磁带。在物理磁带系统中,物理磁带并未按需产生,而是插入到物理磁带系统中。然而,在图2的虚拟磁带库系统200中,可以通过由管理系统202产生新的虚拟磁带来按需产生虚拟磁带。图2中的此主动管理系统202可以是图3的虚拟磁带库装置304或管理服务器306的部分。在实施方案中,客户端存档系统302可能不具有用于请求新的虚拟磁带的方法,且新的虚拟磁带可能需要例如经由管理控制台在图3中的客户端存档系统302外部被请求。所述请求可导致数据服务器308在供应商主动存储系统312中供应新的主动逻辑数据容器,用于用作虚拟磁带。客户端存档系统302可提供与新的逻辑数据容器相关联的虚拟磁带ID。虚拟磁带库装置304可促使虚拟磁带ID与新的主动存储逻辑数据容器在元数据存储器310中相关联。在供应新的主动存储逻辑数据容器之后,虚拟磁带库装置304可促使元数据存储器310还使图3中的新的主动存储逻辑数据容器与图2中的虚拟导入/导出槽204相关联。当虚拟磁带214与图2中的虚拟导入/导出槽204相关联时,客户端存档系统230接着可将虚拟磁带214移动到另一位置(例如槽位置234)或移动到虚拟磁带驱动器(例如虚拟磁带驱动器226)。
在另一实施方案中,客户端可将数据备份到虚拟磁带。客户端存档系统230可请求虚拟磁带208从一位置(例如虚拟磁带库231中的虚拟磁带槽位置234)移动到如图2的虚拟磁带库209中可见的虚拟磁带驱动器222。虚拟磁带214的移动可以通过图3中的元数据存储器310中虚拟磁带214的“位置”条目从虚拟磁带槽位置234到虚拟磁带驱动器226的改变来表示。虚拟磁带库装置304所提供的到客户端存档系统302的虚拟磁带驱动器接口可被定向到图3中的元数据存储器310中与图2中的虚拟磁带214相关联的主动存储逻辑数据容器。来自客户端存档系统302的数据的备份可以通过虚拟磁带库装置304接收磁带命令且将所述磁带命令转换为操作而实现,所述操作对指派到图2中的虚拟磁带驱动器222的图3中的供应商主动存储系统312中的主动存储逻辑数据容器上的虚拟磁带结构进行操作。这些操作可包括写入数据、进行记录和产生文件标志。在完成备份之后,客户端存档系统230可请求虚拟磁带从虚拟磁带驱动器移动到另一位置,例如返回到图2中的虚拟磁带槽位置234。
在一些实施方案中,客户端可从虚拟磁带恢复数据。客户端存档系统230可经由虚拟介质转换器228请求虚拟磁带208从例如虚拟导入/导出槽206的位置移动到如图2中可见的虚拟磁带驱动器222。虚拟磁带214的移动可以通过图3中的元数据存储器310中虚拟磁带214的“位置”条目从虚拟磁带槽位置234到虚拟磁带驱动器226的改变来表示。虚拟磁带库装置304所提供的到客户端存档系统302的虚拟磁带驱动器接口可被定向到图3中的元数据存储器310中与图2中的虚拟磁带214相关联的主动存储逻辑数据容器。客户端存档系统230接着可以对虚拟磁带214执行操作,例如定位、间隔、读取或其它磁带操作。这些操作接着可以用于确定从图3中的主动存储逻辑数据容器检索哪些数据。在完成恢复之后,图2中的客户端存档系统230可请求虚拟磁带214从虚拟磁带驱动器222移动到虚拟导入/导出槽206用于档案存储或移动到虚拟磁带槽位置234来等待进一步动作。
在一个实施方案中,客户端可存储虚拟磁带。图2中的客户端存档系统230可请求虚拟磁带208从例如虚拟磁带驱动器222的位置移动到如元数据存储器310中所表示的虚拟导入/导出槽206。客户端接着可经由供应商存储系统240请求将虚拟磁带208存档到虚拟导入/导出槽206中。虚拟磁带208接着可从虚拟磁带库209去除。在图3中,所述移动可促使供应商主动存储系统312对主动存储逻辑数据容器分级,以用于通过数据服务器308而传送到供应商档案存储系统314作为档案存储逻辑数据容器。一旦完成,档案存储逻辑数据容器可在元数据存储器310中与图2中的虚拟磁带架238中的位置相关联。在一些实施方案中,虚拟磁带架238和所述架238内的虚拟磁带216和220不可直接访问到客户端档案系统230。所述流程可反转,使得供应商档案存储系统314中的档案存储逻辑数据容器可通过对图2中的供应商存储系统240的请求而传送到图3中的供应商主动存储系统312中的主动存储逻辑数据容器。一旦完成传送,图3中的主动存储逻辑数据容器和图2中的虚拟磁带214即可与图2中的虚拟导入/导出槽204相关联。
在实施方案中,可能存在可用于支持虚拟磁带的逻辑数据容器的多个存储层级。在一些实施方案中,如上文所描述的那些,可存在两个层级,例如图3中的供应商主动存储系统312和供应商档案存储系统314因为供应商档案存储系统314中的存档存储逻辑数据容器可能不具有足够的响应时间和/或可能异步地行动,所以虚拟磁带216和220可以表示为定位在具有如图2中可见的长响应时间的虚拟磁带架238上。具有比档案存储逻辑数据容器小的响应时间但比主动存储逻辑数据容器长的响应时间的第三存储层级可以表示为虚拟库221中的位置。由于客户端存档系统230可容忍花费几分钟时间的将虚拟磁带212载入到图2中的虚拟磁带驱动器226中的请求,所以第三存储层级中的逻辑数据容器可传送到较高存储层级,以便到图3中的主动存储逻辑数据容器且与图2中的虚拟磁带驱动器226相关联。此第三层级可允许客户端具有迅速可用的用于存储的较小成本,但比容易可用的更便宜。
在另一实施方案中,客户端可销毁虚拟磁带。在图2中,虚拟磁带214可实际上移动到虚拟导入/导出槽204。在图3中,此虚拟移动可经由元数据存储器310中虚拟磁带ID与位置和主动存储逻辑数据容器的关联来实现。图2中的虚拟磁带214接着可通过从图3中的元数据存储器310去除位置信息来从虚拟磁带库209去除。与虚拟磁带214相关联的主动存储逻辑数据容器接着可被数据服务器308取消供应。取决于实施方案和客户端存档系统302,元数据存储器310可或可不删除虚拟磁带214的条目。
应注意,在一些实施方案中,例如图3中所示的一个实施方案中,可将虚拟磁带库装置304安装在顾客位置处。客户位置可与数据中心分隔公用网络(例如因特网),所述数据中心安放负责元数据存储器310和主动存储逻辑数据容器的管理服务器306和数据服务器308。
在图4中,示出存储在元数据存储器中的虚拟位置到数据中心中的物理逻辑数据容器的映射。图3中的元数据存储器310所提供的映射经示出为含于图4中的虚拟位置处。虚拟磁带208、210、212、214、216、218和220的虚拟映射对应于逻辑数据容器的映射404、406、408、410、412、414和416。虚拟磁带库415经由供应商存储系统440来与主动存储器402交互。档案存储器438中的逻辑数据容器也可以经由供应商存储系统440来交互。逻辑数据容器可经由供应商存储系统440而在档案存储器438与主动存储器402之间传送。主动存储器402中的逻辑数据容器可被看作是虚拟磁带库415和客户端存档系统428可用的。在一些实施方案中,档案存储器438中的容量直到移动到主动存储器402才可被视为不可用的。
现转向图5,示出根据至少一个实施方案的可用以操作虚拟磁带库系统的流程500的说明性实例。此流程500可通过例如图3中所示的那些适当的计算资源来共同地实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312和供应商存档存储系统314。虚拟磁带可通过将虚拟磁带与逻辑数据容器之间的关联存储502在元数据存储器中而产生。虚拟磁带接着可与虚拟磁带驱动器相关联504。使虚拟磁带与虚拟磁带驱动器相关联可以任何合适的方式来执行,例如通过元数据存储器,如上文结合图3所述。虚拟磁带驱动器关联可创建客户端存档系统与逻辑数据容器之间的I/O路径。虚拟磁带库装置可转换506客户端存档系统所请求的磁带操作,以访问与载入到虚拟磁带驱动器中的虚拟磁带相关联的逻辑数据容器。举例来说,向磁带开始(BOT)请求第四记录的寻找操作可经转换为用于逻辑数据容器的全局标头中的全局记录旗标元数据的逻辑数据容器请求,从而扫描设为真的第四记录旗标。设为真的第四记录旗标的位置接着可用以计算逻辑数据容器中的记录位置,且将全局标头中日志中的磁带标头位置设为记录位置。在完成客户端存档系统所请求的磁带操作之后,虚拟磁带可从虚拟磁带驱动器移动到虚拟磁带库中的另一位置。通过移动虚拟磁带,可从虚拟磁带驱动器I/O接口释放508逻辑数据容器。举例来说,移动虚拟磁带到不同位置的请求可促使虚拟磁带与虚拟磁带驱动器的关联可从元数据存储器被去除。由虚拟磁带驱动器I/O接口进行的I/O请求的路由也可以被去除,使得没有其他I/O请求路由到与虚拟磁带相关联的逻辑数据容器。
流程500(或本文描述的任何其它流程,或其变体和/或组合)中的一些或所有可在用可执行指令配置的一个或多个计算机系统的控制下执行,且可通过硬件或其组合实施为共同在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)。所述代码可例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式而存储在计算机可读存储介质上。计算机可读存储介质可以是非暂时性的。
图6示出根据至少一个实施方案的可用以备份到虚拟磁带库系统的流程的说明性实例。此流程600可以通过例如图3中所示的那些计算资源而共同地实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312和供应商存档存储系统314。虚拟磁带可以通过在元数据存储器中使虚拟磁带与逻辑数据容器相关联602而产生。接着可通过在元数据存储器中使虚拟磁带与虚拟导入/导出槽相关联604来将虚拟磁带实际上载入到虚拟导入/导出槽中。虚拟磁带库装置可经由介质转换器接口来接收606请求,以将虚拟磁带移动到虚拟磁带驱动器。响应于此请求,与虚拟磁带相关联的逻辑数据容器也可以与虚拟磁带驱动器的虚拟磁带驱动器I/O接口相关联608。客户端存档系统接着可执行610备份操作,所述备份操作可包括在尚未初始化的情况下初始化逻辑数据容器。在备份数据之后,介质转换器接口可接收612来自客户端存档系统的请求,以从虚拟磁带驱动器移动虚拟磁带。响应于此请求,可从虚拟磁带驱动器I/O接口释放614逻辑数据容器。如果逻辑数据容器将移动616到导入/导出槽,那么虚拟磁带可以移动到虚拟导入/导出槽,从而促使元数据存储器中逻辑数据容器、虚拟导入/导出槽和虚拟磁带的关联618。接着可通过将虚拟磁带移动到虚拟磁带架来从虚拟磁带库去除所述虚拟磁带。逻辑数据容器接着可被分级且传送620到档案存储器。然而,如果虚拟磁带将被移动616到存储槽而使得其保持容易可用,那么虚拟磁带可以与库位置在元数据存储器中相关联622且保持624在主动存储器中。在保持于主动存储器中之后,虚拟磁带库装置可接收将逻辑数据容器发送到档案存储器的请求。虚拟磁带接着可与导入/导出槽618相关联且移动620到档案存储器。在一些实施方案中,所述请求通过使虚拟磁带与导入/导出槽相关联来表明。
可以执行类似步骤以使虚拟磁带准备恢复到如图7中可见的客户端存档系统。客户端可接收从存档存储器将虚拟磁带恢复到主动存储器702的请求。客户端可决定703可实际上放置哪些槽到哪些虚拟磁带。可将虚拟磁带导入到虚拟磁带槽705中或导入到虚拟导入/导出槽704中。虚拟磁带可载入706到虚拟磁带驱动器中,且使支持虚拟磁带的逻辑数据容器与虚拟磁带驱动器I/O接口相关联708。客户端存档系统接着可对虚拟磁带执行恢复操作710,例如定位、间隔、读取或其它磁带操作。这些操作接着可以用于确定从逻辑数据容器检索哪些数据。在完成恢复之后,客户端存档系统可请求712将虚拟磁带从虚拟磁带驱动器移动718到虚拟导入/导出槽,以及从用于档案存储器720的虚拟磁带驱动器I/O接口释放714,或移动到虚拟库位置722以保持在主动存储器724中直到接收到用以存档逻辑数据容器的请求为止。在请求之后,虚拟磁带从虚拟磁带驱动器移动718到虚拟导入/导出槽且发送到档案存储器720。在一些实施方案中,所述请求通过使虚拟磁带与导入/导出槽相关联来表明。
现转向图8,示出根据至少一个实施方案的可用以操作虚拟磁带库系统的流程800的说明性实例。此流程800可以通过例如图3中所示的那些计算资源而实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312和供应商存档存储系统314。新的虚拟磁带可通过在存储服务中供应逻辑数据容器以及使逻辑数据容器与虚拟磁带在元数据存储器中相关联而产生802。虚拟磁带接着可与虚拟导入/导出槽在元数据存储器中相关联804。现在虚拟磁带可用于客户端存档系统,客户端存档系统可决定是否806存储、存档或使用虚拟磁带。在产生新的磁带之后,客户端存档系统可请求磁带用于备份。客户端存档系统可请求虚拟磁带经由介质转换器接口而移动810到虚拟磁带驱动器。此虚拟移动促使元数据存储器使与虚拟磁带相关联的逻辑数据容器与虚拟磁带驱动器I/O接口相关联812。虚拟磁带库装置接着可将来自客户端存档系统的磁带I/O命令转换814为逻辑数据容器访问命令。只要客户端存档系统发送816命令,虚拟磁带库装置即可继续转换用于逻辑数据容器的命令。在完成816客户端存档系统命令之后,虚拟磁带和对应逻辑数据容器可与虚拟磁带驱动器I/O接口断开关联818。客户端存档系统接着可返回决定是否806存档、使用或存储所述虚拟磁带。如果虚拟磁带将被存储806,那么虚拟磁带可与虚拟库位置808相关联以等待进一步动作被使用、存储或存档806。
如果选择806虚拟磁带被存档,那么虚拟磁带可移动到虚拟导入/导出槽820。虚拟磁带接着可从虚拟库去除到虚拟库架,且与虚拟磁带相关联的逻辑数据容器移动822到档案存储器。逻辑数据容器可停留在档案存储器中直到请求虚拟磁带和/或逻辑数据容器恢复824回到虚拟磁带库和相关联主动存储器中为止。一旦逻辑数据容器从档案存储器移动826,那么虚拟磁带可与虚拟磁带库中的虚拟导入/导出槽相关联828。接着可存储、使用或存档806虚拟磁带。
现转向图9到11,示出虚拟磁带结构的实例。虚拟磁带结构可含有优于物理磁带的若干优点。在一个实施方案中,虚拟磁带结构可以存储在逻辑数据容器上以帮助仿真虚拟磁带的功能性,例如记录、磁带标头定位、文件标志、寻找、写入和其它磁带数据结构或操作。逻辑数据容器可以提供对数据的随机访问而非物理磁带的依序访问。在另一实施方案中,虚拟磁带结构经组织以帮助加速误差恢复。举例来说,虚拟磁带结构可以含有识别恢复中的潜在不一致数据的日志。在一些实施方案中,虚拟磁带结构含有加速寻找操作的元数据结构。举例来说,标头中的元数据可以识别数据中的记录和/或文件标志位置,以避免扫描用于标志的整个数据集。在实施方案中,虚拟磁带结构中的一些可存在于元数据存储器中而非虚拟磁带结构中。举例来说,虚拟磁带标头位置可以存储在元数据存储器中而非全局标头元数据中。在另一实施方案中,虚拟磁带结构还提供可变的大小记录。举例来说,小的记录可占据磁带的一个数据块,而较大记录可占据跨越数据块组的多个数据块。
现转向图9,示出根据至少一个实施方案的虚拟磁带902的说明性实例。如图3中的客户端存档系统302可见的虚拟磁带902可包括包含虚拟磁带结构906的逻辑数据容器904。虚拟磁带结构906可用以仿真磁带功能性,且利用逻辑数据容器904的能力用于对数据进行随机访问。虚拟磁带结构906可包括全局标头908和一个或多个数据块组。在一些实施方案中,若干数据块组910组合为宏块912。在一些实施方案中,数据块组910和宏块912具有一致的大小。此大小分配允许从全局标头的末端来计算数据块组910和/或宏块912的位置,从而帮助对数据块组910和/或宏块912进行随机访问。还可在所论述的子结构中观测到数据对准,使得子结构还可通过与宏块开始、数据块开始或其它计算位置的偏移而一致找到。在一些实施方案中,数据对准取决于硬件规范。举例来说,其上存储逻辑数据容器的硬盘驱动器可使用4,096字节扇区(4k)。由于4k数据是可写入驱动器或从驱动器读取的最小量(且未截断),所以存储到逻辑数据容器的元数据和数据可在4k边界上对准。然而,应认识到可使用其它硬件启发边界,包括512字节、2048字节、4k、8k、16k、32k、64k、128k、256k。
在一个实施方案中,相对于服务器存储器来选择宏块大小。举例来说,可选择宏块大小为512MB,使得可将两个宏块912载入到存储器中用于总共1GB的信息。在实施方案中,可将两个宏块912载入到存储器中,以保持第一宏块912正在操作且第二宏块912紧跟着第一宏块912。通过载入这两个宏块912,如果写入或读取操作越过第一宏块边界,那么第二宏块912准备好使用。第一宏块912接着可持续到磁盘,且可载入跟着第二宏块912的第三宏块912。
在图10中所示的一个实施方案中,全局标头906可包括全局产生识别符(全局产生ID)914、日志916、全局记录元数据918和全局文件标志元数据920。产生ID可用以识别虚拟磁带结构906内有效的信息。举例来说,每一数据块组910可还包括数据块产生识别符(数据块产生ID)924。如果数据块组产生ID 924不匹配全局产生ID914,那么可推测含有数据块产生ID 924的数据块组910中的数据无效。在一个实施方案中,可通过用与数据块910内的数据块组产生ID 924不匹配的值替换全局产生ID 914来使虚拟磁带内的数据无效。
日志916可用以识别虚拟磁带902的状态信息。在图10中进一步分解日志916。此状态信息可包括例如磁带标头位置1001和载入的存储器中的数据的信息,例如宏块识别符(宏块ID)1002。磁带标头位置可帮助仿真磁带,因为磁带是线性访问装置。举例来说,磁带标头可确定下一寻找操作开始之处。客户端存档系统可请求所述磁带移动到下一记录。可调整磁带标头位置以指向来自磁带数据中的磁带标头的下一记录。将在图10中的记录旗标1006的引入之后论述寻找操作的更透彻解释。
载入到存储器中的数据的记录可在恢复期间有所帮助。在图10中所示的实施方案中,日志916包括宏块ID 1002。宏块ID 1002表示载入到存储器中用于操作的宏块912。当载入到存储器中时,将宏块ID 1002写入到日志中。当从存储器卸载时,关于宏块912的信息可持续存储,且可去除用于宏块912的日志条目。如果在一个或多个宏块912处于存储器中时逻辑数据容器出故障,那么日志可用以识别哪些宏块912需要检查和/或修复。宏块912的此识别允许恢复流程聚焦于可能需要注意的数据上而非全部扫描整个磁带数据,从而允许比在日志916不存在或未使用的情况下更快地恢复虚拟磁带。宏块的恢复相对于结合图11而描述的数据块组922得到更具体地处理。
全局记录元数据918可识别逻辑数据容器中的记录开始位置。记录可以是具有相关联大小的个别备份条目。在一个实施方案中,全局记录元数据918可以进一步分为多段,其中每一段与宏块相关。全局记录元数据918可包括宏块标头1004,每一宏块标头之后接着用于与所述标头相关联的宏块912的一组记录旗标1006。宏块标头1004可以还包括记录产生ID 1012和误差校正信息1014。如果记录产生ID1012不匹配全局产生ID 914,那么可确定相关联宏块912中的记录无效。误差校正信息1014可用以确定在记录旗标1006中在误差校正信息1014之后是否已出现误差。在一些实施方案中,误差校正信息还可用于校正记录旗标1006和/或自身,例如检查和和/或误差校正代码。记录旗标1006可表示相关联宏块912中的数据块。每一数据块可具有个别旗标以确定数据块是否含有记录的开始。在一个实施方案中,记录旗标是个别的位,其中一个位用于每一数据块。当数据块是记录的开始时可将所述位设为真,且当数据块不是记录的开始时可将所述位设为假。
记录旗标可用以确定记录的位置。举例来说,客户端存档系统可从虚拟磁带902的开始请求记录数目200。虚拟磁带库装置可扫描记录旗标1006,对记录进行计数直到识别设为真的第200记录旗标为止。所识别记录旗标接着可用以确定宏块912内的数据块位置。在一些实施方案中,数据块以及因此宏块可以是标准大小。虚拟磁带库装置可使用其优点,且至少部分基于全局标头长度、宏块数目和/或数据块数目来将偏移计算到逻辑数据容器中。在另一实例中,可从客户端存档系统接收空间请求。空间请求可请求距离虚拟磁带标头位置1001的当前位置的距离的若干记录。
可类似于全局记录元数据918来存储和利用全局文件标志元数据920。文件标志可识别一组相关联的记录。全局文件标志元数据920可包括宏块标头1008和文件标志旗标1010。全局文件标志数据的宏块标头1008还可包括产生ID和误差校正信息。全局文件标志元数据920可识别逻辑数据容器中的文件标志位置。如记录旗标等文件标志旗标可识别标记为文件的开始的数据块。在一些实施方案中,文件标志旗标1010可使用一个位来表示虚拟磁带中的每一数据块。文件标志旗标1010可根据宏块912来组合且用以定位逻辑数据容器中的文件标志。举例来说,客户端存档系统可从虚拟磁带902的开始请求文件数目10。通过使用文件标志旗标1010,虚拟磁带库装置可计数到标记为真的第十文件标志。第十文件标志旗标的位置可识别宏块912中的数据块组910中的相关联数据块的位置。通过使用所述位置,可在数据块驻留之处计算与全局标头908的偏移。还可将磁带标头位置1001设为第十文件标志。
在一个实施方案中,来自图9的数据块组922可包括数据块产生ID 924、数据块组元数据926和数据块928。数据块产生ID 924表示数据块组922中的数据的有效性。如果数据块产生ID 924匹配全局产生ID 914,那么可认为所述数据是有效的。在实施方案中,如果数据块产生ID 924不匹配全局产生ID 914,那么可认为所述数据被擦除和/或是空白的。数据块组元数据926可描述数据块组922中的数据块928。如图11中可见,数据块组元数据可包括误差校正925和数据块元数据1102,所述数据块元数据1102包括记录旗标、文件标志旗标和用于数据块组922中的每一数据块928的记录的大小。误差校正信息925可用以确定在数据块组922中是否已出现误差。在一些实施方案中,误差校正信息可用以修复数据块组922和/或数据块928中的数据不一致性。记录旗标可识别是记录的开始的数据块928。文件标志旗标可识别文件的开始。大小可表示记录的大小。数据块组922还可含有包含客户端数据的数据块928。
数据块组元数据926允许虚拟磁带支持可变的记录大小。在一些实施方案中,数据块大小匹配存储硬件所支持的最小数据大小,例如4k块大小。举例来说,可将记录写入到一个或多个数据块组922。所述记录中的第一数据块组可具有数据块组元数据926中的记录旗标集合。如果所述记录还是文件的开始,那么还可将文件标志设为真。接着可将记录的大小记录在数据块组元数据926中的大小字段中。如果大小小于块大小,那么所述记录可含在一个数据块928中。如果大小大于块大小,那么所述记录可含在一个以上数据块928中。第一数据块928可具有标记为真的记录旗标,而后续块可具有标记为假的记录旗标。大小字段可含有待写入的记录的大小,所述大小可在用于含有记录的一部分的每一数据块928的每一大小字段中重复。在一些实施方案中,记录有最大大小的限制。归因于此限制,可将存储到虚拟磁带902的一些数据存储到多个记录中。读取记录可使用大小值来确定返回多少数据。举例来说,记录可具有200字节的大小,其中数据块具有4k字节的大小。用于记录的读取可请求512字节。由于所述记录是200字节,所以返回记录或请求量的较小值。对较大块的读取可经聚合和组合。
使用存储器中的宏块的日志条目和数据块组922中的元数据可在从误差恢复期间有所帮助。举例来说,可将两个宏块912载入到存储器中。可在全局标头906中的日志916中指出宏块识别符,例如逻辑数据容器中的位置。当对这些宏块912操作时,托管所述逻辑数据容器904的存储服务器可遭遇误差。在从误差恢复后,可针对误差期间的存储器中的宏块来审核日志916。由于故障,全局记录元数据918和全局文件标志元数据920可与数据块组元数据926不同步。可扫描包括日志916中指出的宏块的数据块组922,来看是否有数据不一致性,包括与误差校正925信息的不一致性。可以执行修复,例如使数据一致。一旦完成扫描,数据块组922中的记录旗标和/或文件旗标即可用以产生与存储在数据块组922中的信息一致的全局记录元数据918和全局文件标志元数据920。在一些实施方案中,写入到存储器中的宏块的数据同步持续到逻辑数据容器,而当宏块912从存储器去除时,数据仅异步地持续到全局标头908。宏块从存储器的此去除可以在读取或写入移动超出宏块边界时发生,使得将以下宏块912请求到存储器中。类似地,用于无关宏块的请求还可触发元数据到全局标头的持续。当在宏块处于存储器中时出现误差时,此持续差异可以导致不一致性。
在一个实例中,虚拟磁带可以是硬件上的一兆字节,其中最小存储增量是4千字节。数据块可匹配硬件存储,其中每一数据块是4千字节的存储。数据块组可包括16个数据块和4千字节的数据块元数据,每数据块组总共68千字节。宏块可以是512兆字节。全局文件标志元数据可以是30兆字节,且全局记录元数据也可以是30兆字节。最大记录大小可以是4兆字节,其对应于1024数据块。
可扩展的虚拟磁带驱动器可以是可能的。在一个实施方案中,客户端设置最大逻辑数据容器大小。接着针对最大逻辑数据容器大小来设置全局标头的大小,但在按需基础上添加用于数据块组的空间。此方法允许虚拟磁带生长或收缩多达最大逻辑数据容器大小,而无需从开始分配整个逻辑数据容器。在另一实施方案中,由供应商来设置最大逻辑数据容器大小。将全局标头设定为最大逻辑数据容器大小且在按需基础上添加用于数据块组的空间。如果最大大小被超过或者预期被超过,那么可以产生新的逻辑数据容器,其增加全局标头大小且复制全局标头信息,以及可以将逻辑数据容器数据传送到新的逻辑数据容器。
图12示出根据至少一个实施方案的可用以产生虚拟磁带的流程的说明性实例。此流程1300可以通过例如图3和9中所示的那些计算资源而实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312,供应商存档存储系统314、虚拟磁带902、全局标头906、宏块912和数据块910。可以从存储服务请求逻辑数据容器。逻辑数据容器接着可与虚拟磁带在元数据存储器中相关联1302。如果全局标头中的签名不是有效的1303,那么接着可通过产生全局标头1304来初始化逻辑数据容器。接着可通过产生1306全局产生ID和初始化1308全局文件标志元数据和全局记录元数据来填入全局标头1304。初始化全局文件标志数据可包括将所有全局文件标志旗标设为假,且使相关联产生ID设为全局产生ID。初始化全局记录元数据可包括将全局记录旗标设为假,且使相关联产生ID设为全局产生ID。接着可使虚拟磁带可用于使用1310。然而,如果全局标头中的签名有效1303,那么可以检查全局标头中的日志以了解日志是否是空的1312。如果是空的,那么可以启用1310虚拟磁带用于使用。如果否,那么虚拟磁带库装置可开始1314a如图18中可见的恢复流程。
取决于实施方案,可以在多个时间处执行操作1302到1314。举例来说,当客户端请求新的虚拟磁带时,可以执行操作1302。当在与虚拟磁带驱动器相关联时请求格式化虚拟磁带时,可以执行操作1304到1310。在另一实施方案中,当请求新的虚拟磁带时可以执行操作1302、1304和1308。然而,当在载入到虚拟磁带驱动器中时请求格式化虚拟磁带时,产生全局产生ID且将其存储在虚拟磁带中。在另一实施方案中,在请求新的虚拟磁带后执行所有操作1302-1310,因为假定新的虚拟磁带被格式化。
现转向图13,示出根据至少一个实施方案的可用以操作虚拟磁带的流程的说明性实例。此流程1200可以通过例如图3和9中所示的那些计算资源而实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312,供应商存档存储系统314、虚拟磁带902、全局标头906、宏块912和数据块910。虚拟磁带库装置可接收1202在虚拟磁带上一位置处访问数据的请求。可以扫描1204全局标头元数据以至少部分基于虚拟磁带位置来确定所指定的位置。由于系统使用虚拟磁带,所以按相对项或绝对项来给定位置。举例来说,相对请求可以是用于记录的请求,也就是距离磁带标头位置1001的限定数目个记录。绝对请求可用于记录位置,从虚拟磁带的末端或虚拟磁带902的开始起的指定数目个记录。一旦确定位置,即可计算逻辑数据容器位置以确定与全局标头的偏移,其可用以得出所确定的数据块928。可将所确定的宏块元数据载入1206到存储器中。可写入1208日志条目,其识别出宏块元数据处于存储器中。可对宏块进行操作1210。所述数据可同步持续1212到逻辑数据容器,同时等待其它指令。如果数据操作超过宏块边界或在完成写入或宏块后,那么可更新日志以反映存储器中的新宏块且全局元数据的改变可持续。
图14示出根据至少一个实施方案的可用以写入到虚拟磁带的流程的说明性实例;此流程1400可以通过例如图3和9中所示的那些计算资源而实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312,供应商存档存储系统314、虚拟磁带902、全局标头906、宏块912和数据块910。在一些实施方案中,虚拟磁带驱动器可具有最大记录长度,例如四兆字节或十六兆字节。可将小于最大记录大小的接收数据写入为一个记录。可跨越若干记录来写入大于最大记录大小的接收数据。在实施方案中,记录也可以宏块边界。当跨越宏块边界写入时,与第一宏块相关的全局元数据可持续到全局标头,例如全局文件标志旗标和全局记录旗标。可从存储器去除第一宏块元数据,且接着可将连续的宏块元数据载入到存储器中。举例来说,可将两个宏块的元数据载入到存储器中并在全局标头中的日志中进行参考。第一宏块可包括写入将开始的位置。第二宏块可以是与第一宏块连续的,使得写入将在第二宏块中结束。当写入从第一宏块转变到第二宏块时,第一宏块可用以持续关于第一宏块的全局标头信息,例如全局文件标志旗标和全局记录旗标。当写入继续到第二宏块中时,第一宏块元数据可从存储器卸载且从日志去除。与第二宏块连续的第三宏块接着可使其元数据载入到存储器中并在日志中进行参考。
当虚拟磁带载入到虚拟磁带驱动器中时,虚拟磁带库装置可将写入数据到虚拟磁带上的请求转换为在逻辑数据容器上读取数据和写入数据的请求。逻辑数据容器中的元数据可帮助写入请求经由随机访问而比物理磁带上的线性访问更快速地寻找数据(例如,磁带的末尾)。在所示出实施方案中,在接收写入数据的请求之后,可使用与虚拟磁带相关联的逻辑数据容器的全局标头中的文件标志元数据和/或记录元数据来确定1402宏块位置。举例来说,写入请求可试图将数据放置在磁带数据的末尾处。在一些虚拟磁带驱动器中,磁带数据的末尾可由两个连续的文件标志表示。虚拟磁带库装置可扫描全局文件标志元数据以寻找两个连续的全局文件标志旗标,且接着将虚拟磁带标头位置中的位置存储在日志中。可将与所确定的写入位置相关联的元数据块载入1404到存储器中。可审核与写入位置相关联的数据块组以确保数据块组产生ID匹配1406全局产生ID。如果不匹配,那么可将全局产生ID复制到数据块组产生ID以使所写入数据有效。在将宏块元数据载入到存储器中之后,还可以在全局标头中的日志中参考1408载入到存储器中的宏块元数据。可指出开始数据块与作为记录的开端的数据块组元数据相关联1410。可在被写入影响的数据块的每一元数据条目中指出记录大小。记录大小可以是剩余数据或最大允许记录大小中的较小值。接着可将数据写入1412多达记录大小或宏块的末尾。如果存在剩余数据1414且写入未1416超出宏块的末尾,那么后续记录可经产生1410且进一步处理。如果存在1414剩余数据且写入超出1416宏块边界,那么宏块中的数据可同步地持续到逻辑数据容器,且全局标头内的元数据可异步地更新1418,例如全局文件标志旗标、全局记录旗标和磁带标头位置。所述日志还可更新1422以下内容:来自存储器的宏块的引退,以及连续宏块到存储器中的载入1404和进一步处理。如果不存在1414剩余数据,那么可在数据组元数据中更新1424文件标志以标记写入的末尾。在一些实施方案中,两个文件标志可用以指出数据的末尾。数据可与写入发生同步地持续1426到逻辑数据容器,使得存储器的任何改变将不会丢失,其后,下一命令可等待1428。
现转向图15,示出根据至少一个实施方案的可用以使用虚拟磁带来寻找记录的流程的说明性实例。此流程1500可以通过例如图3和9中所示的那些计算资源而实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312,供应商存档存储系统314、虚拟磁带902、全局标头906、宏块912和数据块910。当虚拟磁带载入到虚拟磁带驱动器中时,虚拟磁带库装置可将寻找虚拟磁带上的数据的请求转换为在逻辑数据容器上数据的请求。逻辑数据容器中的元数据可帮助寻找请求经由随机访问而比物理磁带上的线性访问更快速地寻找数据。在所示出实施方案中,接收1502用以在磁带标头的相对位置处访问数据的请求。接着从全局记录元数据1504读取磁带标头位置。基于磁带标头位置来确定1506全局记录旗标中的位置。接着可扫描和计数1508全局记录旗标,直到确定相对位置为止,例如朝向磁带末尾的5个记录。所述扫描可取决于给定的寻找命令而向前(朝向磁带末尾)或倒退(朝向磁带开始)。通过使用全局记录旗标中的所确定的相对位置,还可确定逻辑数据容器中的数据块和宏块位置。接着可将此位置存储1510为全局元数据中的磁带标头位置。
现转向图16,示出根据至少一个实施方案的可用以使用虚拟磁带来寻找文件标志的流程的说明性实例。此流程1600可以通过例如图3和9中所示的那些计算资源而实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312,供应商存档存储系统314、虚拟磁带902、全局标头906、宏块912和数据块910。此流程可类似于图15中关于记录而描述的流程。在所示出实施方案中,接收1602用以在磁带标头的相对位置处寻找文件标志的请求。接着从全局文件标志元数据1604读取磁带标头位置。基于磁带标头位置来确定1606全局文件标志旗标中的位置。接着可扫描和计数1608全局文件标志旗标,直到确定相对位置为止,例如朝向磁带末尾的5个文件标志。所述扫描可取决于给定的寻找命令而向前(朝向磁带末尾)或倒退(朝向磁带开始)。通过使用全局文件标志旗标中的所确定的相对位置,还可确定逻辑数据容器中的数据块和宏块位置。接着可将此位置存储1610为全局元数据中的磁带标头位置。类似流程可用于绝对定位,例如可以使用从磁带开始或磁带末尾。磁带标头的开始位置可代替是磁带开始或磁带末尾。
现转向图17,示出根据至少一个实施方案的可用以读取虚拟磁带的流程的说明性实例。接着可基于磁带标头位置将宏块元数据载入到存储器1702中。接着可用全局产生ID来验证1704数据块组产生ID。如果不匹配1706,那么可以认为数据块组无效1720,且在一些实施方案中不读取。下一命令接着可等待1722。如果产生ID匹配1706,那么可以更新1708全局标头中的日志,宏块的元数据处于存储器中。可以审核记录大小以确定是否读取多达记录大小或宏块的末尾。记录大小可以是剩余数据或最大允许记录大小中的较小值。接着可将数据读取1710多达记录大小或宏块的末尾。如果存在剩余数据1712且读取未1714超出宏块的末尾,那么后续记录可经读取1710。如果存在1712剩余数据且写入超出1714宏块边界,那么宏块中的数据可同步地持续到逻辑数据容器,且全局标头内的元数据可异步地更新1716,例如全局文件标志旗标、全局记录旗标和磁带标头位置。所述日志还可更新1718以下内容:来自存储器的宏块的引退,以及连续宏块及其元数据到存储器中的载入1702和进一步处理。如果不存在1712剩余数据,那么可以等待1428下一命令。
图18示出根据至少一个实施方案的可用以从虚拟磁带中的事件来进行恢复的流程的说明性实例。此流程1800可以通过例如图3和9中所示的那些计算资源而实现,所述计算资源包括客户端存档系统302、虚拟磁带库装置304、管理服务器306、数据服务器308、元数据存储器310、供应商主动存储系统312,供应商存档存储系统314、虚拟磁带902、全局标头906、宏块912和数据块910。托管与虚拟磁带相关联的逻辑数据容器的服务器可能发生故障事件,例如电力故障。在从电力故障恢复后,服务器可通知管理服务器,已发生事件且恢复流程开始。在一些实施方案中,存储器中宏块的改变与逻辑数据容器中对应宏块同步地持续。然而,全局元数据可以异步地更新,例如当宏块从存储器卸载时。因此,存储器中的宏块,例如在全局标头中的日志中指出的那些宏块,可归因于更新逻辑数据容器的每一部分的同步和异步性质而变得与全局标头元数据不一致。恢复流程因此将需要使日志中指出的宏块与故障的事件中的全局元数据重新同步。
在确定所发生1802的事件可具有对逻辑数据容器的效应之后,可在逻辑数据容器的全局标头中审核1804日志。如果日志中没有条目,那么逻辑数据容器可以返回服务,因为不需要修复。然而,可将日志中指出的任何宏块载入到存储器1806中。以第一宏块的第一数据块组开始1807,比较全局标头的全局产生ID与数据块组产生ID。如果产生ID匹配,那么可以进一步检查数据块是否有误差。如果产生ID不匹配,那么可以认为数据块组无效。在一些实施方案中,可以使用误差校正,且如果误差校正促使产生ID匹配,那么可以继续进行进一步恢复操作。可以对数据块组执行1810误差校正和/或检测以确保数据完整性。可以比较数据块组元数据与全局标头元数据,使得与全局标头数据的不一致性可以固定在全局标头数据中。举例来说,数据块组记录旗标和文件标志旗标可以持续1812到全局记录旗标,且指出事件中失配的全局文件标志旗标。如果存在1816需扫描的更多数据块组,那么可以经由操作1808到1812来处理每一其它宏块。一旦已完成恢复,那么可以清除1818日志。在一些实施方案中,可再次启用1820逻辑数据容器用于使用。
图19图示根据各种实施方案的用于实施若干方面的实例环境1900的若干方面。如将了解,尽管出于解释目的使用基于网络的环境,但是可视情况使用不同环境来实现各个实施方案。系统包括电子客户端设备1902,所述电子客户端设备可包括可操作来在适合网络1904上发送和接收请求、消息或信息并且将信息传送回装置用户的任何适当的装置。此类客户端设备的实例包括个人计算机、蜂窝电话、手持式消息传递装置、膝上计算机、机顶盒、个人数据助理、电子书阅读器等等。网络可包括任何适合网络,其包括内部网、因特网、蜂窝网、局域网或任何其它此类网络或上述网络的组合。此类系统所用的组件可以至少部分取决于所选网络和/或环境的类型。用于经由此类网络通信的协议和组件是众所周知的,因而本文不再详细论述。网路上的通信可以经由有线或无线连接及其组合来实现。在此实例中,网络包括因特网,因为环境包括用于接收请求且响应于所述请求而服务内容的Web服务器1906,然而对于其它网络来说,可使用用于服务类似目的替代装置,如本领域技术人员所显而易见的。
说明性环境包括至少一个应用程序服务器1908和数据存储器1910。应当理解,可以存在可以链接起来或以其它方式来配置的若干应用程序服务器、层或其它元件、流程或组件,这些应用程序服务器、层或其它元件、流程或组件可交互来执行如从适当的数据存储器获得数据的任务。如本文所使用的,术语“数据存储器”指代能够存储、访问和检索数据的任何装置或装置组合,所述装置可包括在任何标准、分布或集群环境中的数据服务器、数据库、数据存储装置和数据存储介质的任何组合和任何数目。应用程序服务器可包括任何适当的硬件和软件,所述硬件和软件视执行客户端装置的一个或多个应用程序的方面的需要与数据存储器集成且处置应用程序的大多数数据访问和业务逻辑。应用程序服务器提供与数据存储器协作的访问控制服务,并且能够产生将要传送到用户的如文本、图形、音频和/或视频等内容,在此实例中所述内容可以HTML(“超文本标记语言”)、XML(“可扩展标记语言”)或另一适当的结构化语言的形式通过Web服务器向用户提供服务。所有请求和响应的处置以及客户端装置1902与应用程序服务器1908之间的内容递送可由网络服务器来处置。应当理解,网络服务器和应用程序服务器不是必要的,且仅仅是示例性组件,因为本文所论述的结构化代码可在如本文其它地方所论述的任何适当的装置或主机机器上执行。
数据存储器1910可包括若干独立的数据表、数据库或其它数据存储机构和介质,用来存储与特定方面相关的数据。举例来说,所图示的数据存储器包括用于存储产生数据1912和用户信息1916的机构,所述机构可用于服务产生端的内容。还示出数据存储器包括用于存储日志数据1914的机构,所述机构可用于报告、分析或其它此类目的。应当理解,可能存在可能需要存储在数据存储器中的许多其它方面,如页面图像信息和访问权信息,所述方面可视情况存储在上文列出的机构中的任何机构中或存储在数据存储器1910中的额外机构中。数据存储器1910可通过与其相关联的逻辑来操作,以便从应用程序服务器1908接收指令,并且响应于所述指令而获得数据、更新数据或以其它方式处理数据。在一个实例中,用户可以针对某种类型的项目提交搜索请求。在此情况下,数据存储器可能访问用户信息来验证用户的身份,并且可访问目录详细信息以获得有关所述类型的项目的信息。接着可将信息如以网页上的结果列表的形式返回给用户,用户能够经由用户装置1902上的浏览器来查看所述列表。可在浏览器的专用页面或窗口中查看感兴趣的特定项目的信息。
每个服务器通常会包括提供针对该服务器的一般管理和操作的可执行程序指令的操作系统,且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),当这些指令被所述服务器的处理器执行时,所述指令允许所述服务器执行其期望的功能。针对操作系统和服务器一般功能性的合适实现方式是已知的或可商购获得,并且本领域的普通技术人员,特别是根据本公开,较易实施这些方式。
在一个实施方案中,环境是分布式计算环境,所述环境利用经由通信链路、使用一个或多个计算机网络或直接连接来互连的若干计算机系统和组件。然而,本领域普通技术人员应理解,此类系统可在具有比图19所图示的组件更少或更多个组件的系统中同样顺利地操作。因此,图19中的系统1900的描绘本质上应视为说明性的,并且不限制本公开的范围。
可在广泛范围的操作环境中进一步实施各个实施方案,所述环境在一些状况下可包括一个或多个用户计算机、计算装置或可用于操作多个应用程序中的任何一个应用程序的处理装置。用户或客户端装置可包括多个通用个人计算机中的任何一个,如运行标准操作系统的台式计算机或膝上计算机,以及运行移动软件并且能够支持多个网络连接协议和消息传递协议的蜂窝式装置、无线装置和手持装置。此类系统还可包括多个工作站,所述工作站运行各种可商购的操作系统和用于特定目的(如开发和数据库管理)的其它已知应用程序中的任何应用程序。这些装置还可包括其它电子装置,如虚拟终端、薄型客户端、游戏系统和能够经由网络通信的其它装置。
可以鉴于以下条款来较佳理解上述内容:
1.一种计算机实施的存储方法,其包括:
在用可执行指令配置的一个或多个计算机系统的控制下,
接收产生虚拟磁带的请求;
请求在存储服务中产生逻辑数据容器;
使所述逻辑数据容器与虚拟磁带相关联;
接收将来自虚拟存储位置的所述虚拟磁带载入到虚拟磁带驱动器的请求;
将与所述虚拟磁带相关联的所述逻辑数据容器映射到与所述虚拟磁带驱动器相关联的输入/输出接口;
在所述输入/输出接口上向与映射到所述虚拟磁带驱动器的所述虚拟磁带相关联的所述逻辑数据容器转换请求;
响应于接收存储所述虚拟磁带的请求:
去除所述逻辑数据容器到所述输入/输出接口的所述映射;
响应于接收将所述虚拟磁带存储在档案存储服务中的请求:
将所述虚拟磁带映射到导入/导出位置;
从虚拟磁带库去除所述虚拟磁带;以及
从主动式存储器传输与所述虚拟磁带相关联的存储逻辑数据容器到所述档案存储服务中的档案逻辑数据容器。
2.如条款1所述的计算机实施的方法,其还包括:
使所述逻辑数据容器与虚拟磁带在元数据存储器中相关联;以及
将所述虚拟磁带到虚拟存储位置的映射存储在所述元数据存储器中。
3.如条款1或2所述的计算机实施的方法,其中在所述输入/输出接口上向所述逻辑数据容器转换请求还包括存储从客户端接口接收的数据。
4.如条款2或3所述的计算机实施的方法,其还包括:
将与所述虚拟磁带相关联的所述逻辑数据容器映射到与第二虚拟磁带驱动器相关联的第二输入/输出接口;以及
在所述第二输入/输出接口上将来自所述逻辑数据容器的所存储数据发送到所述客户端接口。
5.根据前述条款中的任一条款所述的计算机实施的方法,其中接收将所述虚拟磁带存储在所述档案存储服务中的请求还包括:
确定用于制备所述逻辑数据容器用于在所述输入/输出接口上使用的可接受的响应时间;
至少基于所述确定来从存储层级集合选择存储层级,至少部分基于用于访问在所述存储层级中的逻辑数据容器的响应时间而限定的存储层级;
从与所述输入/输出接口一起使用的主动层级传送所述逻辑数据容器到所述选定的存储层级;以及
使所述虚拟磁带与虚拟库位置相关联。
6.根据前述条款中的任一条款所述的计算机实施的方法,其中映射所述虚拟磁带到导入/导出位置还包括将所述虚拟磁带到导入/导出槽的映射存储到元数据存储器中。
7.一种用于存储数据的计算机实施的方法,其包括:
在用可执行指令配置的一个或多个计算机系统的控制下,
在虚拟磁带与虚拟磁带驱动器相关联的时间期间,将磁带操作从输入/输出接口转换到与所述虚拟磁带驱动器相关联的逻辑数据容器;
响应于从所述虚拟磁带驱动器去除所述虚拟磁带的请求而使所述虚拟磁带驱动器从所述虚拟磁带和所述逻辑数据容器解除关联;
从存储层级集合选择存储层级,每一存储层级包括访问属性的速度和成本属性;以及
从包括所述输入/输出接口的当前层级传送所述逻辑数据容器到所述选定存储层级上的逻辑数据容器。
8.如条款7或8所述的计算机实施的方法,其中从所述输入/输出接口转换磁带操作到所述逻辑数据容器还包括:
从客户端接口接收所述磁带操作;
将所述磁带操作转换为一个或多个存储服务请求;
从客户端网络经由公用网络到存储服务接口来将所述一个或多个存储服务请求传输到所述存储服务。
9.如条款7或8所述的计算机实施的方法,其中从所述客户端接口接收磁带操作还包括将虚拟磁带库装置定位在所述客户端网络上;以及
配置所述虚拟磁带库装置以接收磁带操作和发送存储服务请求。
10.如条款7到9中任一条款所述的计算机实施的方法,还包括在元数据存储器中使来自存储服务的所述逻辑数据容器,所述虚拟磁带和所述虚拟磁带驱动器相关联。
11.如条款9或10中所述的计算机实施的方法,其中在所述元数据存储器中使来自所述存储服务的所述逻辑数据容器,所述虚拟磁带和所述虚拟磁带驱动器相关联还包括:
请求在所述存储服务中产生逻辑数据容器;
使所述逻辑数据容器与所述虚拟磁带在所述元数据存储器中相关联;以及
将所述虚拟磁带到虚拟导入/导出槽的映射存储在所述元数据存储器中。
12.如条款7到11中任一条款所述的计算机实施的方法,其还包括:
当请求所述虚拟磁带驱动器提供数据到第二虚拟磁带驱动器时,执行与所述虚拟磁带和所述虚拟磁带驱动器相关联的所述逻辑数据容器与第二虚拟磁带和第二虚拟磁带驱动器相关联的第二逻辑数据容器之间的逻辑数据容器复制操作。
13.如条款7到12中任一条款所述的计算机实施的方法,其中从存储层级集合选择所述存储层级还包括:
接收将所述虚拟磁带移动到存储槽的请求;以及
至少部分基于所述存储槽来从所述存储层级集合选择所述存储层级。
14.如条款7到13中任一条款所述的计算机实施的方法,其中从所述存储层级集合选择所述存储层级还包括:
接收将所述虚拟磁带移动到导入/导出槽的请求;以及
至少部分基于所述导入/导出槽来从所述存储层级集合选择所述存储层级。
15.一种用于管理虚拟磁带库的计算机系统,其包括:
一个或多个计算资源,其具有包括可执行指令的一个或多个处理器和存储器,所述可执行指令在被所述一个或多个处理器执行时促使所述一个或多个处理器至少实施:
虚拟磁带库系统,其提供到客户端存档系统的接口,所述虚拟磁带库系统通过提供以下内容来提供磁带库系统的仿真:
虚拟磁带集合,所述虚拟磁带集合中的每一虚拟磁带包括来自存储服务的存储逻辑数据容器,所述存储服务根据请求提供存储逻辑数据容器;
虚拟磁带驱动器集合,来自所述虚拟磁带驱动器集合的每一虚拟磁带驱动器提供到所述客户端存档系统的接口以与所述虚拟磁带驱动器相关联的虚拟磁带交互;
介质转换器接口,其被配置来使虚拟磁带与虚拟磁带驱动器相关联;以及
元数据存储器,其将虚拟磁带链接到存储逻辑数据容器。
16.如条款15所述的计算机系统,其中所述虚拟磁带库还包括一个或多个虚拟导入/导出槽,所述虚拟导入/导出槽被配置来将来自所述存储服务的所述存储逻辑数据容器传送到档案存储服务中的档案逻辑数据容器。
17.如条款15或16所述的计算机系统,其中所述虚拟磁带库还包括一个或多个虚拟存储槽,所述虚拟存储槽被配置来将来自所述存储服务的所述存储逻辑数据容器传送到档案存储服务中的档案逻辑数据容器。
18.如条款15到17中的任一条款所述的计算机系统,其中所述虚拟磁带库系统还包括高速缓存来自所述虚拟磁带驱动器集合的交互的本地存储逻辑数据容器。
19.如条款15到18中任一条款所述的计算机系统,其还包括第二虚拟磁带库系统,其被配置来通过请求与第一虚拟磁带相关联的逻辑数据容器复制到与第二虚拟磁带相关联的逻辑数据容器来执行第二虚拟磁带库系统所管理的所述第一虚拟磁带到所述虚拟磁带库系统所管理的所述第二虚拟磁带的复制。
20.如条款15到19中的任一条款所述的计算机系统,其还包括存储服务接口,所述存储服务接口被配置来产生新的虚拟磁带以及将所述新的虚拟磁带注入到所述虚拟磁带库系统中。
21.如条款15到20中任一条款所述的计算机系统,其中所述存储服务是对象存储服务。
22.一个或多个计算机可读存储介质,在其上共同地存储可执行指令,所述可执行指令在被计算机系统的一个或多个处理器执行时促使所述计算机系统至少进行以下操作:
提供到客户端存档系统的虚拟磁带库接口;
将虚拟磁带库中的虚拟磁带集合映射到存储服务所提供的逻辑数据容器集合;
将逻辑数据容器映射到与虚拟磁带驱动器相关联的输入/输出接口;以及
将来自所述客户端存档系统的磁带操作转换到所述逻辑数据容器。
23.如条款22所述的计算机可读存储介质,其中所述指令还包括在被执行时促使所述计算机系统至少进行以下操作的指令:
将来自所述一个或多个逻辑数据容器的所述逻辑数据容器重新映射到虚拟库位置;以及
将与来自所述虚拟磁带集合的虚拟磁带相关联的第二逻辑数据容器映射到所述输入/输出接口。
24.如条款22或23所述的计算机可读存储介质,其中所述指令还包括在被执行时促使所述计算机系统至少进行以下操作的指令:
接收经由所述虚拟磁带库接口将虚拟磁带移动到导入/导出槽的请求;
将所述逻辑数据容器重新映射到虚拟库位置;以及
请求所述存储服务将所述逻辑数据容器传送到档案存储服务。
25.如条款22到24中任一条款所述的计算机可读存储介质,其中所述指令还包括在被执行时促使所述计算机系统至少进行以下操作的指令:
请求档案存储服务将档案逻辑数据容器传送到所述存储服务中的第二逻辑数据容器;以及
将所述第二逻辑数据容器映射到所述虚拟磁带库中的导入/导出槽。
26.如条款22到25中任一条款所述的计算机可读存储介质,其中将所述虚拟磁带库中的所述虚拟磁带集合映射到所述存储服务所提供的所述逻辑数据容器集合还包括将所述映射结果存储在元数据存储器中。
可以鉴于以下条款来较佳理解上述内容:
1.一种用于使用虚拟磁带的计算机实施的方法,其包括:
在用可执行指令配置的一个或多个计算机系统的控制下,
使用来自存储服务的逻辑数据容器来构建虚拟磁带包括:
请求在所述存储服务中产生新的逻辑数据容器;
将一个或多个数据块组存储到所述逻辑数据容器,所述数据块组包括:
包括数据存储的一个或多个数据块;以及
数据块标头,其包括:
用于所述数据块组中的每一数据块的表示一个或多个数据块集合的开端的记录旗标;
用于所述数据块组中的每一数据块的表示记录组的开端的文件标志旗标;以及
用于所述数据块组中的每一数据块的指示所述记录中的所述数据块集合中的数据块数目的记录大小;
将磁带标头存储到所述逻辑数据容器,所述磁带标头包括:
全局记录元数据,其包括用于所述虚拟磁带中的每一数据块的记录旗标;以及
全局文件标志元数据,其包括用于所述虚拟磁带中的每一数据块的文件标志旗标。
2.如条款1所述的计算机实施的方法,其中存储所述磁带标头还包括存储所述磁带标头中的日志,其参考全局元数据的表示一个或多个数据块组的部分。
3.如条款2所述的计算机实施的方法,其还包括:
接收将数据定位在所述虚拟磁带上的请求;
至少部分基于所述请求和全局记录元数据或全局文件标志元数据来确定含有数据块的数据块组的数据位置包括所述数据;
载入全局元数据的部分到存储器中,以及表示存储器中的一个或多个邻近数据块组的全局元数据的第二部分到存储器中;
在所述日志中参考全局元数据的所述部分和全局元数据的第二部分;以及
至少部分基于与所述数据位置相关联的所述数据块标头中的所述记录大小来确定所述数据的记录大小。
4.如条款2或3所述的计算机实施的方法,其还包括:
接收将数据写入到所述虚拟磁带的请求;
至少部分基于所述请求和所述全局记录元数据或所述全局文件标志元数据来确定将写入到的虚拟磁带中的数据位置;
基于所述数据位置载入全局元数据的部分到存储器中,以及表示存储器中的一个或多个邻近数据块组的全局元数据的第二部分到存储器中;
在所述日志中识别所述一个或多个邻近数据块组;
将所述数据写入到所述数据块组;
更新与含有所述数据位置的所述数据块相关联的相关联记录旗标和/或相关联文件标志旗标;以及
至少部分基于所述写入来更新所述全局记录元数据或所述全局文件标志元数据。
5.如条款4或5所述的计算机实施的方法,其还包括:
至少同步地持续所述数据到所述数据块组;以及
异步地持续所述全局记录元数据或全局文件标志元数据。
6.如条款4或5所述的计算机实施的方法,其中写入所述数据到所述数据位置还包括更新用于数据块组元数据的至少一个记录旗标和大小值。
7.一种用于管理虚拟磁带的计算机实施的方法,其包括:
在用可执行指令配置的一个或多个计算机系统的控制下,
接收初始化虚拟磁带的请求;以及
初始化来自存储服务的逻辑数据容器用于用作所述虚拟磁带的存储,包括存储包括识别所述逻辑数据容器中的记录位置的全局记录元数据和识别所述逻辑数据容器中的文件标志位置的全局文件标志元数据的磁带标头。
8.如条款7或8所述的计算机实施的方法,其还包括初始化所述磁带标头中的全局产生识别符。
9.如条款7或8所述的计算机实施的方法,其还包括:
接收将数据写入到所述虚拟磁带的请求;以及
构建一个或多个数据块组以存储所述数据,存储所述数据的每一数据块组包括匹配所述全局产生识别符的数据块产生识别符;用于所述数据块组中的每一数据块的一个或多个数据块和数据块元数据,包括用于识别记录的开始数据块的记录旗标、用于识别记录组的开始的文件标志旗标以及识别记录的长度的记录大小条目。
10.如条款9所述的计算机实施的方法,其还包括:
接收擦除磁带逻辑数据容器的请求;以及
修改所述全局产生识别符,使得其不再匹配所述逻辑数据容器中的一个或多个数据块产生识别符。
11.如条款9或10所述的计算机实施的方法,其还包括至少部分基于最后访问的数据块来更新当前磁带标头位置。
12.如条款9到11中任一条款所述的计算机实施的方法,其还包括:
将表示所述一个或多个数据块组的全局宏块元数据条目载入到存储器中,所述宏块包括所述逻辑数据容器中的邻近数据块组集合;
写入到所述磁带标头中的日志以识别所述全局宏块元数据;
将所述数据中的至少一些写入到所述宏块中的一个或多个数据块;
至少部分基于所述写入来更新所述一个或多个数据块组中的至少部分中的数据块元数据;
至少部分基于所述写入来更新全局文件标志元数据和全局记录元数据;以及
同步地持续所述数据块组的改变。
13.如条款12所述的计算机实施的方法,其还包括:
将第二宏块元数据条目载入到存储器中;
写入到所述磁带标头中的日志以识别存储器中的所述第二宏块元数据条目;以及
响应于所述第二宏块元数据条目的载入来持续所述全局文件标志元数据和记录元数据的改变。
14.一种用于提供虚拟磁带的计算机系统,其包括:
一个或多个计算资源,其具有包括可执行指令的一个或多个处理器和存储器,所述可执行指令在被所述一个或多个处理器执行时促使所述一个或多个处理器至少实施虚拟磁带,所述虚拟磁带包括:
存储服务的存储逻辑数据容器,其根据请求供应存储逻辑数据容器,所述存储逻辑数据容器包括:
磁带标头,其包括:
日志,其识别载入到存储器中的所述存储逻辑数据容器内的当前数据块;
全局记录旗标集合,其识别记录的开始位置;
全局文件标志旗标集合,其识别一组记录的开始位置;
一个或多个数据块组,其包括:
包括数据的数据块集合;以及
数据标头,其包括:
数据组元数据条目集合,其对应于数据块组中的数据块集合,所述数据组元数据条目集合的每一数据组元数据条目包括文件标志旗标、记录旗标和记录大小。
15.如条款14所述的计算机系统,其中所述存储逻辑数据容器是对象存储逻辑数据容器。
16.如条款14或15所述的计算机系统,其中所述磁带标头还包括识别所述最后访问的记录的磁带标头位置。
17.如条款14到16中任一条款所述的计算机系统,其中所述全局记录旗标集合还包括:
记录元数据段集合,所述记录元数据段集合的每一记录元数据段表示数据块的宏块,所述记录元数据段集合的每一记录元数据段包括:
宏块记录标头,其包括当所述宏块含有有效信息和误差校正信息时匹配所述全局产生识别符的记录产生识别符;以及
与宏块中的所述数据块相关联的所述全局记录旗标集合的子集。
18.如条款14到17中任一条款所述的计算机系统,其中可动态地调整所述逻辑数据容器的大小多达所述全局记录旗标所表示的大小。
19.如条款18所述的计算机系统,其还包括至少通过以下操作来动态地调整所述逻辑数据容器的大小:
将所述全局元数据段放置在数据存储容器的末尾处;
通过附加存储到所述存储容器来增加所述数据存储容器的存储容量;以及
将所述全局元数据段复制到所述附加存储的末尾处。
20.如条款14所述的计算机系统,其还包括元数据存储器,所述元数据存储器使所述逻辑数据容器与虚拟磁带识别符相关联。
21.一个或多个计算机可读存储介质,在其上共同地存储可执行指令,所述可执行指令在被计算机系统的一个或多个处理器执行时促使所述计算机系统至少进行以下操作:
确定表示虚拟磁带的数据结构的逻辑数据容器已发生逻辑数据容器误差事件;
从磁带标头检索识别一个或多个宏块的全局元数据的日志信息,每一宏块包括数据块组集合;以及
使用与每一识别宏块的每一数据元数据条目中的数据块相关联的记录旗标和文件标志旗标来恢复所述全局记录旗标和全局文件标志旗标。
22.如条款21所述的计算机可读存储介质,其中恢复所述全局记录旗标还包括:
访问来自所述一个或多个宏块的每一数据块组,数据块组包括:
包括所存档的数据的数据块集合;以及
数据标头,其包括:
数据产生识别符,所述数据段的数据产生识别符匹配用于有效数据段的所述全局产生识别符;以及
数据块组元数据条目集合,其对应于相关联数据块组中的所述数据块集合中的每一数据块,所述数据组元数据条目集合的每一数据组元数据条目包括文件标志旗标、记录旗标和记录大小;
使用所述数据块组元数据条目来恢复所述全局记录旗标和全局文件标志旗标。
23.如条款22所述的计算机可读存储介质,其中所述指令还包括在被执行时促使所述计算机系统至少进行以下操作的指令:
通过以下操作来扫描来自所述一个或多个宏块的每一宏块:
针对来自所述一个或多个宏块的每一数据块组:
检索用于来自所述一个或多个宏块的每一数据块组的所述数据标头中的误差校正信息;以及
将所述误差校正信息施加到所述数据块组。
24.如条款21到23中任一条款所述的计算机可读存储介质,其中所述指令还包括在被执行时促使所述计算机系统至少使得所述逻辑数据容器能够使用的指令。
25.如条款21到24中任一条款所述的计算机可读存储介质,其中所述误差事件是电力停机。
大多数实施方案利用本领域技术人员将熟悉的至少一个网络来用于使用多种可市售的协议中的任一者来支持通信,例如传输控制协议/因特网协议(“TCP/IP”)、开放系统互连(“OSI”)、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、通用因特网文件系统(“CIFS”)和AppleTalk。网络例如可为局域网、广域网、虚拟专用网、因特网、内联网、外联网、公共交换电话网、红外网络、无线网络以及上述网络的任何组合。
在利用网络服务器的实施方案中,网络服务器可以运行各种服务器或中间层级应用程序中的任何一个,所述服务器包括超文本传送协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器和业务应用程序服务器。所述服务器还能够响应来自用户装置的请求而执行程序或脚本,如通过执行一个或多个可以实施为一个或多个以任何编程语言(如C、C#或C++)或任何脚本语言(如Perl、Python或TCL)及其组合撰写的脚本或程序的网络应用程序。服务器还可包括数据库服务器,其包括但不限于可商购自的数据库服务器。
环境可包括如上文所论述的各种数据存储器以及其它存储器和存储介质。这些介质可驻留在各种位置,如在一个或多个计算机本地(和/或驻留在一个或多个计算机中)的存储介质上,或远离网络上的计算机中的任何一个或所有计算机。在特定实施方案集合中,信息可驻留于在本领域技术人员熟悉的存储区域网(“SAN”)中。类似地,用于执行属于计算机、服务器或其它网络装置的功能的任何必要文件可以适当地本地和/或远程地存储。在系统包括计算机化装置的情况下,每种此类装置可以包括可经由总线进行电耦合的硬件元件,所述元件包括,例如,至少一个中央处理单元(“CPU”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。此类系统也可以包括一个或多个存储装置,如磁盘驱动器、光学存储设备和固态存储设备,如随机存取存储器(“RAM”)或只读存储器(“ROM”),以及可移动介质装置、存储卡、闪存卡等。
此类装置还可包括计算机可读存储介质读取器、通信装置(例如调制解调器、网络卡(无线或有线)、红外线通信装置等)和工作存储器,如上文所论述的。计算机可读存储介质读取器可与计算机可读存储介质连接或被配置来接收计算机可读存储介质,从而表示远程、本地、固定和/或可移动存储装置以及用于临时和/或更永久地含有、存储、传输和检索计算机可读信息的存储介质。系统和各种设备通常也将包括位于至少一个工作存储器装置内的多个软件应用程序、模块、服务或其它元件,其包括操作系统和应用程序,如客户端应用程序或网络浏览器。应了解,替代性实施方案相比上文所描述的实施方案可具有众多变化。举例来说,也可使用定制硬件,和/或特定元件可以在硬件、软件(包括可移植的软件,如小程序)或两者中实现。此外,可以采用与如网络输入/输出装置的其它计算装置的连接。
含有代码或部分代码的存储介质和计算机可读介质可包括本领域已知或已使用的任何适合介质,包括存储介质和通信介质,如(但不限于)用于存储和/或传输信息(如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中所实施的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器或其它存储器技术、紧密光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其它光学存储器、磁盒、磁带、磁盘存储器或其它磁性存储装置,或可用于存储所要信息且可供系统装置访问的任何其它介质。基于本文所提供的公开和教义,本技术领域普通技术人员将了解实现各个实施方案的其它方式和/或方法。
因此,应在说明性意义而不是限制性意义上理解说明书和附图。然而,将显而易见的是:在不脱离如在权利要求中阐述的本发明的更宽广精神和范围的情况下,可以对其做出各种修改和改变。
其它变体是在本公开的精神之内。因此,虽然所公开的技术易受各种修改和替代构造的影响,但在附图中示出且在上文详细描述其特定说明的实施方案。然而,应理解,并不意图将本发明限于具体形式或所公开的形式,但相反,意图涵盖属于本发明的精神和范围内的所有修改、替代构造和等效物,如随附权利要求书中所限定。
在描述所公开实施方案的上下文中(尤其是在随附权利要求的上下文中),术语“一(a,an)”和“所述(the)”以及类似的提及的使用意图解释为涵盖单数和复数两者,除非在本文另外地指示或明显地与上下文矛盾。术语“包含(comprising)”、“具有(having)”、“包括(including)”和“含有(containing)”意图解释为开放式的术语(即,意味着“包括但不限于”)除非另外地指出。术语“连接(connected)”意图解释为部分地或全部地含在以下解释内:附接到或接合在一起,即使存在介入物。除非本文另外指明,否则本文中值范围的列举仅仅意图用作个别地表示属于所述范围的各单独值的速记方法,并且犹如本文分别描述过地那样将各单独值并入到说明书中。可按任何适合的顺序来执行本文所述的全部方法,除非本文另外指明或上下文明显矛盾。本文所提供的任何以及全部实例或示例性语言(例如,“如”)的使用仅意图更好地说明本发明的实施方案并且除非另外要求,否则不会对本发明的范围施加限制。说明书中的语言不应解释为表明任何未要求保护的要素对实施本发明必不可少。
本文中描述了本发明的优选实施方案,其包括为发明者所知用来执行本发明的最佳模式。阅读上述说明后那些优选的实施方案的变体对于本领域的普通技术人员可以变得显而易见。发明者希望技术人员适当地采用此类变体,并且发明者意图以其它方式而不是如本文所特别描述的来实施本发明。因此,本发明包括在随附的适用法律允许的权利要求中叙述的主题的所有修改和等效物。此外,除非本文另有指示或与上下文明显矛盾,否则在所有可行变体中的上述元素的任何组合都涵盖在本发明内。
本文所引用的所有参考文件,包括公开案、专利申请和专利,据此按照相同的程度以引用方式并入本文中,如同每个参考文件都单个地和特别地表示为以引用方式并入到本文中并且其全部内容都进行了陈述。

Claims (15)

1.一种用于仿真存储的计算机实施的方法,其包括:
接收产生虚拟磁带的请求;
请求在存储服务中产生逻辑数据容器;
使所述逻辑数据容器与所述虚拟磁带相关联;
接收将来自虚拟存储位置的所述虚拟磁带载入到虚拟磁带驱动器的请求;
将与所述虚拟磁带相关联的所述逻辑数据容器映射到与所述虚拟磁带驱动器相关联的输入/输出接口;
在所述输入/输出接口上将请求转换到与映射到所述虚拟磁带驱动器的所述虚拟磁带相关联的所述逻辑数据容器;
响应于接收存储所述虚拟磁带的请求:
去除所述逻辑数据容器到所述输入/输出接口的所述映射;
响应于接收将所述虚拟磁带存储在档案存储服务中的请求:
将所述虚拟磁带映射到导入/导出位置;
从虚拟磁带库去除所述虚拟磁带;
确定用于制备所述逻辑数据容器用于在所述输入/输出接口上使用的可接受的响应时间;
至少部分地基于所述确定来从多个存储层级选择存储层级以得到选定的存储层级,至少部分基于用于访问在所述存储层级中的逻辑数据容器的响应时间而限定所述多个存储层级的存储层级,所述多个存储层级包括对应于具有第一响应时间的第一数据存储服务的第一存储层级和对应于具有第二响应时间的第二数据存储服务的第二存储层级;
从与所述输入/输出接口一起使用的主动层级传送所述逻辑数据容器到所述选定的存储层级;以及
使所述虚拟磁带与虚拟库位置相关联。
2.如权利要求1所述的计算机实施的方法,其还包括:
使所述逻辑数据容器与虚拟磁带在元数据存储器中相关联;以及
将所述虚拟磁带到虚拟存储位置的映射存储在所述元数据存储器中。
3.一种用于存储数据的计算机实施的方法,其包括:
在虚拟磁带与虚拟磁带驱动器相关联的时间期间,将磁带操作从输入/输出接口转换到与所述虚拟磁带驱动器相关联的逻辑数据容器;
响应于从所述虚拟磁带驱动器去除所述虚拟磁带的请求而使所述虚拟磁带驱动器从所述虚拟磁带和所述逻辑数据容器解除关联;
响应于存储所述虚拟磁带的请求:
确定用于制备所述逻辑数据容器用于在所述输入/输出接口上使用的响应时间;
至少部分地基于所述确定从多个存储层级选择存储层级,该存储层级的选择至少部分地基于所述存储层级的访问属性的速度;以及
从包括所述输入/输出接口的当前存储层级传送所述逻辑数据容器到所选择存储层级上的逻辑数据容器,所述当前存储层级具有不同于所选择存储层级的响应时间。
4.如权利要求3所述的计算机实施的方法,其中从所述输入/输出接口转换磁带操作到所述逻辑数据容器还包括:
从客户端接口接收所述磁带操作;
将所述磁带操作转换为一个或多个存储服务请求;以及
从客户端网络经由公用网络到存储服务接口来将所述一个或多个存储服务请求传输到存储服务。
5.如权利要求4所述的计算机实施的方法,其中从所述客户端接口接收磁带操作还包括将虚拟磁带库装置定位在所述客户端网络上;以及
配置所述虚拟磁带库装置以接收磁带操作和发送存储服务请求。
6.如权利要求3到5中任一项所述的计算机实施的方法,其还包括在元数据存储器中使来自所述存储服务的所述逻辑数据容器,所述虚拟磁带和所述虚拟磁带驱动器相关联。
7.如权利要求6所述的计算机实施的方法,其还包括:
当请求所述虚拟磁带驱动器提供数据到第二虚拟磁带驱动器时,执行与所述虚拟磁带和所述虚拟磁带驱动器相关联的所述逻辑数据容器和与第二虚拟磁带和所述第二虚拟磁带驱动器相关联的第二逻辑数据容器之间的逻辑数据容器复制操作。
8.如权利要求6所述的计算机实施的方法,其中在所述元数据存储器中使来自所述存储服务的所述逻辑数据容器,所述虚拟磁带和所述虚拟磁带驱动器相关联还包括:
请求在所述存储服务中产生逻辑数据容器;
使所述逻辑数据容器与所述虚拟磁带在所述元数据存储器中相关联;以及
将所述虚拟磁带到虚拟导入/导出槽的映射存储在所述元数据存储器中。
9.如权利要求3到5和8中任一项所述的计算机实施的方法,其还包括:
当请求所述虚拟磁带驱动器提供数据到第二虚拟磁带驱动器时,执行与所述虚拟磁带和所述虚拟磁带驱动器相关联的所述逻辑数据容器和与第二虚拟磁带和所述第二虚拟磁带驱动器相关联的第二逻辑数据容器之间的逻辑数据容器复制操作。
10.一种用于管理虚拟磁带库的计算机系统,其包括:
一个或多个计算资源,其具有包括可执行指令的一个或多个处理器和存储器,所述可执行指令在被所述一个或多个处理器执行时促使所述一个或多个处理器至少实施:
虚拟磁带库系统,其提供到客户端存档系统的接口,并且:
通过提供以下内容来提供磁带库系统的仿真:
虚拟磁带集合,所述虚拟磁带集合中的每一虚拟磁带包括来自存储服务的存储逻辑数据容器,所述存储服务根据请求提供存储逻辑数据容器;
虚拟磁带驱动器集合,来自所述虚拟磁带驱动器集合的每一虚拟磁带驱动器提供到所述客户端存档系统的接口以与所述虚拟磁带驱动器相关联的虚拟磁带交互;
介质转换器接口,其被配置来使虚拟磁带与虚拟磁带驱动器相关联;以及
元数据存储器,其将虚拟磁带链接到所述存储逻辑数据容器;
确定用于制备所述逻辑数据容器用于在输入/输出接口上使用的可接受的响应时间;
至少部分地基于所述确定来从多个存储层级选择存储层级以得到选定的存储层级,至少部分基于用于访问在所述存储层级中的逻辑数据容器的响应时间而限定所述多个存储层级的存储层级,所述多个存储层级包括对应于具有第一响应时间的第一数据存储服务的第一存储层级和对应于具有第二响应时间的第二数据存储服务的第二存储层级;
从与所述输入/输出接口一起使用的主动层级传送所述逻辑数据容器到所述选定的存储层级;以及
使所述虚拟磁带与虚拟库位置相关联。
11.如权利要求10所述的计算机系统,其中所述虚拟磁带库还包括一个或多个虚拟导入/导出槽,所述虚拟导入/导出槽被配置来将来自所述存储服务的所述存储逻辑数据容器传送到档案存储服务中的档案逻辑数据容器。
12.如权利要求10或11所述的计算机系统,其中所述虚拟磁带库还包括一个或多个虚拟存储槽,所述虚拟存储槽被配置来将来自所述存储服务的所述存储逻辑数据容器传送到档案存储服务中的档案逻辑数据容器。
13.如权利要求10或11所述的计算机系统,其中所述虚拟磁带库系统还包括高速缓存来自所述虚拟磁带驱动器集合的交互的本地存储逻辑数据容器。
14.如权利要求10或11所述的计算机系统,其还包括第二虚拟磁带库系统,所述第二虚拟磁带库系统被配置来通过请求与第一虚拟磁带相关联的逻辑数据容器复制到与第二虚拟磁带相关联的逻辑数据容器来执行所述第二虚拟磁带库系统所管理的所述第一虚拟磁带到所述虚拟磁带库系统所管理的所述第二虚拟磁带的复制。
15.如权利要求10或11所述的计算机系统,其还包括存储服务接口,所述存储服务接口被配置来产生新的虚拟磁带以及将所述新的虚拟磁带注入到所述虚拟磁带库系统中。
CN201380069599.8A 2012-12-20 2013-12-13 虚拟磁带库系统 Active CN104903871B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US13/722,814 2012-12-20
US13/722,743 2012-12-20
US13/722,743 US10013166B2 (en) 2012-12-20 2012-12-20 Virtual tape library system
US13/722,814 US20140181396A1 (en) 2012-12-20 2012-12-20 Virtual tape using a logical data container
PCT/US2013/075191 WO2014099682A1 (en) 2012-12-20 2013-12-13 Virtual tape library system

Publications (2)

Publication Number Publication Date
CN104903871A CN104903871A (zh) 2015-09-09
CN104903871B true CN104903871B (zh) 2018-04-03

Family

ID=50979057

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380069599.8A Active CN104903871B (zh) 2012-12-20 2013-12-13 虚拟磁带库系统

Country Status (5)

Country Link
EP (1) EP2936319B1 (zh)
JP (1) JP6271581B2 (zh)
CN (1) CN104903871B (zh)
CA (1) CA2893594C (zh)
WO (1) WO2014099682A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620860B2 (en) * 2017-02-13 2020-04-14 Oracle International Corporation System for storing data in tape volume containers
JP6686976B2 (ja) * 2017-06-20 2020-04-22 日本電気株式会社 仮想テープ管理装置、仮想テープ管理方法、及びプログラム
JP2020123157A (ja) 2019-01-30 2020-08-13 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム
JP7319326B2 (ja) * 2021-06-24 2023-08-01 株式会社日立製作所 ストレージシステム及びストレージシステムのファイル配置方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297124A (en) * 1992-04-24 1994-03-22 Miltope Corporation Tape drive emulation system for a disk drive
CN1489737A (zh) * 2000-12-22 2004-04-14 ��������ķ������ 虚拟磁带存储系统和方法
CN1862476A (zh) * 2006-04-19 2006-11-15 华中科技大学 一种超大容量的虚拟磁盘存储系统
CN101739307A (zh) * 2008-11-04 2010-06-16 北京众志和达信息技术有限公司 基于嵌入式一体化虚拟磁带库的数据归档保护系统和方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293179B2 (en) * 2001-08-01 2007-11-06 Johnson R Brent System and method for virtual tape management with remote archival and retrieval via an encrypted validation communication protocol
US7698532B1 (en) * 2003-06-26 2010-04-13 Symantec Operating Corporation Method and apparatus for tape library emulation
JP4559046B2 (ja) * 2003-08-04 2010-10-06 株式会社日立製作所 仮想テープライブラリ装置
US20050193235A1 (en) * 2003-08-05 2005-09-01 Miklos Sandorfi Emulated storage system
JP2005099971A (ja) * 2003-09-24 2005-04-14 Hitachi Ltd 仮想テープ装置の入出力制御方法
US8572330B2 (en) * 2005-12-19 2013-10-29 Commvault Systems, Inc. Systems and methods for granular resource management in a storage network
JP4636270B2 (ja) * 2006-04-27 2011-02-23 日本電気株式会社 仮想ライブラリ装置と仮想テープの排出、投入方法
US20080222344A1 (en) * 2007-03-08 2008-09-11 Upadhyayula Shivarama Narasimh Facilitating Integration of a Virtual Tape Library System with a Physical Tape Library System
US10481962B2 (en) * 2008-05-30 2019-11-19 EMC IP Holding Company LLC Method for data disaster recovery assessment and planning
US8489808B2 (en) * 2008-10-22 2013-07-16 Hewlett-Packard Development Company, L.P. Systems and methods of presenting virtual tape products to a client
US9208475B2 (en) * 2009-06-11 2015-12-08 Hewlett-Packard Development Company, L.P. Apparatus and method for email storage

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5297124A (en) * 1992-04-24 1994-03-22 Miltope Corporation Tape drive emulation system for a disk drive
CN1489737A (zh) * 2000-12-22 2004-04-14 ��������ķ������ 虚拟磁带存储系统和方法
CN1862476A (zh) * 2006-04-19 2006-11-15 华中科技大学 一种超大容量的虚拟磁盘存储系统
CN101739307A (zh) * 2008-11-04 2010-06-16 北京众志和达信息技术有限公司 基于嵌入式一体化虚拟磁带库的数据归档保护系统和方法

Also Published As

Publication number Publication date
EP2936319A4 (en) 2016-01-20
JP6271581B2 (ja) 2018-01-31
CN104903871A (zh) 2015-09-09
CA2893594C (en) 2019-10-29
JP2016506575A (ja) 2016-03-03
EP2936319A1 (en) 2015-10-28
EP2936319B1 (en) 2018-05-23
CA2893594A1 (en) 2014-06-26
WO2014099682A1 (en) 2014-06-26

Similar Documents

Publication Publication Date Title
US11030159B2 (en) System and methods for implementing a server-based hierarchical mass storage system
US10387673B2 (en) Fully managed account level blob data encryption in a distributed storage environment
US10013166B2 (en) Virtual tape library system
CN105190623B (zh) 日志记录管理
CN105122241B (zh) 具有数据库引擎和独立分布式存储服务的数据库系统
CN105190533B (zh) 原位快照
CN105210062B (zh) 用于分布式数据库系统的系统范围检查点避免
US10268593B1 (en) Block store managamement using a virtual computing system service
US11416298B1 (en) Providing application-specific storage by a storage system
CN101228523B (zh) 用于高速缓存网络文件系统的系统和方法
US10185507B1 (en) Stateless block store manager volume reconstruction
US10659225B2 (en) Encrypting existing live unencrypted data using age-based garbage collection
US11403000B1 (en) Resiliency in a cloud-based storage system
CN106021016A (zh) 在快照之间的虚拟时间点访问
CN103620580A (zh) 用于数据副本的迁移的系统和方法
CN110209535A (zh) 用于分布式数据库系统的快速崩溃恢复
CN103959264A (zh) 在存储云中使用去重复来管理不可变冗余文件
EP3580647A1 (en) System for storing data in tape volume containers
US20140181396A1 (en) Virtual tape using a logical data container
US11893126B2 (en) Data deletion for a multi-tenant environment
US9600486B2 (en) File system directory attribute correction
CN104903871B (zh) 虚拟磁带库系统
CN102667720A (zh) 没有排序依赖的一致性
US10921991B1 (en) Rule invalidation for a block store management system
CN104662522B (zh) 使用存储系统功能性的全虚拟机备份的系统和方法

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant