用于数据备份的方法和系统的制作方法

文档序号:6569595阅读:172来源:国知局
专利名称:用于数据备份的方法和系统的制作方法
技术领域
本发明涉及数据备份和数据存档,尤其涉及基于Web服务的数据 备份和数据存档,其允许私人和商业计算机用户通过基于Web服务的 应用在远程数据存储机构上备份和存档数据,包括数据文件。
背景技术
仅仅在30年前,大量的私人、小企业、甚至是中等大小的企业在
档案拒内的索引文件夹中的表单上存储个人和涉及商业的数据。在20 世纪70和80年代,基于微机的文字处理系统以及随后的个人计算机 得到广泛的应用,并且电子数据存储相对快地代替了存储在档案根中 的手写及打字纸。然而,在多种情况下,由于早期的大容量存储设备 和计算机系统的较小容量和缺乏鲁棒性,限制了其存储数据备份和存
档数据的使用,电子数据存储在软盘上,接着软盘被编制索引并存储 在像档案拒的盒子中。数据备份和存档数据需要被可靠地存储相对长 的时间。通常,可能永远不会需要备份和存档数据,但是,在需要重 新获得备份或存档数据以便随后使用的情况下,能够重新获得备份或 存档数据的能力会对商业组织产生重要的后果,在某些情况下甚至是 决定性的后果。
随着个人计算机和商业计算机系统的不断改进以及计算机增长的 价格性能,数据备份和数据存档目前通常存储在网络计算机系统可以访问的大容量存储设备中。

图1显示了在小企业环境中进行数据备份 和数据存档的选择。通常,雇员或者小企业主在雇员或者小企业主的
个人计算机102上执行大部分与数据有关的任务。在购买个人计算机 时通常附有多个磁盘驱动器,其允许在单个计算机系统内的包括完全 磁盘镜像的冗余数据备份以及冗余数据存档。然而,小企业通常釆用 由个人计算机和一个或多个服务器104組成的网络系统,其具有较高 容量以及较高可用性和容错性的数据存储子系统。在这种环境下,主 要使用PC 102的雇员或者企业主能够通过网络访问其它PC 106和 108或者集中服务器104,其中除了在雇员或者企业主自身的PC102 内的本地备份或存档以外,服务器104还存储备份数据和存档数据。 相似的,家庭用户可以在他们的PC上具有多个磁盘驱动器,并且通 常具有连网的多PC系统,该系统允许在两个或多个网络计算机上存 储备份数据和存档数据。此外,在图l所示的小系统中,数据可以被 备份和存档在可写CD或者DVD、磁带、或者其它类型的物理存储介 质上,并且CD、 DVD或者磁带可以被存储在远程位置。再次,然而, 这种实践取决于定期进行的备份和存档、管理远程存储的信息、以及 常常被忘记或者推迟的其它手动任务。
不幸的是,个人和企业计算机的当前趋势和发展试图在小的计算机 系统,例如在图1所示的小计算机系统上进行数据备份和数据存档, 效率低并且很危险。由于应用和运行应用的计算机系统一直在变得更 大并且更加有能力,日常产生的并且需要被个人和小企业用户备份和 存档的电子数据的数量快速增加。此外,由于计算机系统的增加的价 格性能以及大量应用的增加的可用性,更多的行为和任务变为自动, 家庭和小企业计算机用户产生了需要被备份和存档的多种类型的电子 数据。新的规则和条例需要小企业在相对较长的时间保持可靠的备份 数据。例如,某些新法规需要电子的、可靠的医疗记录,并且其它新 法规需要可靠地电子存储电子邮件以及在处理证券交易的公司中与证 券有关的其他信息。这些法规和条例导致了巨大的额外的数据备份和 数据存档开销。数据备份和数据存档在家庭用户和小企业方面需要不断的努力和技术理解。家庭用户和小企业通常缺乏为有效地备份和存
能恢复所需要的专门技能、时间以及警惕性。尽管计算机销售商、操 作系统销售商以及其它硬件、软件和服务提供商已经取得了进展,但 有效率的,用户友好的数据备份和数据存档可能需要使多种不同部件 相互接口,而且很多接口既不在时间上稳定也不容易建立和管理。可 靠的数据备份和数据存档需要把数据存储在两个或多个地理上的远程 位置以防止单个站点上的突难性的数据丢失。例如,即使当以三重或 四重冗余方式对小企业的数据进行备份和存档时,火、洪水、或地震 可以容易的导致所有冗余存储的数据丢失或不能恢复。把数据备份和 存档到地理上的远程数据存储机构通常超出了家庭用户和小企业的技 术和经济能力。最后,即使在家庭用户和小企业能够产生和管理可靠 和有效的数据备份和存档系统的情况下,对于家庭用户和小企业来说 保护备份和存档数据不被无意的或者恶意的未授权的访问是非常困难 的。该数据通常被黑客、商业竟争者以及诈骗集团和組织访问。由于 所有这些原因,家庭用户、小企业以及甚至是中等大小的企业和较大 的组织都认识到对于用户友好、可靠和经济有效的数据备份和数据存 储服务的需要。

发明内容
本发明的实施例涉及基于Web服务的数据备份和数据存档应用, 这些应用向需要可靠、安全、地理远程以及经济有效的数据备份、数 据存档以及备份和存档数据检索的私人、小企业和其它组织提供远程 数据备份和数据存档。在本发明的一个实施例中,私人和小企业客户 与服务提供商签约数据备份和数据存档服务。服务提供商接着与远程 数据存储机构签约以向个人或小企业客户提供安全、可靠的数据备份 和数据存档。客户侧应用被下载到客户计算机并且被配置为允许客户 将本地加密的数据存储在远程数据存储机构处。服务提供商和数据存 储机构都不能解密或者以其他方式访问客户所存储的信息。此外,客户用来加密供远程存储的数据的加密密钥被安全地存储在远程数据存 储机构,以便在客户遭受本地计算机系统的破坏或丢失时供客户随后 恢复。然而,客户加密密钥以双重加密的方式存储,防止客户加密密 钥被服务提供商或者数据存储设备访问。本发明的某些实施例还向远 程存储的加密数据提供了本地索引以及对已经远程存储的数据的更新 的有效存储。
附图简介
图1示意了小企业中的数据备份和数据存档的选项。
图2显示了家庭环境或者小企业环境中的P C用户可用的额外资源。
图3使用图1示意的现有技术图示了对于家庭用户、小企业用户或 者PC或其它小计算机系统的其它用户可用的备份和存档资源。
图4示意了由运行在远程数据存储机构上的基于Web服务的数据 仓库应用的一个实施例提供的两个Web服务接口 。
图5示意了支持本发明的各种实施例的一种可能的高级硬件配置。
图6A-F示意了代表本发明的一个实施例的基于Web服务的数据 备份和数据存档服务的 一个方面。
图7A-B示意了客户和合作服务提供商之间签约基于Web服务的 数据备份和数据存档服务以及初始配置客户的交互过程。
图8是一个简单的流控制程序,其示意了关于图6A-F所讨论的, 为了安全地在数据仓库内存储数据所调用的客户侧操作。
图9示意了由涉及代表客户存储文件的数据仓库应用执行的的操作。
图10简要示出了代表本发明一个实施例的备份、恢复和存档系统 的客户侧和服务器侧部分。
图11简要示出了代表本发明一个实施例的备份、恢复和存档系统 的服务器侧部分的单服务器实施方式。
图12示意了代表本发明的替代实施例的复杂的、复制的备份、恢复和存档系统。
图13A-C图示了在图10中简要示出的备份、恢复和存档系统内的 基本功能。
图14A-D示意了通过文件和文件类对象的主服务过程(图13A的 1314)产生相应的文件签名和加密数据块的处理。
图15A-E图示了根据本发明的实施例的文件实例。
图16概迷了存储在代表本发明一个实施例的备份、恢复和存档系 统的服务器侧部分和客户侧部分上的,关于备份、恢复和存档系统监 视和连续备份的客户设备上的每个文件的信息。
图17A-B示意了根据本发明的一个实施例由为文件存储的文件签 名历史和数据块历史来构造文件的具体实例的逻辑操作。
图18A-B示意了才艮据本发明的实施例的版本历史截断。
图19A-B示意了在代表本发明一个实施例的备份、恢复和存档系 统内的与安全有关的实体和操作。
图19C示意了在客户无意间删除或丢失文件加密密钥的情况下, 客户设备重新获得文件加密密钥的过程。
图19D示意了客户凭证帮助实现的客户设备和服务器之间的安全 通信。
图20A-C提供了一种类型的控制流程图,其图示了客户的初始化, 从而客户可以与代表本发明实施例的备份-恢复-存档系统的服务器侧
部分进行完全安全的请求和数据交换。
图21简要图示了由代表本发明一个实施例的备份、恢复和存档系 统的服务器侧的永久存储部分实现的块存储。
图22示意了差异备份。
图23示意了差异恢复。
图24A-B提供了由代表本发明一个实施例的备份、恢复和存档系 统的客户侧上的主服务过程完成的备份过程的流程图。
图25是控制流程图,图示了根据本发明的一个实施例由在客户设 备上运行的主服务过程完成的恢复操作。发明的详细说明
本发明的实施例涉及基于Web服务的数据备份和数据存档应用。 如上所述,尽管电子数据备份和数据存档现在通常被家庭用户和小企 业使用,随着数据产生以及可靠数据备份和存档的需要的增加,对可 靠、安全以及地理远程数据备份和数据存档的需要持续增长。
如上所述,参考图1,家庭环境或者小企业环境中的PC用户可以 访问位于家庭环境或者小企业环境中的本地PC以及远程PC以及位 于商业环境中的服务器上的硬件和软件资源。再次,然而,如参考图 1的上述说明,网络家庭计算机系统和小企业系统不能满足数据备份 和存档需求。
如图2所示,PC用户除了访问本地硬件和软件资源以及局域网上 可用的硬件和软件资源之外,可以通过在本地PC上执行的网络浏览 器204以及因特网服务提供商提供的因特网访问,从全世界访问大量 的HTML编码信息和基于因特网的服务202。不幸地,尽管PC用户 可以通过因特网访问数千万页的信息,并且可以为了购买和接收各种 商品和服务在因特网上进行零售交易和商业对商业交易,目前申请者 并不知道为了备份和存档的目的,允许用户连续的、安全的并且透明 的通过因特网向远程数据存储机构上传数据文件和其它文件,同时并 不向远程数据存储机构、黑客和通过因特网可能截取信息传输的人暴 露潜在的凭证信息(包括文件名和其它文件属性)的方法。
目前正在发展通过因特网进行的应用到应用交互的新的标准。形成 标准的收集被称为"Web服务"。Web服务可以,皮认为是基于HTTP 或者基于HTTPS以及基于XML的协议,该协议定义了特定类型的操 作或者与特定端口相关的事务,该特定端口目前包括端口 80和443。 例如,可以定义Web服务协议以允许运行在客户计算机上的特定的应 用与基于服务器的应用交互从而执行特定的,定义的任务。基于Web 服务的应用可以包括客户侧和服务器侧,成对的应用,用于编码和传 输医疗信息。另一基于Web服务的应用可以允许同时发生的音频和视频信息在两个对等的PC之间传输并且递交从而进行广播和显示以允 许通过因特网相互连接两个PC进行通信的用户和用户组之间进行视 频会议。web浏览器和因特网访问家庭用户和计算机系统的小企业用 户的当前可用性,以及基于Web服务的应用的出现,以及当前认识到 的对可靠、安全和经济有效地在远程数据存数设备上进行数据备份和 数据存档服务的需要激发了本发明的不同实施例。这些实施例直接涉 及基于Web服务的数据备份和数据存档服务,其允许私人、小企业雇 员或者PC或小计算机系统的其它用户容易地并且经济有效地通过基 于Web服务的应用经因特网把备份和存档的数据发送到远程数据存 储机构并且如果需要,从远程数据存储机构重新获得备份和存档的数 据。
图3使用图1示意的现有技术图示了对于家庭用户、小企业用户或 者PC或其它小计算机系统的其它用户可用的备份和存档资源。如参 考图1所述,家庭环境、小企业环境或者可以产生数据并且产生的数 据需要被可靠的备份和存档的其它环境内的PC102或者其它小计算 机系统的用户可以采用本地大容量存储设备、其它硬件和软件在本地 PC102内进行冗余的数据备份和存档、可以在远程的,网络PC106和 108上进行数据备份和存档、可以在集中的服务器或者其它大型计算 机资源104上备份和存档数据、并且根据本发明,可以釆用数据备份 和数据存档,基于Web服务的服务402把数据备份和存档到支持数据 备份和数据存档Web服务的远程数据存储机构。可以直接通过运行在 本地PC102上的数据备份和数据存档客户侧应用直接访问Web服务, 或者可以通过集中的计算资源104或者通过远程PC106和108非直接 地访问数据备份和数据存档Web服务。
数据备份和数据存档Web服务,与任何Web服务相似,可以被看 作是操作、远程过程呼叫、或者共同构成定义的Web服务的其它功能 接口的收集。在本发明的各种实施例中,远程数据存储机构实施数据 库,对运行在客户侧的数据库应用提供第一 Web服务接口并且对合作 的服务提供商提供第二Web服务接口,其中通过合作服务提供商,远程数据存储机构提供签约数据备份和数据存档服务图4示意了由运行 在远程数据存储机构上的基于Web服务的数据仓库应用的一个实施 例提供的两个Web服务接口。数据库应用向客户计算机提供了第一 Web服务接口,其中客户计算机包括分离的协议,允许客户重新获得 客户存储在远程数据存储机构上的一组文件402、准备重新获得存储 在远程数据存储机构上的文件的请求404、实际的重新获得向数据存 储设备请求重新获得的文件406、准备把文件上传到远程数据存储机 构进行存储的请求408、以及实际的把文件上传到远程数据存储机构 进行存储410。在一个实施例中,基于数据库web的应用向第三方, 即合作服务提供商提供了合作接口 ,允许合作服务提供商从数据库应 用获得设备使用信息412、列出了数据库应用通过合作服务提供商为 客户配置的设备414、禁止通过合作服务提供商为客户配置的设备 416、使能通过合作服务提供商为客户配置的设备418、移出通过合作 服务提供商为客户配置的设备420、以及为合作服务提供商的客户创 作新的设备422。在可替代实施例中,可以通过第一和第二基于数据 库web的接口提供额外的功能,并且在另一实施例中,可以提供协议 以及相关操作、远程过程呼叫或者其它功能接口的不同收集。在某些 实施例中,基于Web服务的数据备份和数据存档服务可以通过远程数 据存储机构直接提供到客户,不需要合作服务提供商。
图5示意了支持本发明的各种实施例的一种可能的高级硬件配置。 在图5中,客户计算机502在操作系统506的顶部运行客户侧数据备 份和数据存档应用504,其中操作系统506包括对基于因特网通信508 的支持。操作系统506支持TCP/IP协议512顶部的HTTPS510,其 位于一个或多个设备驱动特定协议514上部,特定协议514把数据通 过内部总线传输到设备驱动516,设备驱动516把电子消息发送到支
协议的远程计算机接收电子消息。合作数据备份和数据存档应用520 运行在合作服务提供商的计算机522上。如上面所讨论的,在本发明 的特定实施例中,客户签约合作服务提供商进行数据备份和数据存档服务。 一旦建立服务,则客户直接与远程数据存储机构524进行通信 来存储和重新获得数据。远程数据存储机构524,在特定实施例,包 括两个或多个地理上分离的计算机系统526和528,每一个都运行数 据库应用520,其中数据库应用520如参考图4所讨论的,向客户计 算机提供第一 Web服务接口并且向合作服务提供商提供第二 Web服 务接口 。远程数据存储机构包括冗余的文件存储和数据库系统532和 534,它们都可以在地理上与两个或多个、地理上分离的远程数据存储 机构计算机526和528相关,或者还可以在地理上远离远程数据存储 机构计算机526和528以及远离合作服务提供商522以及客户502。
图6A-F示意了代表本发明一个实施例的基于Web服务的数据备 份和数据存档服务的一个方面。图6A-F采用了基于Web服务的,数 据备份和数据存档服务的特征的象征表示。图6A显示了客户602和 数据库604。如上所述,客户602是运行在客户侧计算机上的基于客 户侧Web服务的,数据备份和数据存档服务应用,并且数据库604 是运行在一个或多个远程数据存储机构计算机上的基于Web服务的 数据库应用。由Web服务应用提供到客户的文件存储操作,提供了通 常以文件的形式从客户传输到数据库进行保存的数据传输。首先,客 户具有期望被备份和存档到数据库的纯文本文件606。客户还保持仅 仅客户可以访问的加密密钥608。客户已经通过合作服务提供商签约 了数据备份和数据存档服务,并且已经被配置了数据存储操作。作为 配置的一部分,客户已经被数据库分配了设备。换言之,从数据库的 角度来看,客户是具有设备标识符的远程设备。数据库存储由远程设 备加密并且由远程设备610发送到数据库的文件。这些文件与文件ID , 例如文件ID612相关,从而当客户请求时,允许数据库稍后重新获得 并返回存储的加密的文件。
数据库因此提供类似戏院、汽车站或者其它服务提供商提供的服装 检查服务的逻辑服务。消费者可以检查一个或多个项目并且接收关于 该项目的识别标签。服务提供商把具有匹配的标识号码的标签附加到 存储的项目。之后,消费者可以通过提出标签重新获得一个或多个服装项目,然后服务提供商匹配存储的服装。在图6A-F中,存储的加 密文件被象征性的标识为具有附加的识别标签的服装架的服装项目, 以强调上述类似,尽管,事实上,文件被电性存储在文件服务器,或 者存储在某些其它文件存储设备。
数据库还包括安全数据库614,可以假设用于银行或者零售建立的 安全目的。数据库的一个功能是安全的存储客户加密密钥616的不可 访问的复本。如果,由于某些原因,客户丟失了加密密钥608,客户 可以从数据库获得加密密钥。然而,数据库自身不能访问加密密钥, 并且因此不能访问存储在加密文件610中的任何信息。客户正常的保 持其已经备份或者存档在数据库中的所有文件的本地列表。然而,如 果客户由于某些原因,丢失了其文件列表,则客户可以从数据库重新 获得加密的文件列表,其中数据库在安全数据库614中存储了加密的 文件属性。然而,数据库自身不能访问存储在数据中路的文件属性信 息。因此,没有备份或者存档在数据库中的文件内容或文件属性的信 息需要离开客户计算机。数据库中的所有备份或存档的数据与客户用 来加密客户数据的加密技术一样安全,并且仅仅可以由客户计算机访 问。
客户执行两个分离的操作从而在数据库内存储纯文本文件606。首 先,如图6B所示,客户向数据库发送客户的设备号和加密的文件属 性,请求随后存储相关的文件。之后如图6C所示,数据库把文件ID 返回客户,其中数据库与客户打算存储的文件有关。再次,如上所述, 在发送到数据库之前,属性被客户加密。因此,数据库在安全数据库 内存储加密的属性616,并且数据自身不能访问或读取加密的属性。 如图6D所示,在接收到被存储的文件的文件ID之后,客户加密纯文 本文件以产生加密版本的纯文本文件618。客户然后如图6E所示向数
文件ID进行存储。最后,如图6F所:,数据库在分配到i户计算机 相关设备的文件存储设备中存储加密文件618,以及文件ID 620从而 客户随后可以通过向数据库提供文件ID重新获得加密的文件。文件ID与加密文件属性以及安全数据库614内的设备的设备标识符相关,
的信息时,客户可以向数据库请求与客户的设备相关的加密文件属性/ 文件ID对,用于随后从数据库重新获得文件。
图7A-B图示了客户和合作服务提供商之间签约基于Web服务的 数据备份和数据存档服务以及初始配置客户的交互过程。图7A-B示 意了数据在客户、合作服务提供商以及数据库之间服从Web服务协议 的传输。在图7A-B之中,以从左到右的方式显示了表示客户,合作 服务提供商和数据库的三列。如图7A所示,客户向合作服务提供商 发送服务请求702,合作服务提供商向客户返回客户侧的,基于Web 服务的,数据备份和数据存档服务应用软件704。尽管该处理事务在 图7A中显示为通过两个消息发生,该处理事务可以调用相对冗长的 协议,其中在该协议中,客户首先响应合作服务提供商提供的web, 接收、填写并返回各种形式和付款信息,并执行执行任何额外的涉及 处理事务的操作从而成功的签约基于Web服务的,数据备份和数据存 档服务并接收客户侧软件。
一旦安装了客户侧软件,则公共/私人加密密钥对在客户计算机上 产生,并且公共/私人加密密钥对的公共加密密钥706作为关于新配置 请求的一部分,由客户发送到合作服务提供商。合作服务提供商,反 过来,向数据库发送客户的公共加密密钥以及新设备请求708。数据 库代表合作服务提供商和客户产生新的设备、在响应消息710内使用 客户的公共密钥加密设备的配置信息,并把响应消息发送到合作服务 提供商。合作服务提供商包括位于响应消息内的加密的设备配置信息, 除此之外,响应消息还包括合作服务提供商代表客户712产生的密码, 并把响应消息返回到客户。在接收到响应消息712之后,客户可以提 取合作服务提供商提供的密码以及加密的设备配置信息,并且可以使 用客户私人的加密密钥解密设备配置信息。在本发明的特定实施例中,
客户可以选择或建议一个或多个密码,而不是依赖合作服务提供商产 生的密码。然后客户侧软件使用设备配置信息完全的配置客户侧应用进行随后的数据备份和数据存档操作。需要注意的是,由于合作服务 提供商并不拥有客户的私人加密密钥,合作服务提供商不能截取、访 问、或使用数据库返回到客户的设备配置信息。还需要注意的是,合 作服务提供商返回到客户的密码对于数据库并不可用。然而,在本发 明的多个实施例中,合作服务提供商同意存储代表客户产生的密码, 合作服务提供商的私人加密密钥以及保管服务从而在合作服务提供商
务的客户计算机不能使用的情况下,提供到客户的密码可以被客户恢 复,并且合作服务提供商的私人加密密钥可以被数据库恢复。
之后,如图7B所示,客户产生仅仅客户计算机知道的新的加密密 钥并且使用合作服务提供商提供的密码加密新的加密密钥从而产生密 码加密的新的加密密钥714,并且然后使用合作服务提供商的公共加 密密钥加密该密码加密的新的加密密钥从而产生双重加密的新的加密 密钥716,其中加密密钥716仅仅由客户发送到数据库。数据库把双 重加密的新的客户加密密钥以及关于分配到客户的设备的设备标识符 存储在安全数据库中。存储的双重加密的客户加密密钥在图7A中被 标识为安全的加密密钥716。数据库然后向客户计算机返回确认消息。 在本发明的特定实施例中,确认可以通过合作服务提供商发送。
现在完全地配置客户计算机进行随后的数据备份和数据存档操作。 客户计算机具有客户计算机的加密密钥的本地存储的复本,其中客户 计算机随后使用该加密密钥来加密发送到数据库进行备份和存档的数 据。由于只有客户清楚客户的加密密钥,并且由于客户的加密密钥在 数据库内被双重加密,数据库或者合作服务提供商都不能访问客户的 加密密钥来解密客户存储在数据库内的信息。 一个重要的结果是不仅 数据库中的客户数据安全,与存储的文件相关的文件属性也是安全的, 从而合作服务提供商或者数据库都不能读取或者访问存储的数据属 性。例如,律师事务所可以存储具有指示律师事务所的客户或者指示 各种法律事务或者由律师事务所代表客户进行的处理事务的文件名的 多个文件。即使数据库或者合作服务提供商不能访问这些文件的内容,如果可以访问文件名,多种秘密的信息可以被数据库、合作服务提供 商或者访问数据库或合作服务提供商的恶意的第三方收集。然而,在
代表本发明实施例的Web服务协议中,文件名、文件所有者、以及其 它文件属性在离开客户计算机之前完全被加密。
图8是示意关于图6A-F所讨论的,为了安全地在数据库内存储数 据所调用的客户侧操作的简单流控制的程序。在步骤802,客户加密 与文件相关的文件属性并且直接向数据库发送存储请求。该存储请求 包括与在客户侧软件的初始配置部分接收的客户计算机相关的设备的 设备ID。在步骤804,客户反过来从数据库接收文件ID。在步骤806, 客户加密被存储的文件并把加密的文件以及文件ID发送到数据库。 在步骤808,客户从数据库接收关于文件已经被成功地存储在一个或 多个远程数据存储机构的确认。
图9示意了由涉及代表客户存储文件的数据库应用执行的的操作。 在步骤902,数据库从客户接收存储请求。在执行授权和确认步骤之 后,数据库代表客户产生新的文件ID。在步骤906,数据库从在步骤 902接收的存储请求中提取文件属性并且在安全数据库中存储加密的 文件属性以及最近产生的文件ID。在步骤908,数据库把文件ID返 回到客户。在步骤910,数据库接收加密的文件以及文件ID,用于存 储在数据库中,并且在步骤912,数据库通知与文件ID相关的数据库 项目中加密文件的接收,在文件服务器或者其它数据存储设备上存储 加密的文件,并向客户发送确认。
客户重新获得文件相对比较简单,涉及向数据库发送关于文件的请 求,以及文件ID和设备标识符,并且一旦数据库正确地授权并批准 该请求,数据库定位文件服务器上的特定文件并把该特定文件返回到 客户。如上所述,如果客户不知什么原因丟失该信息的复本,客户还 可以请求并从数据库接收加密的文件属性/文件ID对。此外,如果客 户丢失了客户加密密钥,客户可以请求并从数据库接收双重加密的客 户加密密钥。客户可以通过合作服务提供商进行该请求,在这种情况 下,合作服务提供商可以在把密码加密的加密密钥转发到客户之前代表客户对双重加密执行第一等级的解密。
在本发明的替代实施例中,基于Web服务的,数据备份和数据存 档服务可以提供额外的服务。例如,在本发明的一个实施例中,在加 密文件之前,客户侧应用为存储在本地索引中的文件产生索引信息, 从而允许客户侧应用为文本串或者其它搜索信息搜索远程存储的文 件。换言之,本地存储的索引包括文字索引或者其它数据对象索引, 其中文字与文件ID相关。然后,当文件被加密时,对该文件产生的 索引信息也可以被加密并且分别发送到数据库进行存储。如果本地索 引信息被客户丢失,则可以从数据库以加密的形式重新获得索引信息。
本发明的各种实施例提供的另 一服务是有效的文件更新。在各种实 施例中,客户把数据库上存储的更新的文件与本地存储在客户上的更 新文件的之前的版本进行比较,并且计算两个文件之间的差异。然后, 客户仅仅加密该差异以及描述该差异的元数据,并且这些加密的差异 和元数据被发送到数据库进行存储,而不是发送整个更新的文件。数 据库可以存储文件的第一版本,以及一系列的更新,并且当随后客户 请求存储的更新的文件时,可以返回第一次的完整版本以及随后的更 新,或者可以返回最近的更新以及任何之前的请求的更新到客户。更 新的差异,而不是整个更新的文件的加密和传输既能更加有效的计算 又能更加有效的传输和存储。
本发明的各种实施例的更加详细的说明
在这一部分中,提供了实现本发明的实施例的更加详细的说明。图 10在整体的概述层面上,示意了代表本发明的一个实施例的备份-恢 复-和存档系统的客户侧和服务器侧部分。备份-恢复-和存档系统1002 的客户侧部分包括多个用户设备,通常被称为个人计算机(PC)。在 所述的实施例中,备份、恢复和存档服务由备份-恢复和存档系统的服 务器侧部分在客户设备的粒度上提供。换言之,备份-恢复和存档服务 被提供到物理,硬件设备,例如个人计算机。在替代实施例中,备份、 恢复和存档服务可以在粒度的更精细的等级上提供,例如硬件设备的特定用户分割。
客户设备通过安全连接,在特定实施例中通过实现在因特网协议
1006上的安全套接层(SSL)连接与备份-恢复和存档系统1004的服 务器侧部分进行通信。备份-恢复和存档系统1004的服务器侧部分包 括一个或多个网特服务器1008、 一个或多个共享磁盘服务器1010、 一 个或多个任务服务器1012、 一个或多个数据库服务器1014、 一个或多 个活动目录服务器1016、 一个或多个永久数据存储设备1018以及操 作监视器1020。该一个或多个web服务器1008直接与客户设备1002 交互,并且web服务器因此通过防火墙1022到1024与备份-恢复和存 档系统1001的服务器侧部分内的客户设备和其它设备隔离。
图10所示的备份-恢复和存档系统简要图示了根据本发明的备份-恢复和存档系统的无数种可能配置之一。在一个极端情况中,备份-恢复和存档系统的整个服务器侧部分可以实现在单个服务器计算机 中,并且在另一极端情况中,复杂的,多部件的服务器侧部分可以被 本地的复制并且在地理上提供非常高等级的错误和灾难容忍性以及较 高的可用性,图11简要图示了代表本发明一个实施例的备份-恢复和 存档系统的服务器侧部分的单服务器实现方式。单服务器实现方式包 括因特网信息服务器应用1102、活动目录1104、以及SQL服务器 1106,其共同提供单个服务器计算机1108内的备份-恢复和存档系统 的服务器侧部分的功能。图12示意了代表本发明的可替代实施例的复 杂的、复制的备份-恢复和存档系统。在图12所示的多个部件、复制 的、备份-恢复和存档系统中,包括多个web服务器1204、数据库服 务器1206、活动目录服务器1208以及具有分布式文件系统方法的永 久数据存储设备1210可以由客户计算机使用全局负栽平衡器122和局 部负载平衡器1214通过因特网进行访问。SQL复制1216、活动目录 复制1217以及分布式文件服务复制1218用于在可以与第一数据中心 在地理上分离的第二数据中心1220复制第一数据中心1202。因此, 在图12所示的实施例中,备份-恢复和存档系统的两个分离的,多部 件服务器侧部分可以共存以提供错误和灾难容忍以及较高的可用性。在可替代实施例中,多部件服务器侧部分可以被复制三倍、四倍、甚 至更高倍的冗余。此外,在更高端的实现方式中,每个服务器侧部分 中的永久数据存储自身可以被替代类型的冗余引入技术镜像或者冗余
地存储,其中冗余引入技术包括RAID-5和RAID-6存储系统中的基 于纠错编码的冗余。
图13A-C示意了在图10的概述层面上示意的备份-恢复和存档系统 内的基本功能。图13A示意了客户设备(图10中的1002)内的基本 功能。备份-恢复和存档系统的客户设备部分包括三个不同的过程。第 一过程实现为用户接口例程1302,该程序被用户通过各种程序调用方 法进行调用,其中该方法包括通过显示在客户设备的终端1306上的图 标1304进行的交互发动。用户接口例程提供基本的用户管理以及用户 配置服务,其允许用户修改1308本地存储的目录1310,其中目录1310, 除其它事情外,包括位于客户设备内的文本以及其它类似文件的目标 的列表1312,其中该文件可以被备份-恢复和存档系统连续和自动的 备份。目录1310此外还可以包括配置信息,例如每个文件的修改检测 时间、修改号码的指示、或者例如给定文件或者类似文件的目标的例 子从而保持用户对文件或者类似文件的目标所期望的保护等级的指示 以及其它类似参数。
用户可以通过显示在客户设备显示屏监视器1306上的图形用户接 口向用户接口例程1302发出各种类型的命令。命令包括从备份列表增 加或删除文件以及类似文件的目标、向特定的之前备份的实例提交一 个或多个特定文件的命令、截断备份-恢复和存档系统内存储的修订历 史的命令以及各种替代实施例中的多种额外的命令。
两个额外的过程1314和1316在客户设备内作为窗口服务连续的运 行。第 一窗口服务过程1314是用于执行备份和恢复操作的主客户侧服 务过程。第二连续执行的窗口服务过程1316是传输服务,其釆用背景 智能传输服务(BITS)和安全套接层(SSL)与备份-恢复和存档系统 的服务器侧部分以及备份-恢复和存档系统合作者交换数据。BITS使 用剩余的网络带宽和处理周期作为背景过程与远程实体交换数据。主客户侧过程1314包括监视功能1318,其周期性地检验每个文件 和类似文件的目标,例如文件1320,该文件被存储在目录1310中的 数据指定为被备份-恢复和存档系统连续地备份。监视过程1318基于 当前文件时间戳与之前纪录的时间戳的比较或者其它类似信息来确定 文件是否已经从最后一个监视周期开始被改变。如果文件已经被改变, 则备份程序1322使用文件自身1324以及本地存储的信息或者从备份-恢复和存档系统的服务器侧部分获得的信息计算改变的文件和文件之 前的实例之间的块差异。块差异被确定为包括已经被改变的文件部分 并且因此需要被传输到备份-恢复和存档系统的服务器侧部分进行永 久存储的一组A块。已经清楚当前没有被备份-恢复和存档系统的服务 器侧部分存储的A块或者A块的子集被增加到上传文件1326以及本 地緩存1328。上传文件1326被排队到上传文件1328的队列,其中上 传文件被传输服务过程1316逐个地传输到备份-恢复和存档系统的服 务器侧部分。当用户通过用户接口例程1302请求恢复操作时,调用主 客户侧过程1314内的恢复过程1330以确定可以从緩存本地获得的文 件的这些块以及文件1332的任何现有部分可以通过传输服务过程 1316从备份-恢复和存档系统的服务器侧部分重新获得所有其它需要 的块,并且使用重新获得的块和本地可用的块来组装文件1332的恢复 版本。
图13A所示意的备份-恢复和存档系统的客户侧部分是多种不同可 能实现方式之一。备份、恢复、编目录、緩存、传输以及用户接口功 能可以被结合在一起形成更少的模块和过程,或者,可替代的,可以 被分割成更大数量的不同功能模块、过程和服务。
图13B-C示意了代表本发明的一个实施例的备份-恢复和存档系统 (图10中的1004)的服务器侧部分的功能操作。如图13B所示,一 个或多个web月良务器1008中的每一个可以包括通过SS1层1342以及 例如因特网的通信介质与每个客户侧的传输服务过程(图13A中的 1316)进行通信的路由管理器功能1340,其中备份-恢复和存档系统 向客户设备提供备份、恢复和存档服务。路由管理器1340访问一个或多个数据库服务器1014中的一个,以匹配在客户设备建立到web服 务器1008的SSL连接后由客户设备提供的凭证与服务器侧部分活动 目录服务器104所提供的凭证。 一个或多个数据库服务器1014执行元 数据管理器1344,元数据管理器1344管理代表全球目录1346、有关 合作者和合作者加密密钥1348的存储信息、有关客户设备的存储信 息、与客户设备相关的凭证、为用户客户设备保管的文件加密密钥 1350以及其它信息的各种数据库列表或文件,从中检索信息并把信息 存储到其中。当路由管理器验证了连接客户设备,路由管理器可以从 客户设备接收上传文件并且把在一个或多个共享非易失存储器服务器 1010提供的共享非易失存储1352中的上传文件进行排队。此外,路 由管理器向执行一个或多个数据库服务器1014之一上的元数据管理 器发送关于接收的上传文件的信息从而元数据管理器可以把任务请求 输入到存储在数据库内并由一个或多个数据库服务器的元数据管理器 管理的任务队列1354中。相似的,下载文件例如下栽文件1356可以 被存储在共享非易失存储1352内的下载文件队列中以供路由管理器 1340传输到客户设备。
尽管在客户设备和路由管理器之间传输的大量数据包括客户设备
以及表示加密数据块的下载文件,路由管理器1340还可以接收额外的 命令,例如涉及为客户设备更新目录数据以及其它配置的命令以及管 理命令。在多种情况下,这些命令被路由管理器直接传输到在数据库 服务器上执行的元数据管理器1344,其中元数据管理器直接执行该命 令并向路由管理器返回响应或者在任务队列中排队该命令以便稍后处 理。一个或多个活动目录服务器1016负责管理分布式网络域内的网络 目标。备份-恢复和存档系统的服务器侧部分的各种部件系统,包括由 部件系统、数据源和其它类似目标执行的服务和应用,被一个或多个 活动目录服务器产生和管理的全球名称空间设定地址。
如图13C所示,运行在一个或多个任务服务器1012的每一个上的 骨干例程1360负责执行备份和恢复操作。骨干例程1360从存储在并由数据库服务器1014收集的管理任务队列1354中取出连续的任务, 并且执行由出列的任务队列实体表示的任务。对于备份任务,骨干例 程1360重新获得对应于特定任务队列实体1364的上传文件1362并且 使用元数据管理器1344提供的元数据,把上传文件解封装成一系列文 件签名和加密的数据块,并通过元数据管理器1344把文件签名存储到 数据库1014并把与文件签名相关的加密数据块存储到一个或多个永 久数据服务器1018提供的永久数据库中。相似的,骨干例程1360在 从任务队列1354中出列恢复任务之后从永久数据存储1018和数据库 1014中重新获得需要的加密数据块、存储的文件签名以及其它信息, 把这些信息封装成下载文件1366,并把下载文件排队到共享非易失存 储器1352内的下栽文件的队列中,用于由路由管理器1340最终传输 到客户设备。
因此,返回到图10,代表本发明的一个实施例的备份-恢复和存档 系统包括可能的大量的客户设备1002,其由备份-恢复和存档系统的 服务器侧部分1004提供备份、恢复和存档服务。备份-恢复和存档系 统的服务器侧部分可以实现在如图10所示的包括多个专用的服务器 和计算机系统的单个数据中心的单个服务器计算机内、或者可以实现 为多个、复制的多部件数据中心。备份-恢复和存档系统的服务器侧部 分包括客户设备的web接口 ,其负责从客户设备接收请求并把这些请 求路由到备份-恢复和存档系统的服务器侧的合适的部件进行处理,并 把来自备份-恢复和存档系统的服务器侧部分的响应和数据路由回客 户设备。备份-恢复和存档系统的服务器侧部分包括共享的,非易失存 储空间1010,用于临时的存储并把上传到任务服务器1012的文件以 及从任务服务器1012下栽的文件通信到web接口 1008。备份-恢复和 存档系统的服务器侧的数据库部分1014存储追踪客户设备、合作者、 以及需要被备份-恢复和存档系统执行的当前任务的状态所需要的元 数据,同时备份-恢复和存档系统的服务器侧的永久数据存储部分1018 存储客户设备恢复文件和类似文件的目标所需要的加密数据块。
图14A-D示意了通过文件和文件类对象的主服务过程(图13A的1314)产生相应的文件签名和加密数据块的处理。如图14A所示,文 件或类似文件的目标1402可以被看作是按顺序排列的字节、字、长字、 或者其它原始数据单元。在主服务过程在客户设备上执行的第一步, 位于客户设备1402的文件或类似文件的目标被逻辑地分割成自然块。 自然块的边界在图14A中由虚垂直线,例如虚垂直线1404表示。自 然块具有可变长度,并且自然块的边界对应于其分离部分可以在时间 上关于文件的增加改变相互之间独立的文件内的边界。换言之,当通 过编辑操作和其它文件操作在时间上改变文件时,多个块内的改变应
当比多个跨块改变更高的频率发生,从而一组相对同时发生的改变被 停留在自然块中。然而,改变长度的划分方法表示文件或类似文件的 目标内的自然块的最好估计,并且并不保证关于文件改变准确地把文 件分成独立的块。
在下一步,通常相对较小的自然块被连续的收集在一起并且形成连 续的、大约固定长度的块,例如,固定长度块1408。例如,大约固定 长度的块1408,包括在第一步识别的第一个四个自然块1406和 1410-1412。下一组自然块1414-1417,皮结合成下一 固定长度的块1410。 因此,作为前两步文件处理方法的结果,文件或类似文件的目标被分 割成一组按顺序的,大约固定长度的块,其中对于增加的改变,这些 块被估计为相互独立。由于结合在每个大约固定长度的块中的自然块 的长度和的不一致,大约固定长度的自然块还可以在长度上稍微改变。 在本发明的一个实施例中,大约固定长度的块具有接近64k比特的长 度。
如图14B所示,为每个大约固定长度的块计算块hash (哈希,散 列)。在本发明的一个实施例中,客户设备文件加密密钥1420、压缩 算法标识符1422以及加密算法标识符1424与大约固定长度块1426 的数据结合并且由密码hash函数,例如,MD5 hash函数1428进行 处理以产生块hash 1430。包括文件加密密钥、压缩算法ID、以及加 密算法ID保证了如果文件加密密钥、压缩算法或者加密算法被客户 改变,则被新的加密密钥和/或压缩算法加密和压缩的块可以容易的与由之前使用的加密密钥、加密算法和/或压缩算法加密和/或压缩的块 进行区分。此外,包括文件加密密钥可以使特定类型的安全攻击对备
份-恢复和存档系统的服务器侧变得迟钝。块hash 1430可以被认为是 原始的大约固定长度块1426的数字概述、或者分类。通常,块hash 具有固定的长度,例如,256字节、512字节或者2个另一幂数。使用 密码hash函数保证了由任何客户设备从位于客户设备上的任何文件 或类似文件的目标产生的两个不同的大约固定长度的块具有相同块 hash的机会无穷小。换言之,块hash以极大的概率被保证是在整个 备份-恢复和存档系统上的大约固定长度块的唯一标识符。
如图14C所示,每个大约固定长度的块,在对应于该块的块hash 计算之后,被压缩算法1432压缩,并且然后被加密算法1434使用客 户的文件加密密钥进行加密。这些步骤产生了对应于之前计算的块 hashl430标识的原始大约固定长度数据块1426的通常更小的、加密 的数据块1436。
图14D示意了客户设备的主服务过程计算文件签名。如上面关于图 14A-C所讨论的,文件或类似文件的目标首先被分割成一系列大约固 定长度的块1440-1446。对于箭头表示的,例如图14D的箭头1448表 示的每个大约固定长度的块执行图14B所示的步骤,对每个大约固定 长度的块产生块hash。块hash连同大约固定长度块的长度构成块描 述符,例如,对应于第一大约固定长度块1440的块描述符1450。为 文件或文件对象的相应的大约固定长度的块构造按顺序的 一 系列块描 述符,并且头部被附加到一有序序列的块描述符从而形成文件签名 1452。头部1454可以包括签名版本号,从而文件签名的内容和/或格 式可以随着时间发生改变,其中由于在头部1454中包含版本标识符, 所以每个文件签名关于版本进行自我描述。此外,头部可以包括签名
内的块描述符的数量以及其它信息。文件签名可以由编码头部和块描 述符的字节序列或者字节流表示,或者可以在更加复杂的数据结构中 被编码。
因此,从备份-恢复和存档系统的角度,在客户设备内存储的被备
24份-恢复和存档系统连续监视并备份的文件或类似文件的对象的特定 实例被认为是文件签名/数据块序列对。文件或类似文件的对象可以被 完全重建,并且完全被文件签名和包含文件数据的大约固定长度的块 指定。在客户端,如果清晰的文本,而不是从客户传输到备份-恢复和 存档系统的服务器侧的任何大约固定长度块被加密,则按顺序排列的 大约固定长度的块是可以使用的,从而不需要额外的实体访问包含在 该块中的数据。
图15A-E示意了根据本发明的一个实施例的文件实例。图15A显 示了文件的第一,基本等级的实例。如上所述,由客户设备上的主服 务过程处理文件或类似文件的目标从而产生被压缩并加密以传输并存 储到备份-恢复和存档系统的服务器侧部分内的签名1502以及一系列 大约固定长度的块1504。因此,文件签名/大约固定长度的块序列对完 全指定了从中产生文件签名和大约固定长度块的文件或者类似文件的 目标的内容。首先,由客户设备用户标识一个文件用于在时间上连续 的监视并备份文件的改变。每一次检测到文件的改变并且文件被备份, 文件的新的实例,或者版本可以从备份-恢复和存档系统的角度产生。 当文件首次被指定为连续备份时,如图15A所示,产生文件签名/加密 的大约固定长度块序列对,并且把其传输到备份-恢复和存档系统的服 务器侧部分以表示文件的基本等级的实例。
图15B示意了图15A所示的文件签名/加密的大约固定长度块序列 对所描述的文件的第 一备份。当文件被检测到已经被改变或编辑时, 从文件的当前内容中产生新的文件签名1506。新的文件签名与之前的 文件签名1502进行块排列,并且如水平双箭头,例如如图15B的箭 头1508所示,比较相应的块。当为相应的大约固定长度块计算的块 hash不同时,根据原始文件已经改变了相应的大约固定长度的块。在 图15B中,通过比较第一文件签名1502以及新的文件签名1506中的 相应的块描述符确定由块描述符1510-1512表示的大约固定长度的块 已经被改变。与这些文件描述符1514-1516相关的大约固定长度的块 包括一组修改的块,或者A块。关于图15B所讨论的文件签名比较是智能的比较,其允许新的块被插入到原始块序列中,原始块被删除。 以及发生文件的其它大量修改同时不破坏文件的第一实例中的块与修 改文件的相应块之间的相应。换言之,两个文件签名可以被放在相应 中,并且可以检测到插入和删除从而在一个文件签名的删除和/或增加 之后块的描述符与其它签名中块的描述符保持相应,例如对应于基因
位点的DNA序列可以相互排列,不考虑随后的插入和删除。
因此,如图15B所示,在监测到文件的修改或改变之后,新的文件 签名以及一组A块可以被产生从而原始文件签名1502和按顺序排列 的大约固定长度的块1504的组合,以及新产生的文件签名1506和A 块1514-1516 —起完全指定了原始文件和原始文件的随后的,改变或 修改的版本。如图15C所示,原始文件和原始文件的修改版本的数据 内容,被分别认为是文件的实例0和实例1,包括原始的按顺序排列 的大约固定长度的数据块1504以及通常更小的一组A块1518。如果 原始文件签名1502和最近产生的,第二文件签名1506都被存储在备 份-恢复和存档系统的服务器侧部分的数据库部分中,则原始文件或者 随后修改的文件可以完全从存储的数据块,A块以及文件签名中恢复。 如图15D所示,通过每次文件的检测到的修改,A块的确定、永久 数据存储内的A块的存储,可以产生文件的新的实例。在图15D中, 已经在原始文件的备份之后产生了文件的6个实例。如同所讨论的, 原始文件被大约固定长度块1504的列表示,并且每一个随后的实例被 A块1518和1523的列表示。通过存储原始的文件块以及仅仅每个实 例的A块,仅仅需要非常少量的数据块被存储以表示文件的所有实例 而不是存储每个实例的整体。此外,如下面更详细的讨论,由于数据 块被存储在备份-恢复和存档系统的服务器侧部分的永久存储器中,并 且仅仅被其各自的块hash索引,发生在客户设备的多个文件或者分布 在多个客户设备的多个文件中的数据块需要仅仅被存储在永久存储器 中一次。换言之,只有被特定块hash值标识的任何特定数据块的单个 实例需要被存储在永久存储器中,而不考虑特定数据块在分布到各个 客户设备中被备份-恢复和存档系统连续地监视并备份的各种文件中发生多少次。与如图15D所示,原始文件块以及存储在永久存储器中 表示文件的所有不同实例的A块一起,为文件的每个连续的实例产生 的全部文件签名被保持在备份-恢复和存档系统的服务器侧部分的数 据库部分内。在本发明的特定实施例中,可以使用差异存储技术存储 文件签名,如同使用差异存储来存储数据块。换言之,第一文件签名 必须被整体的存储,并且仅仅存储为下一 实例和之前存储的实例计算 的文件签名之间的差异。
图16概述了存储在代表本发明一个实施例的备份、恢复和存档系 统的服务器侧部分和客户侧部分上的,关于备份、恢复和存档系统监 视和连续备份的客户设备上的每个文件的信息。如图16所示,在备份 -恢复和存档系统的服务器侧部,文件1602的文件签名历史如图15E 所描述的,存储在备份-恢复和存档系统的服务器侧部分的数据库部分 中。此外,如图15D所示意的,文件的数据块历史的压缩和加密版本 1604存储在备份-恢复和存档系统的服务器侧部分的永久存储部分中。 在客户侧,为每个被监视和备份的文件存储关于文件1606的大部分最 近产生的文件签名。通过保持最后的本地复本,可以完全从存储的文 件签名1606以及为文件的新的实例产生的新的文件签名中计算最近 产生的文件签名,最后的文件实例和最近存储的文件实例之间的差异, 不需要访问存储在备份-恢复和存档新系统的服务器侧部分的信息。此 外,由于客户侧数据存储资源允许,签名緩存1608和数据块緩存1610 可以被保持在客户设备上进行恢复操作。在最佳情况下,可以仅仅使 用本地存储的文件签名和数据块,把文件恢复为之前的版本,或者实 例,不需要从备份-恢复和存档系统的服务器侧部分中重新获得文件签 名和数据块。然而,如果签名緩存1608,数据块緩存1610,甚至是最 近产生的文件签名1606从客户设备中删除,则可以通过首先从备份-恢复和存档系统的服务器侧部分访问需要的文件签名和数据块,在客 户设备上恢复文件的任何之前产生的实例以及备份的实例。
图17A-B示意了根据本发明的一个实施例由为文件存储的文件签 名历史和数据块历史来构造文件的具体实例的逻辑操作。图17A显示
27了如之前关于图15E所讨论的文件的文件签名历史。为了构造文件的 完全的最近的实例,需要穿过文件签名实例中每个块的相应块描述符 直到检测到相邻文件签名中两个块hash的差异。例如,对于由块描述 符1702表示的文件的第六实例中的第 一数据块,为了检测块hash不 同的两个相邻文件签名,从最近到最远跨越对应于文件签名历史中该 块的描述符。如图17A所示,检测存储在对应于文件的第五实例1708 和第四实例1706的文件签名的相应块描述符1704和1706中的块hash 的比较不同,指示为文件的第五实例计算的差异块是包含在文件的第 六实例内的数据块的版本。图17B显示了如上面关于图15D所讨论的, 文件的数据块历史。从图17B中可以看出,对应于文件1712的第一 数据块的最近存储的数据块是在文件的第五实例的备份期间检测和存 储的差异块。如另一例子,文件的最后块的所有块hash以及所有的文 件签名是相同的,指示从存储原始文件开始,文件的最后块并没有改 变,并且因此,原始数据块是应该被包括在第六实例中的数据块。
图17A-B示意了从文件的文件签名历史和数据块历史中逻辑地构 造给定实例。然而,从实践的角度,可以仅仅使用对应于实例的文件 签名以及数据块存储完全恢复文件的特定实例。这是由于文件签名内 每个块的描述符包括唯一指定发生在文件的相应数据块位置的数据块 的块hash。
图18A-B示意了根据本发明实施例的版本历史截断。图18A显示 了上面关于图15D讨论的块历史。可以是这样一种情况,为了保存存 储空间,备份-恢复和存档系统可以选择仅仅存储某些文件的最近实 例。例如,如图18A所示,备份-恢复和存档系统可以选择仅仅存储文 件的实例6, 5, 4,并删除实例2, 1,和O的文件签名和不需要的块。 概念的,截断实例历史,或者移出多个较早产生的实例,可以被认为 是选择新的,较早产生的实例,这在图28A中由虛线1802表示,并 且移出为之前的实例存储的文件签名以及之前实例的不需要的数据 块。在图18A中,不需要的数据块被显示有"X"符号,例如"X"符号 1804。表示文件的第三实例数据的数据块被显示有开放的圆圏,例如开放圆圏1806。因此,为了截断文件历史,移出对应于实例2, 1,和0的文件签名,并且从永久存储器中删除具有"X,,符号的图18A所示的数据块。图18B显示了在关于图18A所讨论的版本截断之后的数据块历史。如图15B所示,之前被标记为"实例3"的实例现在被标记为"实例0,,1810,并且在第三实例之后或之前被改变的之前实例的那些数据块被移出。因此可以在备份-恢复和存档系统的服务器侧部分上完全截断实例历史,不需要重新构造原始文件并且产生连续的实例直到并且包括最近产生的实例被移出。
图19A-B示意了在代表本发明一个实施例的备份、恢复和存档系统内的与安全有关的实体和操作。参照备份-恢复和存档系统的客户侧、服务器侧和合作者侧部分讨论这些实体和操作。在描述这些实体和操作过程中,考虑了单个客户设备1902、服务器侧部分1904以及合作者1906。客户、合作者和服务器通过安全连接1908-1910相互通信。在本发明的一个实施例中,通过双重认证的SSL连接实现合作者/服务器的通信。通过单侧SSL安全连接l卯8实现客户/合作者的通信,其中合作者提供经第三方认证服务代表客户认证的SSL证书。在客户/服务器初始通信期间,釆用单认证的SS1连接1910。随后,基于每个客户的请求到服务器的受信传输补充SSL连接。
合作者1906是客户用来签约服务的独立于服务器1904的实体。合作者还是如下所讨论的全部安全策略的重要部分。合作者产生合作者私人密钥/公共密钥加密密钥对,把合作者私人密钥1912安全的保持在合作者系统并且向备份-恢复和存档系统的服务器侧提供合作者公共密钥1914,然后由服务器把密钥提供到客户。合作者还包括识别客户的存储的设备ID 1916。客户还存储设备ID。最初,设备ID在服务器1904上产生并存储。服务器代表客户产生凭证1918,并把凭证提供到客户进行随后的客户/服务器安全通信。客户产生并使用仅仅客户知道的文件加密密钥1920。文件加密密钥用于加密发送到并由服务器1904存储的数据块。客户还产生并存储客户加密密钥1922,其与合作者公共密钥1912—起使用来双重加密客户的文件加密密钥1920,
29从而以双重加密形式1924存储在服务器内。
图19B示意了文件加密密钥的使用。客户使用文件加密密钥1920加码发送到并由服务器1904存储的每个数据块1930。相似地,客户使用文件加密密钥1920解密从服务器返回到客户的数据块用于恢复客户文件实例。由于文件加密密钥由客户产生并且仅仅客户可以访问,从客户发送到作为备份和恢复操作的一部分的远程实体的文件数据没有一个能被远程设备访问。尽管文件加密密钥被保存1924在服务器1904内,由于文件加密密钥自身#皮仅仅由客户知道的客户加密密钥1922以及合作者公共加密密钥1912加密,服务器不能访问文件加密密钥。客户可以通过请求合作者重新获得服务器保管的双重加密的文件加密密钥并解密加密的第一层,向客户设备返回客户加密密钥加密的文件加密密钥来恢复文件加密密钥。这保证了服务器不能访问客户数据或者客户的文件加密密钥,并且合作者不能访问文件加密密钥或者客户数据。由于文件加密密钥由服务器1904保管,客户丢失文件加密密钥对客户并不是致命的。
图19C示意了在客户无意间删除或者丢失了文件加密密钥的情况下,客户设备重新获得文件加密密钥。没有文件加密密钥,客户不能解密由服务器返回到客户的加密数据块。然而,客户文件加密密钥以双重加密形式1924被保管在服务器1904上。因此,为了重新获得文件加密密钥,客户向合作者1906发送请求1936以重新获得文件加密密钥,并且合作者,反过来,把请求转发到服务器1904。服务器把双重加密的文件加密密钥1924返回到合作者,合作者对加密执行第一级解密以产生仅仅由客户的客户加密密钥1938加密的文件加密密钥。单级加密的文件加密密钥1938返回客户1902,客户1902^f吏用客户加密密钥解密文件加密密钥以重新产生明确形式的文件加密密钥。
图19D示意了在客户凭证的帮助下实现的客户设备和服务器之间的安全通信。当服务器从服务器请求服务时,例如上传文件以备份当前改变的客户文件的操作,客户在请求内包括设备ID1916,其表示具有凭证1918的客户,例如用户名和以及在客户初始化期间由服务器产生并且提供到客户计算机的密码。在接收到请求后,服务器可以通过
把包含在请求中的设备ID和凭证与备份-恢复和存档系统的服务器侧 部分的活动目录部分内存储的设备ID1916和凭证进行匹配来验证是 否从有效客户接收到请求。因此,客户ID和凭证允许服务器把请求 识别为已经从特定客户接收到,验证该请求并通过备份-恢复和存档系 统的服务器侧部分路由该请求,从而对该请求产生的响应可以被返回 到发出请求的客户。
图20A-C提供了 一种类型的控制流程图,其图示了客户的初始化, 从而客户可以与代表本发明实施例的备份-恢复-存档系统的服务器侧 部分进行完全安全的请求和数据交换。首先,在步骤2002,客户准备 并向合作者发送用于接收备份和恢复服务的请求。客户可以准备并通 过与合作者提供的网特进行交互、通过合作者提供的初始化程序或者 通过另一方法发送请求。在步骤2004,合作者从客户接收备份和恢复 服务请求,并且在步骤2006,验证请求来自合法客户设备,执行另一 额外验证,例如试图匹配客户设备与一组不合适的设备,为客户建立 存储的数据条目,通过该数据条目,合作者可以最后追踪客户并随后 识别并与客户交互,以及通过向服务器发送设备供应请求向服务器请 求供应新的设备。接收器在步骤2008接收设备供应请求,并且在步骤 2010,准备单边使用设备权证,然后由服务器将其返回到合作者。单 边使用设备权证包括客户用来与服务器2012签约的URL、唯一的标 识备份-恢复和存档系统2014的单边使用权证的权证ID、以及产生的 表示客户2016的设备ID。合作者在步骤2018接收单边使用设备权证 并且在步骤2020把权证转发到客户设备之前,更新合作者存储的客户 信息以包括包含在权证中的设备ID。此外,合作者在把权证转发到客 户设备之前,可以向权证发送可选信息。例如, 一组客户设备可以选 择使用公共客户加密密钥以及合作者代表客户产生的其它信息。附加 到权证的可选信息可以包括该密钥。在步骤2022,客户设备接收单边 使用权证。在步骤2024,客户安装用于实施参考图13A所讨论的客户 侧用户接口例程和服务过程的客户侧应用。 一旦客户侧可执行文件被安装并运行,则客户在步骤2026建立与服务器的安全连接并且把包含在客户接收的单边使用设备权证中的权证ID 2014发送到服务器。在步骤2028,服务器接收权证ID,并且然后,参考图20B,验证权证ID并在步骤2030为客户接收之前产生的设备ID和合作者信息,服务器然后在步骤2032配置备份-恢复和存档系统的服务器侧部分以向设备ID识别的客户设备提供服务,并且在步骤2034为客户设备产生凭证,例如,密码和用户名。然后在步骤2036,服务器为客户2038准备响应,其包括产生的用户名2040、密码2042以及合作者的公共密钥2044,并把响应2038返回到客户。在步骤2050,客户接收该响应并在步骤2052,使用包含在响应中的信息,配置客户侧过程用于随后的请求以及与服务器的数据交换。在步骤2054,客户通过基于密码的方法产生客户侧文件加密密钥并且产生客户的客户加密密钥。通过记住该密码,客户可以在随后的时间重新产生客户侧加密密钥。然后,在步骤2056,客户使用客户加密密钥加密文件加密密钥,并且然后使用合作者/>共密钥加密文件加密密钥以产生双重加密的文件加密密
钥。在步骤2058,客户向服务器发送双重加密的文件加密密钥,服务器在步骤2060接收该双重加密的文件加密密钥并且存储或保管该双重加密的文件加密密钥。在步骤2062,客户向客户返回确认,客户在步骤2064接收到确认之后,准备最后向服务器发送请求并与服务器交换数据。客户和服务器之间的安全连接可以仅仅操作非常短的时间,并且可以被客户重新建立以进行随后的请求和数据交换。 一旦客户拥有设备ID和凭证,客户可以在任何时间建立与服务器的完全安全的连接。
图21简要图示了由代表本发明一个实施例的备份、恢复和存档系统的服务器侧的永久存储部分实现的块存储。在图21中,块存储2102被示意为包含块hash索引2104、索引2104的每个实体涉及存储在块存储中的特定的加密数据块,例如数据块2106。除了包含特定数据块的参考之外,块hash索引中的实体还可以包括参考计数器以指示目前参考该块的文件签名的数量。这样,任何特定数据块只有一个实例需
32要被存储在数据存储中,尽管事实上,分布在多个客户的多个文件可
以包括该块。块存储提供的操作包括(1)询问;(2 )重新获得;(3 )存储;以及(4 )删除。在询问操作2108中,块存储接收块hash2110并参考块hash索引以确定对应于块hash的加密数据块是否目前存储在块存储中。对应于块hash的数据块是否目前存储在块存储中的指示2112被返回。在重新获得操作2114中,块存储重新获得块hash 2113并在当前存储的加密数据块对应于提供的块hash2116的情况下。从块存储返回对应于块hash的加密数据块2118。在存储操作2120中,块存储接收块hash以及加密的数据块,并且当加密的数据块没有存储在块存储中时,存储数据块并为提供的块hash更新块hash索引以对数据块提供参考。如果加密的数据块已经存储在块存储内,则增加数据块的参考计数。在删除操作2126中,块存储接收块hash并且如果块hash目前位于块hash索引内降低块hash的参考计数。如果参考计数被降低为0,则在移出对应于块hash的块hash索引实体之前,也删除块hash索引表示的数据块。
参考图21所讨论的块hash方法和块存储允许差异的备份和恢复。图22示意了差异备份。如图22所述,在客户将为新上传的文件产生的最后签名2202与文件的最近的之前产生的文件签名2204进行比较以确定文件的哪个块已经-皮改变2206。这些改变块的块hash已经被封装在一起形成可以发送到服务器的消息2208。服务器然后询问块存储以确定哪个块hash如图21所述,目前并没有存储在块存储的块hash索引中。在备份过程中只有对应于那些块hash的数据块需要被客户发送到服务器。服务器然后返回目前没有存储在块存储中的A块2206的块hash的指示2212,并且客户,在准备上传文件期间,仅仅需要发送新产生的文件签名2202以及对应于服务器返回的块hash2212的那些数据块。差异备份消除了客户和服务器之间不必要的数据交换。可以使用两个阶段的提交协议以保证在询问和数据块传输的间隔并不从数据块存储中删除数据块。
图23示意了差异恢复。在差异恢复中,预期实例的文件签名2302
33与目前位于客户上的文件的文件签名2304进行比较。该比较产生了一 组A块,其表示为了把文件恢复为预期的版本或者实例所需要被恢复 的数据。然而,特定的这些厶块可以位于客户保持的本地块緩存2308 中,从而为了把文件恢复为预期的实例,仅仅没有被本地存储的A块 2310需要从服务器中恢复。在本地数据块hash是大量的,并且预期 的实例相对近期被更新的情况下,恢复操作可以在客户设备上完全本 地地执行,不需要从服务器获得加密的数据块。
图24A-B提供了由代表本发明一个实施例的备份、恢复和存档系 统的客户侧上的主服务过程完成的备份过程的流程图。在步骤2402, 建立新名单以及上传和新上传文件。之后,在包括步骤2404-2411的 闭环中,处理关于差异备份被标记的一组文件中的每一个文件。对于 每个文件,在步骤2405计算当前的文件签名,如果在步骤2406确定 之前计算的文件签名并没有本地存储,则在步骤2407,从服务器重新 获得之前计算的文件签名。之后,在步骤2408,作为备份过程的一部 分,比较文件签名以产生需要被加密并传输到服务器的一组厶块。在 步骤2409,改组块被封装成上传文件,并且在步骤2410把差异比较 的结果纪录在名单中。如果在步骤2411确定较多的文件需要被处理, 则控制流返回步骤2405。 一旦所有的文件已经被处理,则在步骤2412 把上传的文件发送到服务器。在步骤2414,备份程序从服务器接收实 际上需要被传输到服务器的一組数据块。换言之,服务器已经询问了 块存储以确定哪个A块已经如上面关于图22所讨论的,存储在块存储 中。继续参考图24B,备份程序在步骤2416打开了最后的上传文件, 并且在包括步骤2418-2420的闭环中,需要被传输到并存储在服务器 中的文件签名和加密数据块被增加到最后的上传文件。在步骤2422, 最后的上传文件被传输到服务器,并且服务器把文件签名存储在数据 库中,把数据块存储在数据存储中,并且把目录同步响应返回到客户, 从而客户可以把本地目录与远程目录进行同步,包括更新已经被成功
的备份的所有文件的文件签名历史。在步骤2426,客户接收目录同步 响应并且在步骤2428相应的同步本地目录。如果在步骤2432确定服务器已经遇到这些问题,并且特定的备份操作没有被成功地执行,则
在步骤2434以各种方式处理这些问题。例如,可以重新发出备份请求,文件可以被标记为临时有缺陷,并且通过更加复杂的恢复计数进行恢复,或者可以采用其它方法纠正或改进任何遇到的问题。最后,在步骤2436,名单被关闭并且临时文件和数据结构被移出以完成备份操作。
图25是控制流程图,图示了根据本发明的一个实施例由在客户设备上运行的主服务过程完成的恢复操作。在步骤2502,调用恢复操作把文件恢复为特定版本。如果在步骤2504确定预期版本的文件签名在本地并不可用,则在步骤2506向服务器请求文件签名。之后,在步骤2508,如上面关于图23所讨论的,恢复程序确定为了恢复实例哪个块需要从服务器中恢复。在步骤2510, 一组需要的块被封装成上传文件,然后在步骤2512把该上传文件传输到服务器。在步骤2514,恢复程序从服务器接收需要的块以及目录同步信息。在步骤2516,如果需要,通过更新本地目录来同步本地目录以反映文件的成功恢复。在步骤2518,封装文件的数据块以形成文件的预期实例,然后在步骤2520使用该实例把现有文件替换为恢复的文件。换言之,图25所示意的恢复操作可以直接把文件的特定版本恢复为文件的新的实例,或者作为具有不同文件名的不同文件。
本发明的备份-恢复和存档系统在特定加密算法、压缩算法以及客户设备使用的特定文件加密密钥方面是灵活的。如上所述,压缩算法、加密算法以及文件加密密钥的标识符被包含在块hash计算中,从而如果客户在使用之前的文件加密密钥备份文件之后的某个时间确定改变文件加密密钥,则客户可以开始使用新产生的文件加密密钥并且服务器可以开始接收新的文件加密密钥加密的数据块,同时,随着时间的过去,服务器把旧的加密密钥加密的数据块返回到客户,使用新的文件加密密钥重新加密并重新传输到服务器。换言之,在一定时间段内,在迁移到新的文件加密密钥的同时,备份-恢复和存档系统可以保留用旧的文件加密密钥和新的文件加密密钥加密的数据块,而不会含糊。尽管已经参照具体实施例描述了本发明,但本发明不希望局限于该 实施例。对本领域技术人员来说可以在本发明的精神范围内进行修改。
例如,近乎无限数量的不同的基于Web服务的数据备份和数据存档应 用是可能的,包括在控制接口、程序语言、数据结构、模块化和整个 其它程序参数方面不同的实现方式。尽管所述的实施例使用Web服务 平台和因特网通信实现远程数据备份和数据存档服务,表示采用不
:份和数据存档服务也2^"能4。尽管所述的"施例向纟户侧和合作 者服务提供商应用提供了相对简明的应用接口,可替代实施例可以提 供更加复杂和功能丰富的接口。可以采用多种不同公共/私人加密方 案、基于hash的加密、对称加密或者其它机密技术中的任何一种来加 密客户初始化所使用的数据和消息以及在本发明的各种实施例中传输 的数据。尽管所述实施例主要涉及数据文件的备份和存档,需要被客 户计算机备份和存档的任何类型的数据目标需要被封装在文件内用于 在数据库中传输和存储。每个客户计算机可以与 一个或多个数据库配 置的数据备份和数据存档设备相关。
为了解释的目的,上述说明使用特定术语提供对本发明的完整理
解。然而,本领域技术人员清楚,为了实现本发明需要特定的细节。 为了示意和说明的目的,呈现了本发明的特定实施例的上述描述。这 并不是详尽的或者试图把本发明限定为所公开的精确形式。很明显, 在上迷教导下可以进行多种修改和变化。为了最好地解释本发明的原 理和其实际应用,显示和描述了该实施例,从而使本领域其它技术人
员为了适合预期的特定使用,可以最好地利用本发明以及作出各种修 改的各种实施例。
权利要求
1、一种备份和恢复系统,包括服务器侧部分,该服务器侧部分接收备份和恢复请求,并通过以下操作来处理所述备份和恢复请求响应恢复请求返回加密的数据块,以及响应备份请求存储加密的数据块和文件签名;和客户侧部分,该客户侧部分提供允许文件被指定进行连续备份的用户接口,包括服务过程,该服务过程检测被指定进行连续备份的文件的改变,计算文件签名,通过文件签名比较来计算需要被存储用于备份和恢复操作的块,并且发出对备份和恢复操作的请求,以及包括传输服务过程,用于与所述服务器侧部分交换请求和数据。
2、 如权利要求1所述的备份和恢复系统,其中文件签名包括指定 文件签名版本的头部以及一有序序列的块描述符,每个块描述符包括 块hash和块长度。
3、 如权利要求l所述的备份和恢复系统,其中通过下述操作由文 件生成文件签名把所述文件分割成一有序序列的自然块;按顺序把所述自然块接合成一有序序列的大约固定大小的块;对于每个大约固定大小的块产生包括该块长度的指示以及该块的密码hash的块描述符;以及把头部附加到产生的块描述符。
4、 如权利要求3所述的备份和恢复系统,其中通过把文件加密密 钥、加密算法标识符以及压缩算法标识符附加到大约固定大小的块以 产生完全指定的大约固定大小的块,并把密码hash函数应用到该完全指定的大约固定大小的块,从而由每个大约固定大小的块产生每个密码hash。
5、 如权利要求l所述的备份和恢复系统,其中所述服务过程周期 性地比较文件的当前时间戳以及之前纪录的时间戳,以检测从前一文 件改变检测迭代以来被更改的那些文件。
6、 如权利要求l所述的备份和恢复系统,其中所述服务过程通过 下述步骤确定需要被发送到服务器侧部分来备份文件的块生成该文件的当前文件签名;把当前文件签名与之前产生的文件签名进行比较以确定文件中从 文件最后一次被备份以来已经发生改变的数据块;确定文件中从文件最后一次被备份以来已经被改变、但目前还没 有被服务器侧部分存储的那些数据块作为需要被存储的数据块;以及把当前文件签名和确定的需要被存储的数据块发送到服务器侧部分。
7、 如权利要求1所述的备份和恢复系统,其中所述服务过程通过 下述步骤确定为恢复文件需要向服务器侧部分请求的块获得要被恢复的文件实例的文件签名;以及确定在客户侧部分目前找不到的、由文件签名中的块hash识别的块。
8、 如权利要求1所述的备份和恢复系统,其中由计算出的块hash 识别的每个数据块仅仅被服务器侧部分存储一次,而不管该数据块在 被指定进行连续备份的文件中发生多少次。
9、 如权利要求l所述的备份和恢复系统,其中,被发送到服务器 侧部分的每个数据块是使用仅仅为向服务器侧部分发送该数据块的客 户所知的文件加密密钥来加密的,从而服务器侧部分不能访问由服务 器侧部分存储的客户数据。
10、 如权利要求1所述的备份和恢复系统,其中所述服务器侧部 分代表客户存储双重加密的文件加密密钥,从而客户可以恢复丢失的 文件加密密钥,而不需要向服务器侧部分或者其它客户提供对所述文 件加密密钥的访问权。
全文摘要
本发明的实施例涉及基于Web服务的数据备份和数据存档应用,其向个人、小企业以及其它需要可靠、安全、地理远程和经济有效的数据备份、数据存档以及备份和存档数据恢复的组织提供远程数据备份和数据存档。在本发明的一个实施例中,个人或者小企业客户与服务提供商签约数据备份和数据存档服务。服务提供商接着与远程数据存储机构签约以向个人或小企业客户提供安全、可靠的数据备份和数据存档。客户侧应用被下载到客户计算机并且被配置为允许客户将本地加密的数据存储在远程数据存储机构上。服务提供商和数据存储机构都不能解密或者以其他方式访问客户存储的信息。此外,客户为加密远程存储的数据所使用的加密密钥被安全地存储在远程数据存储机构,以便在客户遭受本地计算机系统的破坏或丢失时可以由客户随后恢复。然而,客户加密密钥以双重加密的形式存储,防止服务提供商或设备存储机构访问客户的加密密钥。本发明的具体实施例还为远程存储的加密数据提供了本地索引以及对已经远程存储的数据的更新的有效存储。
文档编号G06F12/00GK101647006SQ200680041925
公开日2010年2月10日 申请日期2006年10月12日 优先权日2005年10月12日
发明者G·S·萨姆纳, J·M·安蒙斯, M·里戴尔 申请人:数据城堡公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1