IP Library › Granted Patent US 9,069,468
Granted Patent B2
US 9,069,468 · App. 13/229,734 · Granted Jun 30, 2015

Pooled partition layout and representation

Inventors: Karan Mehra (Sammamish, WA); Emanuel Paleologu (Kirkland, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F3/0605G06F9/5061G06F3/0644G06F3/0689
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 9,069,468
App. No.
13/229,734
Granted
Jun 30, 2015
Kind
B2
Abstract

A set of storage devices may interoperate to share a pool of storage space, such as in a Redundant Array of Inexpensive Disks (RAID) scheme. However, the details of the representation of the pool and the allocation of capacity to the pool may enable advantages and/or impose limitations on the storage set. Presented herein are techniques for generating a representing a pooled partition on one or more storage devices featuring a pool configuration representing the pool as a set of spaces manifested by the pool; a set of storage devices sharing the pool; and a set of extents that map physical areas of the storage devices to logical areas of the spaces. The flexibility of these pooling techniques may enable such features as flexible capacity allocation, delayed binding, thin provisioning, and the participation of a storage device in two or more distinct pools shared with different sets of storage devices.

Claims (63)

1. A method of organizing a storage set comprising at least two storage devices accessible on a computer having a processor, the method comprising:

executing on the processor instructions configured to:

within a storage region of at least two pooled storage devices, generate a pooled partition comprising a pool configuration stored within the pooled partition and identifying:

the pooled storage devices storing the pooled partition, and

at least one space providing logical storage capacity and represented within the pooled partition;

present the logical storage capacity of the at least one space of the pooled partition, where at least one space is not initially associated with physical storage capacity of the at least two pooled storage devices; and

responsive to receiving a request to reserve an amount of physical storage capacity to provide logical storage capacity for a selected space of the pooled partition, wherein the physical storage capacity of the selected space is less than the amount specified in the request:

within the physical storage capacity of the at least two pooled storage devices that is not allocated for another space, allocate an extent providing physical storage capacity within the pooled partition; and

update the pool configuration stored on the at least two pooled storage devices to associate the extent with the space to expand the physical storage capacity of the extent to satisfy the amount of physical storage capacity specified in the request.

2. The method of claim 1 , a first storage device comprising a pooled partition spanning at least two partitions on the first storage device.

3. The method of claim 1 , at least one space bound to:

at least two extents stored in the pooled partition on a first storage device; and

at least one extent stored in the pooled partition on a second storage device.

4. The method of claim 1 , the storage region of a first storage device comprising:

a first pooled partition associated with a first pool shared with a second storage device and not a third storage device; and

a second pooled partition associated with a second pool shared with the third storage device and not the second storage device.

5. The method of claim 1 , the pool configuration mirrored on the storage devices storing the pooled partition.

6. The method of claim 1 :

respective storage devices storing a partition table specifying, for respective partitions within the storage region of the storage device, a partition type identifier of the partition; and

the pooled partition specified in the partition table as a pooled partition type identifier.

7. The method of claim 1 , the pool configuration configured to specify extents as a logical area of a space and a physical area of a storage device.

8. The method of claim 7 , the instructions configured to, upon receiving a request to allocate capacity to a space within the pool:

allocate an extent within the pooled partition;

bind the extent to the space; and

update the pool configuration to identify the extent and the space.

9. The method of claim 8 , binding the extent to the space comprising:

upon receiving request to create a space, creating the space; and

upon receiving a write request to write to a location in the space, allocating the extent within the pooled partition.

10. The method of claim 8 , binding the extent to the space comprising:

at a first time, allocating the extent to the space; and

upon receiving a write request to write to a location in the space, mapping the extent to a logical area within the space including the location of the write request.

11. The method of claim 8 :

the pooled partition identifying a provisioned size for respective spaces;

respective extents having an extent size; and

at least one space having a provisioned size greater than a sum of the extent sizes of the extents bound to the space and an available capacity of the storage devices.

12. The method of claim 1 :

the pool configuration specifying, for respective spaces, a space type identifier; and

at least one space comprising a journal and specified in the pool configuration as a journal space type identifier.

13. The method of claim 12 :

at least one journal allocated to journal updates to a parent space; and

the pooled partition identifying the parent space of at least one journal.

14. The method of claim 1 , the spaces comprising a maintenance space identifying, for respective spaces of the pooled partition, a status descriptor of the space.

15. The method of claim 14 :

the pool configuration specifying, for respective spaces, a space type identifier; and

the maintenance space specified in the pool configuration as a maintenance space type identifier.

16. The method of claim 1 :

at least one storage device of the storage set accessible by at least two computers; and

the instructions configured to identify, among the computers, a pool configuration owner having exclusive write access among the computers to the pool configuration.

17. The method of claim 16 , the instructions configured to, upon receiving a request to update the pool configuration:

determine whether the computer is the pool configuration owner; and

upon determining that the computer is not the pool configuration owner, forward the request to the pool configuration owner.

18. The method of claim 17 , the instructions configured to, upon detecting a failure of the pool configuration owner, identify a substitute pool configuration owner among the computers.

19. A system for organizing a storage set, the system comprising:

a partition manager configured to create a pooled partition having data that is distributed among at least two partitions of at least one storage device, the two partitions occupying less than all of the physical capacity of at least two storage devices, the pooled partition comprising:

extents that are located in the at least two partitions and including:

a first extent within a first subrange of the physical storage capacity of a first storage device of the storage set, and

a second extent within a second subrange of the physical storage capacity of a second storage device of the storage set, where the second storage device is different from the first storage device; and

configuration data stored within the pooled partition, the configuration data identifying the at least two storage devices comprising the pooled partition.

20. A storage device configured to provide physical storage capacity to logical storage capacity for at two spaces, the storage device comprising:

a partition comprising a range of physical storage capacity; and

a partition configuration stored within the partition and identifying:

a first extent comprising a first subrange of physical capacity within the partition that is allocated for logical storage capacity of a first space of the partition; and

a second extent comprising a second subrange within the partition that does not overlap the first subrange, and where the second extent providing physical storage capacity allocated for logical storage capacity of a second space that is different from the first space of the partition.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2011
From: MEHRA, KARAN; PALEOLOGU, EMANUEL
To: MICROSOFT CORPORATION
Reel/Frame 026890/0339 →
Continuity (1)
Related Publication 20130067191A1 · Mar 14, 2013