首页> 中国专利> 在单写多读存储系统中用于记录保留日期的系统和方法

在单写多读存储系统中用于记录保留日期的系统和方法

摘要

本发明提出一种被锁定以防止在WORM存储实施内删除或修改的数据集内的指定的保留日期。此保留日期机制未利用任何专有的应用编程接口(API)或协议,而是采用通常使用的操作系统中可获取的常规文件(或其他数据容器、数据集或基于块的逻辑单元编号)特性内的本地功能。在一个说明性实施例中,通过查询提交之前文件的最后修改时间并将保留期加该值,由此得出其后可以从WORM释放该文件的保留日期来计算保留日期/时间。在提交之前,计算的保留日期存储在文件的“上次访问时间”特性/属性字段中,或永久与该文件保持关联且正用于保留日期的另一个元数据字段不与WORM状态中的文件管理干扰。因为此字段不在WORM场景中被利用,所以可以将其用于存储该日期。一旦存储,该字段中的保留日期被锁定以防止修改。在期望延长(从不会缩短)保留期的情况中,可更新上次访问时间字段,其中将新的保留期加上现存上次访问时间值来为文件得出新的较晚保留日期。当保留日期到期时,系统允许删除到期的WORM文件/数据集。

著录项

  • 公开/公告号CN101443760A

    专利类型发明专利

  • 公开/公告日2009-05-27

    原文格式PDF

  • 申请/专利权人 网络装置公司;

    申请/专利号CN200480039575.9

  • 发明设计人 W·P·麦戈文;J·L·赫勒;

    申请日2004-04-22

  • 分类号G06F17/30(20060101);G06F21/00(20060101);G06F3/06(20060101);

  • 代理机构72001 中国专利代理(香港)有限公司;

  • 代理人杨凯;王勇

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 21:57:44

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-17

    专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F17/30 变更前: 变更后: 申请日:20040422

    专利权人的姓名或者名称、地址的变更

  • 2011-11-09

    授权

    授权

  • 2009-07-22

    实质审查的生效

    实质审查的生效

  • 2009-05-27

    公开

    公开

说明书

相关申请

本申请涉及William P.McGovern等人的美国专利申请序列号10/391245、标题为“单写多读存储系统和用于实施该系统的方法”,将其原理通过引用明确地结合于本文。

发明领域

本发明涉及具有增强的数据完整性的单写多读功能的数据存储系统。

发明背景

文件服务器是提供与信息在存储设备(如磁盘)上的组织相关的文件服务的计算机。文件服务器或文件管理器包括存储操作系统,该操作系统实施文件系统以在逻辑上按磁盘上的目录和文件的层次结构来组织信息。每个“磁盘上”文件可以实施为用于存储信息的数据结构集合、例如磁盘块。另一方面,目录可以实施为专门格式化的文件,其中存储有关其他文件和目录的信息。

文件管理器还可以配置为根据信息交付到的客户机/服务器模型来操作,由此允许许多客户机访问存储在服务器、例如文件管理器上的文件。在此模型中,客户机可以包括如数据库应用程序的一种应用程序,它在计算机上执行且通过直接连接或如点到点链路、共享的局域网(LAN)、广域网(WAN)或在如因特网的公众网络上实施的虚拟专用网络(VPN)等的计算机网络“连接”到文件管理器。每个客户机可以通过网络向文件管理器发送文件系统协议消息(以分组的形式)来请求文件管理器上的文件系统的服务。

一种通用类型的文件系统是“写到位”文件系统,其示例是常规的Berkeley快速文件系统。通过“文件系统”,通常表示在如磁盘的存储设备上构建数据和元数据,从而允许在那些磁盘上读/写数据。在写到位文件系统中,如信息节点和数据块的数据结构在磁盘上的位置通常是固定的。信息节点是用于存储关于文件的如元数据的信息的一种数据结构,而数据块是用于存储文件的实际数据的结构。信息节点中所含的信息可以包括例如文件的拥有者、对文件的访问许可、文件的大小、文件类型和对文件的数据块在磁盘上的位置的引用。对文件数据位置的引用由信息节点中的指针提供,它还可以引用间接块,由此引用数据块,具体视文件中的数据量而定。根据写到位文件系统使对信息节点和数据块的更改“到位”。如果对文件的更新扩充文件的数据量,则分配附加的数据块并且更新适合的信息节点来引用该数据块。

另一种类型的文件系统是随处写文件系统,它不盖写磁盘上的数据。如果从磁盘上将磁盘上的数据块检索(读取)到存储器中并且与新数据“混杂”,则将该数据块存储(写)到磁盘上的新位置,由此优化写性能。随处写文件系统最初可以假定最优布局,以使数据基本连续地安排在磁盘上。该最优磁盘布局促成有效率的访问操作,特别是对于针对磁盘的顺序读操作。配置为对文件管理器进行操作的随处写文件系统的一个特定示例是由加州桑尼维尔的NetworkAppliance有限公司推出的Write Anywhere File Layout(WAFLTM)文件系统。WAFL文件系统在微内核内作为文件管理器和相关磁盘存储器的总体协议栈部分来实施。该微内核作为Network Appliance公司的Data ONTAPTM软件部分提供,它驻留在文件管理器上且处理来自联网客户机的文件服务请求。

如本文所用的,术语“存储操作系统”一般是指可在计算机上操作的计算机可执行代码,它管理数据访问并且可以在文件管理器的情况中实施文件系统语义,如作为微内核实施的且由加州桑尼维尔的Network Appliance有限公司推出的Data ONTAPTM存储操作系统,它实施Write Anywhere File Layout(WAFLTM)文件系统。该存储操作系统还可以作为在如或Windows 的通用操作系统上运行的应用程序来实施,或作为具有为本文描述的存储应用而配置的可配置功能的通用操作系统来实施。

磁盘存储通常作为一个或多个存储“卷”来实施,存储“卷”包括定义存储空间的总体逻辑安排的物理存储磁盘。目前可用的文件管理器实施可以服务大量的离散卷(例如150或更多)。每个卷与其自己的文件系统相关联,以及就本文目的而言,卷和文件系统一般将作为同义词使用。卷内的磁盘通常被组织为一个或多个独立(或便宜的)磁盘的冗余阵列(RAID)集合。RAID实施通过跨RAID集合中给定数量的物理磁盘冗余写数据“条”来增强数据存储的可靠性/完整性,并且适合地缓存有关条化数据的奇偶校验信息。在WAFL文件系统的示例中,有利地采用RAID 4实施。该实施特别要求跨磁盘集合对数据进行条化,并且在RAID集合的所选磁盘内缓存单独的奇偶校验。如本文所述,卷通常包括根据RAID 4或等效高可靠性实施设置的至少一个数据磁盘以及一个相关联的奇偶校验磁盘(或可能单个磁盘中的数据/奇偶校验分区)。

在许多涉及金融交易和其他敏感任务的行业、如银行、政府设施/承办商、国防、保健机构、制药公司和证券经纪业中,数据存储是日益重要且中心的部分。在许多此类环境中,以不可变且不可更改的方式存储选定数据是必不可少的。这种需求随着目前金融欺诈和管理不善等问题而不断增长,其中作为坏人擦除或更改罪证数据的诱惑始终是存在的。要求不可变处理的数据形式往往包括电子邮件、财务文档和交易记录以及任何可以作为重要操作或决策的证明的其他记录。即时在不太关键/不受监管的环境中,也非常期望能够存储安全不可更改的数据缓存。例如,工程、医疗、法律和其他专业公司可能希望建立关键数据(例如发明报告或设计文件、客户通信录、医疗图像等)的缓存,将它们保留不更改以及在线状态较长时间。这些缓存可以为客户和其他感兴趣的各方提供可靠的引用和证明。

作为高度监管的环境的例子,美国保密与交换委员会(SEC)-监管所有保密交易和与公开招股公司有关的报告的机构-发布了SEC规则17a-4以管理经纪人和投资机构的文档保留。该规则要求这些实体存储电子邮件和与这些实体的客户所做的多种交易和买卖相关的其他文档,在数年内不更改和不可更改,并能够及时向SEC和其他监管部门提供这些记录。无法遵照这些规则可能导致严重的制裁。

数年来已经有多种现有技术方法(包括磁带驱动器、可记录媒体等)被采用以实施WORM存储系统。这些系统的每一种都在存储大小、速度保持要求或这些(和其他)因素的组合方面有某些缺点。

在上述通过引用结合的美国专利申请序列号10/391245、标题为“单写多读存储系统和用于实施该系统的方法”中,提出一种对于WORM存储的特别有利的方法,其中采用常规容错(例如基于RAID)磁盘存储(或类似可重写媒体)作为WORM存储系统的平台。所描述的这种系统在此类磁盘存储容量巨大、相对便宜且易于添加到现有存储实施中的情况中是有利的。但是根据通常利用专门启用自由重写和擦除附接磁盘的语义设计的现有操作系统和协议,这些磁盘还固有地是可重写和/或可擦除的。因此,所描述的WORM存储方法专门配置为绝对防止改变任何WORM指示的数据。而且,为了保持该解决方案的有效时限并使之为尽可能多的客户使用,所描述的WORM实施利用开放协议、如CIFS和NFS,并要求对这些协议或采用它们的应用程序改变最小以及在客户应用上的覆盖区(footprint)最小。因此,该系统围绕包含文件的WORM存储卷来组织,其中当文件提交到WORM存储装置时,无法被删除或修改。用于标识WORM卷内的文件的任何文件路径或目录树结构被锁定且无法删除。

在所描述的WORM系统中,管理员创建WORM卷(或其他WORM指示的数据组织结构),它能够存储指定的WORM文件(或其他“数据集”)。然后客户使用适合的协议语义创建适合的WORM文件。通过将该文件属性从非只读状态转换到只读状态,该文件被写入到卷中并提交到WORM状态。文件系统永久存储WORM状态的文件连同该文件的属性和元数据,并使用该永久WORM状态来识别WORM卷上的WORM文件。至此,客户、管理员或其他实体修改文件属性、对文件进行写操作或删除该文件的任何尝试会被拒绝,并向尝试方返回请求被拒绝消息。因为该文件无法被删除,所以常规文件系统语义防止删除目录路径。同样地,在一个说明性实施例中,文件系统不允许重命名目录,由此确保WORM文件在目录结构内的可靠和不可变标识。

将WORM文件提交到WORM存储卷可以由客户通过命令行界面以交互方式来执行。或者,可以将熟悉WORM语义的应用设为使用适合的应用程序界面或其他编程命令结构来提交该文件。类似地,可以将客户用来与文件服务器/文件系统通信的开放协议、如NFS或CIFS修改为允许在关键时件、如关闭文件时自动提交创建的文件。可以将这些协议和文件系统设为启用卷内专门的WORM目录。可以提供适合的WORM文件扩展名,以使卷内的worm文件可以容易被客户识别。而且,可以允许选定的镜像和备份功能,同时可以禁用能够将卷复原或修订到较早时间点的其他备份功能。

管理WORM数据存储装置的许多监管方案(例如SEC 240.17a-4)规定了其后可以废弃WORM数据的保留期的规则。如果没有规定的保留期适用于创建时的记录,则规定一般指定永久保留。在如磁带或磁光存储的可移动媒体的情况中,在这些媒体的保留期期间,仔细地对它们建索引并存储(常常存储在安全地点)。当适用的保留日期到期时,从存储器中检索出到期的媒体并以物理方式将其破坏。因为当不再需要特定记录时,磁盘存储器固有地能够被重写和再使用,所以设想到多种磁盘上记录的WORM保护可以携带保留日期,以及当保留日期过去时,可以擦除到期的WORM记录和相关的数据,由此保留储资源并确保有序且可预测地移除到期的WORM数据-不会有物理媒体破坏所引起的材料浪费。

EMC公司(Hopkinton,MA)在商品名称Centera下推出市场的一种WORM存储系统允许基本形式的保留日期用于记录存储装置。该系统利用联网且运行Linux操作系统的定制变体的通用计算机系统集群。与开放协议和开放标准化API方法相对,这些计算机实施专有的应用程序编程接口(API)和用于与该存储系统接口的专有协议。同样地,应用可以仅通过专有机制或通过介于用户和该存储系统之间的“入口”来访问该存储装置并操作记录,其中专有机制或介于用户和该存储系统之间的“入口”将开放协议转换成存储系统支持的专有协议。

此形式的WORM存储系统利用所说的“内容可寻址存储”(CAS)用于管理所存储的记录。CAS依赖于计算数字签名对任何WORM存储的记录的内容使用诸如MD5散列的算法来为每个记录创建(“内容地址”的)唯一密钥。记录的数字签名的表示用作“密钥”或“内容地址”,任何将来对所存储的对象的引用都必须利用它。这常常被描述为类似于“行李牌”系统,由此该存储系统为每个存储的对象生成唯一的密钥,它返回到应用。应用负责管理并保存这些内容地址,这必须在存储系统外部执行。

为了将保留信息与所存储的记录相关联,专有API允许以专有格式将元数据与存储的对象相关联。该元数据信息可以包括记录的保留信息。API支持将保留日期进一步延长到将来的功能,以及在某些配置中对不附带保留信息提交的那些记录赋予无限保留日期。因为CAS体系结构的原因,写入该系统的每个对象,只要它具有唯一内容,则作为具有唯一内容地址的唯一对象来存储。为了启用WORM功能,API阻止在对象相关的保留期到期之前删除它们。对现存对象的修改是不可能的,因为对象内容中的任何更改将导致新的内容地址,而由此在存储系统中创建新对象。

为了跟踪保留时间和其他时间相关功能,确信该系统仅从集群的节点(计算机)内的系统硬件时钟提取时间值来获取时间参考并依赖于系统的物理安全性防止篡改。

发明概述

本发明通过在WORM存储实施内在防止删除或修改而锁定的数据集内提供指定的保留日期而克服了现有技术的这些缺点。该保留日期方案未利用任何专有应用编程接口(API)或协议,而是采用通常使用的操作系统中可获取的常规文件(或其他数据容器、数据集或基于块的逻辑单元编号)属性内的本地功能。在一个说明性实施例中,通过查询提交之前文件的上次修改时间并将保留期加该值,由此得出其后可以从WORM释放该文件的保留日期来计算保留日期/时间。在提交之前,计算的保留日期存储在文件的“上次访问时间”特性/属性字段中,或永久与该文件保持关联且正用于保留日期的另一个元数据字段(通常基于开放协议)不与WORM状态中的文件管理干扰。因为该字段是不重要的且很少在WORM场景中被利用,所以可以将其设为存储该日期。一旦存储,该字段中的保留日期被锁定以防止修改。在期望延长(从不会缩短)保留期的情况中,可更新上次访问时间字段,其中将保留期延长加上现存上次访问时间值来为文件得出新的较晚保留日期。当保留日期到期时,系统允许删除到期的WORM文件/数据集。

程序检查管理员、用户或接口提供的保留日期是否被管理卷的特定WORM规则集合所允许。就此而言,可以有多于一个WORM规则集适合用于存储系统。对于要求严格(例如政府机构)一致的存储,可以采用严格或监管的WORM卷。在该卷中存储受限于严格的最小缺省保留期,或者在没有指定期限的情况下采用无限期限。直到适用的保留日期到期,才允许文件的修改或删除。相反,在信任的管理员模型下定义的“企业”卷可以允许灵活地设置保留日期和/或作为缺省无任何日期。同样地,企业卷可以允许从文件/卷的较早映像中复原或在适合的情况下破坏卷。

在一个说明性实施例中,使用安全规范(compliance)时钟来调整有关保留期的时间。在一个实施例中,该时钟使用信任的时基,例如重复的文件服务器进程来推导它的时间值。该时钟是防篡改的,并且保证其时间值不超过实际时间,但是可能稍微更长,以便进一步确保遵从完整保留期。在其他实施例中,该时钟可以基于信任的第三方时钟(如基于政府的时钟)或其他基于安全硬件的时钟。

存储的保留日期/时间可以通过提供相对接近今天的基准时间日期(历元)来克服较旧的开放协议在比特范围上的某些局限。一般可以通过重新定义时间值所相对的历元(基准时间)来扩充这种比特范围局限下的可用日期范围。对该历元内的日期使用完全相同的格式,同时对日期进行卷绕编码(例如使用历元之前的日期作为扩充范围),以使值出现在扩充的日期范围内。

附图简介

通过结合附图参考下文描述可以更好地理解本发明的上述和其他优点,附图中相似的参考号指代完全相同或功能相似的单元:

图1是定义其中可以实施本发明原理的示范网络和文件服务器环境的示意框图,其中包括文件服务器和相关的客户机;

图2是根据本发明说明性实施例的示范存储操作系统的示意框图;

图3是根据本发明说明性实施例的WORM卷创建过程的流程图;

图4是示出示范WORM文件路径的目录树的示意图;

图5是根据本发明说明性实施例用于客户机的WORM文件创建和提交过程的流程图;

图6是根据本发明说明性实施例用于客户机的WORM文件创建和提交过程的流程图;

图7是根据本发明说明性实施例的同步镜像过程的示意图;

图8是根据本发明说明性实施例的异步镜像过程的示意图;

图9是图8的异步镜像过程中使用的数据格式的通用头的示意表示;

图10是根据图9的异步镜像过程传送的数据文件的WORM标志的示意表示;

图11是根据本发明说明性实施例的WORM文件的保留日期/时间设置过程的流程图;

图12是根据本发明说明性实施例用于延长已提交的WORM文件中的保留日期/时间的过程的流程图;

图13是说明根据本发明一个实施例用于扩充具有日期的限制比特范围的某个开放协议的可用保留日期范围的示范原理的时间线;

图14是根据本发明一个实施例的在跟踪保留日期/时间时所用的示范安全规范时钟的示意图表示;以及

图15是根据本发明说明性实施例用于确定主题文件的保留日期/时间的到期以及解除主题文件的WORM某些局限的过程的流程图。

说明性实施例的详细说明

A.网络和文件服务器环境

通过进一步的背景知识,图1是存储系统环境100的示意框图,该系统包括可以有利地与本发明一起使用的文件服务器112。为了本描述的目的,源系统是管理一个或多个存储磁盘160(图1中无法找到162)的存储的联网的计算机。

文件服务器或“文件管理器”112管理一个或多个包括磁盘160的阵列的卷115和116。文件管理器112链接到网络118,网络118可以包括局域网或广域网、如众所周知的因特网。适合的网络适配器130便于网络118上的通信。文件管理器112一般包括通过系统总线145互连的处理器120、存储器125、网络适配器130和存储适配器140。文件管理器112还包括存储操作系统200(图2),该操作系统实施文件系统以在逻辑上按磁盘上的目录和文件的层次结构来组织信息。

本领域技术人员将理解,本文所描述的发明原理可应用于实施为存储系统的任何类型的专用计算机(例如文件服务装置)或通用计算机、包括单机计算机。所以,文件管理器112可以广义地或作为备选方式称为存储系统。而且,本发明的原理可以适用于多种存储系统体系结构,包括但不限于网络连接的存储环境、直接连接到客户机/主计算机的存储区域网络和磁盘组。因此术语“存储系统”应该广义地视为包括此类安排。

在说明性实施例中,存储器125包括处理器可以寻址的存储单元和用于存储软件程序代码的适配器。存储器包括一般通过电源重启或其他重新启动操作而被清除的随机存取存储器(RAM)(即它是“易失性”存储器)形式。处理器和适配器又可以包括配置为执行软件代码并操作数据结构的处理单元和/或逻辑电路。存储操作系统200,其部分通常驻留在存储器中并由处理单元执行,它通过调用存储操作支持文件管理器实施的文件服务以在功能上组织文件管理器。对于本领域技术人员来说,显然可以使用包括多种计算机可读媒体的其他处理和存储器部件来存储并执行有关本文所描述的本发明原理的程序指令。

网络适配器130包括将文件管理器112连接到网络118所需的机械、电子和信令电路,其中可以包括点到点连接或共享媒体、如局域网。客户机(170、172)可以根据信息交付的客户机/服务器模型与目的地文件管理器112交互。即,客户机可以请求文件管理器的服务,文件管理器可以通过在网络118上交换封装例如TCP/IP协议或另一个网络协议(分别为CIFS 174和NFS 176)格式的分组115来返回客户机170和172所请求的服务的结果。

存储适配器140与文件管理器112上执行的操作系统200(图2)合作来访问客户机请求的信息。该信息可能存储在经存储适配器140连接到文件管理器112或本文定义的其他存储系统节点的磁盘160上。存储适配器140包括输入/输出(I/O)接口电路,该接口电路经I/O互连配置、如常规的高性能光纤信道串行链路拓扑连接到磁盘。该信息在通过系统总线145转发到网络适配器130之前,作为抽点转储过程的一部分由存储适配器检索并由处理器120处理,下文对此予以描述,其中该信息被格式转化成分组并被传送到目的地服务器,下文同样对此予以详细描述。

文件管理器还可以经网络适配器130与一个或多个客户机170互连。这些客户机在LAN或其他网络(118)上分别将对文件服务的请求传送到文件管理器112,并接收对这些请求的响应。使用定义为通用因特网文件系统(CIFS)协议(174)或另一种适合的协议、如IMPS(176)的封装的各自数据分组,在客户机170、172和文件管理器112之间传送数据。

在一个示范文件管理器实施中,文件管理器112可以包括非易失性随机存取存储器(NVRAM)135,它提供数据的容错备份,确保文件管理器事务的完整性以免因电源故障或其他故障导致的服务中断。NVRAM的大小部分取决于它在文件服务器中的具体实施和功能。通常它的大小足够记录某些基于时间的事务量(例如数秒价值)。在完成每个客户机请求之后但在请求的结果返回到请求客户机之前,与缓冲器缓存同时填充NVRAM。

在用于控制多种文件服务器功能和操作的一个说明性实施例中,还设有管理员的控制台190。控制台190可以是经专用端口连接到文件服务器的客户机或终端,或它可以经网络链路118联网,并驻留在远程位置上-可能与文件服务器相距很远。在说明性实施例中通过控制台输入某些命令,下文对此予以说明。

在说明性实施例中,将磁盘160设置成多个卷,作为示例称为卷0(115)和卷1(116),其中每个卷具有与之相关联的文件系统。卷115、116各包括一个或多个磁盘160。在一个实施例中,物理磁盘160配置成RAID集合。在一个实施例中,根据优选的RAID 4配置,该结构设置为使一些磁盘存储条化数据并且一些磁盘存储数据的单独奇偶校验。但是,还可设想其他配置(例如具有跨多个条(stripe)的分布式奇偶校验的RAID 5)。在该实施例中,采用最少一个奇偶校验磁盘和一个数据磁盘。然而,典型的实施可以包括每个RAID集合具有三个数据磁盘和一个奇偶校验磁盘以及每个卷具有多个RAID集合。如下文将描述的,卷0(115)是具有完全读和写访问权的常规存储卷,而卷1(116)是单写多读(WORM)卷,其中一旦将选定的文件提交到存储装置,则无法修改、擦除或以其他方式删除选定的文件。

B.存储操作系统

为了便于对磁盘160进行一般性访问,存储操作系统200(图2)实施在逻辑上按磁盘上的目录和文件的层次结构来组织信息的随处写文件系统。可以将每个“磁盘上”文件实施为用于存储如数据的信息的一组磁盘块,而可以将目录实施为专门格式化的文件,其中存储对其他文件和目录的引用。如上文所述和定义的,在本文描述的说明性实施例中,存储操作系统是加州桑尼维尔的NetworkAppliance有限公司推出的 Data ONTAPTM操作系统,它实施随处写文件布局(WAFLTM)文件系统。明确地设想到可以使用任何适合的文件系统,同样,在采用术语“WAFL”的情况中,应该广义地视为是指以其他方式可适合于本发明原理的任何文件系统。

现在简要描述每个示范文件管理器的优选存储操作系统的组织。然而,明确地设想到本发明的原理可以使用多种备选存储操作系统体系结构来实施。如图2所示,示范存储操作系统200包括一系列的软件层,包括网络驱动程序(例如以太网驱动程序)的媒体访问层205。操作系统还包括如因特网协议(IP)层210及其支持传输机制的网络协议层、传输控制协议(TCP)层215和用户数据报协议(UDP)层220。文件系统协议层提供多协议数据访问,所以包括对CIFS协议225、iSCSI协议224、NFS协议230、超文本传输协议(HTTP)协议235以及格式上可以是开放的或专有的其他协议(未示出)、如NFS版本4等的支持。此外,存储操作系统200包括实施磁盘存储协议、如RAID协议的磁盘存储层240以及实施磁盘控制协议、如小计算机系统接口(SCSI)的磁盘驱动程序层245。

将磁盘软件层与网络和文件系统协议层桥接是该存储操作系统200的文件系统层250。一般来说,文件系统层250实施具有磁盘上格式表示的文件系统,该磁盘上格式表示是基于块的、使用例如4-千字节(KB)数据块并使用信息节点或另一个数据结构来描述这些文件。注意虽然在一个说明性实施例中实施文件,但是术语“文件”应该广义地理解为包括任何类型的数据组织或“数据容器”,包括如SCCI的块级协议所使用的那些。因此在本文中术语“数据容器”可互换使用。

响应事务请求,如果所请求的数据未驻留“在核心中”、即在文件管理器的存储器225中,则文件系统生成从卷加载(检索)所请求的数据的操作。如果该信息不在存储器中,则文件系统层250使用信息节点编号对信息节点文件建索引以访问适合的项并检索卷块编号。文件系统层250然后将卷块编号传递到磁盘存储(RAID)层240,磁盘存储层240将卷块编号映射到磁盘块编号,并将磁盘块编号发送到磁盘驱动程序层245的适合驱动程序(例如在光纤信道磁盘互连上实施的SCSI的封装)。磁盘驱动程序从卷访问磁盘块编号,并将所请求的数据加载到存储器125中,以供文件管理器112处理(参见图1)。当完成请求时,文件管理器(和存储操作系统)通过各自的网络连接172将应答、例如CIFS规范定义的常规确认分组返回到客户机170。

应该注意,作为备选方式可采用硬件或硬件与软件的组合方式来实施软件“路径”270,软件“路径”270通过上述为文件管理器接收到的客户机请求执行数据存储器访问所需的存储操作系统层。即,在本发明的备选实施例中,存储器访问请求数据路径270可以实施为在现场可编程门阵列(FPGA)或专用集成电路(ASIC)内包含的逻辑电路。这种类型的硬件实施提升了响应客户机170发出的文件系统请求分组而由文件管理器112提供文件服务的性能。

在继续对附图进行详细描述之前,简要论述一下备份是恰当的。为了提升可靠性并利于文件管理器、其相关联的磁盘或存储设施的某个部分在发生故障时的灾难恢复,通用做法是“镜像”或复制一些或所有底层数据和/或组织该数据的文件系统。在一个示例中,建立镜像并将其存储在远程地点,从而使在物理损坏主存储单元或其设施的真实灾难(例如水灾、停电、战争等)的事件中可能恢复的概率更大。镜像按通常在管理员设置的规则时间间隔被更新,以努力捕获文件系统的最近变化。

更新的一种常用形式包括使用“抽点转储”过程,其中捕捉存储地点的由信息节点和块组成的活动文件系统,作为整体在网络(如众所周知的因特网)将“抽点转储”传送到远程存储地点。一般来说,抽点转储是在时间点上文件系统的映像(通常是只读的),它存储在同是活动文件系统的主存储设备上并可被活动文件系统的用户访问。“活动文件系统”意味着当前输入/输出操作所针对的文件系统。例如一组磁盘的主存储设备存储活动文件系统,同时可以利用辅助存储器、例如磁带驱动器来存储活动文件系统的备份。一旦取得抽点转储(即捕捉的映像),则重新建立活动文件系统,将抽点转储版放到适当的位置用于可能的灾难恢复。每次取得抽点转储时,旧的活动文件系统成为新的抽点转储,而新的活动文件系统继续记录任何新的变化。可以根据多种基于时间标准和其他标准,保留一组数量的抽点转储。

“抽点转储”是Network Appliance有限公司的商标。在本专利中用于指代永久一致性点(CP)映像。永久一致性点映像(PCPI)是存储系统的时间点表示,更具体来说是存储在存储设备(例如磁盘上)或其他永久存储器上且具有将其与其他时间点上取得的其他PCPI区分的一个名称或其他唯一标识符的活动文件系统的时间点表示。PCPI还可以包括取得映像的特定时间点上有关活动文件系统的其他信息(元数据)。在本专利中,术语“PCPI”和“抽点转储”应是可互换使用的,而不会破坏Network Appliance公司的商标权。

PCPI/抽点转储过程在Blake Lewis等人的美国专利申请序列号09/932578、标题为“即时抽点转储(INSTANT SNAPSHOT)”中有更详细的描述,通过引用将其结合于本文,如同本文中全面介绍。此外,WAFL文件系统的本地SnapshotTM功能在由Network Appliance有限公司发布的、David Hitz等人所著的“NFS文件服务器装置的TR3002文件系统设计”中以及在David Hitz等人共同拥有的美国专利编号5819292、标题为“用于维持文件系统的一致性状态和用于创建文件系统的用户可访问只读副本的方法”中也有进一步描述,通过引用将它们结合于本文。

参考图2,在文件系统层250上的是管理员的用户接口285。这可以通过上面描述的多种协议(CIF、NFS等)来访问。

而且,在文件系统层250之上还有专门的异步卷和子卷(或“qtree”)抽点转储镜像(或复制)应用程序290。该应用程序负责基于源处的抽点转储的变化在远程目的地存储卷处生成镜像。抽点转储镜像应用程序290在存储器访问请求路径270外运行,如图中到TCP/IP层215、210和文件系统抽点转储机制(280)的直接链路292和294所示。该应用程序允许“异步”镜像各自子卷中的变化。所镜像的各自子卷中的变化是以递增方式写入(就源子卷上发生的变化来说不是实时的)可以是远程且通过网络连接来链接的目的地存储装置。卷级和子卷级(或q-tree)的异步镜像的论述可参阅Michael L.Federwisch等人的美国专利申请序列号10/100967、标题为“用于确定两个抽点转储中的变化并将变化传送到目的地抽点转储的系统和方法”,通过引用将它结合于本文。

同样提供作用于RAID层的同步卷抽点转储镜像应用程序298。该应用程序响应管理员发出的镜像命令将同步(实时)镜像提供给镜像存储。在执行该镜像命令时通过复制源该镜像创建源的时间点映像。抽点转储的基于卷的远程镜像的方法在Steven Kleiman等人的共同拥有的美国专利申请序列号09/127497、标题为“文件系统映像传送”中和Steven Kleiman等人的美国专利申请序列号09/426409、标题为“在相异文件系统之间文件系统映像的传送”中有详细描述,通过引用将它们明确结合于本文。

注意,存储操作系统包括一般驻留在文件系统层250中的WORM实用程序299。如下文将详细描述的,该WORM实用程序负责在文件系统中建立与常规文件系统卷276不同的专门的worm卷275。这些卷分别作为对应的相区别的WORM和非WORM RAID卷277和278装进RAID层。而且,该实用程序还负责在不可重写和不可擦除/不可删除的WORM卷内建立WORM文件或类似“WORM数据容器”(例如时钟等)。通过实用程序299的操作,只要有WORM文件驻留在路径/树中,同样锁定任何WORM文件/数据容器的各自目录路径(或其他标识逻辑组织),以防止删除。

根据一个说明性实施例,存储操作系统200还包括在一个说明性实施例中是基于软件的时钟的安全规范时钟279,该时钟结合有关WORM文件的保留期的设置、跟踪和执行来使用,如下文的详细描述。或者,该规范时钟还可以实施为基于硬件的时钟或来自信任的第三方(例如基于政府的)时钟的馈送信息。如下文详细描述的,规范时钟的所有实施例可以包括阻止篡改和确保输出时间值的可靠性的机制。

在继续详细描述本说明性实施例之前,给出如下定义。上面提到的术语“数据集”或“数据容器”一般是指文件、LUN(逻辑单元编号)或任何其他可单独或个别地寻址的数据结构。术语“卷”是指数据容器的逻辑集。术语“目录”是指便于通过遍历树或另一个逻辑索引结构访问给定数据容器的组织结构。同样,术语“路径”是指存储操作系统通过目录结构寻址数据容器时所用的路由。此外,明确地设想本发明原理可以应用于多种存储环境和数据类型,包括但不限于文件数据、数据库数据、块级数据等。

C.WORM卷创建

参考图3中的流程图,描述创建WORM卷的普遍性过程300及其创建操作的结果。该过程通常由管理员使用管理控制台和界面输入适合的卷创建命令来实施。修改文件系统以识别相对于指定WORM卷的常规(WORM之前的)卷创建命令的新语义。在步骤302,管理员最初创建具有一些诸如有关磁盘数量大小的一般参数的WORM卷。在一个实施例中,这通过输入如下示范命令来实现,其中该命令包含卷名称“volname”和“-L”、磁盘的数量:

vol create<volname>-L<磁盘的数量>。

接下来,在步骤304,为该卷指定文件服务器上的所请求的名称(volname)。同样,将它标识为/vol/volname。与该卷相关联的磁盘利用在永久存储装置中它们的RAID标签上的WORM属性来标记,以使它们被标识为WORM卷。这可能要求修改常规RAID层结构来说明该附加的标签。虽然主要在文件系统层施加WORM,但是该标记同时用于将所指定的磁盘标识为WORM存储装置。这里,WORM标志存储在WORM磁盘的永久标签中的非易失存储器中。该标签包含有关允许存储操作系统将磁盘映射到特定卷的磁盘的标识信息,并且它被存储在磁盘中标准位置中(例如开始位置)。以此方式,WORM标志保存在本身包含该WORM文件的磁盘上。此外,WORM标志还可以存储在NVRAM或其他永久/电池备份存储器结构中并防止无意或有意毁坏卷,下文对此予以进一步论述。注意到,步骤304不要求用户交互,因为作为WORM卷的创建过程的一部分来指定卷名称。这可以由系统内部处理。

在步骤306,然后将卷导出(对于NFS客户机)或共享(对于CIFS客户机)或以其他方式使之可供外部客户机使用。导出/共享步骤是对客户机赋予适合的使用许可的常规过程。在NFS客户机的示例中,适合的命令的简化语法是:

exporfs[-o options] /vol/volname

同样在CIFS客户机的示例中,语法是:

cifs shares-add<sharename> /vol/volume

导出和共享可以包括授予客户机适合的访问控制和特权以使某些用户可以访问该卷。还输入许可。这些一般控制可以对卷功能和向卷功能(WORM除外)做什么。例如,可能创建只读卷,而这将限制将来对该卷的写操作。例如,与用户可以取消或释放只读状态的Microsoft Office环境截然不同,WORM状态在任何情况下都不可被用户、管理员或其他人撤销,由此保持了WORM数据的完整性。

最后在步骤308,WORM卷现在是在线且可被客户机访问的。WORM功能处于运行中和生效状态,并且它施加的限制已存在。在一个实施例中,这些限制可以包括:

1.WORM禁止卷破坏命令-在一个说明性实施例中,允许WORM卷破坏,由此WORM卷是不可变的。但是,存在如下所述的保留期的情况下可设想,在驻留在该卷上的所有保留期到期之后,卷可以受到破坏。

2.WORM禁止从抽点转储进行WORM卷或其一部分的常规复原-防止从更早的时间点映像进行不当重构,该不当重构除去该时间点之后后来对已提交的文件和WORM文件的修改。

应该注意,本文所描述的WORM原理可以应用于至少两种不同的场合,一种是其中管理员是不被信任的限制更严的场合(政府监管的场合),并且一种是基于信任的管理员或“企业”模型建立的场合。在企业模型的情况中,可以提供特定企业WORM卷,其中存在可以执行在限制更严的模型(限制更严的监管卷中)下禁止的某些操作的灵活性。例如,文件企业卷可以允许从PCPI复原、破坏卷和设置最小保留期的灵活性。

3.许可(NFS中的设置属性命令“SETATTR”)(CIFS中的设置文件信息“TRANS2_SET_FILE_INFORMATION”命令)要求如果将文件从初始非只读状态设为“只读”,则卷内的任何文件(或数据容器)应该是WORM文件-文件系统层从它们各自的协议中提取所有许可,以使WORM状态被分配给经历该非只读到只读转变的文件。

4.修改文件状态的卷内的任何WORM文件修改(例如写、重命名、删除(受限于如下的保留日期)、文件属性更改等),包括日期时间戳的尝试修改、只读状态等都是被限制的。如果请求文件访问/修改,则在允许修改之前,文件系统首先检查该卷的WORM状态,然后检查目标文件的单独WORM状态(如下文所述)。如果该文件是WORM,则限制修改,并且文件服务器返回拒绝该修改请求的适合文件错误消息,如“只读”或“访问被拒绝”。如下文所述,就保留日期的WORM文件的创建和处理来说,保留日期的设置采用在提交之前设置的上次访问时间属性字段。该设置值用于跟踪特定文件的保留期。当到期时,可以解锁其他属性、如删除特定到期文件,从而为此目的允许有限的访问。

更确切地来说,在示范CIFS环境中,常规文件属性可以包括:隐藏文件标记、只读标记、归档标记(在执行备份之前但在写到文件之后设置)、创建时间戳、修改时间戳、访问时间戳、访问控制列表(ACL)和NT流。这些属性通常被锁定,以防止修改,其中此类修改可能会允许对文件的不当更改。

在NFS示例中,锁定的常规文件属性可以包括访问控制和与文件拥有者、组等有关的其他许可。NFSv4具有许多与上述CIFS中那些属性相似的要锁定的属性。

5.在一个实施例中,在WORM卷中不允许目录重命名。这防止目录被改变而可能错放WORM文件。在一个备选实施例中,可设想,只要重命名不错放任何WORM文件,则允许目录重命名,但是在许多实例中,防止WORM卷中目录重命名的基本规则在输入目录重命名命令时因消除检查任何WORM文件在目录树中的位置的需要而降低开销和增加了性能。

6.在存在WORM文件的情况下,不允许目录删除。如图4所示,将WORM文件402提交到WORM卷的目录树400,使之成为不可变且不会被删除或修改。因此,根据常规文件系统语义,无法删除它的目录404和根(以及沿其路径410的任何子目录)。换言之,根据实际所有文件系统中的接受的文件系统规则,如果至少一个未删除的文件存在,则无法删除底层目录。在此类文件系统未明确地启用该规则的情况下,应公开地修改文件系统以限制WORM文件路径的删除。根据该实施例,通常可以删除非WORM目录412和414以及它们各自的文件416和418。注意,给定树中的所有文件的保留期到期,则允许删除这些文件,如下文所述。当删除了树中的所有WORM文件时,则由此允许整个地删除该目录。或者,可使操作系统识别特定目录中的所有WORM文件的到期,由此解锁该目录的整个删除。

D.WORM文件创建

一旦如上所述由管理员创建WORM卷,它就可供所允许的客户机使用。WORM卷允许在遵从上述一般限制的情况下对非WORM文件和目录进行的所有常规卷操作(例如创建目录和文件、对文件写入以及删除目录和文件)。此外,卷允许一次写入WORM文件以及读取或复制WORM文件。WORM文件是整个WORM卷内的专门文件(或数据集/数据容器)。换言之,卷内不是所有文件都一定是WORM文件。WORM文件由客户机和文件服务器应用程序在需要存储或存档必须保持不可变的信息的情况下创建。一个此类应用程序可以是电子邮件归档程序,它基于持续或周期性收集期望的电子邮件记录并将这些记录存储在归档文件中。

在运行众所周知的操作系统(从华盛顿雷蒙德的Microsoft公司处可购得)的客户机示例中,创建文件并将其提交到WORM的过程500在图5中示出。首先在步骤502,客户机添加要将WORM文件存储于其中的WORM卷的网络共享。在一个示例中,该卷可以命名为“drive W”。该驱动器则在向客户机显示的共享驱动器列表中出现。接下来在步骤504中,使用标准的Windows命令将该文件保存到WORM驱动器W。一旦将WORM文件保存或复制到适合的WORM卷,则允许用户输入相关的保留期(步骤505)。下文详细描述输入和处理此类保留期的过程。一般来说,将保留日期输入到该文件的适合属性,由处理文件存储的客户机应用程序以编程方式使用标准Windows应用程序接口(API)来执行,或使用能够设置该文件属性的可用非Windows命令行实用程序来执行。最后,在步骤506,客户机调用“文件属性”对话框,并为驱动器W上的WORM文件设置只读属性。文件服务器的文件系统识别文件从非只读至只读状态的转换,并由此将该文件指定为WORM,以及施加所有上述限制、修改、属性更改。显然,客户机修改只读状态的该文件的任何后续尝试都会被拒绝,并从文件服务器向该客户机返回许可被拒绝消息。以此方式,最后一个步骤506称为将该文件“提交“到WORM状态。对于任何协议,都需要提交步骤来对文件赋予WORM特征。

注意在该说明性实施例中,提交过程不仅与只读文件在WORM卷中的存储相关,而且与该文件在WORM卷内从非只读状态到只读状态的转换相关。不将文件从非只读状态转换到只读的复制实用程序和其他文件创建应用程序可能不会使文件成为WORM。

虽然根据一个说明性实施例的提交过程包括文件属性从非只读到只读状态的转换,但是可设想可以使用其他常规属性的其他转换(如将文件重命名为WORM文件类型)或其他专门属性或元数据的设置来触发提交。或者,将数据或文件存储到存储器中WORM指定的部分或结构(如WORM目录)(或移到其中)可以作为提交的触发操作。

在运行众所周知的操作系统经NFS连接到文件服务器的客户机示例中,图6中的过程600概述了相关联的WORM文件创建和提交步骤。首先在步骤602,使用常规卷安装过程安装WORM卷。可以使用示范命令“mount filer:/vol/volname/worm”。假定示范非只读文件file.txt要以WORM方式存储,则复制该文件(步骤604),并且典型的命令行shell命令是:

cp file.txt/worm

这将文件作为指定的WORM文件复制到卷。一旦将WORM文件保存或复制到适合的WORM卷,则允许用户进入相关的保留期(步骤605)。下文详细描述输入和处理此类保留期的过程。在复制WORM文件并设置任何保留期之后,则必须根据步骤606将其提交到WORM。注意在Unix系统环境中可以通过“touch”命令附带适合的选项来设置文件属性,从而以交互方式设置保留期。可以使用运行在Windows或其他平台中的多种可用的“touch”实用程序来设置该属性。在设置上次访问时间属性的示例中,示范命令是:

touch-a-t<日期><文件>。

然后通过从所有拥有者、组和用户移除所有写许可来实现提交,由此将该文件从非只读转换到只读状态,由此提交到WORM。许可移除的Shell示范命令是:

chmod-w/worm/file.txt。

在常规DOS shell中,提交仅为表达式:

ATTRIB+R<文件名>。

上述每个命令行表达式专门在客户机上的交互式会话中使用。换言之,客户机用户以物理方式输入命令,并等待从文件服务器适合的响应。这些创建和提交过程也可以在程序应用的内部执行。每个众所周知的操作系统(Windows、Unix等)支持基于应用的提交和属性更改功能。将如下功能调用集成在应用中以便实施WORM。注意还可能需要对应用进行其他修改以识别WORM的存在(如对该应用程序的图形用户界面的更改),以便全面实施WORM功能。还可设想仅通过识别并可以采用WORM卷的特定属性和修改的语义的应用来使用WORM卷。作为示例,如下的是用于提交到WORM(例如设置“只读”)的基于Windows的C++(Win32)应用程序接口功能调用:

SetFileAttributes(<文件>,FILE_ATTRIBUTE_READONLY)

同样地,对于基于Unix的系统,应用程序功能调用是:

fchmod(<文件>,0444)

如从上面描述应该清楚的,根据本实施例的WORM卷的创建以及WORM文件(数据容器)的存储需要对开放协议(CIFS、NFS等)的修改最小,以及相似地对使用WORM功能的特定应用的更改也是最小。这是因为新功能的主要部分包含在文件系统层内,并且调整文件系统层以识别对卷创建命令的简单修改,以及先前存在的文件属性转换(即非只读到只读),以便在文件系统层内实施WORM。此外,因为文件系统层与各种开放协议在很大程度上不相关,且将信息传递到具有统一WORM特征的存储层,所以必须在存储操作系统内的存储层或其他层上进行最小修改。

可设想根据一个备选实施例,可以将自动提交功能结合到开放协议中。具体来说,因为CIFS的状态性本质特征,可以实施一个过程来使在关闭创建的WORM文件时提交到WORM。即,协议识别WORM创建对话框,并在关闭文件时开始提交(例如非只读到只读属性更改)。这在无状态性协议、如NFS中较复杂。但是,NFSv4支持多个状态性操作,并可以提供类似于CIFS的自动提交的就绪平台。还可以为其他协议提供文件关闭时自动提交功能。

在另一个备选实施例中,可设想可以对开放协议执行其他修改以适应WORM目录。在一个实施中,仅WORM文件可以具有对WORM目录的访问权。就此而言,设有“worm”文件扩展名,以便允许用户查看具有WORM提交的所有文件。自动提交整个目录的优点在于,在一个事务中,它限制了因提交部分文件可能在提交余下文件之前由于崩溃或其他中断而导致的问题。在最终提交后面的文件时部分提交可能产生不一致性。在又一个备选实施例中,文件的任何部分仅可被写一次。因此,可以采用自动提交机制,其中允许数据追加到现有文件中或填充文件中的任何“空缺”,但是不允许试图修改文件中现有写入的数据。这种所说的“递增WORM提交”给予自身类似WORM日志记录文件的应用,其中文件中的现有记录是WORM,但是新记录可以追加到文件结尾的“未写”空间。

还可设想可以检测WORM卷活动、如卷创建和卷破坏(如果允许的话)、WORM文件写操作等,并通过简单网络管理协议(SNMP)将其记录给管理员。文件管理器可以包括日志或维护文件,并且SNMP可以使用陷阱来检测此活动。以此方式,可以维护所有WORM活动的日志,由此进一步便于实现数据完整性以及例如用于法律实施或内部安全性目的数据访问的维护和审查。

E.镜像和复制考虑

如上文概述,可能需要禁用某些抽点转储复原功能。作为背景知识,图7详细描述异步镜像过程700,其中实时地将WORM卷数据702传送到目的地卷706,如同它是在源WORM卷704上创建并存储的一样。该传送操作一般使用能够支持从源到目的地的高速且实时的数据传输的传输协议(光纤信道、iSCSI等),并且在高速度链路710上进行。本质上,镜像是另一个磁盘阵列,与源同时被填充。因此,无论如何只要输入源卷,也就输入了镜像目的地卷。因为大部分镜像功能是在存储(RAID)层处理,所以很少需要来自源上更高层文件系统的干预。

在使用目的地卷之前,首先在目的地存储系统上创建它。在一个实施例中,在与源相同的文件管理器或文件服务器中通过RAID级自动创建镜像卷或其他结构。在该实例中,它从源将所有WORM功能传送到目的地。创建目的地卷通常是由管理员操作使用适合的卷创建命令来实现。通常,目的地卷作为WORM卷来创建,这要求目的地卷驻留的备份存储系统具有包括WORM功能的文件系统。使用WORM镜像卷进一步保护了存储数据的完整性以及符合安全备份存储的普遍性要求。可能以及有时会期望建立非WORM目的地卷,但是这种卷可能破坏安全备份存储的规则。

因为目的地卷是WORM卷,所以镜像过程中的任何中断都可能是无法挽回的。在中断的情况下,可能需要系统重新初始化镜像,包括将所有存储的记录(即零级传输)传送到新创建的目的地卷。

与本文将描述的其他镜像过程一样,源的WORM本质特征会对灾难情况下从目的地向源重构(例如复原过程)施加限制。因为根据定义,源WORM卷中的WORM文件是不可再写的,修补源卷的优选过程是以镜像的目的地卷替换它。使用目的地对源进行部分重构会被禁止。但是一般来说,这是同步镜像方法中的一个小缺点,因为假设目的地始终包含源的最新数据版本且如果必要的话,可以容易地对源整体交换。

图8示出异步镜像过程800的一个简化示意图。该方法在MichaelL.Federwisch等人的美国专利申请序列号10/100967、标题为“用于确定两个抽点转储中的变化和将变化传送到目的地抽点转储的系统和方法”中有详细描述,通过引用结合于本文。

源卷802的文件系统用于生成源卷数据结构或某些子卷(例如q-tree)的数据结构的时间分离的时间点映像或“抽点转储”(图2中的280)。注意一种此类子卷可以是如上所述的WORM(例如为“.worm”扩展名)目录结构。根据上述结合的引用文献,通过异步抽点转储镜像应用来扫描抽点转储,以基于不同时间取得的抽点转储之间的显著变化来检测文件中的变化。在目的地804上建立适合的WORM卷之后,在格式化的数据流806中通过常规(通常是较低速度的)网络连接810(可以包括众所周知的因特网)来传送这些变化。因为较低速度连接的原因,这些变化一般不是实时发生的变化,而是“异步地”或按周期性时间间隔以松散写方式写入目的地。

为了便于以异步传输方式将数据从源WORM卷802传送到目的地WORM卷,将数据格式转化为元数据序列(在一个实施例中采取信息节点的形式)以及相关联的文件数据。为了使该数据对于目的地文件系统有含义,使用可识别头来格式化数据,其中所述可识别头将数据传输的多个不同部分(例如元数据对文件数据)分离并且告知发生的是哪种类型的数据传输。还提供某些单独的且包括如已删除文件列表的信息的头。图9详细描述了上文引用的Federwisch等人的应用中详细描述的头的简化版本。这种头包含1KB的通用部分、2KB的非通用部分以及1KB的扩充段906。添加到通用部分902的是告知目的地文件系统随后正在数据流中传送WORM卷信息的WORM卷传输标记908。该标记位于头的“公共”部分,以便被开放协议识别。

相似地,如图10所示,流中的每个数据文件1000包含WORM标记位1002。该位结合头信息用于重构目的地WORM卷中的信息节点(元数据),连同有关该信息节点/元数据所指向的文件(或其他数据集/数据容器)的适合WORM状态信息。目的地文件系统的镜像应用用于适合地转换编码的标记。在上文引用的申请中提供有关在目的地卷中构建信息节点所采用过程的更具体详述。

在再一个实施例中,可设想可以采用常规加密和/或认证技术或其他增强安全性措施来增强源和目的地文件服务器之间的安全性,以便在源和目的地之间建立信任关系。在这种实施中,可设想可以在安全的前提下采用有时视为非期望的某些复原功能。

F.设置和采用保留日期

如参考图5和6中WORM文件创建所描述的,可以结合WORM文件(或其他数据集/数据容器)来设置保留期。将文件提交到WORM之前,该保留期基本设置文件属性,以在适合的保留期期间使系统观察WORM文件的上述的所有WORM特性(禁止删除、修改等),但是在该期限到期之后允许用户对现在到期的WORM文件执行有限的一组非WORM操作。即可以从WORM卷中删除到期的WORM文件,由此释放空间以供新存储之用。

图11示出结合WORM文件用于设置保留期(期限过去之后的有效日期/时间称为“保留日期”)的概括性过程1100。打算存储为WORM的文件最初创建或复制到WORM卷(步骤1102),通常如步骤504(对应于系统)和/或步骤604(对应于示范系统)中所描述的。管理员或用户以交互方式使用上述基于客户机的界面或其他实用程序设置保留日期,或基于预定规则用适合的应用程序来设置该日期(步骤1104)。实用程序判断保留期是否落在可接受的范围内。如上所述,可以基于给定属性中可用的比特量来限制该期限。此外,还可以指定最小保留日期。假定该期限落在可接受的范围内,则接受该期限(判断步骤1105)。否则,可以拒绝该期限并且系统返回无效值错误码。如果用户或管理员选择无期限或该期限是无效的,则实用程序将此解释为缺省值保留期(步骤1110)。该缺省值的本质特征可以取决于多种因素。例如,在WORM卷基于具有相对信任的管理员的“企业”模型的情况中,缺省值可以根据需要设为随意定义的值或无限值或零(无保留期)。相似地,在缺省值基于严格监管的体制的情况中,可以有适用的规则和实践定义作为在缺省情况下赋予文件的最小或无限保留期。注意在定义无限值的情况中,将特定比特码写入特性或属性中,以表示无限保留期、如零。

注意在某些WORM监管体制中,可以指定最小保留日期。由此,不是设置无限日期,如果用户没有提供日期的话,则可以指定有限最小缺省保留日期。这还可以取决于存储文件的WORM卷的本质特质。在无有效保留日期且系统缺省为最小保留期的情况下,一些卷可以设为监管的或“政府法规的”缺省设置。与之相对,一些卷可以被设置为其中管理员是被信任的“企业”缺省环境,并且在指定保留日期上规则提供更大的宽松灵活度。在此实例中,保留日期的缺失可以视为基于管理该特定企业WORM卷的规则来指定不确定的日期或特定有限日期。

接收到有效保留期值(或无期限)之后,过程1100查询元数据文件属性或特性以确定有关该文件的上次修改时间(步骤1106)。在一个实施例中,使用上次修改日期作为计算保留日期的基本数据。一旦将文件提交到WORM,则固定上次修改的日期-只要给定将只读的WORM卷识别为WORM,在提交之后该文件就无法修改。在步骤1106,提交之前查询的上次修改时间是文件的创建或复制时间。上次修改的数据仅仅是计算保留日期的一个可能基础。在备选实施例中,可以采用视为可靠的多种其他基本时间值(如规范时钟279或另一个信任的时钟(例如客户机时钟)的直接查询结果)。

接收到有效非无限保留期之后,过程则尝试确保期限在将来足够远的时间以将时钟偏移和可能影响按规范时钟279报告时间的其他因素纳入考虑(图2)。根据判断步骤1108,保留期必须设为上次修改时间之后的最小将来时间值(例如将来的一天或两天)。否则,系统假定将应用缺省保留期(步骤1110)。

一旦选择了保留期(有限或无限的),过程1100计算要观察的时间值以确定要从WORM释放文件的日期(步骤1112)。这要求将保留期时间(例如“保留文件10年”)加上上次修改时间,并由此推导该文件的将来释放日期。

然后将该计算的保留日期/时间值应用于该文件的上次访问时间特性或属性(步骤1114)。该属性也几乎很少用于WORM场合,并且甚至在非WORM场合,也并不是特别重要的。例如,在环境中,每次引导系统时访问大多数文件,这使该属性对于给定文件的实际“访问”提供不了多少信息。因此,上次访问时间特性/属性被WORM实用程序用作存储关键保留日期比特码的载体(如果有的话)。

将保留日期应用于上次访问时间字段之后,现在就可以使文件不可变。因此如上所述地设置只读属性,从而使WORM实用程序拒绝对该文件的任何后续修改。同样地,固定了文件的包括上次访问时间的属性/特性。以此方式,将来保留日期被固定在上次访问时间字段中,并且不可变。

存在必须在最初设置保留期之后延长保留期的情况。例如,如果趋近到期的文件或记录成为研究的主体,可能需要不确定地将其保留超过正常到期日期。因此,WORM实用程序包括支持对已提交WORM文件的特性的有限修改,以考虑保留期的延长。图12详细描述了保留日期/时间延长过程1200。用户或管理员通常发出延长特定文件的保留期的请求(步骤1202)。与保留日期的初始设置一样,延长期限日期必须落在上次访问时间字段支持的值内。如果这样的话,则过程查询上次访问时间以检索现有字段值(步骤1204)。

判断步骤1206验证所请求的日期或期限是否是在比现有日期更远的将来。如果不是,则拒绝延长日期的请求。相反,如果请求为了获得将来超前足够远的延长期,则计算新延长的保留日期/时间(步骤1212)。计算可采用多种方式进行。例如,延长的数据可以基于创建时间或上次修改时间,其中将新的延长期限加上这些值。或者,可以通过加上上次访问时间值(当前保留日期/时间)来计算延长的保留日期,并加上新延长的期限来计算新延长的保留日期/时间。在上述任何一个示例中,如果延长的期限是无限的,则计算不确定的保留期的适合表示。注意,一旦使期限是不确定或永久的,则无法在稍后缩减它(根据步骤1206、1208和1210)。最后在步骤1214,WORM实用程序超越对主体WORM文件的任何修改的正常禁止,并允许对上次访问时间特性进行有限盖写以包括新计算的延长的保留日期值(或不确定的保留指示符)。

如本文所论述的,某些较旧的开放协议、如常用的NFSv2和v3使用被解释为自1970年1月1日(例如“时间0”)起的秒数的32位时间格式。如果解释为无符号值,则此表达式提供至2016年2月7日的上次访问时间。但是一些操作系统将该时间值解释为有符号32位整数,它将日期范围限制到有效的31位值,并对时间值施加2038年1月18日的上限。因此虽然将来实施将毫无疑问地全部支持实际无限的日期范围(如CIFS和NFSv4),但是当前的实施必须考虑到在某些文件的长期存储中不可接受的某种日期范围的有限上限。

因此,为了支持记录保留日期的延长的范围,假定当前仅识别31位有符号值,WORM实用程序用于将某些日期值重新映射到随意时间偏移领域。以此方式,为WORM实用程序提供一种新的且更当代的例如2003年1月1日的基准时间或历元(新时间0)。但是,不将整个时间范围偏移到该新基准,而是WORM实用程序解释(参见图13的基准1300)2003年1月1日之前的上次访问时间不同于2003年1月1日之后的那些。以此方式,落在新时间零和2038年1月18日(旧的上限)之间的所有保留日期保留为标准值(31位日期范围1)。但是,因为是在新时间零之前的时间的任何上次访问时间值将落在WORM系统的有效日期之前,所以这些日期被重新解释或绕回(箭头1301)为2038年1月18日于2071年1月1日之间的日期上限范围(31位日期范围2)。两个31位日期范围(新时间0之前和新时间0之后)提供了至新的示范上限2071年1月1日的整个32位保留日期范围1302。

显然,可以采用多种用于时间值的有限位范围的解决方案。此外在可以将足够长的时间值应用于上次访问属性的情况中,无需时间重新映射技术。

为了跟踪时间值以便可以在适合的到期日期/时间释放WORM文件,向存储操作系统提供安全规范时钟279(图2)。该规范时钟与存储操作系统各个不同方面以及WORM实用程序交互,以生成可靠的目标为在典型保留期上提供期望的保留日期的时间值。

图14中示出根据说明性实施例的示范规范时钟279。该时钟通常实施为软件而非硬件机制。该时钟包括时间值发生器1402,它从规则计划且持续的文件管理器事件1404、如一致性点操作(CP)接收一致的脉冲。该发生器1402具有将CP或其他事件转换为基于时间的值的换算功能。例如每11秒发生一个CP,则时钟将每个CP转换成在时基上超前11秒。发生器1402中的计数器保持事件的运行总数,据此产生行进日期/时间值1410,并将其输出到WORM实用程序以及系统的其他感兴趣的组件。发生器接收它的基准时间值(例如时间0),并可以将其总运行时间存储在适合的存储单元中。实际上,可以使用相关联的WORM卷上的例如不可删除WORM文件1414中的例如磁盘上记录,以周期性地将时间记忆提交到永久存储装置。一般来说,这还意味着规范时钟经过WORM卷,而非底层文件管理器。在系统崩溃、故障或更换/升级文件管理器的情况中访问该文件。因此,在文件管理器引导时,读取每个WORM卷的时钟文件,以及作为附加安全性措施,选择最早的时钟时间作为其WORM操作中文件管理器的总规范时钟的值。在部署新文件管理器的情况中,这可能比用于特定WORM卷的先前型号具有更快的周期时间,更新规范时钟发生器1402以将时基中的此变化纳入考虑,并从文件1414加载逝去的时间计数以重新开始计数,其中新的标度仍输出期望的精确时间计数。

虽然系统关机时间和其他因素可能导致规范时钟的报告时间与实际时间(例如格林威治时间和日期)有偏差或时滞,但是可以通过将规范时钟与另一个时钟、如文件管理器的系统时钟相互作用来解决这种偏差/时滞。如图14所示,规范时钟279可以设有从常规系统硬件/软件系统时钟(另一个通常信任的时钟)1416的输入,据此可以将其报告的时间与有嫌疑的实际时间比较。该比较同时可以基于绝对方式(例如当前报告的日期/时间对系统报告的日期/时间)以及基于时间的相对经过(例如系统时钟逝去的秒数对规范时钟逝去的秒数)。假定在大多数部署中,硬件系统时钟实际会同步到有效的真实时间源。为了减少规范时钟相对于硬件系统时钟的时滞,规范时钟执行所描述的周期性事件的递增计数(例如CP),但是也按严格限定的速率向硬件系统时钟时间“漂移”。该“限定的漂移”允许规范时钟跟踪或锁定系统硬件时钟时间以抵消长时间期间上时钟时滞的累计。即使管理员向前调整时钟例如10年,以便提前删除WORM记录,限定的漂移速率1418仍确保规范时钟缓慢向该新时间漂移,以便使该破坏尝试失效。作为示例,如果每年仅±1000秒的可容许漂移速率被允许(即规范时钟可以在1年期间向后或向前按不多于1000秒“漂移”),则即使系统时钟被(错误地)设置超前1年,规范时钟仍可以花数百年时间来时滞1年。

作为另一个安全性措施,如果系统时钟与规范时钟的比较值足够失去同步,则可以向管理员或监控人员/监管部门发出警报。此外,还可以将所有警报记录到与该卷和时钟文件相关联的永久/WORM存储装置。给定这种警报的情况下,可以采取按权限的适合操作而且,在警报期间,还可以禁用对文件的任何删除或修改。根据说明性实施例,上述功能特征的每一个均增强规范时钟的相对防篡改本质特征。相似地,安全的硬件时钟或信任的第三方(例如基于政府的)时钟也可以提供高度的防篡改功能。

虽然上面描述了示范规范时钟,但是可设想多种包括外部、内部或内部和外部时间保持过程的组合的机制和技术。例如,可以采用外部主时钟,例如通过网络互连的基于政府的原子时钟。

当客户机尝试人工删除给定文件或适合的应用守护进程扫描卷以查找并删除文件时,系统必须判断给定文件的保留日期是否已到期并且是否允许对该文件的删除。图15示出检查WORM保留日期的概况过程,以及适合时允许从到期文件中有限地解锁WORM状态。

根据步骤1502,用户或管理员请求对主体WORM文件的操作(如删除)或应用守护扫描文件以进行可能的删除。就此而言,WORM实用程序查询该主体文件的上次访问时间属性。将其存储,并查询规范时钟以获取信任的日期/时间(步骤1504)。

根据判断步骤1506,如果保留日期大于或等于时钟日期(或在后续时滞保护的时钟日期之后的某个最小将来日期),则阻止请求者对该文件采取任何操作(步骤1508)。自然,在设置不确定保留日期的情况中,它从不小于时钟日期,并且实用程序从不允许操作。

与之相对,在保留日期小于或等于规范时钟日期(或时钟日期加“安全”容限)的情况中,判断步骤1506分支到步骤1510,并且允许用户或管理员对该文件采取有限的操作或自动采取操作。在一个说明性实施例中,该操作通常仅限于从卷删除文件,但是对于企业模型WORM实施来说,可以允许其他文件处理操作。以此方式,仍可以防止在保持文件完整性时篡改文件的完整性的其他操作。通常保留将文件提交到WORM的只读属性,同时结合到期日期允许返回删除的有限文件许可。由此该实用程序仅对到期的WORM文件给予删除许可。

如上所述,客户机可以通过应用守护或类似实用程序的操作来实施对到期保留日期文件的自动删除。一般来说,使用规范或信任的时钟来为保留日期的到期提供可靠的参考使自动删除过程易于实施。即,可以基于卷的周期性扫描(参见步骤1502)来查找到期文件-那些保留日期大于或等于信任的时钟时间的文件从而以“自动”方式进行删除。就此而言,可以将最近信任的时钟时间存储在系统存储器中并将其与每个文件中的时间比较以查找到期的文件。或者,可以读取每个文件的保留日期,并可以检索和比较当前时钟时间。可以在确认到期之后即对每个文件进行删除,或可以通过扫描来标识所有到期文件,之后以批处理过程删除。然后由应用程序使用适合的文件管理脚本删除这些文件。虽然本文所描述的守护通常运行在客户机上,但是可明确设想在客户机端、文件服务器端或二者上实施基于信任的时钟的自动删除过程。

注意在一个备选实施例中,本文所描述的WORM文件或文件服务器可以实施为多协议存储装置,并且驻留的存储操作系统可以实施为具有虚拟化模块的虚拟化系统,该虚拟化模块实施为虚拟磁盘(“vdisk”)模块和SCSI目标模块(未示出)。Vdisk模块层叠于文件系统250上,以允许响应系统管理员向多协议存储装置发出的命令而通过管理界面、如流线型用户界面(UI)的访问。本质上,vdisk模块其中通过实施系统管理员通过UI发出的广泛的vdisk逻辑单元编号(lun)命令集来管理SAN部署。将这些vdisk命令转换为原始文件系统操作(“原始”),这些操作与文件系统250和SCSI目标模块交互来实施vdisk。该多协议存储装置布局在共同拥有的美国专利申请序列号10/216453、标题为“通过将虚拟磁盘对象层叠于文件系统上来实现存储虚拟化(STORAGE VIRTUALIZATION BY LAYERINGVIRTUAL DISK OBJECTS ON A FILE SYSTEM)”中有进一步详细的描述,其原理通过引用明确地结合于本文。因为可以将lun在存储系统中表示为文件,所以明确地可设想将WORM状态归属于文件并允许它具有设置保留日期的多种许可和属性可以被应用于lun结构。

注意,虽然通常使用开放协议来实施WORM和本说明性实施例的保留日期功能,但是明确可设想可以使用专有协议或开放协议的显著修改版本、如专有API来实施本发明的多种WORM功能特征。例如,在一个备选实施例中,可以使用专有API来实施保留日期。可以如上所述地将它们与信任的或规范时钟进行组合来确保可靠的保留和防篡改操作。此外,当如上所述结合信任的时钟使用时,明确地可设想术语“存储系统”可以包括如上面描述的内容可寻址存储系统(CAS)。这种信任的时钟可以增强这些类型存储系统的可靠性和防篡改操作。

前文是本发明的一些说明性实施例的详细描述。在不背离本发明精神和范围的前提下可以对本发明进行多种修改和添加。例如,虽然一个说明性实施例中与每个数据容器、数据集或文件相关联的保留日期/时间值是在上次访问属性字段内提供的,但是明确地可设想可以将该值应用于与容器、数据集或文件相关联的任何特性、属性或其他数据,以在保留日期/时间值存储在WORM期间不可变且不与容器、数据集或文件的管理和处理相干扰。此外,虽然根据一个说明性实施例通过查询上次修改日期并将保留期添加于其中来设置或延长文件的保留日期/时间,但是可以使用多种基准时间值来计算保留日期/时间,例如检索来自规范时钟或另一个信任的时间源的基准时间。同样地,这些服务器或它们各自的存储阵列、客户机以及它们的网络连接和协议的内部结构全部都是高度可变的。在各种源和目的地服务器上使用的操作系统可以有所不同。此外,明确地可设想本文所描述的任何操作和过程可以使用硬件、软件(包括具有在计算机上执行的程序指令的计算机可读媒体)或硬件与软件的组合来实施。因此,本描述意味着仅作为示例,而不在其他方面限定本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号