IP Library Granted Patent US 7,721,044
Granted Patent B1
US 7,721,044 · App. 11/551,274 · Granted May 18, 2010

Expanding the storage capacity of a virtualized data storage system

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,721,044
App. No.
11/551,274
Granted
May 18, 2010
Kind
B1
Abstract

A system, method, apparatus, and computer-readable medium are provided for expanding the data storage capacity of a virtualized storage system, such as a storage cluster. According to one method, maps are generated and stored that define a stripe pattern for storing data on the storage nodes of a storage cluster. The stripe pattern for each map is defined such that when a storage node is added to a cluster and the data is re-striped according to the new map, only the data that will subsequently reside in the new storage node is moved to the new storage cluster during re-striping. The stripe pattern may be further defined so that during re-striping no movement of data occurs between two storage nodes that existed in the cluster prior to the addition of the new storage node. The stripe pattern may be further defined such that during re-striping an equal amount of data is moved from each of the storage nodes that existed in the cluster prior to the addition of the new storage node to the new storage node.

Claims (31)

1. A method for expanding the data storage capacity of a storage cluster having two or more storage nodes, the method comprising:

storing two or more maps, each map defining a stripe pattern for storing data on the storage nodes;

striping data across the storage nodes of the cluster according to a first map;

in response to the addition of a new storage node to the cluster, re-striping the data across the storage nodes according to a second map,

wherein the stripe pattern for each map is defined such that when the storage cluster is striped according to the first map and the new storage node is added to the cluster, data is re-striped between the storage nodes according to the second map such that only the data that will subsequently reside in the new storage node is moved to the new storage node during re-striping,

wherein the stripe pattern for each map is further defined such that when the new storage node is added to the cluster and the cluster is re-striped according to the second map, no movement of data occurs between two storage nodes that existed in the storage cluster prior to the addition of the new storage node,

wherein the stripe pattern for each map is further defined such that when the new storage node is added to the cluster and the cluster is re-striped according to the second map, an equal amount of data is moved to the new storage node from each of the storage nodes that existed in the storage cluster prior to the addition of the new storage node,

wherein data on the storage nodes is divided into storage zones, and wherein re-striping the data across the storage nodes according to a second map comprises

identifying one or more storage zones to be moved to the new storage node based on the first and second maps, and

individually moving each of the identified storage zones to the new storage node; and

locking each storage zone individually while each storage zone is moved to the new storage node.

2. The method of claim 1 , wherein each of the identified storage zones are moved to the new storage node in physical order.

3. The method of claim 1 , wherein each of the identified storage zones are moved to the new storage node in the order that the identified storage zones were most recently accessed.

4. The method of claim 1 , further comprising making each storage zone available for access on the new storage node immediately after each storage zone has been moved to the new storage node.

5. The method of claim 4 , further comprising freeing and making available for data storage the space previously occupied by a storage zone immediately after a storage zone has been moved to the new storage node.

6. The method of claim 4 , further comprising:

receiving a data write including data intended for one of the storage nodes that existed in the storage cluster prior to the addition of the new storage node;

storing the data for the data write on the new storage node; and

subsequently moving the stored data from the new storage node to its intended location on the storage node that existed in the storage cluster prior to the addition of the new storage node.

7. A computer storage medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to:

store two or more maps, each map defining a stripe pattern for storing data on two or more storage nodes, wherein the stripe pattern for each map is defined such that when a storage cluster is striped according to a first map and a new storage node is added to the cluster, data is re-striped between the storage nodes according to a second map such that only the data that will subsequently reside in the new storage node is moved to the new storage node during re-striping,

wherein the stripe pattern for each map is further defined such that when the new storage node is added to the cluster and the cluster is re-striped according to the second map, no movement of data occurs between two storage nodes that existed in the storage cluster prior to the addition of the new storage node,

wherein the stripe pattern for each map is further defined such that when the new storage node is added to the cluster and the cluster is re-striped according to the second map, no movement of data occurs between two storage nodes that existed in the storage cluster prior to the addition of the new storage node;

stripe data across the storage nodes of the cluster according to the first map;

in response to the addition of a new storage node to the cluster, to re-stripe the data across the storage nodes according to the second map,

wherein data on the storage nodes is divided into zones and wherein re-striping the data across the storage nodes according to the second map comprises

identifying one or more zones to be moved to the new storage node based on the first and second maps, and

individually moving each of the identified zones to the new storage node; and

lock each zone individually while each zone is moved to the new storage node.

8. The computer storage medium of claim 7 , wherein individually moving each of the identified zones to the new storage node comprises moving each of the identified zones to the new storage node in the order that the identified zones were most recently accessed.

9. The computer storage medium of claim 8 , comprising further computer-executable instructions which, when executed by the computer, cause the computer to make each zone available for access on the new storage node immediately after each zone has been moved to the new storage node.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS INTERNATIONAL, LLC,
To: AMZETTA TECHNOLOGIES, LLC,
Reel/Frame 053007/0151 →
CHANGE OF NAME Recorded Jun 22, 2020
From: AMERICAN MEGATRENDS, INC.
To: AMERICAN MEGATRENDS INTERNATIONAL, LLC
Reel/Frame 053007/0233 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2006
From: CHATTERJEE, PARESH; BALAKRISHNAN, NARAYANAN; NARAYANAN, AJIT; MUTHIRISAVENUGOPAL, VIJAYARANKAN
To: AMERICAN MEGATRENDS, INC.
Reel/Frame 018415/0533 →