CN103959264A - 在存储云中使用去重复来管理不可变冗余文件 - Google Patents

在存储云中使用去重复来管理不可变冗余文件 Download PDF

Info

Publication number
CN103959264A
CN103959264A CN201280059219.8A CN201280059219A CN103959264A CN 103959264 A CN103959264 A CN 103959264A CN 201280059219 A CN201280059219 A CN 201280059219A CN 103959264 A CN103959264 A CN 103959264A
Authority
CN
China
Prior art keywords
file
due date
immutable
primary copy
latest
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280059219.8A
Other languages
English (en)
Other versions
CN103959264B (zh
Inventor
G·科豪恩科尔
B·P·贾因
S·R·帕蒂尔
S·拉玛纳桑
M·B·特里瓦桑
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103959264A publication Critical patent/CN103959264A/zh
Application granted granted Critical
Publication of CN103959264B publication Critical patent/CN103959264B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/162Delete operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1748De-duplication implemented within the file system, e.g. based on file segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

一种方法包括接收对于将第一文件保存为不可变的请求。该方法也包括搜索所保存的并且对于第一文件冗余的第二文件。该方法还包括确定第二文件是可变的或者是不可变的。在第二文件可变时,该方法包括将第一文件保存作为主副本并且用指向主副本的软链接替换第二文件。在第二文件不可变时,该方法包括确定第一文件和第二文件中的哪一个文件具有更晚到期日期和更早到期日期、保存第一文件和第二文件中的具有更晚到期日期的那个文件作为主副本并且用指向主副本的软链接替换第一文件和第二文件中的具有更早到期日期的那个文件。

Description

在存储云中使用去重复来管理不可变冗余文件
技术领域
本发明总体上涉及云计算,并且更具体地涉及用于在存储云中使用去重复技术来管理冗余不可变文件的方法和系统。
背景技术
信息技术正在迅速改变并且现在形成日益触及业务和社交生活的每个方面的不可见层。称为云计算的新兴计算机模型解决互联网连接的设备的爆炸增长并且与在当今的世界中的日益增长的技术存在互补。云计算是用于实现对可以用最少的管理工作或者与服务的提供者的交互来迅速调配和释放的可配置计算资源(例如网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)共享池的便捷的、按需网络接入的服务递送模型。
云计算广泛地可伸缩、提供优异的用户体验并且以新的由因特网驱动的经济为特征。在一个方面中,云计算涉及到在云以内存储和执行业务数据,该云是跨越地理展开的互连的数据中心、计算单元和存储系统的网状物。
随着云计算的问世,概念、比如存储云已经出现。存储云是可以由客户共享的巨大存储网络而无需客户管理存储基础设施。存储云提供者通常具有单个大型存储空间,并且提供者在相同地点保持来自所有它的客户的数据,这产生多租赁和多租户环境的概念。这一存储空间通常由基于该云的全部客户共享。
数据去重复包括消除冗余数据的过程。在去重复过程中,删除重复数据从而仅留下待存储的数据的一个副本。在某些情形中,如果不断需要所有数据则仍然保持所有数据的索引编制。去重复能够减少有效存储容量,因为仅存储唯一数据。数据去重复一般可以在文件或者数据块级操作。文件级去重复消除重复文件,但是这不是很高效的去重复手段。块去重复关注文件内并且保存每个块或者位的唯一反复。使用哈希算法、比如MD5(消息摘要算法)或者SHA-1(安全哈希算法)来处理每个数据组块(chunk)。这一过程生成然后在索引中存储的用于每条数据的唯一编号。在更新文件时,仅保存改变的数据。也就是说,在仅改变文档或者演示的少数字节时,仅保存改变的块或者字节,并且改变不会构成全新文件。因此,块去重复比文件去重复节省更多存储空间。
许多文件系统和存储解决方案提供用于将文档和文件标记为不可变的设施,即意味着对于给定的时间量不能够删除或者修改文件的内容和/或文件本身或者直至满足某个其它标准才能够删除或者修改文件的内容和/或文件本身。通常,这样的要求来自合规管理的机构和行业,比如政府机构和保健部门。这样的机构和行业普遍依赖于电信行业以帮助保证符合规章,比如萨班斯法案(SOX)、健康保险流通与责任法案(HIPAA)、联邦金融机构检查委员会(FFIEC)等,这些规章规定了给定的文件集的不可变持续性。
例如在HIPAA的安全规则(例如技术防护章节)中,设定由发生事件构成的安全日志以不可变方式保藏六年。这指示被标记不可变的任何文件有高重要性或者关键价值(至少对于给定的时间段),因此保藏它的可靠性至关重要。电信行业必须通过遵循规则以维护通信记录、比如产生的语音呼叫和发送的文字消息来保证符合这些规则。电信行业又利用来自它们的基础设施的不可变文件特征,以应对对于这些规则的记录不可变性的要求。在IBM General ParallelFile SystemTM(GPFSTM)中也支持这一特征,该系统是在许多存储赋予和解决方案中使用的策略聚类式文件系统。(IBM、General Parallel FileSystem和GPFS是International Business Machines Corporation在全世界许多管辖地注册的商标)。
当在文件级完成数据去重复时,删除文件的重复副本而仅维持单个副本,并且所有其它引用指向这一单个副本。然而这与不能编辑或者删除文件的基本不可变性前提冲突。因此,去重复过程不能删除不可变文件的冗余副本。例如在需要维持通常涉及到多于一方的呼叫和文本消息的不可变记录时,电信行业通常维持相同文件的多个副本以便与不可变性的要求相符,即使这消耗额外数据存储空间并且增加管理和数据保护开销。在十个参与者之中的会议呼叫的具体示例——其中呼叫记录具有1GB的存储大小——中,电信提供者存储用于每个参与者的相同记录,并且在所有记录内维持不可变、由此消耗共计10GB空间。如果文件不是不可变的,则去重复过程可能删除文件的九个副本并且维持单个副本从而仅占用1GB空间、将有效使用存储空间减少9GB。然而在一些情形中,文件的不可变性质妨碍这样的去重复。
发明内容
在本发明的第一方面中,一种在包括硬件和软件的组合的计算机基础设施中实施的文件去重复方法包括接收对于将第一文件保存为不可变的请求。该方法也包括搜索所保存的并且对于第一文件冗余的第二文件。该方法还包括确定第二文件是可变的或者是不可变。在第二文件可变时,该方法包括保存第一文件作为主副本并且用指向主副本的软链接替换第二文件。在第二文件不可变时,该方法包括确定第一文件和第二文件中的哪一个文件具有更晚到期日期和更早到期日期、保存第一文件和第二文件中的具有更晚到期日期的那个文件作为主副本并且用指向主副本的软链接替换第一文件和第二文件中的具有更早到期日期的那个文件。
在本发明的另一方面中,在硬件中实施一种用于文件去重复的系统,并且该系统包括计算机基础设施,计算机基础设施可操作用于:接收对于将第一文件保存为不可变的请求;确定对于第一文件冗余的多个第二文件;确定多个第二文件中的每个第二文件是不可变的;从包括第一文件和多个第二文件的组中标识具有最晚到期日期的文件;将具有最晚到期日期的文件保存作为主副本;并且用指向主副本的相应数据结构替换组中的除了具有最晚到期日期的文件之外的每个文件。
在本发明的附加方面中,一种计算机程序产品包括计算机可用有形存储介质,计算机可用有形存储介质具有在有形存储介质中体现的可读程序代码,该计算机程序产品包括至少一个部件,至少一个部件可操作用于接收对于在共享存储装置中将第一文件保存为不可变的请求,其中从与共享存储装置远离的本地计算设备接收请求。至少一个部件还可操作用于标识在共享存储装置中保存的并且对于第一文件冗余的至少一个第二文件。至少一个部件还可操作用于确定至少一个第二文件为可变的或者为不可变的。至少一个部件还可操作用于在至少一个第二文件可变时保存第一文件为主副本并且用指向主副本的相应软链接替换至少一个第二文件中的每个第二文件。至少一个部件还可操作用于在至少一个第二文件不可变时:从包括第一文件和至少一个第二文件的组中标识具有最晚到期日期的文件;保存具有最晚到期日期的文件作为主副本;并且用指向主副本的相应数据结构替换组中的除了具有最晚到期日期的文件之外的每个文件。
在本发明的又一方面中,一种对文件去重复的方法包括提供计算机基础设施,计算机基础设施可操作用于:接收对于在共享存储装置中将第一文件保存为不可变的请求,其中从与共享存储装置远离的本地计算设备接收请求;确定对于第一文件冗余的多个第二文件;确定多个第二文件的第一子集是可变的;确定多个第二文件的第二子集的不可变的;从包括第一文件和第二子集的组中标识具有最晚到期日期的文件;保存具有最晚到期日期的文件作为主副本;并且用指向主副本的相应软链接替换组中的除了具有最晚到期日期的文件之外的每个文件。
在本发明的另一方面中,一种用于对文件去重复的计算机系统包括CPU、计算机可读存储器和计算机可读存储介质。该系统包括用于接收对于在共享存储装置中将第一文件保存为不可变的请求的第一程序指令,其中从与共享存储装置远离的本地计算设备接收请求。该系统包括用于确定不可变并且对于第一文件冗余的多个第二文件的第二程序指令。该系统包括用于从包括第一文件和多个第二文件的组中标识具有最晚到期日期的文件的第三程序指令。该系统包括用于保存具有最晚到期日期的文件作为主副本的第四程序指令。该系统包括用于用指向主副本的相应数据结构替换组中的除了具有最晚到期日期的文件之外的每个文件的第五程序指令。第一、第二、第三、第四和第五程序指令存储于计算机可读存储介质上以用于经由计算机可读存储器由CPU执行。确定不可变并且对于第一文件冗余的多个第二文件包括:通过比较第一文件的哈希值与在共享存储装置中保存的其它文件的哈希值来确定至少一个候选冗余文件;并且使用文件差异过程来比较第一文件与至少一个候选冗余文件。
附图说明
通过本发明的示例实施例的非限制示例参照指出的多个附图在以下具体描述中描述本发明。
图1描绘根据本发明的方面的云计算节点;
图2描绘根据本发明的方面的云计算环境;
图3描绘根据本发明的方面的抽象化模型层;
图4描绘数据去重复框图;
图5A和图5B描绘根据本发明的方面的示例去重复过程;以及
图6描绘根据本发明的方面的示例流程图。
具体实施方式
本发明主要地涉及云计算并且更具体地涉及用于在存储云中使用去重复技术来管理冗余不可变文件的方法和系统。根据本发明的方面,去重复技术应用于不可变文件以在维持不可变性前提之时实现数据存储保存。在实施例中,在其中有多个冗余不可变文件的情形中,设置具有在将来最远的到期日期的文件作为主副本,并且所有其它冗余副本被设置为指向主副本并且将其删除。以这一方式,本发明的实现方式通过删除文件的冗余副本来实现去重复的数据存储保存,并且也为具有不可变性的要求的用户实现对不可变文件的副本的访问。
根据本发明的方面,在标记特定文件为不可变时,去重复代理前摄地搜索对于不可变文件冗余的其它文件。在发现可变(例如非不可变)冗余文件时,去重复代理删除可变文件并且将它指向被保存为主副本的不可变文件。在发现不可变冗余文件时,去重复代理比较多个不可变文件(例如原有不可变文件和去重复代理发现的一个或者多个不可变文件)的不可变性到期日期,并且保存具有最晚到期日期的不可变文件作为主副本。去重复代理删除所有其它不可变冗余文件并且将这些文件指向主副本。
在实施例中,去重复代理用软链接保持每个不可变文件的不可变性属性(例如到期日期)。例如对于已经删除的并且现在指向主副本的特定文件,特定文件的软链接包含指向主副本的路径(例如指针)以及特定文件的不可变性属性(例如到期日期)。以这一方式,虽然不可变文件的冗余副本被删除,但是删除的文件的不可变性属性(例如到期日期)被保留,并且删除的副本的所有者有权对主副本进行访问。这样,消除主文件的冗余副本,而未违反不可变性前提。另外,在主副本的不可变性时段到期(例如到期日期出现)并且指向主副本的软链接具有更晚到期日期的情况下,去重复代理提升软链接作为主副本并且将现有主副本改变成不再不可变的软链接。
云计算
首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
为了方便,具体实施方式包括已经从在随本申请提交的IDS中引用并且其副本附于本申请的Peter Mell和Tim Grance“Draft NISTWorking Definition of Cloud Computing”得到的以下定义:
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全要求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参照图1,示出云计算节点的示例的示意图。云计算节点10仅为适当云计算节点的一个示例并且未旨在于暗示关于这里描述的本发明的实施例的使用或者功能范围的任何限制。无论如何,云计算节点10能够实施和/或执行上文阐述的功能中的任何功能。图1也可以代表能够执行和/或实施这里描述的方法的任务和/或功能的计算基础设施。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。在实施例中,计算机系统/服务器12包括或与重复数据消除代理80通信,本文以下更详细描述。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有程序模块42的集合(程序模块42中的至少一个程序模块)的程序/实用程序40已经操作系统、一个或者多个应用程序、其它程序模块和程序数据可以例如而不限于存储于存储器28中。操作系统、一个或者多个应用程序、其它程序模块和程序数据中的每项或者其某个组合可以包括联网环境的实现方式。程序模块42一般执行如这里描述的本发明的实施例的功能和/或方法。例如可以实施去重复代理80的功能中的一些或者所有功能以作为程序模块42中的一个或者多个程序模块。此外,可以实施去重复代理80作为分离专用处理器或者单个或者若干处理器以提供这里描述的功能。在实施例中,去重复代理80执行这里描述的过程中的一个或者多个过程,这些过程包括但不限于:接收将在共享存储装置中被保存为不可变的文件或者接收指示,该指示表明当前保存在共享存储装置中的一个文件将被设置为不可变;在文件系统中发现文件的冗余副本;删除在文件系统中发现的冗余可变副本并且将这些冗余可变副本指向作为主副本的不可变文件;比较在文件系统中发现的冗余不可变副本与不可变文件、保存这些文件之一作为主副本、用软链接将其它文件指向主副本并且删除其它文件。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID(廉价磁盘的冗余阵列或独立磁盘的冗余阵列)系统、磁带驱动器以及数据备份存储系统等。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
硬件和软件层60包括硬件和软件组件。硬件组件的例子包括:主机,例如系统;基于RISC(精简指令集计算机)体系结构的服务器,例如IBM系统;IBM系统;IBM Blade系统;存储设备;网络和网络组件。软件组件的例子包括:网络应用服务器软件,例如IBM应用服务器软件;数据库软件,例如IBM数据库软件。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphere以及DB2是国际商业机器公司在全世界各地的注册商标)。
虚拟层62提供一个抽象层,该层可以提供下列虚拟实体的例子:虚拟服务器、虚拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,以及虚拟客户端。
在一个示例中,管理层64可以提供下述功能:资源供应功能:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个例子中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层66提供云计算环境可以用于的功能的示例。可以从这一层提供的工作负载和功能的示例包括:地图绘制和导航;软件开发和生命周期关联;虚拟教室教育递送;数据分析处理;交易处理;以及去重复。根据本发明的方面,去重复工作负载/功能操作用于执行这里描述的过程中的一个或者多个过程,这些过程包括但不限于:接收将在共享存储装置中被保存为不可变的文件或者接收指示,该指示表明当前保存在共享存储装置中的一个文件将被设置为不可变;在文件系统中发现文件的冗余副本;删除在文件系统中发现的冗余可变副本并且将这些冗余可变副本指向作为主副本的不可变文件;比较在文件系统中发现的冗余不可变副本与不可变文件、保存这些文件之一作为主副本、用软链接将其它文件指向主副本并且删除其它文件。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在任何一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可用的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置、器件或者任意以上的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的计算机代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、射频(RF)等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如JavaTM、SmalltalkTM、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供者来通过因特网连接)。
下面将参照根据本发明示例实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令提供实现流程图和/或框图中的一个或多个方框中规定的功能/动作的过程。
图4描绘根据本发明的方面的去重复框图。在实施例中,形式为不可变文件75的数据从本地计算设备54流向包括计算节点10和去重复代理80的去重复系统。这可以例如包括本地计算设备54的用户请求(或者指示)在共享存储装置90中将文件75保存为不可变或者指明将当前保存在共享存储装置90中的文件75被指明为不可变。本地计算设备54可以以上关于图2描述的许多本地计算设备54A-N之一。共享存储装置90可以例如是在云环境、比如图2中描绘的云环境50中的一个或者多个节点包含的一个或者多个数据存储单元。
在文件去重复过程中,去重复代理80针对文件75运行哈希算法,该哈希算法生成用于文件的唯一哈希值。去重复代理80比较用于文件的唯一哈希值与在存储装置90中已经存储的其它文件的哈希值。其它文件的哈希值可以存储于存储装置90中和/或去重复数据库85中,该去重复数据库包含关于系统中的去重复的文件的信息。
在附加实施例中,比较和匹配哈希值是在确定冗余性时的第一步骤。在这样的附加实施例中,具有匹配哈希值的文件被视为可能的(例如候选)冗余副本。用于确认冗余性的第二步骤涉及到去重复代理80在可能的冗余副本之中执行文件差异过程以增加副本相同的置信度。文件差异过程比较文件的实际内容而不是比较哈希值。以这一方式,去重复代理80还可以使用文件差异过程以标识真实冗余副本,例如存储装置90中的与文件75相同的文件。
比较哈希值并且可选地执行文件差异过程是确定冗余文件的示例方法。然而本发明不限于这些方法,并且可以在本发明的范围内使用用于标识存储装置90中的与文件75相同的文件的任何适当比较过程。
根据本发明的方面,在去重复代理80无法发现存储装置90中的对于文件75冗余的任何文件的情况下,去重复代理80在存储装置90中保存文件75并且在文件的i节点中保留文件75的不可变性属性。在另一方面,在去重复代理80发现存储装置90中的对于文件75冗余的至少一个文件时,去重复代理80然后如以下关于图5A和图5B更具体描述的那样基于文件的发现的副本是可变的还是不可变的来将去重复过程应用于冗余文件。
图5A描绘在文件75不可变并且代理(例如图4中描述的代理80)发现存储装置90中的一个或者多个可变冗余文件100时、根据本发明的去重复过程。在这一情况下,发现的冗余文件100可变,这意味着对这一文件100进行的删除、修改等不存在限制。因而,代理在存储装置90中保存文件75并且指明文件75作为主副本。代理从存储装置90删除文件100并且创建指向主副本、例如文件75的软链接105。软链接105可以是在文件系统中的任何适当位置存储的数据结构、该存储位置包括但不限于存储装置90、去重复数据库(例如图4中描绘的数据库85)、作为i节点的部分或者文件系统中的其它位置。
仍然参照图5A,代理可以标识在存储装置90中保存的多于一个可变冗余文件100。在这样的情况下,从存储装置90删除多个可变文件100中的每个可变文件,并且用指向文件75(例如在存储装置90中保存的主副本)的相应软链接105替换它们。
此外,不可变文件75可以具有到期日期‘A’。可以在到期日期或者之后删除或者修改文件75,在该情况下,代理提升软链接105为存储装置90中的主副本。在到期日期之后修改或者删除文件75时存在指向文件75的多个软链接105时,代理提升软件链接105之一做为新的主副本,并且更新其余多个软链接105以指向新的主副本。
在可变文件100的所有者在创建软链接105之后删除文件的情况下,代理删除软链接105而保留在存储装置90中保存的文件75的主副本。在可变文件100的所有者在创建软链接105之后更新文件100的情况下,代理执行创建主文件的新副本、接收用户对新副本的改变并且保存新副本作为新文件(例如在写入时复制)的常规去重复过程。
图5B描绘在文件75不可变并且代理(例如图4中描述的代理80)发现存储装置90中的一个或者多个不可变冗余文件110时、根据本发明的方面的去重复过程。在图5B中所示示例中,文件75具有不可变性到期日期‘A’,并且文件110具有不可变性到期日期‘B’。在A大于B(例如文件75将来不可变比文件110更久)时,然后在存储装置90中保存文件75作为主副本,而删除文件110并且用指向主副本的软链接115替换文件110。在另一方面,在B大于A(例如文件110将来不可变比文件75更久)时,然后在存储装置90中保存文件110作为主副本,而删除文件75并且用指向主副本的软链接115’替换文件75。在任一情况(A>B或者B>A)下,在存储装置90中保存一个文件作为主副本而删除另一文件并且用指向主副本的软链接替换另一文件。另外,替换删除的文件的软链接(例如软链接115或者115’)除了包含定义指向主文件的路径(例如指针)的数据之外还包含定义删除的文件的不可变性到期日期的数据。
可以在代理标识对于文件75冗余的多于一个文件110时执行图5B中描绘的过程。在这样的情况下,代理确定所有文件75和110中的哪一个文件具有将来最远到期日期并且提升和保存该一个文件作为在存储装置90中的主副本。如已经描述的那样删除并且用软链接115和/或115’替换其余文件。
在实施例中,在软链接之一在主副本之前到期时,代理删除特定软链接或者将软链接改变成可变,而保持保存的主副本和任何其它软链接。在另一方面,在主副本到期时,代理分析指向主文件的所有软链接的到期日期,以确定是否软链接中的任何软连接具有将来到期日期(这可以例如在变更软链接以将它的到期日期延伸至在主副本的到期日期之后的日期时发生)。在无软连接具有更晚到期日期时,可以删除或者将主副本和所有软链接改变为可变。在仅一个软链接具有更晚到期日期时,提升该软链接为主副本,并且删除先前主副本和所有其它软链接或者其改变为可变。在多个软链接具有更晚到期日期时,提升具有最晚到期日期的软连接为主副本,改变具有将来到期日期的其它软链接以指向新的主副本,并且删除先前主副本和已经超过到期日期的所有其它软链接或者将其改变为可变。
软链接(例如软链接105、115、115’)不限于以到期日期的形式存储不可变性信息,并且可以在本发明的范围内在软链接中存储备选或者附加不可变性信息。另外,确定提升和保存哪一个文件作为主副本而删除和用软链接替换哪些文件可以基于不可变性信息而不是到期日期。
流程图
图6示出用于执行本发明的方面的示例流程图。可以例如在图1-4的环境中的任何环境中实施图6的步骤。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,本发明可以采用从计算机可用或者计算机可读介质可访问的计算机程序产品的形式,该计算机可用或者计算机可读介质提供用于由或者结合计算机或者任何指令子系统使用的程序代码。可以在图1-4的环境中实施软件和/或计算机程序产品。出于本描述的目的,计算机可用或者计算机可读介质可以是任何装置,该装置可以包含、存储、传达、传播或者传送用于由或者结合指令执行系统、装置或者设备使用的程序。介质可以是电子、磁、光、电磁、红外线或者半导体系统(或者装置或者设备)或者传播介质。计算机可读存储介质的示例包括半导体或者固态存储器、磁带、可拆卸计算机盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前示例包括紧致盘-只读存储器(CD-ROM)、紧致盘-读/写(CD-R/W)和DVD。
图6描绘根据本发明的方面的用于去重复过程的示例流程图。在步骤610,去重复系统(例如运行去重复代理80的计算设备)从用户(例如本地计算设备54)接收输入,该输入包括对将被设置为不可变的文件的指示。用户输入可以包括从本地计算设备向去重复系统传输的文件以及用于在共享存储装置(例如存储装置90)中将文件保存为不可变的指令。备选地,用户输入可以包括已经保存(例如在存储装置90中已经保存)的文件的标识和用于指明文件为不可变的指令。
在步骤615,去重复系统搜索在文件系统中(例如在存储装置90)中当前存储的文件的冗余副本。在实施例中,这以关于图4描述的方式来执行。例如去重复系统的去重复代理可以生成用于文件(例如来自步骤610的文件)的哈希值并且比较这一哈希值与在文件系统中存储的文件的哈希值。匹配哈希值指示文件的冗余副本。可选地,去重复代理可以附加地或者备选地对可能(例如候选)冗余文件执行文件差异过程以增加在步骤615发现的文件与来自步骤610的文件相同的置信度。
在步骤620,去重复系统例如使用来自步骤615的搜索和比较的结果来确定是否发现任何冗余副本。在未发现冗余副本时,然后在步骤625,去重复系统在文件系统(例如存储装置90)中保存文件(来自步骤610)和它的关联不可变性信息和/或更新与文件关联并且在步骤610接收的任何新的不可变性信息。在另一方面,当存在在步骤615和620中发现的冗余副本时,则该过程继续步骤630,其中去重复系统确定冗余副本是可变的或者是不可变的。在实施例中,通过以常规方式检查特定文件的属性来进行特定文件是不可变的或者是可变的确定。
当在步骤630确定一个或者多个冗余文件可变时,然后在步骤635在共享存储装置中保存不可变文件(来自步骤610)作为主副本,而删除所有可变冗余副本并且用指向主副本的软链接替换所有可变冗余副本。在实施例中,步骤635包括保存不可变文件作为主副本、更新用于主文件的不可变性信息,并且改变可变冗余副本以指向主副本。这可以如以上关于图5A描述的那样来执行。
在另一方面,当在步骤630确定冗余副本中的一个或者多个副本不可变时,然后在步骤640,去重复系统确定所有文件(例如来自步骤610的文件和在步骤615发现的冗余文件)中的哪一个文件具有最晚到期日期(例如将来最远的不可变性到期日期)。在共享存储装置中保存具有最晚到期日期的文件作为主副本,而删除来自如下组中的除了被保存为主副本的所有其它文件,并且将其替换为指向主副本的软链接,该组由来自步骤610的文件以及来自步骤615和620的冗余文件构成。在实施例中,步骤640包括确定哪个不可变文件具有最晚到期日期、保存具有最晚到期日期的不可变文件作为主副本、用指向主副本的软链接替换冗余文件、保存软链接中的不可变性信息。这可以如以上关于图5B描述的那样来执行。
有可能的是去重复系统在步骤615发现多个冗余文件,这些冗余文件中的一些冗余文件可变而一些冗余文件不可变。在这样的情况下,去重复系统如在步骤635描述的那样对可变文件去重复,并且如在步骤640描述的那样对不可变文件分离地去重复。
在实施例中,服务提供者、比如解决方案集成者可以赋予执行这里描述的过程。在这一情况下,服务提供者可以创建、维护、部署、支持等计算机基础设施,该计算机基础设施为一个或者多个客户执行本发明的过程步骤。这些客户可以例如是使用技术并且提供或者利用服务的任何企业。作为回报,服务提供者可以在预订和/或费用协定之下从客户接收付款和/或服务提供者可以接收来自向一个或者多个第三方销售广告内容的付款。
本发明的各种实施例的描述已经出于示例的目的而加以呈现、但是未旨在于穷举或者限于公开的实施例。许多修改和变化将为本领域普通技术人员所清楚而未脱离描述的实施例的范围和精神实质。选择这里所用术语以最好地说明实施例的原理、实际应用或者较在市面上发现的技术而言的技术改进或者使本领域其他技术人员能够理解这里公开的实施例。许多修改和变化将为本领域普通技术人员所清楚而未脱离本发明的范围和精神实质。在权利要求中的所有装置或者步骤加上功能单元的对应结构、材料、动作和等效物如果适用则旨在于包括用于与如具体要求保护的其它要求保护的要素组合执行该功能的任何结构、材料或者动作。因而,尽管已经在实施例方面描述本发明,但是本领域技术人员将认识可以用修改并且在所附权利要求的精神实质和范围中实现本发明。

Claims (25)

1.一种在包括硬件和软件的组合的计算机基础设施中实施的文件去重复方法,所述方法包括:
接收对于将第一文件保存为不可变的请求;
搜索所保存的并且对于所述第一文件冗余的第二文件;
确定所述第二文件是可变的或者是不可变的;
在所述第二文件可变时,保存所述第一文件作为主副本,并且用指向所述主副本的软链接替换所述第二文件;以及
在所述第二文件不可变时,确定所述第一和第二文件中的哪一个文件具有更晚到期日期和更早到期日期,保存所述第一文件和第二文件中具有所述更晚到期日期的那个文件作为主副本,并且用指向所述主副本的软链接替换所述第一文件和第二文件中的具有所述更早到期日期的那个文件。
2.根据权利要求1所述的方法,其中对于保存所述第一文件的所述请求包括对于在共享存储装置中保存所述第一文件的请求或者指令。
3.根据权利要求2所述的方法,其中:
从本地计算设备接收对于保存所述第一文件的所述请求;以及
所述共享存储装置处在与所述本地计算设备远离的云环境中。
4.根据权利要求1所述的方法,其中所述搜索所述第二文件包括比较所述第一文件的哈希值与其它保存的文件的哈希值。
5.根据权利要求1所述的方法,其中所述搜索所述第二文件包括:
通过比较所述第一文件的哈希值与其它保存的文件的哈希值来确定至少一个候选冗余文件;以及
使用文件差异过程来比较所述第一文件与所述至少一个候选冗余文件。
6.根据权利要求1所述的方法,其中所述更晚到期日期和所述更早到期日期是不可变性到期日期。
7.根据权利要求1所述的方法,其中:
所述第二文件是不可变的;以及
所述软链接包含定义所述更早到期日期的数据。
8.根据权利要求1所述的方法,其中:
所述第二文件是不可变的;
所述第二文件具有所述更早到期日期;以及
所述替换包括删除所述第二文件的保存的副本。
9.根据权利要求1所述的方法,其中:
所述第二文件是可变的;
在云环境的共享存储装置中保存所述主副本;以及
从所述共享存储装置删除所述第二文件,所述软链接指向所述主副本。
10.根据权利要求1所述的方法,其中服务提供者至少执行创建、维护、部署和支持所述计算机基础设施中的至少一项。
11.根据权利要求1所述的方法,其中权利要求1的步骤在预订、广告和/或计费基础上由所述服务提供者提供。
12.一种在硬件中实施的用于文件去重的并且包括计算机基础设施的系统,所述计算机基础设施可操作用于:
接收对于将第一文件保存为不可变的请求;
确定对于所述第一文件冗余的多个第二文件;
确定所述多个第二文件中的每个第二文件是不可变的;
从包括所述第一文件和所述多个第二文件的组中标识具有最晚到期日期的文件;
将具有所述最晚到期日期的所述文件保存作为主副本;以及
用指向所述主副本的相应数据结构替换所述组中除了具有所述最晚到期日期的所述文件之外的每个文件。
13.根据权利要求12所述的系统,其中所述相应数据结构包括不可变性到期日期。
14.根据权利要求12所述的系统,其中所述相应数据结构包括软链接,所述软链接包括不可变性到期日期。
15.根据权利要求12所述的系统,其中对于保存所述第一文件的所述请求包括对于在共享存储装置中保存所述第一文件的请求或者指令。
16.根据权利要求15所述的系统,其中:
从本地计算设备接收对于保存所述第一文件的所述请求;
所述共享存储装置处在与所述本地计算设备远离的云环境中;以及
在所述共享存储装置中保存所述主副本。
17.根据权利要求12所述的系统,其中所述确定对于所述第一文件冗余的所述多个第二文件包括比较所述第一文件的哈希值与其它保存的文件的哈希值。
18.根据权利要求12所述的系统,其中所述计算机基础设施还可操作用于在达到所述最晚到期日期时删除所述主副本或者标记所述主副本为可变。
19.根据权利要求18所述的系统,其中所述计算机基础设施还可操作用于:
从指向所述主副本的多个软链接确定具有新的最晚到期日期的软链接;以及
提升具有所述新的最晚到期日期的所述软链接为新的主副本;以及
更新除了具有所述新的最晚到期日期的所述软链接之外的所述多个软链接以指向所述新的主副本。
20.一种包括计算机可用有形存储介质的计算机程序产品,所述计算机可用有形存储介质具有在所述有形存储介质中体现的可读程序代码,其中所述计算机程序产品包括至少一个部件,所述至少一个部件可操作用于:
接收对于在共享存储装置中将第一文件保存为不可变的请求,其中从与所述共享存储装置远离的本地计算设备接收所述请求;
标识在所述共享存储装置中保存的并且对于所述第一文件冗余的至少一个第二文件;
确定所述至少一个第二文件为可变的或者为不可变的;
在所述至少一个第二文件可变时,保存所述第一文件为主副本,并且用指向所述主副本的相应软链接替换所述至少一个第二文件中的每个第二文件;以及
在所述至少一个第二文件不可变时:从包括所述第一文件和所述至少一个第二文件的组中标识具有最晚到期日期的文件;保存具有所述最晚到期日期的所述文件作为主副本;以及用指向所述主副本的相应数据结构替换所述组中的除了具有所述最晚到期日期的所述文件之外的每个文件。
21.根据权利要求20所述的计算机程序产品,其中所述标识所述至少一个第二文件包括比较所述第一文件的哈希值与在所述共享存储装置中保存的其它文件的哈希值。
22.一种对文件去重复的方法,包括:
提供计算机基础设施,所述计算机基础设施可操作用于:
接收对于在共享存储装置中将第一文件保存为不可变的请求,其中从与所述共享存储装置远离的本地计算设备接收所述请求;
确定对于所述第一文件冗余的多个第二文件;
确定所述多个第二文件的第一子集是可变的;
确定所述多个第二文件的第二子集是不可变的;
从包括所述第一文件和所述第二子集的组中标识具有最晚到期日期的文件;
保存具有所述最晚到期日期的所述文件作为主副本;以及
用指向所述主副本的相应软链接替换所述组中的除了具有所述最晚到期日期的所述文件之外的每个文件。
23.根据权利要求22所述的方法,其中所述确定对于所述第一文件冗余的所述多个第二文件包括比较所述第一文件的哈希值与在所述共享存储装置中保存的其它文件的哈希值。
24.一种用于对文件去重复的计算机系统,所述系统包括:
CPU、计算机可读存储器和计算机可读存储介质;
第一程序指令,用于接收对于在共享存储装置中将第一文件保存为不可变的请求,其中从与所述共享存储装置远离的本地计算设备接收所述请求;
第二程序指令,用于确定不可变并且对于所述第一文件冗余的多个第二文件;
第三程序指令,用于从包括所述第一文件和所述多个第二文件的组中标识具有最晚到期日期的文件;
第四程序指令,用于保存具有所述最晚到期日期的所述文件作为主副本;以及
第五程序指令,用于用指向所述主副本的相应数据结构替换所述组中的除了具有所述最晚到期日期的所述文件之外的每个文件;
其中所述第一、第二、第三、第四和第五程序指令存储于所述计算机可读存储介质上以用于经由所述计算机可读存储器由所述CPU执行;以及
所述确定不可变并且对于所述第一文件冗余的所述多个第二文件包括:通过比较所述第一文件的哈希值与在所述共享存储装置中保存的其它文件的哈希值来确定至少一个候选冗余文件;以及使用文件差异过程来比较所述第一文件与所述至少一个候选冗余文件。
25.根据权利要求24所述的计算机系统,其中所述最晚到期日期是不可变性到期日期。
CN201280059219.8A 2011-12-02 2012-09-06 在存储云中使用去重复来管理不可变冗余文件 Active CN103959264B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/310,007 US8468138B1 (en) 2011-12-02 2011-12-02 Managing redundant immutable files using deduplication in storage clouds
US13/310,007 2011-12-02
PCT/CN2012/081032 WO2013078895A1 (en) 2011-12-02 2012-09-06 Managing redundant immutable files using deduplication in storage clouds

Publications (2)

Publication Number Publication Date
CN103959264A true CN103959264A (zh) 2014-07-30
CN103959264B CN103959264B (zh) 2017-03-29

Family

ID=48524758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280059219.8A Active CN103959264B (zh) 2011-12-02 2012-09-06 在存储云中使用去重复来管理不可变冗余文件

Country Status (4)

Country Link
US (4) US8468138B1 (zh)
CN (1) CN103959264B (zh)
DE (1) DE112012005037B4 (zh)
WO (1) WO2013078895A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104361034A (zh) * 2014-10-27 2015-02-18 浪潮(北京)电子信息产业有限公司 一种云存储的文件管理方法及装置
CN108052291A (zh) * 2017-12-14 2018-05-18 郑州云海信息技术有限公司 一种云服务器的存储方法、系统、装置及可读存储介质
US20210272035A1 (en) * 2020-02-28 2021-09-02 Uber Technologies, Inc. Storage location selection according to query evaluation
WO2023217165A1 (en) * 2022-05-12 2023-11-16 International Business Machines Corporation De-duplication of data in executable files in a container image

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8886742B2 (en) * 2011-01-28 2014-11-11 Level 3 Communications, Llc Content delivery network with deep caching infrastructure
US9262428B2 (en) 2012-04-23 2016-02-16 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual address
US8996881B2 (en) 2012-04-23 2015-03-31 International Business Machines Corporation Preserving redundancy in data deduplication systems by encryption
US10133747B2 (en) 2012-04-23 2018-11-20 International Business Machines Corporation Preserving redundancy in data deduplication systems by designation of virtual device
US9779103B2 (en) 2012-04-23 2017-10-03 International Business Machines Corporation Preserving redundancy in data deduplication systems
US10482064B2 (en) * 2012-06-26 2019-11-19 Oracle International Corporations De-duplicating immutable data at runtime
US9582386B2 (en) 2013-03-15 2017-02-28 Cloudendure, Ltd. System and method for maintaining a copy of a cloud-based computing environment and restoration thereof
US10191823B2 (en) 2014-03-11 2019-01-29 Cloudendure Ltd. System and method for restoring original machines from replicated machines in a secondary computing environment
US9811526B2 (en) * 2013-12-02 2017-11-07 Empire Technology Development Llc Computing resource provisioning based on deduplication
CN106339309B (zh) * 2015-07-14 2020-01-31 腾讯科技(深圳)有限公司 应用程序的测试方法、客户端及系统
CN105915626B (zh) * 2016-05-27 2019-02-26 南京邮电大学 一种面向云存储的数据副本初始放置方法
US10554746B2 (en) 2016-11-14 2020-02-04 International Business Machines Corporation Decentralized immutable storage blockchain configuration
US10706082B1 (en) 2017-06-29 2020-07-07 Seagate Technology Llc Deduplication database management
US11429587B1 (en) 2017-06-29 2022-08-30 Seagate Technology Llc Multiple duration deduplication entries
US10789002B1 (en) * 2017-10-23 2020-09-29 EMC IP Holding Company LLC Hybrid data deduplication for elastic cloud storage devices
CN110019053B (zh) * 2017-11-02 2022-04-01 福建天晴数码有限公司 一种Unity3D资源包冗余数据检测方法及终端
US10713238B2 (en) * 2017-11-14 2020-07-14 Snowflake Inc. Database metadata in immutable storage
US10733454B2 (en) * 2018-06-29 2020-08-04 Hewlett Packard Enterprise Development Lp Transformation of video streams
CN109582642A (zh) * 2018-11-08 2019-04-05 网宿科技股份有限公司 文件存储方法、删除方法、服务器及存储介质
US10649676B1 (en) 2018-12-28 2020-05-12 Microsoft Technology Licensing, Llc Memory compression for immutable data structures
US11093292B2 (en) 2019-09-27 2021-08-17 International Business Machines Corporation Identifying recurring actions in a hybrid integration platform to control resource usage
US11436134B2 (en) * 2020-07-09 2022-09-06 Jpmorgan Chase Bank, N.A. Method and apparatus for data integration framework
US11314433B1 (en) 2020-11-20 2022-04-26 Seagate Technology Llc Remote deduplication of data in a storage system
US11934378B2 (en) 2021-03-11 2024-03-19 International Business Machines Corporation Recording changes to records whilst preserving record immutability
CN113505109A (zh) * 2021-07-27 2021-10-15 北京字节跳动网络技术有限公司 文件共享方法、装置、计算机设备以及存储介质
US11829240B2 (en) 2022-01-06 2023-11-28 Red Hat, Inc. Preventing duplication of files in a storage device
US20230315678A1 (en) * 2022-03-29 2023-10-05 International Business Machines Corporation Storage driver for managing a multiple layer file system on the cloud

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101809559A (zh) * 2007-09-05 2010-08-18 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
CN102055797A (zh) * 2010-11-29 2011-05-11 北京卓微天成科技咨询有限公司 一种云存储的数据存取的方法、装置及系统
US20110119668A1 (en) * 2009-11-16 2011-05-19 Microsoft Corporation Managing virtual hard drives as blobs

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366933B1 (en) * 1995-10-27 2002-04-02 At&T Corp. Method and apparatus for tracking and viewing changes on the web
US6240414B1 (en) * 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6438560B1 (en) 1999-09-16 2002-08-20 International Business Machines Corporation Reuse of immutable objects during object creation
KR100533671B1 (ko) * 2003-06-05 2005-12-05 삼성전자주식회사 효율적인 멀티미디어 컨텐츠 관리 장치 및 방법
US8121985B2 (en) * 2005-10-24 2012-02-21 Sap Aktiengesellschaft Delta versioning for learning objects
US8165221B2 (en) 2006-04-28 2012-04-24 Netapp, Inc. System and method for sampling based elimination of duplicate data
CN100565512C (zh) 2006-07-10 2009-12-02 腾讯科技(深圳)有限公司 消除文件存储系统中冗余文件的系统及方法
JP5044816B2 (ja) 2007-09-06 2012-10-10 インターナショナル・ビジネス・マシーンズ・コーポレーション オブジェクトを記憶・管理するシステム
US8548953B2 (en) * 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US7979670B2 (en) * 2008-01-24 2011-07-12 Quantum Corporation Methods and systems for vectored data de-duplication
US7899850B2 (en) 2008-02-22 2011-03-01 Bycast, Inc. Relational objects for the optimized management of fixed-content storage systems
US8352540B2 (en) * 2008-03-06 2013-01-08 International Business Machines Corporation Distinguishing data streams to enhance data storage efficiency
US8234317B1 (en) * 2008-08-06 2012-07-31 Netapp, Inc. Auto-committing files to immutable status based on a change log of file system activity
US8316064B2 (en) 2008-08-25 2012-11-20 Emc Corporation Method and apparatus for managing data objects of a data storage system
US7992037B2 (en) * 2008-09-11 2011-08-02 Nec Laboratories America, Inc. Scalable secondary storage systems and methods
CN102317938B (zh) 2008-12-22 2014-07-30 谷歌公司 用于复制内容可寻址存储集群的异步分布式去重
US20100306175A1 (en) * 2009-01-28 2010-12-02 Digitiliti, Inc. File policy enforcement
US9176978B2 (en) 2009-02-05 2015-11-03 Roderick B. Wideman Classifying data for deduplication and storage
US20100332401A1 (en) * 2009-06-30 2010-12-30 Anand Prahlad Performing data storage operations with a cloud storage environment, including automatically selecting among multiple cloud storage sites
US8224792B2 (en) * 2009-08-28 2012-07-17 International Business Machines Corporation Generation of realistic file content changes for deduplication testing
JP4838878B2 (ja) * 2009-12-04 2011-12-14 富士通株式会社 データ管理プログラム、データ管理装置、およびデータ管理方法
US8250325B2 (en) * 2010-04-01 2012-08-21 Oracle International Corporation Data deduplication dictionary system
JP5650982B2 (ja) * 2010-10-25 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ファイルの重複を排除する装置及び方法
TWI404893B (zh) * 2011-05-13 2013-08-11 南臺科技大學 無導光板之led發光構造
US8706703B2 (en) * 2011-06-27 2014-04-22 International Business Machines Corporation Efficient file system object-based deduplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101809559A (zh) * 2007-09-05 2010-08-18 伊姆西公司 在虚拟化服务器和虚拟化存储环境中的去重复
US20110119668A1 (en) * 2009-11-16 2011-05-19 Microsoft Corporation Managing virtual hard drives as blobs
CN102055797A (zh) * 2010-11-29 2011-05-11 北京卓微天成科技咨询有限公司 一种云存储的数据存取的方法、装置及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104361034A (zh) * 2014-10-27 2015-02-18 浪潮(北京)电子信息产业有限公司 一种云存储的文件管理方法及装置
CN108052291A (zh) * 2017-12-14 2018-05-18 郑州云海信息技术有限公司 一种云服务器的存储方法、系统、装置及可读存储介质
US20210272035A1 (en) * 2020-02-28 2021-09-02 Uber Technologies, Inc. Storage location selection according to query evaluation
WO2023217165A1 (en) * 2022-05-12 2023-11-16 International Business Machines Corporation De-duplication of data in executable files in a container image
US11947498B2 (en) 2022-05-12 2024-04-02 International Business Machines Corporation De-duplication of data in executable files in a container image

Also Published As

Publication number Publication date
WO2013078895A1 (en) 2013-06-06
DE112012005037T5 (de) 2014-08-14
US20130144846A1 (en) 2013-06-06
US20130246357A1 (en) 2013-09-19
US20150039570A1 (en) 2015-02-05
US9158783B2 (en) 2015-10-13
US9514145B2 (en) 2016-12-06
CN103959264B (zh) 2017-03-29
US8468138B1 (en) 2013-06-18
US8892521B2 (en) 2014-11-18
US20150317328A1 (en) 2015-11-05
DE112012005037B4 (de) 2018-11-15

Similar Documents

Publication Publication Date Title
CN103959264A (zh) 在存储云中使用去重复来管理不可变冗余文件
CN104205115B (zh) 使用不同安全擦除算法以从文件擦除与不同安全级别关联的组块
CN103988199A (zh) 已去重存储云中的数据残留的去除
CN104603762B (zh) 利用并行文件访问协议的自动校准以及元数据管理支持对文件系统的共享存储的协调访问的方法及系统
US11537556B2 (en) Optimized content object storage service for large scale content
US10725976B2 (en) Fast recovery using self-describing replica files in a distributed storage system
CN103297496A (zh) 用于云计算系统的增强存储配额管理的方法和系统
CN103765817A (zh) 从源服务器向目标服务器复制数据对象
CN104866513A (zh) 用于跨租户数据访问的系统和方法
CN103916455A (zh) 用于数据复制的方法和系统
CN105468473A (zh) 数据迁移方法及数据迁移装置
US9256613B2 (en) Systems, methods, and computer program products for secure multi-enterprise storage
US11360856B2 (en) Manifest index for block-level snapshots
US10956499B2 (en) Efficient property graph storage for streaming/multi-versioning graphs
CN108446976A (zh) 一种公积金转移方法、计算机可读存储介质及终端设备
EP4035012A1 (en) Network-accessible block-level snapshots
US10976953B2 (en) Optimized data replication in multi-tier storage environment
US20230259640A1 (en) Data storage systems and methods of an enforceable non-fungible token having linked custodial chain of property transfers prior to minting using a token-based encryption determination process
Ahmed et al. Big Data Analytics and Cloud Computing: A Beginner's Guide
Chang et al. Dynamic deduplication decision in a hadoop distributed file system
CN108153759A (zh) 一种分布式数据库的数据传输方法、中间层服务器及系统
CN109154880A (zh) 在分散存储网络中一致的存储数据
US11036705B2 (en) Traversal of dispersed lockless concurrent index nodes
Arora et al. Opportunities, Concerns and Challenges in the Adoption of Cloud Storage
US11176108B2 (en) Data resolution among disparate data sources

Legal Events

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