IP Library Granted Patent US 8,874,864
Granted Patent B2
US 8,874,864 · App. 14/023,117 · Granted Oct 28, 2014

Maintaining snapshot and active file system metadata in an on disk structure of a file system

Inventors: Peter Corbett (Sunnyvale, CA); Michael Kazar (Sunnyvale, CA)
Assignee: NetApp, Inc.
G06F17/30088G06F11/1443G06F11/1446G06F13/00G06F12/00G06F11/1435
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,874,864
App. No.
14/023,117
Granted
Oct 28, 2014
Kind
B2
Abstract

An on-disk structure of a file system has the capability to maintain snapshot and file system metadata on a storage system. The on-disk structure arranges file system data sequentially on disk within regions, wherein each region comprises a predetermined amount of disk space represented by blocks. The snapshot and file system metadata is maintained within level 1 (L1) indirect blocks of the on-disk structure. Each L1 indirect block describes (i.e., represents) a corresponding region of the on-disk structure of the file system; in the case of an active region, e.g., an L1 indirect block represents an active file data portion of a large file. The L1 indirect block that references an active region also performs file block number-to-disk block number mapping for the region.

Claims (25)

1. A system, comprising:

a storage operating system executing on a storage system having a processor and configured to generate snapshots of file system data associated with at least one data container;

an on-disk structure of a file system of the storage system, the on-disk structure configured to apportion storage space of storage devices into a plurality of regions, wherein each region of the plurality of regions stores the file system data and snapshot data associated with a different sequential portion of the at least one data container, and wherein an initial block within each region maintains metadata describing the file system data and the snapshot data stored in the region, the region associated with the different sequential portion of the at least one data container; and

the storage operating system further configured to:

receive a write operation directed to a block within a first region of the plurality of regions wherein the write operation is associated with a new version of the block, and

determine whether the new version of the block should overwrite a previous version of the block in the first region or whether the new version of block should be written to a free block in the first region, where the new version of the block is written to the free block in the first region if the initial block indicates that the previous version of the block in the first region is utilized in a snapshot and is maintained and cannot be overwritten, and where the previous version of the block is overwritten with the new version of the block in the first region if the initial block indicates that the previous version of the block in the first region is not utilized in the snapshot.

2. The system of claim 1 wherein the first region includes an active region that stores the file system data.

3. The system of claim 1 wherein the initial block is a level one (L1) indirect block comprising a base aggregate block number (ABN) identifier.

4. The system of claim 1 wherein the storage operating system is further configured to enable a file block number (fbn) to disk block number (dbn) mapping by the indirect block for the first region.

5. A method, comprising:

apportioning storage space of a storage system having a processor and a memory into a plurality of regions, each region configured to store file system data and snapshot data associated with a different sequential portion of a data container;

configuring an indirect block, stored as an initial indirect block within each region, to maintain metadata that describes the file system data and the snapshot data associated with the different sequential portion of the data container stored in the region;

receiving a write operation directed to a block within a first region of the plurality of regions, wherein the write operation is associated with a new version of the block; and

determining whether the new version of the block should overwrite a previous version of the block in the first region or whether the new version of block should be written to a free block in the first region, where the new version of the block is written to the free block in the first region if the initial indirect block indicates that the previous version of the block in the first region is utilized in a snapshot and is maintained and cannot be overwritten and where the previous version of the block is overwritten with the new version of the block in the first region if the initial indirect block indicates that the previous version of the block in the first region is not utilized in the snapshot.

6. The method of claim 5 wherein the first region includes an active region that stores the file system data.

7. The method of claim 5 wherein the initial indirect block is a level 1 (L1) indirect block comprising a base aggregate block number (ABN) identifier.

8. The method of claim 5 wherein the storage operating system is further configured to enable a file block number (fbn) to disk block number (dbn) mapping by the initial indirect block for the first region.

9. A non-transitory computer readable storage medium containing executable program instructions executed by a processor, comprising:

program instructions that apportion storage space of a storage system into a plurality of regions, where each region stores data and snapshot data associated with a different sequential portion of a data container;

program instructions that maintain an initial block within the region that stores metadata that describes the data and the snapshot data associated with the different sequential portion of the data container;

program instructions that receive a write operation directed to a block in the region, wherein the write operation is associated with a new version of the block; and

program instructions that determine whether the new version of the block should overwrite a previous version of the block in the region or whether the new version of block should be written to a free block in the region, where the new version of the block is written to the free block in the region, based on the initial block indicating that the previous version of the block in the region is utilized in a snapshot and is maintained and not overwritten, in response to receiving the write operation directed to the block.

10. The non-transitory computer readable storage medium of claim 9 wherein the region includes an active region that stores the file system data.

11. The non-transitory computer readable storage medium of claim 9 wherein the initial block is a level 1 (L1) indirect block comprising a base aggregate block number (ABN) identifier.

12. The non-transitory computer readable storage medium of claim 9 wherein the storage operating system is further configured to enable a file block number (fbn) to disk block number (dbn) mapping by the initial block for the region.

Continuity (2)
Continuation 11693061 · Mar 29, 2007
Related Publication 20140013046A1 · Jan 9, 2014