← Back to Patent Explorer
US7174352B2 Expired / Lapsed US ⏱️ 0.0 years remaining

File system image transfer

Assignee: NetApp Inc
•
Filing: 2001-05-10
•
Granted: 2007-02-06
•
Expires: 2021-05-10
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The invention provides a method and system for duplicating all or part of a file system while maintaining consistent copies of the file system. The file server maintains a set of snapshots, each indicating a set of storage blocks making up a consistent copy of the file system as it was at a known time. Each snapshot can be used for a purpose other than maintaining the coherency of the file system, such as duplicating or transferring a backup copy of the file system to a destination storage medium. In a preferred embodiment, the snapshots can be manipulated to identify sets of storage blocks in the file system for incremental backup or copying, or to provide a file system backup that is both complete and relatively inexpensive. Also in a preferred embodiment, shadow snapshots can be maintained, with a shadow snapshot including a set of member storage blocks that formed a consistent file system other than an active file system, with a set of selected member storage blocks removed from the consistent file system.

Inventors

  • 👤 Steven R. Kleiman
  • 👤 David Hitz
  • 👤 Guy Harris
  • 👤 Sean W. O'Malley
  • 👤 Michael Malcolm
  • 👤 James Lau
  • 👤 Byron Rakitzis

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 20:49
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1446; G06F11/1448; G06F11/1451; G06F11/1402; G06F11/1415; G06F11/1435; G06F16/00; G06F16/10; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953; Y10S707/99954

Claims Analysis

Total Claims: 72
Claim 1
Independent Claim 147 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including data and a plurality of snapshots each including a plurality of bits associated with each one of said plurality of storage blocks, said controller using at least one of said plurality of bits in a first snapshot to identify whether said one storage block was part of said file system at a time earlier than a current consistent version of said file system, and said controller using at least a second one of said plurality of bits in a second snapshot to identify whether said one storage block was part of said file system at a second time earlier than a current consistent version of said file system.
Claim 2
Dependent Claim 147 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including data and a plurality of snapshots each including a plurality of bits associated with each one of said plurality of storage blocks, said controller using at least one of said plurality of bits in a first snapshot to identify whether said one storage block was part of said file system at a time earlier than a current consistent version of said file system, and said controller using at least a second one of said plurality of bits in a second snapshot to identify whether said one storage block was part of said file system at a second time earlier than a current consistent version of said file system.
Claim 3
Dependent Claim 33 words
A file system as in claim 1 , including an element disposed for selecting storage blocks in response to said one bit and said second one bit associated with said selected storage blocks.
Claim 4
Dependent Claim 21 words
A file system as in claim 2 , including an element disposed for copying said selected storage blocks to a destination.
Claim 5
Dependent Claim 39 words
A file system as in claim 3 , wherein said destination includes: a tape, a disk, a data structure in a second file system, a set of network messages, or a destination distributed over a plurality of file systems.
Claim 6
Dependent Claim 28 words
A file system as in claim 1 , including an element disposed for selecting storage blocks in response to said one bit associated with said selected storage blocks.
Claim 7
Dependent Claim 21 words
A file system as in claim 5 , including an element disposed for copying said selected storage blocks to a destination.
Claim 8
Dependent Claim 39 words
A file system as in claim 6 , wherein said destination includes: a tape, a disk, a data structure in a second file system, a set of network messages, or a destination distributed over a plurality of file systems.
Claim 9
Dependent Claim 79 words
A file system having a plurality of storage blocks, said file system including a snapshot including a plurality of bits associated with a set of member storage blocks selected from said plurality of storage blocks, said member storage blocks forming a consistent file system other than an active file system, said snapshot being disposed as an object in said file system, wherein said file system is responsive to at least one file system request with regard to said snapshot.
Claim 10
Dependent Claim 79 words
A file system having a plurality of storage blocks, said file system including a snapshot including a plurality of bits associated with a set of member storage blocks selected from said plurality of storage blocks, said member storage blocks forming a consistent file system other than an active file system, said snapshot being disposed as an object in said file system, wherein said file system is responsive to at least one file system request with regard to said snapshot.
Claim 11
Dependent Claim 64 words
A file system as in claim 8 , including a mark on allocate image of a set of member storage blocks selected from said plurality, said member storage blocks having been added to said snapshot; and a storage image defined based on said snapshot and said mark on allocate image, said storage image indicating a set of member storage blocks selected from said plurality.
Claim 12
Dependent Claim 30 words
A file system as in claim 9 , wherein said storage image is defined with regard to a logical sum operation on said snapshot and said mark on allocate image.
Claim 13
Dependent Claim 64 words
A file system as in claim 8 , including a mark on deallocate image of a set of member storage blocks selected from said plurality, said member storage blocks having been removed from said snapshot; and a storage image defined based on said snapshot and said mark on deallocate image, said storage image indicating a set of member storage blocks selected from said plurality.
Claim 14
Dependent Claim 80 words
A file system as in claim 8 , including a shadow snapshot of a set of member storage blocks selected from said plurality, said member storage blocks having formed a consistent file system other than an active file system, with a set of selected member storage blocks removed from said consistent file system; and a storage image defined based on said snapshot and said shadow snapshot, said storage image indicating a set of member storage blocks selected from said plurality.
Claim 15
Dependent Claim 22 words
A file system as in claim 8 , including an indicator of which ones of said member storage blocks have been copied.
Claim 16
Dependent Claim 57 words
A file system as in claim 8 , including a plurality of said snapshots; wherein said plurality of said snapshots are associated with an array of bits, said array having one set of bits for each storage block in said plurality of storage blocks, said set of bits having at least one bit for each said snapshot.
Claim 17
Dependent Claim 29 words
A file system as in claim 8 , wherein said file system can manipulate said snapshot without having to traverse a hierarchy of file system objects within said snapshot.
Claim 18
Dependent Claim 29 words
A file system as in claim 8 , wherein said snapshot includes a data structure disposed in a format allowing for a set management operation to be performed efficiently.
Claim 19
Dependent Claim 28 words
A file system as in claim 8 , wherein said snapshot includes an array of bits, said array having one bit for each storage block in said plurality.
Claim 20
Dependent Claim 112 words
A file system having a plurality of storage blocks, said file system including: a plurality of snapshots, each snapshot including a plurality of bits associated with a set of member storage blocks selected from said plurality of storage blocks, said member storage blocks forming a consistent file system other than an active file system, each said snapshot being disposed as an object in said file system; and a storage image determined based on said plurality of snapshots, said storage image defining another set of member storage blocks selected from said plurality of storage blocks; wherein said file system is responsive to at least one file system request with regard to said snapshots.
Claim 21
Dependent Claim 112 words
A file system having a plurality of storage blocks, said file system including: a plurality of snapshots, each snapshot including a plurality of bits associated with a set of member storage blocks selected from said plurality of storage blocks, said member storage blocks forming a consistent file system other than an active file system, each said snapshot being disposed as an object in said file system; and a storage image determined based on said plurality of snapshots, said storage image defining another set of member storage blocks selected from said plurality of storage blocks; wherein said file system is responsive to at least one file system request with regard to said snapshots.
Claim 22
Dependent Claim 25 words
A file system as in claim 18 , including an indicator of which ones of said storage blocks in said storage image have been copied.
Claim 23
Dependent Claim 48 words
A file system as in claim 18 , wherein said storage image is a result of a logical sum or difference performed on said set of member storage blocks for a first of said snapshots and said set of member storage blocks for a second of said snapshots.
Claim 24
Dependent Claim 48 words
A file system as in claim 8 , wherein said storage image is a result of a logical sum or difference performed on said set of member storage blocks for a first of said snapshots and said set of member storage blocks for a second said storage image.
Claim 25
Dependent Claim 32 words
A file system as in claim 8 , wherein said storage image is a result of a set management operation on said set of member storage blocks for any of said snapshots.
Claim 26
Dependent Claim 57 words
A file system as in claim 8 , wherein each of said snapshots includes a data structure disposed in a format allowing for a set management operation to be performed in O(n) time or less, where n is a number of storage blocks in said plurality, without reading any contents of said storage blocks in said plurality.
Claim 27
Dependent Claim 19 words
A file system as in claim 23 , wherein said set management operation is a logical sum or difference.
Claim 28
Dependent Claim 31 words
A file system as in claim 8 , wherein each of said snapshots includes a data structure identifying which storage blocks in said plurality are member storage blocks of that snapshot.
Claim 29
Dependent Claim 30 words
A file system as in claim 25 , wherein said data structure uses no more than 1/100th of an amount of storage required by said storage blocks in said plurality.
Claim 30
Dependent Claim 24 words
A file system as in claim 25 , wherein said data structure uses no more than four bytes per storage block in said plurality.
Claim 31
Independent Claim 102 words
A method of operating a file system, said method including: forming a first snapshot of a first consistent state of said file system at a selected time, said first snapshot including an indication of a set of storage blocks in said first consistent state; forming a second snapshot of a second consistent state of said file system, said second snapshot including an indication of a set of storage blocks in said second consistent state; and performing an operation on said first and second snapshots to form a storage image including an indication of at least some storage blocks in said file system.
Claim 32
Independent Claim 102 words
A method of operating a file system, said method including: forming a first snapshot of a first consistent state of said file system at a selected time, said first snapshot including an indication of a set of storage blocks in said first consistent state; forming a second snapshot of a second consistent state of said file system, said second snapshot including an indication of a set of storage blocks in said second consistent state; and performing an operation on said first and second snapshots to form a storage image including an indication of at least some storage blocks in said file system.
Claim 33
Dependent Claim 16 words
A method as in claim 28 , wherein said operation includes a logical sum or difference.
Claim 34
Dependent Claim 34 words
A method as in claim 28 , wherein said operation includes a logical sum or difference; and a purpose of said operation includes making a copy including or excluding a selected range of snapshots.
Claim 35
Dependent Claim 30 words
A method as in claim 28 , wherein said operation includes a logical sum or difference; and a purpose of said operation includes copying said storage image to a destination.
Claim 36
Dependent Claim 38 words
A method as in claim 30 , wherein said destination includes a tape, a disk, a data structure in a second file system, a set of network messages, or a destination distributed over a plurality of file systems.
Claim 37
Dependent Claim 107 words
Apparatus including a file system that stores and retrieves information, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including data and a plurality of snapshots of said file system, each representing an associated consistent state at an associated selected time, and each said snapshot including an indication of a set of storage blocks in said associated consistent state, said indication being recorded in at least one storage block in said associated consistent state, wherein said file system is responsive to at least one file system request with regard to said snapshots.
Claim 38
Dependent Claim 107 words
Apparatus including a file system that stores and retrieves information, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including data and a plurality of snapshots of said file system, each representing an associated consistent state at an associated selected time, and each said snapshot including an indication of a set of storage blocks in said associated consistent state, said indication being recorded in at least one storage block in said associated consistent state, wherein said file system is responsive to at least one file system request with regard to said snapshots.
Claim 39
Dependent Claim 34 words
Apparatus as in claim 33 , including a storage image defining at least some storage blocks in said file system, said storage image based on an operation on at least two of said snapshots.
Claim 40
Dependent Claim 98 words
In a file system having a plurality of storage blocks, a data structure including a first snapshot of a set of member storage blocks selected from said plurality, said member storage blocks forming a consistent file system other than an active file system; said first snapshot being represented as an object in said file system and having a set of storage blocks for recording said first snapshot; whereby copying said member storage blocks in said first snapshot has the property of preserving at least one snapshot recorded in said file system at a time of said first snapshot.
Claim 41
Dependent Claim 98 words
In a file system having a plurality of storage blocks, a data structure including a first snapshot of a set of member storage blocks selected from said plurality, said member storage blocks forming a consistent file system other than an active file system; said first snapshot being represented as an object in said file system and having a set of storage blocks for recording said first snapshot; whereby copying said member storage blocks in said first snapshot has the property of preserving at least one snapshot recorded in said file system at a time of said first snapshot.
Claim 42
Dependent Claim 93 words
A data structure as in claim 35 , including a second snapshot of a set of member storage blocks selected from said plurality, said member storage blocks forming a consistent file system other than an active file system; said second snapshot being represented as an object in said file system and having a set of storage blocks for recording said second snapshot; whereby copying said member storage blocks in said second snapshot has the property of preserving at least one snapshot recorded in said file system at a time of said second snapshot.
Claim 43
Dependent Claim 50 words
A data structure as in claim 35 , including an image stream including a set of storage blocks including both said first snapshot and said second snapshot; whereby copying said member storage blocks in said image stream has the property of preserving both said first snapshot and said second snapshot.
Claim 44
Dependent Claim 85 words
In a file system having a plurality of storage blocks, a data structure including a snapshot of a set of member storage blocks selected from said plurality, said member storage blocks forming a consistent file system other than an active file system; said snapshot being represented as an object in said file system and having a set of storage blocks for recording said snapshot; whereby a backup and restore operation on said file system has the property of preserving said snapshot within said file system.
Claim 45
Dependent Claim 85 words
In a file system having a plurality of storage blocks, a data structure including a snapshot of a set of member storage blocks selected from said plurality, said member storage blocks forming a consistent file system other than an active file system; said snapshot being represented as an object in said file system and having a set of storage blocks for recording said snapshot; whereby a backup and restore operation on said file system has the property of preserving said snapshot within said file system.
Claim 46
Dependent Claim 144 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including a data structure including a shadow snapshot of a set of member storage blocks selected from said plurality, said member storage blocks having formed a consistent file system other than an active file system, with a set of selected member storage blocks removed from said consistent file system; wherein said shadow snapshot is disposed as a single object in said file system, whereby said controller can manipulate said shadow snapshot without having to traverse a hierarchy of file system objects associated with said shadow snapshot, and wherein said file system is responsive to at least one file system request with regard to said shadow snapshot.
Claim 47
Dependent Claim 144 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including a data structure including a shadow snapshot of a set of member storage blocks selected from said plurality, said member storage blocks having formed a consistent file system other than an active file system, with a set of selected member storage blocks removed from said consistent file system; wherein said shadow snapshot is disposed as a single object in said file system, whereby said controller can manipulate said shadow snapshot without having to traverse a hierarchy of file system objects associated with said shadow snapshot, and wherein said file system is responsive to at least one file system request with regard to said shadow snapshot.
Claim 48
Dependent Claim 27 words
A file system as in claim 39 , wherein said shadow snapshot is disposed in a format allowing for a set management operation to be performed efficiently.
Claim 49
Dependent Claim 37 words
A file system as in claim 39 , wherein said shadow snapshot uses, in addition to said member storage blocks, no more than 1/100th of an amount of storage required by said storage blocks in said plurality.
Claim 50
Dependent Claim 31 words
A file system as in claim 39 , wherein said shadow snapshot uses, in addition to said member storage blocks, no more than one byte per storage block in said plurality.
Claim 51
Dependent Claim 22 words
A file system as in claim 39 , wherein said removed member storage blocks are responsive to completion of a processing operation.
Claim 52
Dependent Claim 17 words
A file system as in claim 43 , wherein said processing operation includes a file system operation.
Claim 53
Dependent Claim 24 words
A file system as in claim 43 , wherein said processing operation includes reuse of said selected member storage blocks by said file system.
Claim 54
Dependent Claim 53 words
A file system as in claim 39 , wherein said shadow snapshot is disposed in a format allowing for a set management operation to be performed in O(n) time or less, where n is a number of storage blocks in said plurality, without reading any contents of said storage blocks in said plurality.
Claim 55
Dependent Claim 19 words
A file system as in claim 46 , wherein said set management operation is a logical sum or difference.
Claim 56
Dependent Claim 137 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including a data structure that includes a mark on allocate image of a set of member storage blocks selected from said plurality, said member storage blocks having been added to a snapshot that originally formed a consistent file system; wherein said mark on allocate storage image is disposed as a single object in said file system, whereby said controller can manipulate said storage image without having to traverse a hierarchy of file system objects associated with said storage image, and wherein said file system is responsive to at least one file system request with regard to said storage image.
Claim 57
Dependent Claim 137 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including a data structure that includes a mark on allocate image of a set of member storage blocks selected from said plurality, said member storage blocks having been added to a snapshot that originally formed a consistent file system; wherein said mark on allocate storage image is disposed as a single object in said file system, whereby said controller can manipulate said storage image without having to traverse a hierarchy of file system objects associated with said storage image, and wherein said file system is responsive to at least one file system request with regard to said storage image.
Claim 58
Dependent Claim 29 words
A file system as in claim 48 , wherein said mark on allocate image is disposed in a format allowing for a set management operation to be performed efficiently.
Claim 59
Dependent Claim 33 words
A file system as in claim 48 , wherein said mark on allocate storage image uses no more than 1/100th of an amount of storage required by said storage blocks in said plurality.
Claim 60
Dependent Claim 26 words
A file system as in claim 48 , wherein said mark on allocate image uses no more than four bytes per storage block in said plurality.
Claim 61
Dependent Claim 22 words
A file system as in claim 48 , said member storage blocks having been selected responsive to completion of a processing operation.
Claim 62
Dependent Claim 17 words
A file system as in claim 52 , wherein said processing operation includes a file system operation.
Claim 63
Dependent Claim 24 words
A file system as in claim 52 , wherein said processing operation includes reuse of said selected member storage blocks by said file system.
Claim 64
Dependent Claim 55 words
A file system as in claim 48 , wherein said mark on allocate image is disposed in a format allowing for a set management operation to be performed in O(n) time or less, where n is a number of storage blocks in said plurality, without reading any contents of said storage blocks in said plurality.
Claim 65
Dependent Claim 19 words
A file system as in claim 55 , wherein said set management operation is a logical sum or difference.
Claim 66
Dependent Claim 137 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including a data structure that includes a mark on deallocate image of a set of member storage blocks selected from said plurality, said member storage blocks having been removed from a snapshot that originally formed a consistent file system; wherein said mark on deallocate storage image is disposed as a single object in said file system, whereby said controller can manipulate said storage image without having to traverse a hierarchy of file system objects associated with said storage image, and wherein said file system is responsive to at least one file system request with regard to said storage image.
Claim 67
Dependent Claim 137 words
A file system that stores and retrieves information in a plurality of storage blocks, said file system including: mass storage having said plurality of storage blocks; and a controller that controls storage and retrieval of information, said information including a data structure that includes a mark on deallocate image of a set of member storage blocks selected from said plurality, said member storage blocks having been removed from a snapshot that originally formed a consistent file system; wherein said mark on deallocate storage image is disposed as a single object in said file system, whereby said controller can manipulate said storage image without having to traverse a hierarchy of file system objects associated with said storage image, and wherein said file system is responsive to at least one file system request with regard to said storage image.
Claim 68
Dependent Claim 26 words
A file system as in claim 57 , wherein said mark on deallocate image uses no more than four bytes per storage block in said plurality.
Claim 69
Dependent Claim 29 words
A file system as in claim 57 , wherein said mark on deallocate image is disposed in a format allowing for a set management operation to be performed efficiently.
Claim 70
Dependent Claim 33 words
A file system as in claim 57 , wherein said mark on deallocate storage image uses no more than 1/100th of an amount of storage required by said storage blocks in said plurality.
Claim 71
Dependent Claim 55 words
A file system as in claim 57 , wherein said mark on deallocate image is disposed in a format allowing for a set management operation to be performed in O(n) time or less, where n is a number of storage blocks in said plurality, without reading any contents of said storage blocks in said plurality.
Claim 72
Dependent Claim 19 words
A file system as in claim 61 , wherein said set management operation is a logical sum or difference.

References Cited (Backward Citations)

US3813529A Cited
US3893024A Cited
US4075691A Cited
US4075704A Cited
US4156907A Cited
US4399503A Cited
US4377843A Cited
US4333144A Cited
US4351023A Cited
US4488231A Cited
US4620292A Cited
US4459664A Cited
US4494188A Cited
US4456957A Cited
US4685125A Cited
US4550368A Cited
US4527232A Cited
US4589067A Cited
US4710868A Cited
US5008786A Cited
US4814971A Cited
US4719569A Cited
US4825354A Cited
US4761737A Cited
US4742450A Cited
US4742447A Cited
US5043871A Cited
US4761785A Cited
US4761785B1 Cited
US4878167A Cited
US4803621A Cited
US4845609A Cited
US4780821A Cited
EP0308506A1 Cited
US4819159A Cited
US4783730A Cited
US4766534A Cited
US4887204A Cited
US4897781A Cited
US5001628A Cited
US4827411A Cited
US4965772A Cited
EP0308056A2 Cited
EP0306244A2 Cited
WO1989003086A1 Cited
US5319780A Cited
EP0321723B1 Cited
US4875159A Cited
US5251308A Cited
US5297265A Cited
US5049873A Cited
US4914583A Cited
US5107500A Cited
JPH01273395A Cited
US5043876A Cited
US4937763A Cited
EP0359384A3 Cited
EP0359384B1 Cited
EP0359384A2 Cited
US5001712A Cited
US5067099A Cited
US4984272A Cited
US5202983A Cited
US4969118A Cited
US5222217A Cited
US5313646A Cited
US5113442A Cited
US5144659A Cited
US5018144A Cited
US5182805A Cited
US5218696A Cited
US5454099A Cited
EP0410630A3 Cited
US5163148A Cited
US5261051A Cited
US5163131A Cited
US5355453A Cited
US5276867A Cited
US5218695A Cited
WO1991013475A1 Cited
US5357612A Cited
US5195100A Cited
WO1991013404A1 Cited
US5088081A Cited
US5134619A Cited
EP0453193A2 Cited
EP0453193A3 Cited
EP0462917B1 Cited
EP0462917A2 Cited
EP0462917A3 Cited
US5604868A Cited
WO1992000834A1 Cited
EP0537198B1 Cited
US5623666A Cited
US5261044A Cited
EP0477039A3 Cited
US5208813A Cited
US5274807A Cited
US5255270A Cited
US5519844A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2010-02-05 2010-08-07 2011-02-06 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2014-02-05 2014-08-07 2015-02-06 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2018-02-05 2018-08-07 2019-02-06 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag