CN101288074A - 将数据从存储卷中的文件转移到替换位置以释放空间 - Google Patents

将数据从存储卷中的文件转移到替换位置以释放空间 Download PDF

Info

Publication number
CN101288074A
CN101288074A CNA2006800253013A CN200680025301A CN101288074A CN 101288074 A CN101288074 A CN 101288074A CN A2006800253013 A CNA2006800253013 A CN A2006800253013A CN 200680025301 A CN200680025301 A CN 200680025301A CN 101288074 A CN101288074 A CN 101288074A
Authority
CN
China
Prior art keywords
file
reflection
data
image file
making
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
CNA2006800253013A
Other languages
English (en)
Other versions
CN101288074B (zh
Inventor
S·巴拉克里什南
S·C·海弗瓦拉
G·瑟里亚纳拉亚南
C·F·罗伯特
D·蒂欧多斯
N·S·伯杰纳
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101288074A publication Critical patent/CN101288074A/zh
Application granted granted Critical
Publication of CN101288074B publication Critical patent/CN101288074B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1737Details of further file system functions for reducing power consumption or coping with limited storage space, e.g. in mobile devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

计算设备具有被文件系统存储在存储卷上并通过该文件系统访问的文件。该文件被定义成包括数据以及与该数据相关的元数据,以及将文件数据的至少一部分从该文件移走并存储在替换位置上,使得该数据基本上不占据该卷上的任何空间,并且所述文件处于减小、已制作映像的形式。已制作映像文件可通过从替换位置检索数据并将所检索到的数据与该已制作映像文件相关联以形成经重建的文件来重建以供使用。

Description

将数据从存储卷中的文件转移到替换位置以释放空间
技术领域
本发明涉及一种允许将数据从存储在存储卷中的计算机文件进行转移或‘制作映像(ghost)’到替换位置以释放存储卷上的空间的架构和方法。本发明尤其涉及这样一种架构和方法:已制作映像的文件的剩余部分(remainder)驻留在存储卷上,并且可按需检索替换位置上的映像数据并将其放置回已制作映像的文件以获得非制作映像的文件。
发明背景
众所周知,在诸如个人计算机、计算机服务器等的计算设备中,数据通常以驻留在该计算设备的一个或多个本地存储卷上的本地计算机文件的形式持久存储在该计算机设备上。众所周知,每个这种存储卷可驻留在计算设备的硬盘驱动器等之上,并且这种存储卷可由在计算设备上运行的文件系统组织、访问或以其它方式控制。
有时会出现这种情况,存储卷上的某些、许多、甚至大多数计算机文件不再重要,并且可被视为已变成“冷僻(cold)”。也就是说,例如这种冷僻文件在某一延长时期中未被访问和/或可能在未来的某一延长时期内不会被访问,因此,保留在卷中的实际价值即使有的也是很少的。
当然,可以简单地将这种冷僻文件从存储卷删除,尤其在需要这些卷空间的情况下。然而,应该意识到,大多数用户不愿意仅为创建空间而删除文件。此外,仅由于感觉上的无用而删除冷僻文件被视为不好的习惯。无论如何,可能存在这样的情况,文件虽然被视为非需要并且预期为非需要的,但是可能在以后的某时刻变得有用。
在这种情况下,能够通过从这种冷僻文件向替换位置转移数据来在卷上创建空间、同时使这种冷僻文件仍然出现在该卷上是有益的。即,能够通过从这种冷僻文件向替换位置‘制作映像’或者将整个文件拷贝到替换位置、同时使冷僻文件以更小的‘已制作映像(ghosted)’的形式留在卷上将是有益的。因此,如果计算设备真的需要已制作映像的文件,则可从替换位置检索该已制作映像文件的数据,基于此来重建已制作映像的文件,然后使用这种经重建的文件。
在另一种情况下,可能存在这种情形,组织数据文件等可能从诸如集线器的中央位置被复制到该组织的多个分支位置。例如,架构设计公司可能期望使其所有架构设计在该公司的若干分支的任一个处都可用。
在这种情况下,可将网络化系统构建成向每个分支复制每个文件的副本并在所有当前分支处保持所有文件。在这种系统中,例如,集中式集线器服务器可存储每个这种文件,并且复制服务可用于通过网络向每个分支处的分支服务器等分发集线器处每个文件的副本。然而,应该意识到,随着组织的文件数量的增多,并且随着每个文件的大小的增加,以及分支数量的增大,网络上的通信量也可能增加到超过可用带宽的程度。此外,随着集线器服务器处的所有文件的总体大小的增加,实际上可能出现这种情况:每个分支服务器在其上不具备足够可用空间来存储从集线器服务器所复制的所有这些文件。
与先前情况类似,但是可能是这种情况:特定分支的分支服务器上的计算机文件中的某些、许多、甚至大多数是不感兴趣的并且可被视为多余的。这种多余文件可例如涉及与特定分支不相关的事由,不太可能会通过该特定分支被访问,因此在特定分支的分支服务器上复制的实际价值即使有价值也很小。例如,宾夕法尼亚州威尔克斯巴里市(Wilkes-Barre)的架构设计公司的分支机构即使有任何需要也是不大可能需要获得与公司在佛罗里达州博因顿滩市(Boynton Beach)的分支机构所处理的项目相关的架构设计文件。
则在这种情况下,与先前情况类似,能够在特定分支的分支服务器上仅完整存储与该特定分支相关的那些文件、同时仅在该特定分支的该分支服务器上部分存储可从组织的集线器服务器获得的所有其它不相关文件是有益的。因此,以与先前情况类似的方式,能够对特定分支的分支服务器处的不相关文件‘制作映像’是有益的,从而每个不相关文件以更小的‘已制作映像(ghosted)’形式保留在分支服务器上。因此,再次地,如果在分支服务器处实际需要已制作映像文件,则可从集线器服务器检索该已制作映像文件的数据,可在其上重建已制作映像文件,并且随后可使用这种经重建的文件。
因此,需要一种方法和机制,通过该方法和机制,可对在诸如本地卷或分支服务器的源处的文件进行复制或制作映像使得其数据存储在诸如替换位置或集线器服务器的信宿(sink)处,因此,在源处的文件处在可按需重建的减小或已制作映像的形式中。特别需要一种可按需经由其形成和重建此已制作映像文件的方法和机制。
发明概述
上述需要可由本发明至少部分地满足,其中计算设备具有存储卷、管理存储卷的文件系统、以及由文件系统存储在存储卷上并通过该文件系统访问的文件。该文件被定义成包括数据和与该数据相关的元数据,并且将文件的数据的至少一部分从文件移走并存储在替换位置使得该数据基本上不占据卷上的任何空间,并且该文件处于减小的已制作映像的形式。已制作映像文件可通过从替换位置检索数据并将该检索到的数据与该已制作映像文件相关联以形成重建文件来重建以备使用。
为了对文件制作映像,标识该文件,标识将从该文件移走的数据的至少一部分,并将所标识的数据从该文件转移到替换位置以存储其上,使得该文件处于减小的已制作映像形式。因此,卷上先前由已转移数据占据的空间被标记为自由空间。此外,将现有已制作映像文件修改成包括映像制作信息,该信息包含可用于从替换位置检索已转移数据的信息。
在收到访问已制作映像文件的已转移数据的请求时重建该已制作映像文件。作为响应,在卷上定位已制作映像文件,在该文件的元数据中标识映像制作信息,并基于所标识的映像制作信息而在替换位置上定位该文件的已转移信息。之后,将所定位的数据从替换位置转移到计算设备,并将已转移数据与该已制作映像文件相关联以形成经重建的文件。
附图简要描述
通过与附图结合地阅读,将更好地理解以上概述以及本发明实施方式的以下详细描述。出于说明本发明的目的,在附图中示出当前较佳的实施方式。然而应该理解,本发明并不限于所示的精确配置和手段。在附图中:
图1是表示其中可结合本发明的诸方面和/或其部分的通用计算机系统的框图;
图2是示出根据本发明的实施方式的在源处制作映像使得其数据被存储在信宿处的文件的框图;
图3A和3B是示出图2的文件和数据的框图,由此根据本发明的实施方式,仅数据被存储在信宿(图3A)处并且整个文件被存储在信宿(图3B)处;
图4是示出根据本发明一实施方式的、在向图2的信宿制作文件的映像时所执行的关键步骤的流程图;
图5是示出根据本发明一实施方式的、在从图2的信宿重建已制作映像文件时所执行的关键步骤的流程图;
图6是示出根据本发明一实施方式的、在从图2的信宿重建已制作映像文件时所执行的更详细关键步骤的流程图;
图7是示出根据本发明一实施方式的、在从图2的信宿部分重建已制作映像文件时所执行的关键步骤的流程图;
图8是示出根据本发明一实施方式的图2中文件的数据的各种状态的框图;
图9是示出根据本发明一实施方式,在基于图8所列出的部分的数据片段状态从图2的信宿有效重建已制作映像文件的至少一部分中所执行的关键步骤的流程图;
图10是根据本发明一实施方式的、在向图2的信宿再次制作文件的映像时所执行的关键步骤的流程图;
图11是示出根据本发明一实施方式的与多个信宿相关联的图2的源的框图,由此该源具有单个通用映像制作过滤器以及对应于每个信宿的映像制作管理器;以及
图12是示出根据本发明一实施方式的、在源处制作文件的映像并重建文件时由图11的制作映像过滤器执行的关键步骤的流程图。
本发明的详细描述
计算机环境
图1和以下讨论旨在提供其中可实现本发明和/或其部分的合适计算环境的简要一般描述。虽然并非必需,但是在由诸如客户端工作站或服务器的计算机执行的诸如程序模块的计算机可执行指令的一般上下文中描述本发明。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,应该理解,本发明和/或其部分可与其它计算机系统配置一起来实践,包括手持设备、多处理器系统、基于微处理器或可编程消费电子产品、网络PC、小型计算机、大型计算机等。本发明还可在分布式计算环境中实施,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可位于本地和远程存储器存储设备中。
如图1所示,示例性通用计算系统包括常规个人计算机120等,该计算机包括处理单元121、系统存储器122和将包括系统存储器的各种系统组件耦合到处理单元121的系统总线123。系统总线123可以是若干总线结构中任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中任一种的局域总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。包含在诸如启动过程中帮助在个人计算机120内的元件之间传递信息的基本例程的基本输入/输出系统126(BIOS)存储在ROM 124中。
个人计算机120还包括从硬盘(未示出)读取和向其写入的硬盘驱动器127、从可移动磁盘129读取或向其写入的磁盘驱动器128、以及从诸如CD-ROM或其它光学介质的可移动光盘131读取或向其写入的光盘驱动器130。硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别通过硬盘驱动器接口132、磁盘驱动器接口133和光盘驱动器接口134连接到系统总线123。这些驱动器以及与其关联的计算机可读介质为个人计算机120提供对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。
虽然本文所述的示例性环境使用硬盘、可移动磁盘129和可移动光盘131,但是应该理解,在示例性操作环境中也可使用能够存储可由计算机访问的数据的其它类型计算机可读介质。这些其它类型介质包括磁带盒、闪存卡、数字视频盘、柏努利(Bernoulli)盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等。
可在硬盘、磁盘129、光盘131、ROM 124或RAM 125上存储许多程序模块,包括操作系统135、一个或多个应用程序136、其它程序模块137和程序数据138。用户可通过诸如键盘140和定点设备142的输入设备向计算机120中输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常通过耦合到系统总线的串行端口接口146连接到处理单元121,但是可通过诸如并行端口、游戏端口或通用串行总线(USB)的其它接口连接。监视器147或其它类型的显示设备也可经由诸如视频适配器148的接口连接到系统总线123。除了监视器147之外,个人计算机通常包括诸如扬声器和打印机的其它外围输出设备(未示出)。图1的示例性系统也包括主适配器155、小型计算机系统接口(SCSI)总线156以及连接到SCSI总线156的外置存储设备162。
个人计算机120可在使用到诸如远程计算机149的一个或多个远程计算机的逻辑连接的网络化环境中操作。远程计算机149可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其它公共网络节点,并且通常包括以上针对个人计算机120描述的元件中多个或全部,尽管仅在图1中示出存储器存储设备150。图1所示的逻辑连接包括局域网(LAN)151和广域网(WAN)152。这种网络环境在办公室、企业内部计算机网络、内联网和因特网中十分常见。
当在LAN网络环境中使用时,个人计算机120通过网络接口或适配器153连接到LAN 151。当在WAN网络环境中使用时,个人计算机120通常包括调制解调器154或用于在诸如因特网的广域网152上建立通信的其它装置。或为内置或为外置的调制解调器154经由串行端口接口146连接到系统总线123。在网络化环境中,针对个人计算机120描述的程序模块或其部分可存储在远程存储器存储设备中。应该理解,所示网络连接是示例性的,也可使用在计算机之间建立通信链路的其它装置。
制作映像并重建文件
现在参照图2,在本发明中,诸如个人计算机或计算机服务器等的计算设备10具有诸如硬盘驱动器或持久RAM驱动器等的存储卷12,卷12具有存储于其上的许多计算机文件14,且卷12上的文件14由在计算机设备10上运行的文件系统16组织、通过文件系统来访问、以及由文件系统以其它方式控制。应该理解,在不背离本发明的精神和范围的情况下,计算设备10、卷12、文件14和文件系统16可以是任何类型的计算设备、卷、文件和文件系统。
在本发明一实施方式中,计算设备10是个人计算机等,且其卷12上的文件14的至少一些已被判定为冷僻,例如因为这些文件14已在某一延长时期中未被访问和/或可能将在某一延长时期中不被访问,因此保留在卷12上的实际价值即使有也很少。但是注意,可在不背离本发明的精神和范围的情况下以任何合适方式定义文件14的冷僻。
无论如何,在被判定为冷僻时,不将文件14从卷12删除,而是通过将其至少一些数据20转移到替换位置18来减小其在卷12上的大小。该替换位置18可以在计算设备的本地或者远程。一般而言,在不背离本发明的精神和范围的情况下,该替换位置适当耦合到计算设备10并可以是任何适当的存储位置。例如,替换位置18可以是存储设备10上另一卷12、另一计算设备10上的另一卷12、服务器上的文件库、远程服务器上的长期存储设备等。
于是,通过使用替换位置18,卷12上的空间可通过将上述数据20从这些冷僻文件14转移到此替换位置18而得以释放。值得注意的是,虽然已从这种冷僻文件14转移了数据20,但是这种冷僻文件14仍然作为表示或“幻影”出现在卷12上,但是以减小或“已制作映像”的形式。因此,如果在计算设备10上实际需要已制作映像文件14,则通过从替换位置18检索其数据20并且将该所检索到的数据20与该已制作映像文件14重新关联而形成重建文件14,以此来重建这种已制作映像文件14。应该理解,一旦被重建,则可实际使用文件14。
在本发明的另一实施方式中,计算设备10是分支服务器等,并且其卷12上的文件14中的至少一些被判定为不相关,例如因为这些文件14与关联于该分支服务器的分支机构无关。当然,在不背离本发明的精神和范围的情况下,可以以任何适当方式定义文件14的不相关性。
无论如何,如上所述,以至少失去其某些数据20的减小格式在分支服务器10的卷12上维护不相关文件14。在此,这种数据20被存储在诸如由一组织维护的集中式集线器服务器的替换位置18上,其中该分支机构是该组织的分支。再次地,这种集线器服务器18被适当耦合到分支服务器10。
于是,通过集线器服务器18,通过将这种上述数据20从不相关文件14存储到该集线器服务器18上,分支服务器10的卷12上的所用空间得到最小化,并且填充该空间所需的带宽也得以最小化。与上述类似,重要的是虽然来自这种不相关文件14的数据20不出现在分支服务器10上,但是不相关文件14作为表示或‘幻影’而以减小或‘已制作映像’的形式保持在分支服务器的卷12上。因此,如果在分支服务器10实际需要已制作映像文件14,则通过从集线器服务器18检索其数据20以及将所检索到的数据20与该已制作映像文件14重新关联以形成重建文件14,以此来重建该已制作映像文件14。再次地,一旦被重建,文件14可被实际使用。
为了一般化,无论是在涉及诸如个人计算机的计算设备10和替换位置18、分支服务器10和集线器服务器18的配置还是其它配置中,‘制作映像’涉及源10处卷12的文件14,如图2中所示,其中已作出这样的判定:文件14应该仅以不包括与该文件14相关联的某一部分数据20的减小格式出现在卷12上。因此,如图2所示,该数据20被存储在适当耦合到源10的信宿18上。
通过该信宿18,源10的卷12上的所用空间得到最小化,因为卷12上的已制作映像文件14以减小或‘存根’的形式出现。因此,如果在源10实际需要已制作映像文件14,则通过从信宿18检索其数据20并将所检索到的数据20与该已制作映像文件14重新关联以形成重建文件14,以此来重建该已制作映像文件14。再次地,一旦被重建,则文件14可按需在源10处被实际使用。
在本发明一实施方式中,在源10的卷上出现的已制作映像文件的存根被存储在卷12上与原始文件14相同的位置处。因此,无论文件系统16根据目录格式还是其它来组织卷12,寻找已制作映像文件14的特定位置的文件系统16应该在该位置上找到文件14的存根,即已制作映像文件14。值得注意的是,驻留在源10的卷12上的已制作映像文件14包含来自原始、非制作映像文件14的所有元数据22,并且还包含可用于从信宿18检索文件14的数据20的映像制作信息24,等等。应该理解,可将这种映像制作信息24添加到文件14的元数据22,或者可存储在文件14的另一位置。
因此,即使卷12上文件14的一些被制作映像而卷12上文件14的一些未被制作映像,用户等也可通过文件系统16来浏览源10的整个卷12。具体而言,在这种浏览期间可使用与已制作映像文件14相关联的元数据22来标识已制作映像文件14,提供大小信息、日期信息等。当用户尝试访问已制作映像文件14时,基于在已制作映像文件14中出现的映像制作信息24来检索其数据20,将已制作映像文件14重建成非制作映像文件14,然后用户可实际访问该非制作映像文件14。
现在参照图3A,可以看出,可驻留在源10的卷12上的非制作映像文件14包括可被组织成报头等的元数据22,其中该元数据22包括与未制作映像文件14的数据20相关的信息,诸如逻辑文件大小、在卷12上的大小、创建时间、修改时间、访问时间、访问许可和各种文件属性。此外,显而易见的是,驻留在源10的卷12上的这种非制作映像文件14包括文件14的实际数据20。注意,这种实际数据20可作为原始数据和可选数据来组织,其中原始数据是来自文件14的可由应用程序30等(图2)使用的数据20,而可选数据是来自文件14的为其它用途而创建的数据。仅作为一个示例,这种可选数据可包括在显示文件14的表示时可由诸如源10处的应用程序30或文件系统16使用的诸如“缩略图”的图形表示。
无论如何,原始数据在大小上很可能是数据20的主体。相应地,当非制作映像文件14被实际制作映像时,实际情况可能是仅从非制作映像文件14的剩余部分移走数据20的原始数据来形成已制作映像文件14,在信宿18仅存储该原始数据以及可能的已制作映像文件14的标识,如图3A所示。当然,在文件14的映像制作期间也可移走文件14的其它部分而不背离本发明的精神和范围。
应该理解,虽然实际上在分支服务器10和集线器服务器18的背景下对非制作映像文件14进行映像制作,其中集线器服务器18将文件14复制到分支服务器10,但是实际情况可能是,虽然从源18处的已复制文件14的剩余部分移走数据20的原始数据来形成已制作映像文件14,但是该文件14的整体以及可能连同已制作映像文件14的标识被存储在信宿18中,如图3B所示。
现在参照图3和4,为了将非制作映像文件14转换成已制作映像文件14(即对文件14制作映像),首先标识文件14(步骤401),然后标识将要从文件14移走的数据20(步骤403)。再次地,这种数据20通常是数据20的原始数据,但是也可以是来自这种数据20的其它数据。无论如何,接着通过适当传输机制和渠道将所标识的数据20从源10转移到信宿18(步骤405),然后以适当格式将该已转移数据20存储在信宿18(步骤407)。应该理解,在信宿18存储数据20可通过任何适当格式和方式完成而不背离本发明的精神和范围。例如,可按需将数据20压缩和/或加密,并且该数据20应以如下方式存储:在重建文件14的请求下能相对容易地检索该数据20。例如,这种数据20可根据用于检索的ID来存储,如将在以下更详细描述的。
应该理解,一旦已在步骤405将数据20转移,则源10的卷12上由该数据20所占据的空间无需再分配给文件14。相应地,可将这种已分配空间标记为自由(步骤409),而且结果是现已制作映像文件14被标记为稀疏。值得注意的是,尽管这种已分配空间已从已制作映像文件14的使用中得以释放,但是该文件14的元数据中或其它位置处的现已制作映像文件14的逻辑文件大小不应改变,即使文件14在卷12上的大小实际上已被改变以反映这种已释放空间。
此外,在本发明一实施方式中,对现已制作映像文件14的元数据进行修改,以表明该文件14现在已被制作映像(步骤411)。例如,为了如此,可设置元数据22中的‘已制作映像’属性。应该理解,这种经设置的已制作映像属性可主要用作查询应用程序30等的文件14实际上已被制作映像的信号。于是,通过这种信号,查询应用程序30不仅可以得知文件14实际上已被制作映像,还可以得知访问该文件14涉及必须首先将该文件14重建成非制作映像形式的代价。应该理解,这种代价可以是访问来自信宿18的文件14的数据20所需的带宽、数据20在卷12上所需的空间、和/或访问信宿18中数据20以及基于其重建文件14的等待时间等。
而且,在本发明一实施方式中,现已制作映像文件14的元数据22被修改成包括上述映像制作信息24(步骤413)。再次地,该映像制作信息24包括可用于从信宿18检索文件14的数据20的信息等。例如,这种映像制作信息24可包括与信宿18中数据20一起存储并对其进行标识的ID,以及可用于存储与已制作映像文件14相关的其它信息的存储量,这种相关信息包括如何定位信宿18、如何重建文件14等的信息。映像制作信息24中的这种存储可以是变量或固定量,并且后者可限制于约16KB。应该理解,这种映像制作信息24主要由用来重建文件14的任何结构来使用,并且通常不由上述查询应用程序30等使用,但是可能发生这种使用而不背离本发明的精神和范围。
现在应该理解,已制作映像文件14可以非分布形式短时间、长时间、很长时间、或永远驻留在源10的卷12上,至少直到卷12不再操作。参照图5,应该理解,在该时段中任何时刻,可从应用程序30、该应用程序30处的用户等收到访问已制作映像文件14的存储数据20的请求(步骤501)。当然,在该请求之前,也可收到访问该已制作映像文件14的元数据22的一个或多个请求。例如,上述应用程序30可访问该已制作映像文件14的元数据22中的经设置的已制作映像属性,以确定文件14实际上已被制作映像,或者控制该卷12的文件系统16可在编译目录列表等的过程中访问元数据22。在后者情形中,值得注意的是,文件系统16、应用程序30或另一实体也可访问数据22的可选数据,以获取可在显示文件14的表示时使用的上述图形。
无论如何,响应于在步骤501访问已制作映像文件14的存储数据20的请求,以以下方式实际重建已制作映像文件14。最初,在卷12上定位文件14(步骤503),之后,标识文件14的元数据22中的映像制作信息24(步骤505)。应该理解,基于这种所标识的映像制作信息24来定位存储在信宿18的文件14的数据20(步骤507),然后可通过适当的传输机制和渠道将此已定位的数据20从信宿18转移到源10(步骤511)。
当然,为了在源10存储该数据20与文件14,必须在源10的卷12上分配将由该数据20占据的空间(步骤509),结果,不再将不再是已制作映像的文件14标记成稀疏。应该理解,在将数据20实际转移到文件14以对其重建之后,诸如通过重新设置该元数据22中的已制作映像属性来对不再是已制作映像的文件14的元数据22进行修改以表明该文件14不是已制作映像的(步骤513)。而且,对不再是已制作映像的文件14的元数据22进行修改以移除映像制作信息24(步骤515)。因此,文件14现在是非制作映像文件形式。
现在应该意识到,存在导致创建已制作映像文件14的两种情况。在第一种情况中,在卷12上直接创建文件14作为已制作映像文件14。这种制作映像创建在复制架构中可以是典型的,诸如以上就分支服务器10和集线器服务器18所阐述的。在这种复制架构中,使用来自中央集线器服务器18的所有文件的非制作映像副本来填充若干分支服务器10的每一个将需要大量的带宽。因此,作为替代,复制引擎可决定在分支服务器10上简单地创建文件14的已制作映像副本。然后,在需要将该特定已制作映像文件14重建成在任何特定分支服务器10处的任何特定非制作映像文件14时,可按需从集线器服务器18检索与该特定分支服务器10处的该非制作映像文件14相关联的数据20。
在第二中情况中,文件14被创建为卷12上的非制作映像文件14并在以后的任何时刻转换为该卷12上的已制作映像文件14。这种非映像制作创建在空间节省架构中可以是典型的,诸如以上就个人计算机等和替换位置18所阐述的。在这种空间节省架构中,个人计算机等的卷12上的空间可通过将与例如很少使用的文件14相关联的数据20转移到可以是另一介质或另一系统的替换位置18来回收。与第一种情况类似,在有必要将任何特定已制作映像文件14重建成非制作映像文件14时,可按需从替换位置18检索与个人计算机处的该特定已制作映像文件14相关联的数据20。
在本发明一实施方式中,在源10处代表用户或应用程序30针对已制作映像文件14执行的图5的操作实际上在如图2中所示的映像制作过滤器26的帮助下执行。这些操作可在对用户或应用程序30透明或者向其通知的情况下执行,即使对该用户或应用程序30而言透明是较佳的。具体而言,当用户或应用程序30尝试访问已制作映像文件14的已移走数据20时,文件系统16在收到该访问请求时会发现已制作映像文件14不包含已移走数据20,因此返回一错误,该错误将被映像制作过滤器26截取。一获得该截取,映像制作过滤器26就使用文件系统16来从已制作映像文件14的元数据22获取映像制作信息24,并且该映像制作过滤器26基于所获取的映像制作信息24触发该已制作映像文件14的重建,如以下将详细描述的,从而访问请求最终得以兑现。
应该意识到,映像制作过滤器26可以是不具有许多功能并且不能访问诸如信宿18的网络资源的下层结构。在该情况下,如图2所示,映像制作过滤器26可与诸如映像制作管理器28的上层结构接口,其中该映像制作管理器28包括附加映像制作功能以及对诸如信宿18的网络资源的直接访问。此外,在该情况下,应该意识到,当映像制作过滤器26触发了该已制作映像文件14的重建时,映像制作管理器28执行参照图5所示的源10的重建功能的大部分,如将在以下更详细描述的。该映像制作管理器28还可执行参照图4所示的源10的映像制作功能的大部分。
应用程序30请求来自已制作映像文件14的数据20
虽然以上已经参照图4详细描述了重建已制作映像文件14,但是从应用程序30或其它期望读取该已制作映像文件14的数据20的某一部分的角度回顾该进程是有益的。应该意识到,期望从该文件14读取数据20的应用程序30通常通过向文件系统发出针对文件14的打开命令,然后向文件系统16发出针对已打开文件14的读取命令来实现。在本发明一实施方式中,该应用程序30继续发出这种打开和读取命令,虽然基于已制作映像的所针对文件14而对这些命令的解释略有不同。这些差异对应用程序30是透明的并且很少涉及应用程序30,即使应用程序30可能在重建已制作映像文件14的过程中经历一些等待时间,其中该等待时间有可能大部分是由于将数据20从信宿18转移到源10。
无论如何,参照图6,应用程序30通过发出针对卷12上的特定已制作映像文件14的打开命令而开始进程,并且该打开命令最终由文件系统16收到(步骤601)。值得注意的是,并不期望发出该打开命令的应用程序知道该特定文件14实际上已被制作映像,即使应用程序通过命令文件系统16报告是否对文件14设置了已制作映像属性来作出这种判定。
如上所述,文件系统16在收到打开命令之后,注意到已制作映像文件14不包含已移走数据20,因此返回一错误(步骤603),并且映像制作过滤器26截取该返回错误并基于其得知所针对的文件14实际上已被制作映像(步骤605)。相应地,映像制作过滤器26自己命令文件系统16从该已制作映像文件14检索映像制作信息24,并实际接收该映像制作信息24(步骤607)。然后,基于该映像制作信息24,映像制作过滤器26创建对应于已制作映像文件14的缓冲区和句柄,并将该句柄传送给应用程序30作为对从其而来的打开命令的(正常)响应(步骤609)。
注意到,由应用程序30收到的已制作映像文件14的句柄表示打开的已制作映像文件14的实例,并且可在发出针对该文件14的诸如读取命令或关闭命令的其它命令时被应用程序30用作对该文件14的引用。然而,值得注意的是,由映像制作过滤器26创建并用作来自应用程序30的命令的句柄参数的已制作映像文件14的句柄将使这种命令直接传送到映像制作过滤器26而非文件系统16。
还注意到,已制作映像文件14的缓冲区被映像制作过滤器26用于存储与已制作映像文件14相关的信息,诸如其映像制作信息24。因此,在映像制作过滤器26操控已制作映像文件14过程中,对该映像制作信息24的更改可被记录在缓冲区中而无需写回文件14。当然,在映像制作过滤器26完成对已制作映像文件14的操控之后,如果需要,可将缓冲区中的这种记录更改写回到文件14的映像制作信息24。
无论如何,通过来自映像制作过滤器26的已制作映像文件14的句柄,应用程序30可通过发出针对卷12上的特定已制作映像文件14的读取命令来继续处理,其中该读取命令具有包括句柄、到文件的数据20中的偏移量、从该偏移开始相对于该数据20的读取长度等。相应地,基于具有该句柄作为其参数的读取命令最终被映像制作过滤器26而非文件系统16接收(步骤611)。然而,显而易见的是,数据20并未在已制作映像文件14中实际出现,相应地,映像制作过滤器26将读取命令存储在队列等中,以便等待进一步处理(步骤613)。
应该理解,进一步处理主要包括从信宿18获取已制作映像文件14的数据20。具体而言,映像制作过滤器26基于其在信宿18处的数据20开始重建已制作映像文件14(步骤615),其中该重建可通过以下方式进行。
已知映像制作过滤器26可与映像制作管理器28接口以执行上层映像制作功能并直接访问诸如信宿18的网络资源,映像制作过滤器26向映像制作管理器28发出从信宿18获取已制作映像文件14的数据20的一部分的请求(步骤615a),其中该请求包括来自已制作映像文件14的映像制作信息24的ID、到数据20中的偏移量、将获取的数据20从该偏移量开始的长度。之后,映像制作管理器28从信宿18实际获取该数据20的所请求部分(步骤615b)。假定映像制作管理器28包括如此获取的所有必要功能,并以对相关公众公知或显而易见并且在此无需赘述的方式实现。相应地,可以使用如此获取的任何特定方法而不背离本发明的精神和范围。
注意,在步骤615b,映像制作管理器28从信宿18获取数据20的所请求部分的过程中,可能存在某些延迟。例如,可能存在这种情况:通过网络获取该数据20,其中可能存在诸如几毫秒、几秒或以上的量级上的网络延迟。因此,映像制作管理器28、映像制作过滤器26和/或另一实体可能期望维护表示已从信宿18请求但未从其获得的数据20的每个部分的待决数据列表,以及可能的相应请求时间。应该意识到,可在请求时将数据的每个所请求部分的标识添加到待决数据列表,并在收到并与已制作映像文件14一起存储时将其从待决数据列表移除。然后通过该待决数据列表,可能存在这种情况,数据20的所有待决请求被长时间监视,并且在特定时段中未被满足的请求可超时。
一旦映像制作管理器28从信宿18实际获取了该数据20的所请求部分,则该映像制作管理器28可将所请求部分传送到映像制作过滤器26(步骤615c),然后该映像制作过滤器26通过到文件16的适当命令将该所请求部分写到所针对文件14的适当位置(步骤615d)。将所请求部分写到所针对文件14的适当位置是公知的,或者对相关公众是显而易见的,因此无需在此赘述。相应地,可使用如此写入的任何特定方法而不背离本发明的精神和范围。
当然,有必要重复步骤615a-615d数次直到文件14的数据20全部被写入其中,因此,按需重复这些步骤。一旦文件14的数据20全部被实际写入,则映像制作过滤器26按需向文件系统14发出命令,以整理现有已重新构建的文件14的元数据22,包括移除映像制作信息24和重置已制作映像属性(步骤617)。此外,映像制作过滤器26从队列检索文件14的所有读取命令并将该读取命令传送到文件系统16以供进一步处理(步骤619),由此来自应用程序30的读取命令使用所针对的数据20来作出实际响应。
注意,已打开文件14的句柄保持与映像制作过滤器26相关联,并继续将来自应用程序30的与现已重建文件14相关的命令引导到该映像制作过滤器26。相应地,映像制作过滤器26可将这些命令转发到文件系统16、映像制作过滤器26将该句柄与文件系统16重新关联、或者映像制作过滤器命令另一结构将句柄与文件系统16重新关联,等等。
已制作映像文件14的部分重建
应该意识到,在请求应用程序30并不需要来自文件14的全部已制作映像数据20的情况下,没有必要完全重建已制作映像文件14。因此,如果应用程序可确定仅需要在数据20的2GB特定偏移量处的1、2、12或100KB,则没有必要从信宿18获取数据20的该2GB,而是仅获取数据20在特定偏移处的所需的几千字节。此外,通过仅部分重建已制作映像文件14,避免了从信宿18向源10传送大量非必要数据20的需要,并且这样做所需的带宽相应减小。
于是,通过仅重建已制作映像文件14,应用程序30能够按需只读取文件的几个字节,而无需触发文件14的完整重建。因此,例如,如果仅需要视频文件14的第一帧,则可从信宿18处的数据20获取该第一帧,而非可能在10或甚至100GB量级上的已制作映像文件14的全部数据20。于是,部分重建仅按照满足来自应用程序30的特定读取请求所需的量来提取信宿18处已制作映像文件14的数据20,而非更多。
注意,当部分重建已制作映像文件14时,从信宿18获取的数据20的一部分可能从信宿18实际移走,也可能并不实际移走。在一方面,所获取的该部分被存储在源10,因此不再需要保持在信宿18处。然而,另一方面,实际上可能需要更多的工作才能将所获取的部分从信宿18删除。此外,在至少某些情况下,例如,如果信宿是集线器服务器18并且源是分支服务器10,则所获取的部分应该保持在信宿18上,以供其它源10访问。
应该意识到,如果已制作映像文件14实际上被部分重建,则必须维护表示已制作映像文件14的哪些部分被实际重建的记录,从而映像制作过滤器26能够确定这些部分是否存在于已制作映像文件14中。相应地,在本发明的一实施方式中,这一记录被维护在该已制作映像文件14的元数据22的映像制作信息24中。具体而言,对于已制作映像文件14的数据20中被重建并因此存在于已制作映像文件14中的每个连续区段,映像制作信息24为此包括含有描述该区段起始的偏移量以及描述该区段连续量的长度的区段参考。
通常,包括部分重建数据20的上述记录的已制作映像文件14的映像制作信息24由映像制作过滤器26维护。如上所述,虽然该映像制作过滤器26可以通过文件系统16来直接在已制作映像文件14的元数据22中维护并更新映像制作信息24,但是这种维护和更新可干扰由文件系统16执行的其它操作。因此,取而代之,在操控已制作映像文件14的过程中映像制作过滤器26最初从元数据22获取该映像制作信息24,并将该映像制作信息24存储在参照图6的步骤609的相关于已制作映像文件14而创建的缓冲区中,如图6的步骤609所示,然后在操控已制作映像文件14的过程中并且在结束从缓冲区向已制作映像文件14的元数据22写入该映像制作信息24时,维护并更新该映像制作信息24。
注意到,有时已制作映像文件14的部分重建可因例如源12处断电或断网而中断。类似地,情况也可能是已制作映像文件14的缓冲区丢失,尤其是在断电并且缓冲区被维护在易失性RAM等中的情况下。在这种情况下,已维护和更新的映像制作信息24丢失并且没有从缓冲区写入到文件14的元数据22,而且实际上并不只是该映像制作信息24丢失,与其相关联的所有部分重建数据20也全部丢失(即使物理存在于源10中),主要因为没有该映像制作信息24就无法定位该数据20。因此,在本发明一实施方式中,周期性地将已维护和更新的映像制作信息24从缓冲区写入到文件14的元数据22,例如每分钟一次等。因此,最多也只有约一分钟的该映像制作信息24以及与其相关联的部分重建数据20因缓冲区的丢失而丢失。
在本发明一实施方式中,基于来自应用程序30的从已制作映像文件14请求数据20的适当命令仅部分重建已制作映像文件14。因此,该应用程序30必须首先检查文件系统16,以判定是否已对特定文件14设置了已制作映像属性以便判定该文件14是否实际上已被制作映像,如果是,则应用程序30可通过适当命令来请求部分重建该已制作映像文件14的数据20中一部分或多个部分。
接着,就部分重建而言,在本发明一实施方式中,映像制作过滤器26响应于诸如图6的611给出的针对已制作映像文件14的读取命令,通过首先查看存储在相应缓冲区中的已制作映像文件14的映像制作信息24中的任何区段参考来作出响应,然后根据该区段参考来判定所请求的数据20或其一部分是否已经存在于源10处的已制作映像文件14中。如果全部所请求数据20都实际存在,则从源10处的已制作映像文件14读取该数据20而无需从信宿18获取该数据20。如果只存在所要求数据20的一部分,则从源10处的已制作映像文件14读取数据20的该存在部分而无需从信宿18获取该数据20,并且从信宿18获取数据20的剩余部分,然后如上所述地读取。如果所请求数据20都不存在,则从信宿18获取该数据20的全部,然后如上所述地读取。
总之,参照图7,响应于来自应用程序30的打开可能需要部分重建的已制作映像文件14的命令(步骤701),映像制作过滤器26再次创建对应于已制作映像文件14的缓冲区和句柄,并如步骤609,将句柄传送到应用程序30作为对从其而来的打开命令的(正常)响应(步骤703)。此外,映像制作过滤器26最初从已制作映像文件14的元数据22获取映像制作信息24,并将该映像制作信息24存储在所创建的缓冲区中(步骤705)。
如上所述,通过来自映像制作过滤器26的已制作映像文件14的句柄,应用程序30发出针对卷12上特定已制作映像文件14的数据20的一部分的读取命令,其中该读取命令包括句柄并如步骤611,定义了该部分的偏移量和长度。在此,响应于该读取命令,映像制作过滤器26基于已制作映像文件14的缓冲区中的映像制作信息24来判定所定义的该部分是否也已经至少部分地存储于驻留在源10的已制作映像文件14中(步骤709)。作出该判定是公知的,或者对相关公众是显而易见的,因此无需在此赘述。因此,可使用作出这种判定的方法而不背离本发明的精神和范围。
再次地,如果数据20的该部分实际上全部存在,则不需要从信宿18获取的该部分数据(步骤711a)。如果数据20的该部分只部分存在,则从信宿18获取该数据20的该部分的剩余部分(步骤711b)。如果数据20的该部分都不存在,则从信宿18获取该数据20的该部分的全部(步骤711c)。值得注意的是,在步骤711b或711c从信宿18获取数据20的任何部分时,映像制作过滤器26对存储在缓冲区中的已制作映像文件14的映像制作信息24进行更新以适当反映数据20的该部分现在驻留并重建到已制作映像文件14(步骤713)。无论如何,由于数据20的所请求部分现在驻留在源10,则如步骤619,应用程序30现在可实际读取该所请求部分(步骤715)。
如上所述,映像制作过滤器26周期性地将映像制作信息24以其最近形式从缓冲区写入到文件14的元数据22,使得在缓冲区丢失事件中,该映像制作信息24及与其相关联的部分重建数据22不会全部丢失(步骤717)。此外,一旦已制作映像文件14在例如应用程序30的命令下关闭(步骤719),则假设已制作映像文件14显然未被完全重建,于是映像制作过滤器26通过将映像制作信息24以其最近形式从缓冲区写入到文件14的元数据22(步骤721)来停止该缓冲区。因此,在随后的某一时刻可再次检索处于其最近形式的映像制作信息24,如步骤705所示。
部分重建已制作映像文件14的快速读取
发出针对已制作映像文件14的读取命令的应用程序30并不关心已制作映像文件14的状态,尤其不关心已制作映像文件14是否已被部分重建和/或正出于被部分重建的过程中。即,现在参照图8,可能存在的情况是针对已制作映像文件14的特定读取命令指定数据20的特定部分,并且该特定部分对应于包含以存在于已制作映像文件14中的数据20的第一片段、包含将要从信宿18拷贝到已制作映像文件14的数据20的第二片段以及包含不在已制作映像文件14中而只仅存储在信宿18中的数据20的第三片段。
应该意识到,如果该读取命令被处理而使得数据20的特定部分全部从信宿18拷贝到已制作映像文件14,则该处理至少相对于与该特定部分对应的第一和第二片段是重复和浪费。具体而言,还应该意识到,没有必要复制对应于第一片段数据20,因为该数据20已经存在于已制作映像文件14中,而且没有必要复制对应于第二片段的数据20,因为该数据20已经将要从信宿18拷贝到已制作映像文件14。实际上,只有对应于第三片段的数据20需要从信宿18拷贝到已制作映像文件14,因为该数据20不在已制作映像文件14中并且未被请求拷贝到该已制作映像文件14。
在本发明一实施方式中,映像制作过滤器26通过如下步骤来处理对数据20特定部分的读取命令:首先相对于数据20的该特定部分来标识已制作映像文件14中已经存在的片段(即第一片段)、已制作映像文件14中已经待决的相应片段(即第二片段)和已制作映像文件14不存在或待决的相应片段(即第三片段),然后只实际获取第三片段。实际上,映像制作过滤器26从读取命令中剥离出不需要从信宿18实际读取的所有片段。通过进行这种剥离动作,读取命令得到更快的处理,因为该‘快速读取’仅从信宿获取实际所需的数据20而非已经存在于已制作映像文件14中或待决的数据20。因此,由映像制作过滤器26执行的快速读取导致对来自应用程序30的读取命令的更快响应,进而减小该读取命令所需的带宽量。
在本发明一实施方式中,映像制作过滤器26参考对该已制作映像文件14维护的映像制作信息24来标识已制作映像文件14中已经存在的每个第一片段。如上所述,该映像制作信息24可被引用为位于已制作映像文件14的元数据22中,或者可被引用为位于对应于该已制作映像文件14的缓冲区中。类似地,在本发明的一实施方式中,映像制作过滤器26参考以上参照图6的步骤605所述的待决数据列表中的信息来标识已制作映像文件14中已待决的每个第二片段。参考该映像制作信息24和待决数据列表来标识该第一和第二片段是公知的,或者对相关公众是显而易见的,因此无需在此赘述。因此,可以任何适当方式来执行这种标识而不背离本发明的精神和范围。
现在应该意识到,一旦第一和第二片段被标识,剩余部分是第三片段,然后通过排除来标识已制作映像文件14中不存在或未待决的第三片段。当然,一旦被标识,则该第三片段实际上可从信宿18请求并且在接收到时被拷贝到已制作映像文件14上。注意,一旦被请求,每个这种第三片段实际上变成第二、待决片段。同样注意,一旦收到并拷贝到已制作映像文件14,则每个第二片段实际上变成第一、存在片段。最后注意,一旦片段变成第一片段,则该第一片段实际上可用于响应于其读取命令由应用程序30来读取。
在至少某些情况下,可以意识到,虽然应用程序30未发出针对已制作映像文件14中特定数据20的读取命令,但是映像制作过滤器26在预料到这种读取命令时应该将该数据20从信宿18转移到已制作映像文件14,尤其当映像制作过滤器26未被另外占用时。仅作为一个示例,当流送诸如已制作映像音频文件14、已制作映像视频文件14或已制作映像多媒体文件14的内容时,对在特定时段T0针对数据20的读取命令之后是在随后时段T1针对数据20的读取命令的预期是合理的。在这种情况下,如果未另外被占用,则映像制作过滤器26可在即使没有来自应用程序30的具体读取命令的情况下利用机会从信宿18获取时段T1的数据20。当然,在如此操作期间,映像制作过滤器26可将该动作按上述方式的快速读取来执行。
总之,现在参照图9,映像制作过滤器26响应于来自应用程序30的读取命令以以下方式执行快速读取。最初,从应用程序30实际收到读取命令,其中该读取命令指定数据30要从已制作映像文件14读取的部分或范围(步骤901)。通常,再次地,该范围可表达成关于数据30的偏移量和长度。
之后,映像制作过滤器26首先在数据20的该范围内标识已制作映像文件14中已经存在的数据20的相应第一片段(步骤903)。再次地,该标识可参照在该已制作映像文件14的元数据22中或者在对应于该已制作映像文件14的缓冲区中为该已制作映像文件14维护的映像制作信息24来执行。如果所标识的第一片段包括数据20的所请求范围的全部,则已制作映像文件14已经在满足读取命令所需的程度上被重建,因此,该读取命令可在无需从信宿18进一步拷贝任何数据20并且无需等待任何待决数据20的情况下完成(步骤905)。
然而,如果所标识的第一片段不包含数据20的所请求范围的全部,则已制作映像文件14必须至少基于待决数据20而在满足读取命令的程度上被重建,因此,映像制作过滤器26计算包含数据20的所请求范围上并非第一片段的每个片段的范围的第一集合(步骤907)。之后,与上文类似,映像制作过滤器26在第一集合中标识已制作映像文件14中数据20的待决的相应第二片段(步骤909)。再次地,该标识可参考待决数据列表执行。如果所标识的第二片段包括第一集合的全部,则已制作映像文件14已经将要在满足读取命令所需的程度上重建,并且当所有待决数据20被实际拷贝到已制作映像文件14时该读取命令完成(步骤911)。
现在应该意识到,如果所标识的片段不包含第一集合的全部,则必须基于要从信宿18拷贝的数据20来在满足读取命令所需的程度上重建已制作映像文件14,因此,映像制作过滤器26计算包括数据20的所请求范围上既不是第一片段也不是第二片段(即第三片段)的每个片段的范围的第二集合(步骤913)。之后,映像制作过滤器26请求将第二集合/第三片段从信宿18拷贝到已制作映像文件14(步骤915)。
在此期间,再次地,所请求的每个第三片段变成第二、待决片段,并且被实际拷贝的每个第二片段变成第一、存在片段,直到所有拷贝完成(步骤917)。之后,读取命令所请求的范围实际上可用于响应于该读取命令来由应用程序30读取(步骤919)。
对文件14重新制作映像/制作映像
可以意识到,例如,如果在源10处需要附加空间,则可在某一时刻对已被重建或部分重建的已制作映像文件14重新制作映像。此外,也可以意识到,出于类似目的,可在某一时刻将从未被制作映像的文件14制作映像。
具体而言,一旦已制作映像文件14被部分或全部重建或者一旦文件14被安装在源10上,则该文件14继续以这种形式驻留在源10上,除非该文件14被重新制作映像或制作映像(下文称为‘重新制作映像’)。这种重新制作映像可由某些事件来触发,例如判定在源10需要空间、判定文件14在某一时段未被访问等。此外,通过对文件14重新制作映像,尤其在分支服务器10和集线器服务器18的背景下,对源10或信宿18处的文件14的任何改变可分别被复制到信宿18或源10,以保持文件14的更新。
在本发明的一实施方式中,源10处的重新制作映像根据考虑了诸如上次访问时间、卷上的剩余自由空间、数据的访问频率、在其它地点对文件14的修改等因素的重新制作映像算法来执行。考虑了这些因素的重新制作映像算法以减小已制作映像文件14在被重新制作映像之后短期内再次重建的可能性作为目标。通常,虽然不必要,但是重新制作映像算法可由源10处的应用程序30或源10处的映像制作管理器28来执行,当然其它实体也可执行这种重新制作映像算法而不背离本发明的精神和范围。
用于对源10处文件14重新制作映像的重新制作映像算法可至少部分地基于可配置策略来定义。具体而言,可至少部分地基于可配置策略来触发这种重新制作映像算法,并且该重新制作映像算法可至少部分地基于可配置策略来决定对特定文件14重新制作映像。在每个实例中,这种策略可由源10的用户、源10的管理员等来配置。
相关于重新制作映像算法使用的可能触发参数包括,但不限于:
-周期性触发,可在已流逝了预定时段时被激活;
-空间触发,当源10处卷12上的自由空间降到特定量以下时或者在源10处卷12上的所用空间超过特定量时被激活;
-周期性空间触发,当流逝了预定时段时、但仅当源10处的自由空间降到特定量以下或者该源处的所用空间超过特定量时被激活;
-满容量触发,当映像制作过滤器26获知由文件系统16返回的表示卷12没有剩余自由空间的满容量错误时被激活;
-位下载触发,当向源10下载预定字节数时被激活;以及
-手动激活,可由用户、管理员等激活。
当然,触发重新制作映像算法可基于这些触发中的单个或者组合来进行。
用于判定是否对特定文件14重新制作映像的可能选择因素包括,但不限于:
-文件14的最后访问时间,由此具有最久访问时间的文件14可被优先重新制作映像;
-与文件14相关联的下载时间,由此具有最久下载时间的文件14可被优先重新制作映像;
-文件14的文件大小,由此最大的文件14可被优先重新制作映像;
-文件14的文件类型,由此具有特定扩展名的文件14可被优先重新制作映像;
-文件14的文件属性,由此,例如作为系统文件的文件14不被重新制作映像,而隐藏文件14被重新制作映像;
-是否存在多个类似文件14,由此被认为类似的文件14可优先被重新制作映像;
-在信宿18处的文件14是否已被修改,由此这种文件14被重新制作映像以移除被认为过时的数据20;
-在源10处的文件14是否已被修改或创建,由此这种文件14不被选择来重新制作映像以保留这种修改/创建,或者可被选择来重新制作映像以将这种修改/创建拷贝到信宿18;
-在特定时段内访问文件14的频率;
-在特定时段内访问文件14的次数;
-在例如同一文件夹中、同一内容集中等的其它相关文件14的访问频率/访问次数/最后访问时间;
-优先重新制作映像的特定文件或文件类型的外部输入,通过作为示例的列表、方法、XML文件等。
当然,重新制作映像算法可使用单个选择因素或者这些选择因素的组合。
注意,对重新制作映像选择的文件14可被实际重新制作映像,或者可替代地只被指定为优先重新制作映像的候选。尤其在后一情形中,可执行重新制作映像直到达到特定停止触发。可以意识到,这种停止触发可对应于启动重新制作映像会话的触发参数,可对应于选择用于重新制作映像的候选文件14的标准,或者可以是另一触发而不背离本发明的精神和范围。
同样注意,在仅执行重新制作映像直到达到某种停止触发的情形中,取决于作为待重新制作映像的文件14的选择标准以消除在这些文件14上的重新制作映像是可取的。例如,如果候选文件14基于在源10处具有至少两周的最后访问日期而被选择,则这样是可取的:首先对具有大于两个月的最后访问日期的全部这些候选重新制作映像,然后按需对具有大于一个月的最后访问日期的全部这些候选重新制作映像,然后按需的三周等,直到停止触发被激活。类似地,如果候选文件14基于具有10MB的最小文件大小而被选择,则这样是可取的:首先对文件大小大于1GB的全部这些候选重新制作映像,然后按需对文件大小大于100MB的全部这些候选重新制作映像,然后按需的50MB等,直到停止触发被激活。可以意识到,在两种情况下,需要某种处理来创建候选文件14的列表,对列表排序,生成一轮或多轮重新制作映像,等。
还要注意,重新制作映像可用于维护源10和信宿18处的文件14的一致性,尤其在文件14的不同版本可位于两个位置的情况下。因此,如果在源10处重建文件14并且修改其数据20,但信宿18处的相应数据20并未修改,则可执行重新制作映像以使用源10处的数据代替信宿18处的数据20。类似地,如果源10处的文件14的数据未修改而信宿18处的相应数据20被修改,则可执行重新制作映像来仅删除源10处的该数据20,并期望该文件的随后重建将信宿18处的数据20拷贝到源10。当然,如果源10出的文件14的数据20被修改并且信宿18处的相应数据也被修改,则出现冲突,因此可咨询适当的冲突规则,以判定是否对文件14重新制作映像,如果是则如何进行。
总之,现在参照图10,卷12上文件14的重新制作映像可根据重新制作映像算法来执行,其中该重新制作映像算法由某个实体以如下方式来执行。最初,重新制作映像算法由某种事件触发(步骤1001),其中这种触发可由该实体内部生成或者由该实体从外部接收。在进行这种触发时,重新制作映像算法基于某种选择标准从全部和部分重建文件14和从未制作映像文件14中选择文件14(步骤1003)。
此时,重新制作映像算法可只通过对所选文件14重新制作映像来开始(步骤1005),或者可替代地将所选文件14视为可能重新制作映像的候选文件14(步骤1007)。在后一种情形中,以一轮或多轮方式选择用于重新制作映像的候选文件14直到停止触发被激活。具体而言,对于每一轮,选择一组候选文件14(步骤1009),对所选文件重新制作映像(步骤1011),并且对停止触发是否被激发作出判定。如果是,则进程结束(步骤1013)。如果否,则进程通过返回以如步骤1009所示地选择另一组来继续(步骤1015)。
一般映像制作
因此,如上所述,在特定源10处制作映像的所有文件14被特别制作映像,使得其数据20驻留在单个信宿18中。然而,可以意识到,可能的情况是特定源10处每个已制作映像文件14的数据20可驻留在多个这种信宿18中的任一个中,如图11所示。
具体而言,可以意识到,本发明的映像制作过滤器26没有必要被约束在与单个映像制作管理器28一起工作以将文件14的数据20在单个信宿18上制作映像。相反,映像制作过滤器实际上可与多个映像制作管理器28一起工作,其中每个这种映像制作管理器28可相关于多个信宿18中特定之一来执行映像制作函数。
例如,在分支服务器10和集线器服务器18的背景下,特定分支服务器10可与多个集线器服务器18接口。因此,与特定分支服务器10接口的一个集线器服务器18可具有来自第一源的数据20,而与该特定分支服务器10接口的另一集线器服务器18可具有来自第二源的数据20。类似地,例如在计算设备10和替换位置18的背景中,特定计算设备10可在多个替换位置处存储数据20。因此,特定计算设备10的一个替换位置18可被指定为存储来自第一特定类型的文件14的数据20,而该特定计算设备10的另一替换位置18可被指定为存储来自第二特定类型的文件14的数据20。当然,所使用的信宿18的数量以及用于在这些信宿18之间分配数据20的标准可以是任何适当的数量和标准而不背离本发明的精神和范围。
无论如何,如果多个信宿18与特定源18一起使用,则需要一种标识哪个信宿18具有来自该源10的特定已制作映像文件14的数据20以及标识哪个对应映像制作管理器28必须用于访问该信宿18的机制。因此,在本发明的一实施方式中,这种标识被维护在与该特定文件14相关联的映像制作信息24中,如图11所示。
结果,映像制作过滤器26在遇到任何特定已制作映像文件14以及从其读取映像制作信息24时,可从该映像制作信息24读取对要与该特定已制作映像文件14相关地使用的映像制作管理器28的标识,并且基可于该标识来与所标识的映像制作管理器28通信以适当访问该信宿18。实际上,映像制作过滤器26普遍适用于所有映像制作管理器28,并且所标识的映像制作管理器28控制或‘拥有’该特定已制作映像文件14,因为映像制作过滤器26不应与相关于该特定已制作映像文件14的任何其它映像制作管理器28通信。
假设每个映像制作管理器28包括与对应于它的信宿18通信所需的全部功能和信息,从而映像制作过滤器26无需考虑这些。相关于特定已制作映像文件14的所标识映像制作管理器28向映像制作滤器26的通信是访问相应信宿18所需的全部,并且该映像制作过滤器26无需实际考虑所标识的映像制作管理器28如何与该相应信宿18通信、所标识的映像制作管理器28如何定位该相应信宿18等。
与图4和5所示的进程类似,现在参照图12,文件14的一般映像制作和重建以如下方式执行。假设该映像制作由具有特定标识(ID)的特定映像制作管理器28启动,并且实际上由映像制作过滤器26执行,因此,该映像制作管理器向映像制作过滤器26发送该ID和文件14的标识要制作映像的适当映像制作请求(步骤1201),之后,映像制作过滤器26按需从文件14移走数据20(步骤1203)。然后映像制作过滤器26将所移走的数据20通过其ID按需转发到请求映像制作管理器28(步骤1205),然后映像制作管理器28可基于该映像制作管理器28所包含的进行如此操作的协议来将所移走的数据转发到相应信宿18。
此时注意,取决于信宿18和文件14的类型,例如如果信宿18以只读方式复制源10上所针对的文件14,则映像制作管理器28实际上可选择不将所移走的数据发送到信宿18。当然,在这种情形中,来自映像制作管理器28的映像制作请求可通知映像制作过滤器没有必要实际执行步骤1205。
无论如何,如上所述,映像制作过滤器26通过设置‘已制作映像’属性并添加映像制作信息24来修改新近映像制作的文件的元数据22(步骤1207)。值得注意的是,该映像制作信息应当包括映像制作管理器28的ID以供随后重建已制作映像文件14时使用。因此,在随后的某一时刻,当映像制作管理器28或应用程序30需要访问该已制作映像文件14的数据20时,如上所述,请求最终到达映像制作过滤器26(步骤1209),并且该映像制作过滤器26在文件14的元数据22中定位映像制作信息24(步骤1211)。
再次地,存储在信宿18中的文件14的数据20基于所标识的映像制作信息24来定位,但是在该实例中,映像制作过滤器26首先在该映像制作信息24中定位负责该已制作映像文件14的映像制作管理器28的ID(步骤1213),并且使用该ID向相应映像制作管理器28传递从相应信宿18实际获得该数据20的请求(步骤1215)。假设该映像制作管理器28从该信宿18实际获得该数据20并将其提供给映像制作过滤器26(步骤1217),则映像制作过滤器将该数据20重建到所针对的文件14(步骤1219)。
结论
施行相关于本发明执行的进程所需的编程相对简单,并且对于相关编程公众是显而易见的。因此,本文并未附加相关编程。于是,可使用任何特定编程来实施本发明而不背离本发明的精神和范围。
在以上描述中,可以看出,本发明包括新的有用方法和机制,可通过该方法和机制来复制诸如本地卷12、计算设备10或分支服务器10的源10处的文件14或对其制作映像,使其数据20存储在诸如替换位置18或集线器服务器18的信宿18上,因此源处的文件14处于可按需重建的减小或已制作映像的形式。已制作映像文件14可按需形成和重建。
应该意识到,可对上述实施方式作出变化而不背离本发明的概念。因此,一般而言,应该理解,本发明并不限于所公开的特定实施方式,而是旨在涵盖落在如所附权利要求书所定义的本发明的精神和范围内的更改。

Claims (19)

1.一种具有存储卷、管理所述存储卷的文件系统以及由所述文件系统存储在所述存储卷上并通过所述文件系统访问的文件的计算设备,所述文件被定义成包括数据以及与所述数据相关的元数据,从所述文件移走所述文件中所述数据的至少一部分并存储在替换位置处,使得所述数据基本上不占据所述卷上的任何空间,并且所述文件处于减小、已制作映像的形式,所述已制作映像文件通过从所述替换位置检索所述数据并将所检索到的数据与所述已制作映像文件相关联以形成经重建的文件来重建以供使用。
2.如权利要求1所述的设备,其特征在于,所述计算设备是分支服务器,并且所述替换位置是远离所述分支服务器的集线器服务器,所述集线器服务器为多个所述分支服务器提供服务。
3.如权利要求1所述的设备,其特征在于,所述已制作映像文件已被确定为陈旧或不相关中的至少之一。
4.如权利要求1所述的设备,其特征在于,所述卷上的所述已制作映像文件被所述文件系统逻辑存储在一文件位置上,并且其中对所述已制作映像文件的映像制作并不更改其所述文件位置,由此用户可通过所述文件系统来浏览所述卷以标识所述已制作映像文件及其所述位置。
5.如权利要求1所述的设备,其特征在于,驻留在所述卷上的所述已制作映像文件的所述元数据基本上包括来自在映像制作之前的所述文件的所有元数据,并且还包括用于从所述替换位置检索所述文件的所述数据的映像制作信息。
6.如权利要求1所述的设备,其特征在于,所述文件被定义成包括含有原始数据和辅助数据的数据,所述原始数据大于所述辅助数据,至少所述文件的所述原始数据被从所述文件移走并存储在所述替换位置上。
7.一种与具有存储卷、管理所述存储卷的文件系统以及由所述文件系统存储在所述存储卷上并通过所述文件系统访问的文件的计算设备相关的方法,所述文件被定义成包括数据以及与所述数据相关的元数据,所述方法用于释放所述卷上由所述文件的至少一部分所占据的空间,并包括:
标识所述文件;
标识要从所述文件移走的数据的至少一部分;
将所标识的数据从所述文件转移到所述替换位置以存储其上,使得所述文件处于减小、已制作映像的形式;
将所述卷上先前由所述已转移数据占据的空间标记为自由;以及
将现已制作映像的文件的所述元数据修改成包括含有可用于从所述替换位置检索所述文件的所述已转移数据的信息的映像制作信息,
由此,所述已制作映像文件可通过从所述替换位置检索所述数据并将所检索到的数据与所述已制作映像文件相关联以形成经重建的文件来重建以供使用。
8.如权利要求7所述的方法,其特征在于,包括将所标识的数据从所述文件转移到所述替换位置并将所述已转移数据连同所述文件的标识一起存储在所述替换位置上。
9.如权利要求7所述的方法,其特征在于,将先前由所述已转移数据所占据的空间标记为自由导致:正如所述文件的所述元数据所记录的一样,所述卷上所述已制作映像文件的物理大小被减小,也正如所述文件的所述元数据所记录的一样,所述卷上所述已制作映像文件的逻辑文件大小不会被减小。
10.如权利要求7所述的方法,其特征在于,还包括修改所述现已制作映像的文件的所述元数据以设置表明所述文件现在已被制作映像的属性,由此所述计算设备上的应用程序可根据所述属性来确定所述文件现在已被制作映像,因此所述应用程序获知在访问其所述数据之前必须首先将所述文件重建成非制作映像的形式。
11.如权利要求7所述的方法,其特征在于,包括基于已对所述文件是陈旧或不相关中的至少之一的确定来标识所述文件。
12.如权利要求7所述的方法,其特征在于,所述卷上的所述已制作映像文件被所述文件系统逻辑存储在一文件位置上,并且包括不更改所述已制作映像文件的所述文件位置,由此用户可通过所述文件系统来浏览所述卷以标识所述已制作映像文件及其所述位置。
13.如权利要求7所述的方法,其特征在于,所述文件被定义成包括含有原始数据和辅助数据的数据,所述原始数据大于所述辅助数据,所述方法包括:
将所述原始数据的至少一部分标识为要从所述文件移走的数据;以及
将所标识的原始数据从所述文件转移到所述替换位置以存储其上,使得所述文件处于减小、已制作映像的形式。
14.如权利要求7所述的方法,其特征在于,还包括重建所述已制作映像文件,所述重建包括:
接收访问所述已制作映像文件的所述已转移数据的请求;
在所述卷上定位所述已制作映像文件;
在所述文件的所述元数据中标识所述映像制作信息;
基于所标识的映像制作信息在所述替换位置上定位所述文件的所述已转移数据;
将所定位的数据的至少一部分从所述替换位置转移到所述计算设备;以及
将所述已转移数据与所述已制作映像文件相关联以形成所述经重建的文件。
15.如权利要求14所述的方法,其特征在于,还包括修改所述经重建的文件的所述元数据以重置表明所述文件已被制作映像的属性。
16.如权利要求14所述的方法,其特征在于,将所述已转移数据与所述已制作映像文件相关联以形成所述经重建的文件包括向所述文件分配所述已转移数据将在所述卷上占据的空间并在所分配空间中存储所述已转移数据。
17.如权利要求14所述的方法,其特征在于,还包括修改所述经重建的文件的所述元数据以移除所述映像制作信息。
18.如权利要求14所述的方法,其特征在于,包括所述文件系统接收访问所述已制作映像文件的所述已转移数据的请求,并发现所述已制作映像文件不包含所述已转移数据并返回一错误,所述计算设备还包括映像制作过滤器,所述映像制作过滤器截获所述错误,基于所截获的错误使用所述文件系统从所述已制作映像文件的所述元数据获取所述映像制作信息,并基于所获取的映像制作信息触发所述已制作映像文件的重建。
19.如权利要求18所述的方法,其特征在于,所述映像制作过滤器是不访问所述替换位置的下层结构,所述计算设备还具有映像制作管理器,所述映像制作管理器是可访问所述替换位置并与所述映像制作过滤器接口的上层结构,所述映像制作过滤器通过请求所述映像制作管理器如此执行来触发所述已制作映像文件的重建。
CN2006800253013A 2005-07-14 2006-07-10 将数据从存储卷中的文件转移到替换位置以释放空间 Active CN101288074B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/181,440 US7506005B2 (en) 2005-07-14 2005-07-14 Moving data from file on storage volume to alternate location to free space
US11/181,440 2005-07-14
PCT/US2006/026853 WO2007011576A2 (en) 2005-07-14 2006-07-10 Moving data from file on storage volume to alternate location to free space

Publications (2)

Publication Number Publication Date
CN101288074A true CN101288074A (zh) 2008-10-15
CN101288074B CN101288074B (zh) 2012-08-15

Family

ID=37662875

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800253013A Active CN101288074B (zh) 2005-07-14 2006-07-10 将数据从存储卷中的文件转移到替换位置以释放空间

Country Status (6)

Country Link
US (1) US7506005B2 (zh)
EP (1) EP1902393A4 (zh)
JP (1) JP4955677B2 (zh)
KR (1) KR20080033264A (zh)
CN (1) CN101288074B (zh)
WO (1) WO2007011576A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446095A (zh) * 2009-06-25 2017-02-22 Emc公司 用于提供数据的长期存储的系统和方法
CN106537881A (zh) * 2014-08-26 2017-03-22 Ctera网络有限责任公司 一种允许同步访问云的方法及计算设备
CN107409142A (zh) * 2015-01-30 2017-11-28 卓普网盘股份有限公司 存储受约束的共享内容项同步
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
US10552449B2 (en) 2015-01-30 2020-02-04 Dropbox, Inc. Storage constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US10846303B2 (en) 2016-04-25 2020-11-24 Dropbox, Inc. Storage constrained synchronization engine
US11562000B2 (en) 2016-04-25 2023-01-24 Dropbox, Inc. Storage constrained synchronization engine

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979565B2 (en) * 2008-08-27 2011-07-12 International Business Machines Corporation System and method to provide a network service
JP5234342B2 (ja) * 2008-09-22 2013-07-10 株式会社日立製作所 計算機システム及びその制御方法
US8762325B2 (en) * 2008-10-06 2014-06-24 Foxit Corporation Processing of files for electronic content management
US9239762B1 (en) * 2009-08-11 2016-01-19 Symantec Corporation Method and apparatus for virtualizing file system placeholders at a computer
JP5595701B2 (ja) * 2009-09-16 2014-09-24 株式会社日立製作所 ファイル管理方法及びストレージシステム
US20130311597A1 (en) * 2012-05-16 2013-11-21 Apple Inc. Locally backed cloud-based storage

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4468785A (en) * 1981-06-10 1984-08-28 Gould Inc. Telemetry system with signal booster for digital data transmission through a transmission line
US5214768A (en) 1989-11-01 1993-05-25 E-Systems, Inc. Mass data storage library
US5504873A (en) 1989-11-01 1996-04-02 E-Systems, Inc. Mass data storage and retrieval system
US5832526A (en) 1996-01-24 1998-11-03 Symantec Corporation Method and apparatus using slack area of file storage structures for file reconstruction
JPH1063551A (ja) * 1996-08-16 1998-03-06 Nec Off Syst Ltd 情報処理装置
US6694317B1 (en) * 1997-12-31 2004-02-17 International Business Machines Corporation Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US7010532B1 (en) * 1997-12-31 2006-03-07 International Business Machines Corporation Low overhead methods and apparatus for shared access storage devices
US5950203A (en) 1997-12-31 1999-09-07 Mercury Computer Systems, Inc. Method and apparatus for high-speed access to and sharing of storage devices on a networked digital data processing system
US6374363B1 (en) * 1998-02-24 2002-04-16 Adaptec, Inc. Method for generating a footprint image file for an intelligent backup and restoring system
US6119131A (en) 1998-06-12 2000-09-12 Microsoft Corporation Persistent volume mount points
US6571245B2 (en) * 1998-12-07 2003-05-27 Magically, Inc. Virtual desktop in a computer network
US7010554B2 (en) 2002-04-04 2006-03-07 Emc Corporation Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
US6625622B1 (en) * 1999-05-14 2003-09-23 Eisenworld, Inc. Apparatus and method for transfering information between platforms
US6499039B1 (en) 1999-09-23 2002-12-24 Emc Corporation Reorganization of striped data during file system expansion in a data storage system
US6414627B1 (en) * 1999-10-12 2002-07-02 Mcewan Technologies, Llc Homodyne swept-range radar
US6421579B1 (en) 1999-11-05 2002-07-16 International Business Machines Corporation Multiple independent intelligent pickers with dynamic routing in an automated data storage library
US6718372B1 (en) * 2000-01-07 2004-04-06 Emc Corporation Methods and apparatus for providing access by a first computing system to data stored in a shared storage device managed by a second computing system
US7222147B1 (en) * 2000-05-20 2007-05-22 Ciena Corporation Processing network management data in accordance with metadata files
US7225244B2 (en) * 2000-05-20 2007-05-29 Ciena Corporation Common command interface
EP1168174A1 (en) * 2000-06-19 2002-01-02 Hewlett-Packard Company, A Delaware Corporation Automatic backup/recovery process
US6981005B1 (en) * 2000-08-24 2005-12-27 Microsoft Corporation Partial migration of an object to another storage location in a computer system
US6996588B2 (en) * 2001-01-08 2006-02-07 International Business Machines Corporation Efficient application deployment on dynamic clusters
GB2377542B (en) 2001-05-12 2005-06-15 M4 Data Ltd Data storage
US6948038B2 (en) 2001-07-24 2005-09-20 Microsoft Corporation System and method for backing up and restoring data
US7146524B2 (en) * 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US20040039891A1 (en) 2001-08-31 2004-02-26 Arkivio, Inc. Optimizing storage capacity utilization based upon data storage costs
EP2420872A3 (en) * 2001-12-14 2012-05-02 QUALCOMM MEMS Technologies, Inc. Uniform illumination system
US6600967B2 (en) 2001-12-20 2003-07-29 Storage Technology Corporation Automated physical disk storage and management
US7064913B2 (en) 2002-01-09 2006-06-20 Quantum Corporation Enhanced read margining using dither enhanced write marginalization for mass data storage applications
US6795904B1 (en) 2002-03-28 2004-09-21 Hewlett-Packard Development Company, L.P. System and method for improving performance of a data backup operation
GB2393804B (en) 2002-10-02 2005-05-18 Hewlett Packard Co Retrieval of records from data storage media
US6771118B2 (en) * 2002-10-30 2004-08-03 Texas Instruments Incorporated System and method for reducing a leakage current associated with an integrated circuit
GB2397936A (en) 2003-01-31 2004-08-04 Hewlett Packard Co Automated storage apparatus having diagnostic means
US7743022B2 (en) * 2003-02-28 2010-06-22 Microsoft Corporation Method and system for synchronizing data shared among peer computing devices
US7373416B2 (en) * 2003-04-24 2008-05-13 Akamai Technologies, Inc. Method and system for constraining server usage in a distributed network
WO2004109663A2 (en) * 2003-05-30 2004-12-16 Arkivio, Inc. Techniques for facilitating backup and restore of migrated files
US7284156B2 (en) 2003-09-19 2007-10-16 International Business Machines Corporation Debugging a grid environment using ghost agents
JP2005165486A (ja) * 2003-12-01 2005-06-23 Sony Corp ファイル管理装置、ストレージ管理システム、ストレージ管理方法、プログラム及び記録媒体
US7293044B2 (en) 2004-04-09 2007-11-06 Microsoft Corporation Method and system for verifying integrity of storage
US8412685B2 (en) * 2004-07-26 2013-04-02 Riverbed Technology, Inc. Method and system for managing data
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106446095B (zh) * 2009-06-25 2020-01-21 Emc公司 用于提供数据的长期存储的系统和方法
CN106446095A (zh) * 2009-06-25 2017-02-22 Emc公司 用于提供数据的长期存储的系统和方法
CN106537881A (zh) * 2014-08-26 2017-03-22 Ctera网络有限责任公司 一种允许同步访问云的方法及计算设备
US11216418B2 (en) 2014-08-26 2022-01-04 Ctera Networks, Ltd. Method for seamless access to a cloud storage system by an endpoint device using metadata
US11016942B2 (en) 2014-08-26 2021-05-25 Ctera Networks, Ltd. Method for seamless access to a cloud storage system by an endpoint device
CN107426318A (zh) * 2015-01-30 2017-12-01 卓普网盘股份有限公司 存储受约束的共享内容项同步
US10248705B2 (en) 2015-01-30 2019-04-02 Dropbox, Inc. Storage constrained synchronization of shared content items
CN107426319B (zh) * 2015-01-30 2019-03-26 卓普网盘股份有限公司 存储受约束的共享内容项同步方法、系统和存储介质
US10552449B2 (en) 2015-01-30 2020-02-04 Dropbox, Inc. Storage constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
CN107426319A (zh) * 2015-01-30 2017-12-01 卓普网盘股份有限公司 存储受约束的共享内容项同步
CN107409142A (zh) * 2015-01-30 2017-11-28 卓普网盘股份有限公司 存储受约束的共享内容项同步
US11275763B2 (en) 2015-01-30 2022-03-15 Dropbox, Inc. Storage constrained synchronization of shared content items
US11675811B2 (en) 2015-01-30 2023-06-13 Dropbox, Inc. Storage constrained synchronization of shared content items
US10846303B2 (en) 2016-04-25 2020-11-24 Dropbox, Inc. Storage constrained synchronization engine
US11562000B2 (en) 2016-04-25 2023-01-24 Dropbox, Inc. Storage constrained synchronization engine

Also Published As

Publication number Publication date
EP1902393A2 (en) 2008-03-26
CN101288074B (zh) 2012-08-15
WO2007011576A2 (en) 2007-01-25
US20070016621A1 (en) 2007-01-18
EP1902393A4 (en) 2011-10-19
KR20080033264A (ko) 2008-04-16
JP2009501390A (ja) 2009-01-15
WO2007011576A3 (en) 2008-02-14
JP4955677B2 (ja) 2012-06-20
US7506005B2 (en) 2009-03-17

Similar Documents

Publication Publication Date Title
CN101288074B (zh) 将数据从存储卷中的文件转移到替换位置以释放空间
CN101535964B (zh) 备份文件
CN100476710C (zh) 在数据存储器中保持临时数据的系统和方法
CN101416165B (zh) 描述和查询闪存存储的分离区域
CN101743546B (zh) 用于提供快照的文件系统的分层存储管理
CN103154948B (zh) 可丢弃文件的基于卡的管理
CN100583096C (zh) 管理数据删除的方法
US20070061540A1 (en) Data storage system using segmentable virtual volumes
US7376681B1 (en) Methods and apparatus for accessing information in a hierarchical file system
CN105210062A (zh) 用于分布式数据库系统的系统范围检查点避免
JP2006031668A (ja) データ価値に基づく階層型ストレージ管理の為の方法と装置
CN105190622A (zh) 用于分布式数据库系统的快速崩溃恢复
US7506004B2 (en) Moving data from file on storage volume to alternate location to free space
WO2011108030A1 (en) Computer system and recording medium using a virtual file system in a hierarchical storage management
US7366836B1 (en) Software system for providing storage system functionality
CN103493024A (zh) 用于高速缓存分层的方法和系统
US20060294115A1 (en) Methods and apparatus for storing content in a file system
US7505986B2 (en) Moving data from file on storage volume to alternate location to free space
US7873681B2 (en) Moving data from file on storage volume to alternate location to free space
US20070192273A1 (en) Online data volume deletion
US7979665B1 (en) Method and apparatus for processing access requests in a computer system
US8639676B2 (en) Data library optimization
US7383292B2 (en) Moving data from file on storage volume to alternate location to free space
JP2008544397A (ja) ファイルシステム内へのコンテンツの格納を管理する方法および装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.