IP Library Granted Patent US 7,984,085
Granted Patent B1
US 7,984,085 · App. 10/973,229 · Granted Jul 19, 2011

Rate of change of data using on-the-fly accounting

Assignee: Network Appliance, Inc.
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 7,984,085
App. No.
10/973,229
Granted
Jul 19, 2011
Kind
B1
Abstract

A storage system, such as a file server, creates persistent consistency point images (PCPI) or “snapshots” that are point-in-time representations of the storage system. The storage system uses persistent consistency point images to backup or mirror data. Using data already found in the data block maps associated with these PCPI, the rate of change of data between persistent consistency point images can be determined.

Claims (36)

1. A method comprising:

creating, by a file server, a first and a second snapshot of a storage system;

creating, by the file server, a first block map associated with the first snapshot, the first block map including a first number blocks of which the first snapshot is an oldest owner, wherein the first snapshot is the oldest owner of a block if the block is used by the first snapshot and not used by any snapshot older than the first snapshot, wherein the file server calculates the first number of blocks at a time the first snapshot is created and wherein the storage server updates the first number of blocks if changes are made to the storage system that correspond to the first number of blocks;

creating, by the file server, a second block map associated with the second snapshot, the second block map including a second number of blocks of which the second snapshot is an oldest owner, wherein the second snapshot is the oldest owner of a block if the block is used by the second snapshot and not used by any snapshot older than the second snapshot, wherein the file server calculates the second number of blocks at a time the second snapshot is created and wherein the storage server updates the second number of blocks if changes are made to the storage system that correspond to the second number of blocks;

receiving, by the storage server, a snapshot inquiry command, the snapshot inquiry command received after the creation of the first and second snapshots and after the creation of the first and second block maps;

determining, by the storage server in response to the snapshot inquiry command, a rate of change of data between the first and the second snapshots, wherein the determining the rate of change of data between snapshots includes retrieving the first number of blocks and the second number of blocks from the first and second block maps, and dividing a sum of the first number to the second number by a difference between a time of creation for the first and second snapshots; and

reporting, by the storage server via a graphical user interface in response to the snapshot inquiry command, how long available storage in the storage system will last based upon the determined rate of change.

2. The method of claim 1 , wherein the corresponding changes include snapshot destruction and snapshot restoration.

3. A method comprising:

creating, by a file server, a first and a second snapshot of a storage system;

storing, by the file server, a first block map associated with the first snapshot, the first block map including a first number blocks of which the first snapshot is an youngest owner, wherein the first snapshot is the youngest owner of a block if the block is used by the first snapshot and not used by any snapshot older than the first snapshot, wherein the file server calculates the first number of blocks at a time the first snapshot is created and wherein the storage server updates the first number of blocks if changes are made to the storage system that correspond to the first number of blocks;

storing, by the file server, a second block map associated with the second snapshot, the second block map including a second number of blocks of which the second snapshot is an youngest owner, wherein the second snapshot is the youngest owner of a block if the block is used by the second snapshot and not used by any snapshot older than the second snapshot, wherein the file server calculates the second number of blocks at a time the second snapshot is created and wherein the storage server updates the second number of blocks if changes are made to the storage system that correspond to the second number of blocks;

receiving, by the storage server, a snapshot inquiry command, the snapshot inquiry command received after the creation of the first and second snapshots and after the creation of the first and second block maps;

determining, by the storage server in response to the snapshot inquiry command, a rate of change of data between the first and the second snapshots, wherein the determining the rate of change of data between snapshots includes retrieving the first number of blocks and the second number of blocks from the first and second block maps, dividing a sum of the first number to the second number by a difference between a time of creation for the first and second snapshots; and

reporting, by the storage server via a graphical user interface in response to the snapshot inquiry command, how long available storage in the storage system will last based upon the determined rate of change.

4. The method of claim 3 , wherein the corresponding changes include snapshot destruction and snapshot restoration.

5. A storage server comprising:

a memory;

a processor coupled to the memory through a bus, wherein the processor executes instructions that cause the processor to

create a first and a second snapshot of a storage system;

create a first block map associated with the first snapshot, the first block map including a first number blocks of which the first snapshot is an oldest owner, wherein the first snapshot is the oldest owner of a block if the block is used by the first snapshot and not used by any snapshot older than the first snapshot, wherein the file server calculates the first number of blocks at a time the first snapshot is created and wherein the storage server updates the first number of blocks if changes are made to the storage system that correspond to the first number of blocks;

create a second block map associated with the second snapshot, the second block map including a second number of blocks of which the second snapshot is an oldest owner, wherein the second snapshot is the oldest owner of a block if the block is used by the second snapshot and not used by any snapshot older than the second snapshot, wherein the file server calculates the second number of blocks at a time the second snapshot is created and wherein the storage server updates the second number of blocks if changes are made to the storage system that correspond to the second number of blocks;

receive a snapshot inquiry command, the snapshot inquiry command received after the creation of the first and second snapshots and after the creation of the first and second block maps;

determine, in response to the snapshot inquiry command, a rate of change of data between the first and the second snapshots, wherein the determining the rate of change of data between snapshots includes retrieving the first number of blocks and the second number of blocks from the first and second block maps, and dividing a sum of the first number of blocks and the second number of blocks by a difference between a time of creation for the first and second snapshots; and

report, via a graphical user interface in response to the snapshot inquiry command, how long available storage in the storage system will last based upon the determined rate of change.

6. The storage server of claim 5 , wherein the corresponding changes include snapshot destruction and snapshot restoration.

7. A storage server comprising:

a memory;

a processor coupled to the memory through a bus, wherein the processor executes instructions that cause the processor to

create a first and a second snapshot of a storage system;

store a first block map associated with the first snapshot, the first block map including a first number blocks of which the first snapshot is an youngest owner, wherein the first snapshot is the youngest owner of a block if the block is used by the first snapshot and not used by any snapshot older than the first snapshot, wherein the file server calculates the first number of blocks at a time the first snapshot is created and wherein the storage server updates the first number of blocks if changes are made to the storage system that correspond to the first number of blocks;

store a second block map associated with the second snapshot, the second block map including a second number of blocks of which the second snapshot is an youngest owner, wherein the second snapshot is the youngest owner of a block if the block is used by the second snapshot and not used by any snapshot older than the second snapshot, wherein the file server calculates the second number of blocks at a time the second snapshot is created and wherein the storage server updates the second number of blocks if changes are made to the storage system that correspond to the second number of blocks;

receive a snapshot inquiry command, the snapshot inquiry command received after the creation of the first and second snapshots and after the creation of the first and second block maps;

determine, in response to the snapshot inquiry command, a rate of change of data between the first and the second snapshots, wherein the determining the rate of change of data between snapshots includes retrieving the first number of blocks and the second number of blocks from the first and second block maps, and dividing a sum of the first number to the second number by a difference between a time of creation for the first and second snapshots; and

report, via a graphical user interface in response to the snapshot inquiry command, how long available storage in the storage system will last based upon the determined rate of change.

8. The storage server of claim 7 , wherein the corresponding changes include snapshot destruction and snapshot restoration.

Assignments (2)
CHANGE OF NAME Recorded Mar 7, 2025
From: NETWORK APPLIANCE, INC.
To: NETAPP, INC.
Reel/Frame 070448/0640 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 13, 2005
From: AGGARWAL, HIMANSHU; KAHN, ANDY C.; HAMILTON, ERIC C.
To: NETWORK APPLIANCE, INC.
Reel/Frame 016147/0291 →