CN1307580C - 大文件的有效管理 - Google Patents
大文件的有效管理 Download PDFInfo
- Publication number
- CN1307580C CN1307580C CNB028184246A CN02818424A CN1307580C CN 1307580 C CN1307580 C CN 1307580C CN B028184246 A CNB028184246 A CN B028184246A CN 02818424 A CN02818424 A CN 02818424A CN 1307580 C CN1307580 C CN 1307580C
- Authority
- CN
- China
- Prior art keywords
- file
- data
- segmentation
- computer system
- rear end
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/113—Details of archiving
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/185—Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种对象管理***,包括一个配置成保存一个对象(72)的计算机***,其中所述对象可以是一个文件。计算机***被配置成将对象(72)划分成分段(70),选择分段,并且把选择的分段提供给一个存储设备(14),以便加以保存。在这里基于是否修改过分段来确定哪些分段需要迁移到设备,由此选择所述分段。***则是通过检查一个与对象相关联的数据对象来对此加以判定的。所述计算机***可以被配置成从存储设备中检索一个选择的分段。
Description
相关申请的交叉引用
本申请要求针对2001年9月26日提交的、名称是“SYSTEMS&METHOD FOR MANAGING TABLESPACES AND DATABASES”的共同未决美国专利申请60/324,578(律师案卷号为OTG-O01PROV)而享有优先权,该申请在此引入用于各种用途。
技术领域
本发明一般涉及一种用于在对象管理***中有效管理大文件的方法、产品和设备。更为特殊的是,本发明涉及的是在对象管理***中对大文件进行有效的存储和检索,其中对象管理***可以包括具有以下不同特性的存储器的各种组合,所述特性是例如速度、成本、大小、可用性、可存取性以及远程性。
背景技术
本发明涉及的是在对象管理***中对大文件进行管理。现有***旨在处理那些规模极大的表空间,其中这种现有***可以是与Oracle数据库结合使用的***。一个表空间可以由多个数据文件组成,这些数据文件可以由操作***存取和操作。“数据文件”是指一个可以拷贝、移动或在其他方面作为连续信息对待的文件,不管所述数据是否在物理上以连续方式保存在存储介质上。
本地存储容量也许不足以保存与一个或多个数据库相关联的整个表空间。通过购买充足的快速存取存储介质(例如硬盘或光学介质)来提供保存整个数据库的足够容量是非常浪费的,在没有必要以相对较快的速度存取所有数据的时候尤其如此。已经实施这样一种常规数据库***,其中可以将数据“迁移”到价格较低的介质,并且可以在需要的时候才从介质中检索数据。然而,现有***和方法并未有效管理那些将要迁移、迁移之后以及检索之后的数据。这些***要忍受等待时间并具有很高的带宽要求,此外还需要很长的备份时间并具有高昂的成本,但却未必能够产生“时间点(point in time)”快照。这些问题不仅限于数据库和表空间。而是,这些问题同样存在于保存诸如多媒体之类的大文件的***。
如这里所公开的那样,存在一种更为有效的方法,该方法减少了等待时间和带宽要求,降低了成本,并且只需要较小的备份窗口,由此更有效地管理数据。尽管这里的公开是在数据库和表空间的环境中描述问题和发明的,但是本发明也可应用于任何使用迁移的数据管理***,尤其是在所述***管理诸如音频或视频这类大数据文件的时候。
发明内容
因此,简要地说,本发明提供了一种用于在对象管理***中有效管理大文件的方法、产品和设备。在本发明的一个实施例中,对象管理***包括一个配置成保存对象的计算机***,其中所述对象可以是一个文件。所述计算机***被配置成将对象分割成分段并且选择分段,此外所述计算机***还把选择的分段提供给一个存储设备,以便加以保存。
其中,根据是否修改过分段来确定要将哪些分段迁移到存储设备,由此对分段进行选择。而***则是通过检查一个与对象相关联的数据对象来对此加以确定的。
计算机***可以配置成从存储设备中检索一个选择的分段。所述***接收一个数据存取请求并且使用数据存取请求来选择一个分段,此外还使用了数据对象来确定选择的分段是否存在于计算机***中,如果选择的分段不在计算机***上,则从存储设备中检索这个选择的分段。
对本领域技术人员来说,本发明的优点和进一步细节将从以下结合附图所进行的详细描述中变得清楚。
附图说明
本发明将通过以下结合附图所进行的详细描述而变得易于理解,其中相同的参考数字表示的是相同的结构单元,并且其中:
图1是具有一个前端和一个后端的对象管理***的一个示意图;
图2是附加了大容量存储设备的计算机***的示意图;
图3是i节点(inode)与保存了DMAPI信息的文件之间的逻辑关系的框图;
图4是i节点与保存了DMAPI信息的扩展块之间的逻辑关系的框图;
图5是文件、DMAPI扩展数据文件、容器文件以及后端保存的分段的框图。
图6是显示对象管理***中使用的守护程序的方框图;
图7是一个显示分段的版本控制(versioning)的方框图;
图8是对迁移处理进行描述的流程图;
图9是描述更新文件状态来确保一致性的流程图;
图10是描述清除处理的流程图;
图11是描述事件处理和重新提交(restaging)数据的流程图;
图12是显示重新提交分段的方框图;
图13是一个描述有效搜索迁移或清除候选者以及获取候选者路径名的流程图;
图14是显示了若干种搜索迁移或清除候选者的方法的方框图;
图15是描述了使用容器文件而使来自一台计算机的文件能在另一台计算机上使用的流程图;以及
图16是图15中的计算机的框图。
具体实施方式
在这里提供了关于实施例的详细描述。虽然本发明是结合实施例来描述的,但是应该理解,本发明不局限于任何一个实施例。相反,本发明的范围只受附加权利要求限制,并且本发明包括多种替换、修改和等价物。出于例证目的,在以下描述中阐述了很多具体细节,以便提供关于本发明的全面理解。但是本发明可以依照权利要求而在没有若干或全部这些具体细节的情况下实施。为了清楚起见,在这里并未详细描述那些与本发明有关但在本技术领域已知的技术材料,以免不必要地造成本发明不清楚。
应该了解的是,本发明可以借助多种方式实施,其中包括作为一个进程、一个仪器、一个***、一个设备、一种方法或一种计算机可读介质,例如计算机可读的存储介质或是计算机网络,其中程序指令是通过光/电通信链路发送的。
概述
如图1所示,在一个实施例中,对象管理***10包括一个主要或本地计算机***12以及一个存储***14,它可以是一个辅助或远程计算机***。主计算机***12称为前端12,它向用户(没有显示)提供主应用程序和数据存储服务。在正常操作中,主计算机***12在其CPU20上运行应用程序并在其本地文件***16上提供本地数据存取,所述文件***通常包括高速设备,例如各自处于一个RAID阵列中的硬盘驱动器18或是其他结构。存储***14也称为后端14,它可以是一个与各种大容量存储设备相连的通用CPU22,其中所述大容量存储设备可以组织到文件***26中,也可以是一个专用存储装置。在后端14中使用的大容量存储设备可以是硬盘驱动器24,也可以是更廉价、更慢或专用于归档目的的其他设备。例如,可以使用光盘28、磁带驱动器30以及磁光驱动器。并且可以将后端14用作那些较少存取的数据的廉价近线(near-line)存储器,也可将其用于备份前端12的数据。
后端14可以与前端12处于相同位置,也可以位于远端。数据传送是经由NFS、AFS、FTP或其他方法来完成的。前端12与后端14可以使用一对一、多对一或多对多的关系连接。通常,前端12上的文件***16与后端14是一对一的关系,但是在前端12上可能存在几个文件***16,其中每一个***都映射到一个不同后端14。例如,在将各个文件***16用于归属公司中不同群组的一个不同应用程序的时候,可以使用这种结构。因此,会计部门的数据可以转向一个后端14***,而涉及工资单的数据则转向另一个后端14。这些后端***14可以位于不同的远端位置。
在操作中,迁移守护进程将来自前端12的数据迁移(拷贝)到后端14;也就是将来自前端12的数据拷贝到后端14。这些数据划分成写入后端14的分段。一旦迁移了一个文件,则在前端12将其标记为已迁移。这个操作是通过设定一个指示文件已经迁移的比特或者其他标志来完成的。清除守护进程寻找那些数据不再为前端所需要的已迁移文件,并且清除那些不再需要的数据。事件守护进程捕获数据存取事件,如果在前端12上需要数据,那么它会将数据从后端14重新提交到前端12。事件守护进程还被配置成移动所需要的文件部分,从而仅仅重新提交文件的一部分。这样的优点是减少正在传送的数据量,以便减少带宽需要并缩短等待时间。
迁移守护进程周期性地检查那些需要迁移的文件(确切地说,应该是文件的一些部分)。如果它发现一个标记为脏(dirty)的重新提交的文件(也就是说,在所述文件最后一次迁移到后端14以来已经对其执行过写入),那么它将会把该文件迁移到后端14。迁移守护进程则配置成只写入那些经过修改的分段。而未修改的分段则不必写入,由此减少了所要传送的数据量。在后端14,对经过修改的分段进行版本控制,并且将其写入大容量存储设备。这些分段可以改写当前存在的分段,但是保存较早版本则允许创建时间点快照,以便在任何给定时间都能保存***状态。涉及分段位置的信息和其他元数据写入到位于后端14的快速存储器上的容器文件。在这种结构中,备份是依靠***操作来创建的,并且不需要进行单独的备份,因为容器文件包含了将数据还原到前端12所需要的全部信息。
除了设定分段大小和其他结构以及环境信息之外,这些操作是在不需要在应用程序用户部分上的特别介入的情况下以透明方式执行的。
此外还能使用这种***而使来自一个计算机***的数据可以应用于另一个计算机***,同时不需要拷贝所有数据。为了实现这个目的,其中将第二计算机***配置成在后端14上使用第一计算机的容器文件,以便在其本地文件***上创建自己的文件。当第二计算机***将自己的数据写入后端14时,第二计算机***会在设置过程中或者按照需要来创建自己的容器文件。在第二计算机的操作过程中,如果来自后端14的文件的必要分段不在前端12上,那么数据存取会导致重新提交这些分段。如果任何一个计算机***修改了数据,那么它会在迁移数据的时候将自己的分段写入后端14并且更新自己的容器文件。这样一来,每一个计算机***都具有了自己的文件版本。
此外还可以对***进行配置,以便通过将文件名、i节点编号以及扩展属性存入单个文件来搜索迁移和清除候选者。***可以搜索这个文件来快速识别迁移或清除候选者,而不用检查i节点以及可能还有名称空间中各个文件的扩展块。使用i节点编号所进行的反向查找被用于确定路径名。这种方法允许***仅仅查找那些用于迁移的i节点和清除候选者,从而减少需要的时间。
所述***可用于管理那些由数据库使用的大的表空间,但在大文件管理方面也具有应用性,在只对文件一部分进行数据存取的情况下更是如此。
详细说明
在一个实施例中,主要和辅助计算机***各自包含了一个在通用计算机上执行的软件程序,所述通用计算机可以是一个运行UNIX的工作站,但是也可以使用其他计算机***,例如基于Intel公司Pentium处理器并运行视窗或Linux操作***的PC。此外还可以使用实现了计算机***的其他装置,例如将指令烧入诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)这类芯片的专用硬连线***。辅助计算机***则用作一个存储***,它可以是以凭借网络附加存储(NAS)或存储区域网络(SAN)结构中连接的专用存储设备的形式来实现,例如EMC、Network Appliance、StorageTek和ADIC制造的存储设备。如图2所示,计算机***可以具有任意数量的下列部件:中央处理器41、存储器42、显示器44、键盘46、大容量存储设备48、网络接口50以及其他输入/输出设备52。根据惯例,存储器42和大容量存储设备48可用来保存程序指令和数据。计算机***40还可以具有一个以上的中央处理单元41,例如基于多处理器Pentium的***或是Sun SPARC工作站。大容量存储设备48可以包括使用了RAID、光纤通道或其他接口的一个或多个硬盘驱动器、光驱动器、磁带驱动器、磁光驱动器、DAT、CD驱动器、DVD驱动器或用于存储数据的其他设备。大容量存储设备18可以组成为文件***,其中可以使用一组以上的大容量存储设备18。
文件***是对象存储的一种类型,它可以保存文件(在这种情况下,对象ID即为它的路径名)或对象(在这种情况下,对象是由不同于文件***名的某个ID来引用的)。一个对象存储具有以下组成部分:一种识别对象的方法,允许操作对象的接口(API、文件***原语等等)以及用于对象的存储器。文件可以视为是一种对象。这里公开的原理同等地适用于对象和对象存储以及文件和文件***。就对象存储而言,用于描述在后端何处发现对象的扩展属性是一个对象ID而不是文件名。
主计算机***则充当前端12,它通常具有以硬盘驱动器18为形式的高速存储器,以便快速存取数据。存储***则充当后端14,它具有某些高速存储器以及比较慢但却更经济的设备,例如磁带备份30和光驱动器28。其他归档设备可以附属于存储***14。并且使用后端14来保存那些很少存取的数据,由此减少了对于昂贵的快速存储空间的需要。
后端14可以作为主计算机***12的一部分来实施,以使后端14的存储设备附属于主计算机***12。尽管所公开的实施例描述了分别用于前端12和后端14的独立的主要和辅助计算机***,但是独立的辅助计算机***并不是实施本发明所必需的。
这里描述的主计算机***符合如下的***管理规范:由开放组织(先前的X/Open)出版,ISBN号为UK ISBN 1-85912-190-X并且文档编号为C429的Data Storage Management(XDSM)API,其公开在此引入作为参考。该文档可以从
http://www.opengroup.org在线获取,其中阐述了用于那些依从数据管理API(DMAPI)的应用程序的规范。如果还有其他操作***支持这里描述的数据管理功能,那么也可以使用这些操作***。
在UNIX或LINUX***中,操作***使用i节点来保存标准的文件***信息,例如大小、所有权、日期和权限。如XDSM规范所规定的那样,i节点还用于保存一个与DMAPI扩展数据的链接,其中包含了扩展属性/元数据以及区域信息。在一个实施例中,DMAPI扩展数据优选保存在一个名为.DMATTR的DMAPI扩展数据文件60中。DMAPI扩展数据文件60可以是前端12或后端14保存的单个文件,也可以跨越前端12或者后端14保存的若干文件。在前端12中的存储器提供了更快速存取,如同在存储器中进行高速缓存。图3显示了文件***16中的i节点62与DMAPI扩展数据文件60之间的逻辑关系。应该理解的是,尽管在这里将这些单元显示为集中在一起,但这未必反映了其在磁盘上的物理位置。如图3所示,DMAPI扩展数据文件60可以作为扩展属性和区域的表格来实现,并且是以i节点的编号作为索引的。如图4所示,另一种布局是使每一个i节点62都指向自己的扩展块64。通过在.DMATTR文件60中保存DMAPI信息,可以在不必读取其i节点62和DMAPI扩展块64的情况下读取文件的DMAPI信息,这在核对多个文件的时候非常有利。此外该信息也可作为文件***16的一部分而加以保存,这与i节点信息的保存方式相似。
扩展属性被用于记录诸如是否迁移文件和是否清除文件这类信息,以及以目录路径形式的与后端14上的容器文件76的链接、对象ID等等。区域信息包含了关于文件分段的信息,例如本地是否存在分段中的数据,是否数据为脏并且需要迁移,此外区域信息还包含了相应的本地文件中的数据位置。在这里可以使用标志并且可以用偏移和长度信息来指示本地文件中的数据位置。区域信息可以包括一个字段,它规定了当在所映射的文件区域中存取或改变数据时产生的事件集合;例如dm_region_read,dm_region_write,dm_region_truncate。此外还可以设定所述标志,以便指示数据是固有的还是脏的,以及是否需要重新迁移。如果分段是被动态地定大小的,那么也可以保持分段大小信息。在存取数据的时候,由于使用了区域信息来记录数据位置,因此可以增加映射一个文件的区域数目。
如图5所示,在将文件72迁移到后端14的时候,所述文件划分成多个分段70。分段70的大小可以是固定的,也可以是动态变化的。固定分段的分段大小可以由文件***中保存的结构或环境变量来限定。然而也可以根据文件***特征、文件大小以及数据存取模式来选择分段大小。分段大小不应该太大,因为较大的分段大小会产生更多的等待时间和较高的带宽使用,并且在后端14中将会占用更多空间来进行版本控制。另一方面,太小的分段大小会因为存在更多需要处理的分段而增加内务处理的需要。对大型数据库而言,可以使用大小为100兆字节(MB)的分段大小。因此,举例来说,一个2GB的文件划分成20个用于后端14的100MB分段。在一种实施方式中,所述***被用于一个Oracle数据库,它具有9840个用于后端14的磁带和16个大小为128MB的分段。某些影响到分段大小的因素包括:需要数据的应用程序的存取模式、后端14与前端12之间的数据传送速度、在后端14中用于数据传送的归档介质速度以及后端14介质等待时间。具有较慢定位时间的后端介质(例如磁带30)有利于较大的分段大小。
通过对文件72进行分割,所述***能在较小的部分70中移动数据。如果一个应用请求从2GB的文件中只存取一小部分数据,那么,即使这部分数据不在本地文件***上,也只需要对包含该数据的某个100MB分段进行检索,进而对所述数据进行存取。这样将会减少等待时间,因为移动数据需要的时间要小得多,此外还因为移动较少量数据而减少了带宽使用。同样,如果随后仅仅修改一小部分数据文件72,那么只有包含了经过修改的数据部分的分段70才需要迁移到后端14。
如图6所示,其中对主计算机***进行配置,以便在操作中包含三个守护进程,即事件守护进程dxdbmigd 80、迁移守护进程dxdbmigwatch 82以及清除守护进程dxdbpurgewatch 84。但是也可以使用任意数量的守护进程,其中只包括一个线程化的守护进程,此外还可以使用守护进程之外的其他方法。例如,视窗***可以使用***代理和服务。事件守护进程80捕获的是访问文件数据的时间。如果所请求的数据不在前端12的本地文件***16上,那么事件守护进程80会把来自后端14的数据拷贝到本地文件***16,然后进行数据存取。迁移守护进程82寻找那些其数据需要从前端12迁移到后端14的文件。一旦它识别了其数据需要迁移的文件,则它会将数据从前端12拷贝到后端14。清除守护进程84寻找其数据不再为本地文件***16所需要的文件,并且清除不需要的数据。由于这里描述的有效搜索迁移和清除候选者允许以很低费用来查找迁移和清除候选者,从而可以将迁移和清除守护进程82和84配置成以例如5分钟的时间间隔来周期性地运行。
参考图8中的步骤100,迁移守护进程82(或者线程化的单个守护进程)使用.DMATTR文件60中保存的属性信息来确定是否需要迁移文件,但是如这里所述,所述进程也可以使用扩展块64中保存的属性信息来确定是否需要迁移文件。如果以前没有迁移过文件72,那么该文件将会划分成若干个分段70,这些分段可以具有固定或动态确定的大小。分段大小可以基于如下因素而被动态确定,例如数据存取频率,每次存取时读取的连续数据的量以及其他存取模式信息。迁移守护进程82还可以派生出处理不同任务的其他进程。并且在迁移之前的处理、数据迁移期间或是检查文件是否在迁移中发生变化的时候(如果文件变化了,则舍弃当前迁移并且尝试下一次迁移),可以使用信号量、文件锁和其他方法来保护文件。
在步骤102,迁移进程以独占形式锁定文件,在步骤104,该进程读取属性和区域信息,并且在步骤106中确定是否需要迁移文件。如果不需要迁移,则在步骤108中撤销锁定。否则在步骤110中使用区域信息、文件大小和分段大小来确定需要迁移的文件部分。在步骤112,如果以前迁移过文件,那么存在一个容器文件76,其中包含了描述先前迁移的信息,并且通过读取这个文件来确定文件的新版本号。如果从未迁移过文件,则将版本号假设为1。只有新数据或是在上次迁移之后发生过变化的数据才会迁移到后端14。在步骤114,数据是依照分段大小来分割的,其中分段大小既可以是固定的也可以是动态的。在步骤116中将会撤销锁定,以使其他使用了所述文件的进程能在迁移的时候继续进行。
在步骤120,在并未改变前端12上的文件存取时间的情况下,需要迁移的分段70将被拷贝到后端14。如果迁移过程中出错,则在步骤124中将会在执行下一次迁移时重新尝试进行迁移。如果迁移成功,则在步骤126中再次锁定文件,此外还会在步骤128中再次读取文件属性和区域信息,并且使用这些信息来判定是否在数据移动中改变了文件。如果改变了文件,则在步骤132中撤销锁定,由于数据可能不一致,因此在步骤124,所述迁移失败并且稍后将会再次尝试。如果在数据传送中并未改变文件,则在步骤134中通过更新文件信息来显示成功迁移了文件。并且还会更新扩展属性(例如DMAPI/XDSM)和区域信息,而包括路径名、大小、所有者、权限以及其他文件属性在内的文件相关信息则写入到一个与数据文件相关联的名为*.cont文件的容器文件76。此外,写入容器文件76的信息还包含了与后端14保存的分段有关的信息,其中包括版本控制信息。
文件状态必须按照指定顺序更新,以便确保一致性。在图9中,在步骤140,通过设定属性来显示并未清除文件,此外还设定了文件分段大小(如果必要)和后端14的文件位置,并且在步骤142中将信息直写到文件***16中。由此确保能在发生崩溃的情况下在文件中存在足够信息,从而可以通过前滚到新状态或是后退到先前状态来存取文件。在步骤144,新版本的*.cont文件76是以一种确保*.cont文件76包含文件旧状态和新状态的方式写入的。在步骤146,区域信息直写入DMAPI/XDSM接口,由此显示所有数据文件都已成功迁移到后端14,然后在步骤148中对.DMATTR文件60进行同步(将没有完成的信息写入磁盘)。如果失败了,则旧的区域信息仍然有效,因此可以在以后的迁移尝试中继续进行未来的迁移。在步骤150中对DMAPI/XDSM属性进行更新,以便将文件标记为正在迁移。这其中包括对元数据进行设定,以便显示数据在后端14中的存储位置和迁移时间,并且将文件标记成正在迁移。而元数据则以这样一种方式写入,即其中任何时间的故障都会使文件处于一致状态。
这样能够防止发生故障时引发的数据损坏,并且防止文件处于一种允许存取那些有可能无效的文件数据的状态。如果必要的话,区域信息中保存的状态、文件元数据以及后端版本文件(*.cont文件)足以在清除之后还原所述文件,但也可以在本地管理的磁盘丢失或无意移动了文件的情况下恢复所述文件。
各个数据文件72可以具有一个相关的*.cont文件76,但也可以将用于多个数据文件的*.cont信息存入单个容器文件,所述文件可以用数据文件名或诸如对象ID这样的其他标识符作为索引。如果先前迁移过文件,则对.DMATTR文件60中的区域信息进行检查,以便确定哪些分段是脏的;也就是确定在上次迁移以后修改过哪些分段。经过修改的分段拷贝至后端14并且可以对其进行版本控制,使之不会改变分段的现有拷贝。如图7所示,*.cont文件76记录了所述版本。
举例来说,如果*.cont文件76指示后端14已经存在一个分段版本54,则在没有改变或改写版本54的情况下将这个经过修改的分段作为版本55来写入,并且通过更新*.cont文件76来反映这个操作。实际上,*.cont文件记录了文件增量。由于所述文件存在于任何时间点,因此它具有恢复相关文件所需要的信息,并且由于*.cont文件76在任何特定日期和时间都有效保持了快照,因此可能确定数据文件72看起来像什么。在结束迁移之后(例如将迁移的数据成功写入磁带的时候),关于新迁移分段的信息保存在容器文件76中。此外还会通过更新.DMATTR文件60来指示已经迁移了所述文件,如果第一次迁移文件,则会更新与后端14中的容器文件的链接。如果迁移的是经过修改的分段,则对区域信息进行更新,从而显示所述分段不再是脏的,并且由此不再需要迁移所述分段。因此,在前端12的文件与其在后端14上的分段之间存在链接,该链接保存在.DMATTR文件60和*.cont文件76中。
为了描述迁移,如果在前端12上存在一个以前没有迁移过的称作ABC的数据文件,则在后端14为其选择一个唯一路径名,假设为123。ABC文件划分成分段大小由对象管理***结构确定的分段。这些分段拷贝至后端14,以便作为指示唯一路径名、分段编号和版本号的各个文件,例如123.partitionl.versionl,123.partition2.versionl,直到123.partitionN.versionl。然后则写入a123.cont文件,该文件描述的是迁移中已经完成什么,其中包括本地文件***16上的文件名、分段名以及分段版本。附加信息是在.DMATTR文件60中写入本地文件***16或文件***中的其他位置的。尽管该信息也可位于其他位置,但是将其置于本地文件***16上将会加速存取。此外还可以在前端12的存储器中高速缓存.DMATTR文件60,但这需要频繁同步高速缓存的文件以及磁盘上的文件,以便在发生崩溃的时候保持一致。所写入的属性包括一个已将文件ABC迁移至文件123的指示,指示迁移时间和文件所迁移位置的时戳,以及一个已经成功将文件迁移至后端14的指示。
参考图10,在步骤200,清除守护进程84(或线程化的守护进程)使用.DMATTR文件60中保存的属性信息来识别那些已经迁移(不再需要迁移)但却并未清除的文件。清除守护进程84可以在确定本地文件***16需要自由空间之后再进行这个操作,并且可以在有足够自由空间可用的时候停止清除。实际上,在步骤202,清除候选者是根据清除策略而被排序的,其中所述策略可以由用户进行配置。并且可以将LRU(最近最少使用)用作清除策略,然而也可以基于文件***16中保存的数据特征、使用文件***16上的数据的应用以及数据存取模式来选择其他策略。这些策略可以在文件级或分段级上使用。清除守护进程84可以使用扩展属性中的信息来确定文件中的分段的最后存取时间和存取频率等等。基于清除策略,清除守护进程84将分段标识为将要清除。例如,清除守护进程84可以使用一个LRU算法来对文件排序,然后在被选择进行清除的文件范围内选择具有早于某个日期的最后访问日期的分段。
在这里可以使用文件锁、信号量或其它方法来防止数据丢失或损坏。在步骤204,在清除进程编辑了一个清除候选者列表,并且在选择了一个用于清除的文件之后,所述文件将被锁定。在步骤206中将会读取属性和区域信息,并且在步骤208中对其进行检查,以便了解在编辑了文件之后是否存取过文件;即它是否仍是一个清除候选者。如果不是的话,则在步骤210中不清除文件并且撤销锁定。如果文件仍是一个清除候选者,则在步骤212中设定文件区域信息,以便显示已经清除了整个文件。在步骤214,清除守护进程84从文件中消除对应于选定分段的本地数据。在一个依从DMAPI的***中,清除守护进程84使用dm_punch_hole()来消除本地数据。根据操作***性能,可以从一个相对文件末端的偏移那里截断本地文件72,这对大多数操作***而言都是很常见的,或者如ATX所规定的那样,也可以在文件中间凿孔。将要消除的数据有可能位于文件开端,在这种情况下将会留下一个存根74(如图5所示)。
在消除了本地数据之后,在步骤216中将会更新属性和区域信息,以便反映数据的清除。区域信息表示实际清除的数据不会在本地文件***16上出现,如果清除了整个文件(除了存根74),那么所述属性表示已经清除了文件。如果残留了文件的任何部分,则所述文件继续成为一个清除候选者。在更新了文件元数据之后,在步骤218中将会消除文件锁定。由此在***崩溃或是发生其他故障的情况下保护文件。由于并未将其标记为已清除,因此仍将文件视为一个清除候选者,但由于在清除操作前将其标记为已清除,因此在存取文件时将会导致重新提交文件的所有部分。某些数据可能仍是本地数据,但如果在清除操作中出错,则未必能够断定清除了哪些数据。因此,清除进程将所有分段标记成已清除,在结束清除之后,所述进程更新区域信息,以便指示仍旧存在哪些分段。如果元数据更新失败,则文件仍旧显现为清除候选者,尽管它的某些或所有数据可能已从本地文件中清除。所描述的序列被用于防止数据损坏,但只要通过同步区域信息、文件数据删除与文件元数据更新来确保一致性,那么其他方案也是可行的。由此避免文件处于一种可以存取过期数据的不一致状态之中。
文件72通常在由应用扫描的文件开端包含了报头和其他频繁使用的信息,并且在清除文件的时候,通过将存根74保留在适当位置,可以加快数据存取时间。用户可以基于如下信息来定义存根74的长度,例如文件72开端是否存在频繁存取的信息以及对文件72开端的多少数据进行过存取。举例来说,Oracle数据库可能需要至少128KB的存根大小,这是因为Oracle在例如启动时间和Oracle存取各个Oracle数据文件的时候会频繁访问数据文件中的这个数据。如果存根数据不是固有的,那么Oracle将会停止,直到从后端14恢复所述数据,这意味着多磁带装配(或者诸如CD之类的其他存储介质的装配)。此外还可以对存根74进行版本控制,并且将其作为文件或对象保存在后端14。
在图11中,在步骤300,事件守护进程80或线程化的守护进程捕获数据存取事件并且记录数据存取活动。当发出数据存取请求的时候,在步骤302,所述处理取决于数据存取究竟是读取还是修改该文件(例如写或者截断)的存取。在步骤304,如果数据存取是一个读取,则对.DMATTR文件60中的区域信息进行检查,以便确定所请求的数据是否存在于本地文件***16之上;也就是说,是否区域信息显示的是将对应于正在存取的文件部分的分段标记为存在。在步骤306,如果存在所请求的数据,那么在步骤308,存取请求传递至文件***,并且在步骤324中通过更新文件属性和区域信息来反映所述存取。如果不存在所请求的数据,那么在步骤310,事件守护进程80或是另一个从事件守护进程80那里接收事件的进程将会锁定文件并且检查区域和属性信息,以便在步骤312中确定是否需要进行处理。在步骤314,如果因为先前的事件处理而不需要进行处理,则撤销锁定并为事件产生一个响应,所述响应将会唤醒这个等待结束I/O请求的进程。如果需要处理,则在步骤316中将文件标记为可清除,并且对元数据进行同步以及确定完成事件处理所需要的文件数据,此外还会确定后端14的文件位置,读取*.cont文件并撤销文件锁定。
在数据移动过程中并未锁定文件,由此允许处理那些本地文件***16固有的数据。在步骤318,从后端14读取必要分段并将其写入前端12的本地文件***16。此外所述文件仍然是以独占方式锁定的;在步骤320中以一种一致方式来更新区域和属性信息,并在步骤322中撤销锁定。在步骤314中则把一个响应发送到正在等待的进程,以便唤醒所述进程,由此完成它的读取请求。除非再次清除数据,否则针对这个数据的未来存取是不会产生恢复事件的。
根据数据访问模式,也可以使用某些预先的分段检索;也就是说,可以记录关于数据存取模式的信息,并且如果确定对于一个特定分段的存取频繁地引起了对于另一个分段的存取,那么也可以预先检索所述分段。
在步骤324,当事件守护进程80处理了数据存取事件之后,可以对.DMATTR文件60进行更新,以便指示对应于所存取文件部分的一个或多个分段的存取时间,例如清除策略在分段级使用数据存取信息的时间。所述***还会更新文件属性,以便指示文件存取时间。
如果存取请求是写入,则在步骤326中通过修改区域来更新存取时间,并且将对应于数据的分段标记为脏(由此需要对其进行迁移)。在这种情况下,在步骤328中以独占形式锁定文件并对事件进行检查,以便确定是否有必要进行处理。如果没必要处理,则在步骤330中撤销锁定并对事件做出响应,终止处理。如果有必要处理,则在步骤332中通过更新元数据来指示所述文件是一个清除候选者,并且由于要改变数据,因此还会指示所述文件是一个迁移候选者。此外还会读取文件元数据、区域信息以及*.cont文件,以便确定文件状态。在步骤336中将会确定产生事件的文件区域,如果区域信息指示所述数据不在本地存在,则在步骤338撤销锁定并且以一种类似于上述读取过程的方式来移动数据。如果数据是固有的,则不需要从后端14移动数据。在步骤340,在重新提交了数据之后,文件将会再次锁定,并且将会更新文件元数据和区域信息,以便指示需要迁移文件中的某些数据以及改变了文件中的哪些部分。在步骤342中则会撤销独占性锁定并且会将一个响应发送到正在等待的进程。
为了描述事件处理,除了长度由结构限定的存根74之外,对N个分段都被迁移和清除的文件ABC来说,针对分段77中的数据的数据存取请求是由事件守护进程80捕获的。在图12中描述了这种情况。所述守护进程判定分段77中的数据不在本地文件***16中存在,并且通过检查.DMATTR文件60来确定后端14上的相应容器文件是123.cont。在这里将会发布一个关于相应后端文件123的分段77的请求。123.cont可以指示版本55是文件123的分段77的最新版本,由此将123.partition77.version55检索到前端12。在将分段还原到磁盘之后,属性和区域信息将会得到更新。
本***通过迁移和检索文件段而不是整个文件而避免了大量和耗时的文件传送。举例来说,数据库文件趋向于很大并且以千兆字节来度量。而在迁移和检索过程中来回移动整个文件是不切实际的,在诸如Oracle这样的数据库应用可能只访问很少一部分表格(例如行)的时候尤其如此。举例来说,Oracle不会立刻扫描整个文件。而是,它会部分地扫描一个数据库文件,然后继续扫描另一个文件,依此类推,直到最终回到第一个文件并扫描更多的数据。而使用全文件检索则会导致***失效或是更长的检索时间。
为了实现这里描述的文件分割和分段管理,所述***还被配置成有效搜索迁移、清除候选者并获取其路径名,但这并不是必需的。如图14所示,其中存在一种在名称空间中搜索文件名并为每个文件查找i节点和扩展属性的方法。在某些结构中,i节点包括一个指向包含了扩展属性的扩展块的指针,由此需要一个第二查找以及相应的磁盘存取。在图13和14所描述的一种更有效的方法中,在步骤350,***关于文件名、i节点编号以及扩展属性来搜索DMAPI扩展数据文件60(.DMATTR文件)。此外还可以将所述***配置成使用一个不同的文件或是若干个文件。这样一来,在步骤352,***可以快速确定哪些文件是迁移或清除候选者,而不必在名称空间中为各个文件查找i节点以及可能还有扩展块。为了产生用于一个候选者的路径名,在步骤354中使用所述候选者的i节点编号来查找其路径名。这可以利用一个在i节点和路径名列表中的反向查找来实施。所述列表可以作为表格而被保存在同一个文件.DMATTR中,也可以保存在单独的文件或文件组中。利用这种结构,***仅仅是查找那些标识为迁移和清除候选者的文件的i节点,而不必检查关于包含了已迁移和清除的那些文件在内的所有文件的信息。由此显著减少了迁移和清除所需要的执行时间以及***负载。例如,在确定需要迁移哪些文件的过程中,使用这里描述的有效搜索的***可以在不到一分钟的时间里对带有一百万个文件的文件***进行检查,以便找出迁移和清除候选者。与先前使用名称空间进行搜索所花费的20分钟相比,对一个在一百万个文件中只有一个迁移候选者的Solaris设备来说,它只要花费十秒钟时间就能找到这个文件。这种方法可以与NFS类型的文件***、XFS、UFS、Veritas以及其他相似的文件***结合使用,其使用Unix风格的操作***,其中所述Unix风格的操作***可以是例如Linux和Solaris,但是也可以将所述方法扩展到其他操作***和文件***。
如图15和16所述,使用这里描述的容器文件76能使来自一个计算机***(设备A)的数据可用于另一个计算机***(设备B),而不需要首先对全部数据进行拷贝(将一个文件***的内容复制到另一个***通常是一个非常耗时的过程)。在步骤400,可以将设备B配置成使用处于后端14上的设备A的容器文件。每个容器文件76都包含了可以由设备B用来在其本地文件***创建新文件的文件属性信息,例如大小、所有者、权限和路径。当设备B在步骤402中读取了*.cont文件之后,在步骤404中将会创建新的文件,并且在步骤406中把新文件的大小设定为*.cont文件76中指定的大小,以及在步骤408中释放所分配的空间(就好像已经清除了文件那样),由此在设备B的文件***上创建一个存根文件。在步骤410中创建了一个.DMATTR文件60或是其它扩展数据块或文件,并且还设定了属性和区域。在步骤412中则将设备B独有的容器(*.cont)文件写入后端14,但是这也可以根据需要而在设备B修改数据并将其迁移到后端14的时候执行。在步骤414,由于设备B的运作,数据存取请求通常会产生一个所请求数据不在设备B的本地文件***上的判定,并且会把需要的分段从后端14拷贝到设备B的本地文件***。而在设备B上则使用已经描述过的同一方式来更新文件属性和区域信息。在步骤416,如果设备B修改了数据,则将那些经过修改的分段(显示为图16中的设备B的已修改数据)写入后端14并将关于变化的信息存入设备B的容器文件(显示为*.cont)。在步骤418,设备A继续写入其自己的分段并且将关于其变化的信息保存在自己的容器文件76中。每一个计算机***都把自己的已修改分段写入后端14。每一个计算机***使用的都是自己的容器文件,由此具有自己的数据版本。
前述公开和实施例论证了本发明在增加计算机***中的对象管理效率方面的效用,但是很明显,本发明对于许多其他应用也是有益的。本发明在数据库、视频、音频以及任何一个只存取文件一部分并且只有这部分文件相关而不需要访问文件所有数据的应用中都具有特殊价值。
为了清楚起见,这里的进程和方法是结合特定的流来描述的,但是应该理解,在不脱离本发明精神的情况下,其他序列也是可行的,并且可以并行执行某些序列。此外还可以细分或组合步骤。如这里所公开的那样,依照本发明编写的软件可以用计算机可读介质的形式保存,例如内存或CD-ROM,但也可以在网络上传送并由处理器执行。
这里引用的所有引证文献意图作为参考而被引入。尽管上文已经依照特定实施例而对本发明进行了描述,但是可以了解,对本领域技术人员来说,很明显,针对本发明的变化和修改是显而易见的,并且这些变化和修改可以在附加权利要求的范围和等价物中得到实施。此外还可以通过例如并行使用多台计算机或者均分负载方案并且还可以将任务分发到多台计算机,从而使用一台以上的计算机,以使它们能够作为一个整体来执行对象管理***的功能,也就是用它们来替代单独的计算机。上文描述的各种功能可以在单个计算机上由单个进程或进程组执行,也可以分发到几台计算机。这些进程可以调用其他进程来处理某些任务。所公开的原则不但适用于对象和对象存储,而且还适用于文件和文件***。此外,所给出的实施例应视为是说明性而不是限制性的,并且并未将本发明局限于这里给出的细节。因此,在这里意图将本公开和所附权利要求理解为覆盖了落入本发明真正精神和范围的所有这类变化和修改。
Claims (9)
1.一种包含一个计算机***的对象管理***,其中计算机***包括:
一个主存储设备,被配置成保存一个对象,以及
一个处理器,耦合到存储器并且被配置成将所述对象划分成分段,选择所述分段的一个子集以便迁移到辅助存储设备,所述选择是至少部分地基于确定包括所述子集的分段已经被修改而进行的,并且把选择的分段的子集提供给所述辅助存储设备,以便作为单独的保存对象来加以保存。
2.如权利要求1所述的***,还包括一个与对象相关联的数据对象,其中数据对象包含关于是否修改过分段的信息。
3.如权利要求1所述的***,其中所述对象是文件。
4.如权利要求1所述的***,其中计算机***还被配置成从存储设备中检索一个选择的分段。
5.如权利要求4所述的***,其中计算机***还被配置成接收一个数据存取请求,并且使用该数据存取请求来选择要从存储设备中检索的分段。
6.如权利要求5所述的***,还包括一个与对象相关联的数据对象,其中所述数据对象包含关于分段是否存在于计算机***中的信息。
7.如权利要求6所述的***,其中如果数据对象指示分段不在计算机***中,则计算机***选择要从存储设备中检索的分段。
8.一种用于管理***中的对象的方法,所述***包括一个主存储设备和一个被配置成保存一个对象的计算机***,所述方法包括:将对象划分成分段,选择所述分段的一个子集以便迁移到辅助存储设备,所述选择是至少部分地基于确定包括所述子集的分段已经被修改而进行的,以及将选择的分段的子集提供给一个辅助存储设备,以便加以保存。
9.如权利要求8所述的方法,还包括接收一个数据存取请求,并且其中选择要从存储设备中检索的分段包括使用所述数据存取请求来确定要选择哪个分段。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US32457801P | 2001-09-26 | 2001-09-26 | |
US60/324,578 | 2001-09-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1556961A CN1556961A (zh) | 2004-12-22 |
CN1307580C true CN1307580C (zh) | 2007-03-28 |
Family
ID=23264218
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB028184246A Expired - Lifetime CN1307580C (zh) | 2001-09-26 | 2002-09-20 | 大文件的有效管理 |
CN028188446A Expired - Lifetime CN1559041B (zh) | 2001-09-26 | 2002-09-26 | 在计算机***之间共享对象 |
CNB028188489A Expired - Lifetime CN1311358C (zh) | 2001-09-26 | 2002-09-26 | 对迁移和清除候选者的有效查找 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN028188446A Expired - Lifetime CN1559041B (zh) | 2001-09-26 | 2002-09-26 | 在计算机***之间共享对象 |
CNB028188489A Expired - Lifetime CN1311358C (zh) | 2001-09-26 | 2002-09-26 | 对迁移和清除候选者的有效查找 |
Country Status (8)
Country | Link |
---|---|
US (3) | US8442957B2 (zh) |
EP (3) | EP1433086A4 (zh) |
JP (3) | JP2005512171A (zh) |
KR (3) | KR20040053142A (zh) |
CN (3) | CN1307580C (zh) |
AT (1) | ATE555445T1 (zh) |
CA (3) | CA2461025A1 (zh) |
WO (3) | WO2003027909A1 (zh) |
Families Citing this family (93)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9361243B2 (en) | 1998-07-31 | 2016-06-07 | Kom Networks Inc. | Method and system for providing restricted access to a storage medium |
US7392234B2 (en) | 1999-05-18 | 2008-06-24 | Kom, Inc. | Method and system for electronic file lifecycle management |
JP4168626B2 (ja) * | 2001-12-06 | 2008-10-22 | 株式会社日立製作所 | 記憶装置間のファイル移行方法 |
JP3966459B2 (ja) * | 2002-05-23 | 2007-08-29 | 株式会社日立製作所 | ストレージ機器管理方法、システム、およびプログラム |
US7562089B2 (en) * | 2002-06-26 | 2009-07-14 | Seagate Technology Llc | Systems and methods for storing information to allow users to manage files |
US7752226B1 (en) * | 2002-12-20 | 2010-07-06 | Symantec Operating Corporation | Reverse pathname lookup by inode identifier |
JP4322031B2 (ja) | 2003-03-27 | 2009-08-26 | 株式会社日立製作所 | 記憶装置 |
US7240080B2 (en) * | 2003-07-30 | 2007-07-03 | International Business Machines Corporation | Method and apparatus for determining using least recently used protocol if one or more computer files should be written to one or more information storage media and synchronously providing one or more computer files between first and storage devices |
US7181647B2 (en) * | 2003-10-15 | 2007-02-20 | International Business Machines Corporation | Error tracking method and system |
US7509327B2 (en) * | 2003-12-03 | 2009-03-24 | Microsoft Corporation | Business data migration using metadata |
US7171532B2 (en) * | 2004-08-30 | 2007-01-30 | Hitachi, Ltd. | Method and system for data lifecycle management in an external storage linkage environment |
JP4349301B2 (ja) * | 2004-11-12 | 2009-10-21 | 日本電気株式会社 | ストレージ管理システムと方法並びにプログラム |
US7483929B2 (en) * | 2005-02-08 | 2009-01-27 | Pro Softnet Corporation | Systems and methods for storing, backing up and recovering computer data files |
JP2006301854A (ja) * | 2005-04-19 | 2006-11-02 | Sony Corp | データ処理方法、データ処理装置、プログラムおよびデータ処理システム |
US7590799B2 (en) | 2005-06-16 | 2009-09-15 | Seagate Technology Llc | OSD deterministic object fragmentation optimization in a disc drive |
US7529903B2 (en) * | 2005-07-05 | 2009-05-05 | International Business Machines Corporation | Systems and methods for memory migration |
JP4704161B2 (ja) * | 2005-09-13 | 2011-06-15 | 株式会社日立製作所 | ファイルシステムの構築方法 |
US8548948B2 (en) * | 2006-04-11 | 2013-10-01 | Oracle International Corporation | Methods and apparatus for a fine grained file data storage system |
US8316008B1 (en) * | 2006-04-14 | 2012-11-20 | Mirapoint Software, Inc. | Fast file attribute search |
US8261068B1 (en) | 2008-09-30 | 2012-09-04 | Emc Corporation | Systems and methods for selective encryption of operating system metadata for host-based encryption of data at rest on a logical unit |
US8416954B1 (en) | 2008-09-30 | 2013-04-09 | Emc Corporation | Systems and methods for accessing storage or network based replicas of encrypted volumes with no additional key management |
US9946791B1 (en) * | 2006-11-21 | 2018-04-17 | Google Llc | Making modified content available |
US9671976B2 (en) * | 2007-02-05 | 2017-06-06 | Moonwalk Universal Pty Ltd | Data management system for managing storage of data on primary and secondary storage |
US8768895B2 (en) * | 2007-04-11 | 2014-07-01 | Emc Corporation | Subsegmenting for efficient storage, resemblance determination, and transmission |
US8055864B2 (en) * | 2007-08-06 | 2011-11-08 | International Business Machines Corporation | Efficient hierarchical storage management of a file system with snapshots |
US8849940B1 (en) * | 2007-12-14 | 2014-09-30 | Blue Coat Systems, Inc. | Wide area network file system with low latency write command processing |
US20090259771A1 (en) * | 2008-04-09 | 2009-10-15 | Tanik Haluk K | Identification of memory cards by host |
US8949614B1 (en) * | 2008-04-18 | 2015-02-03 | Netapp, Inc. | Highly efficient guarantee of data consistency |
US20090265780A1 (en) * | 2008-04-21 | 2009-10-22 | Varonis Systems Inc. | Access event collection |
US8078957B2 (en) | 2008-05-02 | 2011-12-13 | Microsoft Corporation | Document synchronization over stateless protocols |
US8272026B1 (en) * | 2008-06-02 | 2012-09-18 | Symantec Corporation | Method and apparatus for using a dynamic policy to manage a file purging process |
US8589358B2 (en) * | 2008-06-26 | 2013-11-19 | Emc Corporation | Mechanisms to share attributes between objects |
JP2010064336A (ja) * | 2008-09-10 | 2010-03-25 | Canon Inc | 画像形成装置、情報処理システム、画像形成装置の制御方法、プログラム及び記憶媒体 |
US8300098B1 (en) | 2008-09-16 | 2012-10-30 | Emc Corporation | Techniques for providing access to video data using a network attached storage device |
CN101419616A (zh) | 2008-12-10 | 2009-04-29 | 阿里巴巴集团控股有限公司 | 一种数据同步方法及装置 |
US7996484B2 (en) | 2008-12-11 | 2011-08-09 | Microsoft Corporation | Non-disruptive, reliable live migration of virtual machines with network data reception directly into virtual machines' memory |
US8166314B1 (en) | 2008-12-30 | 2012-04-24 | Emc Corporation | Selective I/O to logical unit when encrypted, but key is not available or when encryption status is unknown |
US20100191708A1 (en) * | 2009-01-23 | 2010-07-29 | International Business Machines Corporation | Synchronous Deletion of Managed Files |
US8219526B2 (en) | 2009-06-05 | 2012-07-10 | Microsoft Corporation | Synchronizing file partitions utilizing a server storage model |
US8627130B2 (en) * | 2009-10-08 | 2014-01-07 | Bridgette, Inc. | Power saving archive system |
US8140821B1 (en) | 2009-12-18 | 2012-03-20 | Emc Corporation | Efficient read/write algorithms and associated mapping for block-level data reduction processes |
US8156306B1 (en) | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US8423727B2 (en) * | 2010-03-16 | 2013-04-16 | Hitachi, Ltd. | I/O conversion method and apparatus for storage system |
CN102281312B (zh) * | 2010-06-12 | 2015-05-20 | 深圳市腾讯计算机***有限公司 | 一种数据加载方法、***和数据处理方法、*** |
KR101753313B1 (ko) | 2010-07-08 | 2017-07-19 | 삼성전자주식회사 | 파일 백업 장치 및 방법 |
US8549229B2 (en) * | 2010-08-19 | 2013-10-01 | Sandisk Il Ltd. | Systems and methods for managing an upload of files in a shared cache storage system |
US8548959B2 (en) * | 2010-11-29 | 2013-10-01 | Ca, Inc. | System and method for minimizing data recovery window |
US8484649B2 (en) | 2011-01-05 | 2013-07-09 | International Business Machines Corporation | Amortizing costs of shared scans |
US8352435B1 (en) | 2011-03-17 | 2013-01-08 | Emc Corporation | Continuous data reduction for highly available synchronous mirrors |
US20120303654A1 (en) * | 2011-05-26 | 2012-11-29 | James Michael Ferris | Methods and systems to automatically extract and transport data associated with workload migrations to cloud networks |
US8856591B2 (en) | 2011-06-14 | 2014-10-07 | Ca, Inc. | System and method for data disaster recovery |
US9552367B2 (en) | 2011-09-16 | 2017-01-24 | Ca, Inc. | System and method for network file system server replication using reverse path lookup |
US8301597B1 (en) | 2011-09-16 | 2012-10-30 | Ca, Inc. | System and method for network file system server replication using reverse path lookup |
CN102523285B (zh) * | 2011-12-15 | 2014-04-02 | 杭州电子科技大学 | 一种基于对象分布式文件***的存储缓存方法 |
CN102571952B (zh) * | 2011-12-31 | 2015-11-25 | 北京金山软件有限公司 | 一种传输文件的***及方法 |
US9218371B2 (en) | 2012-02-29 | 2015-12-22 | International Business Machines Corporation | Automatic table cleanup for relational databases |
US8934662B1 (en) | 2012-03-12 | 2015-01-13 | Google Inc. | Tracking image origins |
CN102722474A (zh) * | 2012-03-20 | 2012-10-10 | 华为终端有限公司 | 信息处理方法及终端 |
US9813353B1 (en) | 2012-06-07 | 2017-11-07 | Open Invention Network Llc | Migration of files contained on virtual storage to a cloud storage infrastructure |
US8983908B2 (en) * | 2013-02-15 | 2015-03-17 | Red Hat, Inc. | File link migration for decommisioning a storage server |
US20140258672A1 (en) * | 2013-03-08 | 2014-09-11 | Microsoft Corporation | Demand determination for data blocks |
DE102013114214A1 (de) * | 2013-12-17 | 2015-06-18 | Fujitsu Technology Solutions Intellectual Property Gmbh | POSIX-kompatibles Dateisystem, Verfahren zum Erzeugen einer Dateiliste und Speichervorrichtung |
US10210191B2 (en) | 2014-03-20 | 2019-02-19 | International Business Machines Corporation | Accelerated access to objects in an object store implemented utilizing a file storage system |
CN103970869A (zh) * | 2014-05-12 | 2014-08-06 | 浙江宇视科技有限公司 | 一种大文件存储方法 |
US9087012B1 (en) | 2014-06-04 | 2015-07-21 | Pure Storage, Inc. | Disaster recovery at high reliability in a storage cluster |
US9607004B2 (en) | 2014-06-18 | 2017-03-28 | International Business Machines Corporation | Storage device data migration |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US9606930B2 (en) | 2014-08-05 | 2017-03-28 | International Business Machines Corporation | Tape-managed partition support for effective workload allocation and space management |
US10078639B1 (en) * | 2014-09-29 | 2018-09-18 | EMC IP Holding Company LLC | Cluster file system comprising data mover modules having associated quota manager for managing back-end user quotas |
US9361349B1 (en) | 2015-01-30 | 2016-06-07 | Dropbox, Inc. | Storage constrained synchronization of shared content items |
US10248705B2 (en) | 2015-01-30 | 2019-04-02 | 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 |
CA2972706C (en) * | 2015-01-30 | 2018-01-02 | Dropbox, Inc. | Storage constrained synchronization of shared content items |
CN106570005A (zh) * | 2015-10-08 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 清理数据库的方法和装置 |
CN106855871B (zh) * | 2015-12-09 | 2020-04-07 | 阿里巴巴集团控股有限公司 | 一种数据迁移的方法和装置 |
US10083096B1 (en) * | 2015-12-15 | 2018-09-25 | Workday, Inc. | Managing data with restoring from purging |
US10719532B2 (en) | 2016-04-25 | 2020-07-21 | Dropbox, Inc. | Storage constrained synchronization engine |
US10049145B2 (en) | 2016-04-25 | 2018-08-14 | Dropbox, Inc. | Storage constrained synchronization engine |
US20180067972A1 (en) | 2016-09-07 | 2018-03-08 | International Business Machines Corporation | Automatically setting an auto-purge value to multiple tables within a database |
US10146684B2 (en) * | 2016-10-24 | 2018-12-04 | Datrium, Inc. | Distributed data parallel method for reclaiming space |
US10191936B2 (en) * | 2016-10-31 | 2019-01-29 | Oracle International Corporation | Two-tier storage protocol for committing changes in a storage system |
US10432724B2 (en) | 2016-11-18 | 2019-10-01 | International Business Machines Corporation | Serializing access to data objects in a logical entity group in a network storage |
US10769029B2 (en) * | 2016-11-18 | 2020-09-08 | International Business Machines Corporation | Accessing records of a backup file in a network storage |
US10402388B1 (en) * | 2017-01-31 | 2019-09-03 | Levyx, Inc. | Partition-based analytic systems and methods |
JP6835968B2 (ja) * | 2017-02-13 | 2021-02-24 | ヒタチ ヴァンタラ コーポレーションHitachi Vantara Corporation | スタビングによるコンテンツ記憶の最適化 |
US11341103B2 (en) * | 2017-08-04 | 2022-05-24 | International Business Machines Corporation | Replicating and migrating files to secondary storage sites |
CN109614237A (zh) * | 2018-12-10 | 2019-04-12 | 浪潮(北京)电子信息产业有限公司 | 一种资源释放方法、装置、设备及介质 |
CN110134645B (zh) * | 2019-04-15 | 2023-07-11 | 深圳市战音科技有限公司 | 文件***存储管理方法、读取方法、管理装置和读取装置 |
US11886605B2 (en) * | 2019-09-30 | 2024-01-30 | Red Hat, Inc. | Differentiated file permissions for container users |
US11593215B2 (en) * | 2020-02-05 | 2023-02-28 | EMC IP Holding Company LLC | Method and system for generating immutable backups with configurable retention spans |
KR20220079212A (ko) * | 2020-12-04 | 2022-06-13 | 삼성전자주식회사 | 가비지 컬렉션을 수행하기 위한 전자 장치 및 방법 |
CN112711562B (zh) * | 2020-12-31 | 2024-03-26 | 珠海豹趣科技有限公司 | 文件的迁移方法、装置、电子设备和存储介质 |
CN114328134B (zh) * | 2022-03-16 | 2022-05-31 | 深圳超盈智能科技有限公司 | 计算机内存动态测试*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5857203A (en) * | 1996-07-29 | 1999-01-05 | International Business Machines Corporation | Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system |
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
US6108759A (en) * | 1995-02-23 | 2000-08-22 | Powerquest Corporation | Manipulation of partitions holding advanced file systems |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US537698A (en) * | 1895-04-16 | Jules michaud | ||
EP0278314B1 (en) | 1987-02-13 | 1994-08-10 | International Business Machines Corporation | Single system image |
US5318603A (en) * | 1988-08-05 | 1994-06-07 | Jason, Inc. | Abrasive filament honing tool and method of making and using same |
US5276867A (en) * | 1989-12-19 | 1994-01-04 | Epoch Systems, Inc. | Digital data storage system with improved data migration |
JPH05120092A (ja) | 1991-10-29 | 1993-05-18 | Ricoh Co Ltd | フアイル装置のフアイル削除制御方法 |
US5367698A (en) * | 1991-10-31 | 1994-11-22 | Epoch Systems, Inc. | Network file migration system |
DE69434311D1 (de) * | 1993-02-01 | 2005-04-28 | Sun Microsystems Inc | Archivierungsdateiensystem für datenanbieter in einer verteilten netzwerkumgebung |
US5991753A (en) * | 1993-06-16 | 1999-11-23 | Lachman Technology, Inc. | Method and system for computer file management, including file migration, special handling, and associating extended attributes with files |
US5566328A (en) * | 1995-01-23 | 1996-10-15 | Tandem Computers Incorporated | Reconstructing directory pathnames from file handles in a computer system |
US6182121B1 (en) * | 1995-02-03 | 2001-01-30 | Enfish, Inc. | Method and apparatus for a physical storage architecture having an improved information storage and retrieval system for a shared file environment |
US5564037A (en) * | 1995-03-29 | 1996-10-08 | Cheyenne Software International Sales Corp. | Real time data migration system and method employing sparse files |
US5813009A (en) * | 1995-07-28 | 1998-09-22 | Univirtual Corp. | Computer based records management system method |
JPH0944381A (ja) | 1995-07-31 | 1997-02-14 | Toshiba Corp | データ格納方法およびデータ格納装置 |
US5680640A (en) * | 1995-09-01 | 1997-10-21 | Emc Corporation | System for migrating data by selecting a first or second transfer means based on the status of a data element map initialized to a predetermined state |
US5742817A (en) * | 1995-12-08 | 1998-04-21 | Emc Corporation | Method and apparatus for file server addressing |
US5754844A (en) * | 1995-12-14 | 1998-05-19 | Sun Microsystems, Inc. | Method and system for accessing chunks of data using matching of an access tab and hashing code to generate a suggested storage location |
US6021405A (en) * | 1996-08-23 | 2000-02-01 | Tandem Computers, Inc. | System and method for optimizing database queries with improved performance enhancements |
US5987506A (en) * | 1996-11-22 | 1999-11-16 | Mangosoft Corporation | Remote access and geographically distributed computers in a globally addressable storage environment |
US6745224B1 (en) * | 1996-12-06 | 2004-06-01 | Microsoft Corporation | Object framework and services for periodically recurring operations |
US5822780A (en) * | 1996-12-31 | 1998-10-13 | Emc Corporation | Method and apparatus for hierarchical storage management for data base management systems |
EP0854423A1 (en) * | 1997-01-20 | 1998-07-22 | TELEFONAKTIEBOLAGET L M ERICSSON (publ) | Data partitioning and duplication in a distributed data processing system |
US6128627A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | Consistent data storage in an object cache |
US20030037019A1 (en) | 1998-04-27 | 2003-02-20 | Kazue Nakamura | Data storage and retrieval apparatus and method of the same |
US6493725B1 (en) | 1998-05-18 | 2002-12-10 | Sharp Kabushiki Kaisha | Database managing system |
US6393540B1 (en) * | 1998-06-30 | 2002-05-21 | Emc Corporation | Moving a logical object from a set of source locations to a set of destination locations using a single command |
US6317754B1 (en) * | 1998-07-03 | 2001-11-13 | Mitsubishi Electric Research Laboratories, Inc | System for user control of version /Synchronization in mobile computing |
US6269382B1 (en) * | 1998-08-31 | 2001-07-31 | Microsoft Corporation | Systems and methods for migration and recall of data from local and remote storage |
JP2000207370A (ja) | 1999-01-20 | 2000-07-28 | Matsushita Electric Ind Co Ltd | 分散ファイル管理装置及び分散ファイル管理システム |
US6535911B1 (en) * | 1999-08-06 | 2003-03-18 | International Business Machines Corporation | Viewing an information set originated from a distribution media and updating using a remote server |
JP2001109767A (ja) | 1999-10-08 | 2001-04-20 | Nippon Telegr & Teleph Corp <Ntt> | 階層的データベース管理方法、装置、および階層的データベース管理プログラムを記録した記録媒体 |
US6351776B1 (en) * | 1999-11-04 | 2002-02-26 | Xdrive, Inc. | Shared internet storage resource, user interface system, and method |
DE69933142T2 (de) * | 1999-11-30 | 2007-08-30 | Kabushiki Kaisha Toshiba | Chipkarte und verfahren zur verwaltung eines flüchtigen speichers auf derselben |
GB0002019D0 (en) * | 2000-01-29 | 2000-03-22 | Ibm | Data migration tool |
JP2001229062A (ja) | 2000-02-15 | 2001-08-24 | Hitachi Ltd | 分散ファイル管理方法 |
US7266555B1 (en) * | 2000-03-03 | 2007-09-04 | Intel Corporation | Methods and apparatus for accessing remote storage through use of a local device |
US6938039B1 (en) * | 2000-06-30 | 2005-08-30 | Emc Corporation | Concurrent file across at a target file server during migration of file systems between file servers using a network file system access protocol |
US6981005B1 (en) * | 2000-08-24 | 2005-12-27 | Microsoft Corporation | Partial migration of an object to another storage location in a computer system |
US6782389B1 (en) * | 2000-09-12 | 2004-08-24 | Ibrix, Inc. | Distributing files across multiple, permissibly heterogeneous, storage devices |
US7266556B1 (en) * | 2000-12-29 | 2007-09-04 | Intel Corporation | Failover architecture for a distributed storage system |
US6950833B2 (en) * | 2001-06-05 | 2005-09-27 | Silicon Graphics, Inc. | Clustered filesystem |
US6877016B1 (en) * | 2001-09-13 | 2005-04-05 | Unisys Corporation | Method of capturing a physically consistent mirrored snapshot of an online database |
US6775673B2 (en) * | 2001-12-19 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Logical volume-level migration in a partition-based distributed file system |
US6772161B2 (en) * | 2001-12-19 | 2004-08-03 | Hewlett-Packard Development Company, L.P. | Object-level migration in a partition-based distributed file system |
US6775672B2 (en) * | 2001-12-19 | 2004-08-10 | Hewlett-Packard Development Company, L.P. | Updating references to a migrated object in a partition-based distributed file system |
US6959310B2 (en) * | 2002-02-15 | 2005-10-25 | International Business Machines Corporation | Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system |
-
2002
- 2002-09-20 EP EP02786369A patent/EP1433086A4/en not_active Withdrawn
- 2002-09-20 CN CNB028184246A patent/CN1307580C/zh not_active Expired - Lifetime
- 2002-09-20 KR KR10-2004-7004480A patent/KR20040053142A/ko not_active Application Discontinuation
- 2002-09-20 US US10/468,181 patent/US8442957B2/en active Active
- 2002-09-20 WO PCT/US2002/031928 patent/WO2003027909A1/en active Application Filing
- 2002-09-20 CA CA002461025A patent/CA2461025A1/en not_active Abandoned
- 2002-09-20 JP JP2003531373A patent/JP2005512171A/ja active Pending
- 2002-09-26 KR KR1020047004500A patent/KR20050030883A/ko not_active Application Discontinuation
- 2002-09-26 AT AT02795496T patent/ATE555445T1/de active
- 2002-09-26 CA CA002458281A patent/CA2458281A1/en not_active Abandoned
- 2002-09-26 EP EP02766391A patent/EP1430413A4/en not_active Ceased
- 2002-09-26 EP EP02795496A patent/EP1430400B1/en not_active Expired - Lifetime
- 2002-09-26 CN CN028188446A patent/CN1559041B/zh not_active Expired - Lifetime
- 2002-09-26 WO PCT/US2002/030841 patent/WO2003027882A1/en active Application Filing
- 2002-09-26 CA CA002458672A patent/CA2458672A1/en not_active Abandoned
- 2002-09-26 JP JP2003531349A patent/JP2005510780A/ja active Pending
- 2002-09-26 WO PCT/US2002/030946 patent/WO2003032171A2/en active Application Filing
- 2002-09-26 US US10/468,185 patent/US8484172B2/en active Active
- 2002-09-26 JP JP2003535069A patent/JP2005505829A/ja active Pending
- 2002-09-26 KR KR1020047004501A patent/KR100962055B1/ko active IP Right Grant
- 2002-09-26 CN CNB028188489A patent/CN1311358C/zh not_active Expired - Lifetime
- 2002-09-26 US US10/468,184 patent/US7500246B2/en not_active Expired - Lifetime
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108759A (en) * | 1995-02-23 | 2000-08-22 | Powerquest Corporation | Manipulation of partitions holding advanced file systems |
US5857203A (en) * | 1996-07-29 | 1999-01-05 | International Business Machines Corporation | Method and apparatus for dividing, mapping and storing large digital objects in a client/server library system |
US6088694A (en) * | 1998-03-31 | 2000-07-11 | International Business Machines Corporation | Continuous availability and efficient backup for externally referenced objects |
Also Published As
Publication number | Publication date |
---|---|
CA2458281A1 (en) | 2003-04-03 |
KR20040053142A (ko) | 2004-06-23 |
US20040143563A1 (en) | 2004-07-22 |
ATE555445T1 (de) | 2012-05-15 |
JP2005512171A (ja) | 2005-04-28 |
CA2461025A1 (en) | 2003-04-03 |
KR100962055B1 (ko) | 2010-06-08 |
CA2458672A1 (en) | 2003-04-17 |
KR20040084889A (ko) | 2004-10-06 |
EP1430400B1 (en) | 2012-04-25 |
US8442957B2 (en) | 2013-05-14 |
JP2005505829A (ja) | 2005-02-24 |
EP1430400A2 (en) | 2004-06-23 |
EP1430413A4 (en) | 2006-08-16 |
EP1430400A4 (en) | 2006-06-14 |
CN1556961A (zh) | 2004-12-22 |
WO2003032171A2 (en) | 2003-04-17 |
US20040133540A1 (en) | 2004-07-08 |
CN1311358C (zh) | 2007-04-18 |
WO2003027909A1 (en) | 2003-04-03 |
EP1430413A1 (en) | 2004-06-23 |
CN1559035A (zh) | 2004-12-29 |
US8484172B2 (en) | 2013-07-09 |
EP1433086A1 (en) | 2004-06-30 |
WO2003032171A3 (en) | 2003-08-14 |
US20040133608A1 (en) | 2004-07-08 |
CN1559041A (zh) | 2004-12-29 |
WO2003027882A1 (en) | 2003-04-03 |
JP2005510780A (ja) | 2005-04-21 |
US7500246B2 (en) | 2009-03-03 |
CN1559041B (zh) | 2011-11-30 |
EP1433086A4 (en) | 2006-07-26 |
KR20050030883A (ko) | 2005-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1307580C (zh) | 大文件的有效管理 | |
US7386552B2 (en) | Methods of migrating data between storage apparatuses | |
US7363540B2 (en) | Transaction-safe FAT file system improvements | |
RU2182360C2 (ru) | Способ обращения к данным, хранимым в компьютерной системе, способ архивирования данных и компьютерная система для осуществления способов | |
CN1746893B (zh) | 事务文件*** | |
CN101743546B (zh) | 用于提供快照的文件***的分层存储管理 | |
WO2013035295A1 (en) | Storage system | |
US8640136B2 (en) | Sharing objects between computer systems | |
AU2002330129A1 (en) | Sharing objects between computer systems | |
AU2002360252A1 (en) | Efficient search for migration and purge candidates | |
AU2002349890A1 (en) | Efficient management of large files |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20070328 |
|
CX01 | Expiry of patent term |