IP Library Granted Patent US 9,344,235
Granted Patent B1
US 9,344,235 · App. 10/165,746 · Granted May 17, 2016

Network managed volumes

Inventors: Roni J. Putra (Pompano Beach, FL); Nicholas Connolly (Purley, GB); Ye (Tom) Chen (Boca Raton, FL); David A. Linde (Plantation, FL); Ziya A. Aral (Pompano Beach, FL); Mohamed Ghanem (Coconut Creek, FL); Mark Friedman (Naples, FL)
Assignee: DataCore Software Corporation
H04L5/0032
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,344,235
App. No.
10/165,746
Granted
May 17, 2016
Kind
B1
Abstract

Disclosed are network managed volumes that enable simplified and more efficient use of information technology assets by allocating physical disk drives as needed. A pool of storage can be defined and populated with physical disks that are accessible in a storage area network. Virtual volumes are created from the storage pool, with each virtual volume being separately allocable to a host device (e.g., client, application server, etc.). Thus, host devices that have been allocated these virtual volumes perceive ownership of the entire volume, without requiring a present allocation of physical storage space having the same characteristics, but with seamless introduction of physical resources as needed.

Claims (41)

1. A method for managing virtual volumes, the method comprising:

defining a storage pool to which one or more physical storage devices is assigned by selection from a plurality of available physical storage devices, the assigned physical storage devices having a total logical size;

defining virtual volumes that are associated to the storage pool;

presenting the virtual volumes to one or more client devices, wherein the virtual volumes have respective logical sizes, and the sum of the logical sizes for the virtual volumes intentionally exceeds the total logical size of the assigned physical storage devices, and wherein the virtual volumes are presented to the client devices without requiring the assigned physical storage devices to have been previously presented to any of the client devices;

defining the storage pool to include a plurality of available chunks each having a chunk size, the chunk size differing from and being larger than a block size used for basic write requests received from the client devices for the virtual volumes, the defining of the storage pool to include the plurality of available chunks occurring separately from the presenting of the virtual volumes to the client devices; and

allocating physical chunks of the chunk size from the plurality of available chunks that are included in the storage pool to dynamically allocate physical resources to the virtual volumes on demand;

wherein managing the virtual volumes is performed independently of the client devices.

2. An apparatus for managing virtual volumes, the apparatus comprising:

a processor; and

a memory, the memory storing program code executable to perform operations comprising

defining a storage pool to which one or more physical storage devices is assigned by selection from a plurality of available physical storage devices, the assigned physical storage devices having a total logical size;

defining virtual volumes that are associated to the storage pool;

presenting the virtual volumes to one or more client devices, wherein the virtual volumes have respective logical sizes, and the sum of the logical sizes for the virtual volumes intentionally exceeds the total logical size of the assigned physical storage devices, and wherein the virtual volumes are presented to the client devices without requiring the assigned physical storage devices to have been previously presented to any of the client devices;

defining the storage pool to include a plurality of available chunks each having a chunk size, the chunk size differing from and being larger than a block size used for basic write requests received from the client devices for the virtual volumes, the defining of the storage pool to include the plurality of available chunks occurring separately from the presenting of the virtual volumes to the client devices; and

allocating physical chunks of the chunk size from the plurality of available chunks that are includes in the storage pool to dynamically allocate physical resources to the virtual volumes on demand, and

wherein managing the virtual volumes is performed independently of the client devices.

3. A computer program product, for managing virtual volumes, the computer program product comprising a non-transitory computer readable medium having program code stored thereon, which when executed performs operations comprising:

defining a storage pool to which one or more physical storage devices is assigned by selection from a plurality of available physical storage devices, the assigned physical storage devices having a total logical size;

defining virtual volumes that are associated to the storage pool;

presenting the virtual volumes to one or more client devices, wherein the virtual volumes have respective logical sizes, and the sum of the logical sizes for the virtual volumes intentionally exceeds the total logical size of the assigned physical storage devices, and wherein the virtual volumes are presented to the client devices without requiring the assigned physical storage devices to have been previously presented to any of the client devices;

defining the storage pool to include a plurality of available chunks each having a chunk size, the chunk size differing from and being larger than a block size used for basic write requests received from the client devices for the virtual volumes, the defining of the storage pool to include the plurality of available chunks occurring separately from the presenting of the virtual volumes to the client devices; and

allocating physical chunks of the chunk size from the plurality of available chunks that are included in the storage pool to dynamically allocate physical resources to the virtual volumes on demand, and

wherein managing the virtual volumes is performed independently of the client devices.

4. The method of claim 2 , wherein additional physical storage devices are assigned to the storage pool after the virtual volumes associated with the storage pool have been defined and presented to the client devices, and wherein additional allocation of physical chunks to the virtual volumes is performed independently of the client devices.

5. The apparatus of claim 3 , wherein additional physical storage devices are assigned to the storage pool after the virtual volumes associated with the storage pool have been defined and presented to the client devices, and wherein additional allocation of physical chunks to the virtual volumes is performed independently of the client devices.

6. The computer program product of claim 4 , wherein additional physical storage devices are assigned to the storage pool after the virtual volumes associated with the storage pool have been defined and presented to the client devices, and wherein additional allocation of physical chunks to the virtual volumes is performed independently of the client devices.

7. The method of claim 2 , wherein managing the virtual volumes is also performed independently of the physical storage devices.

8. The apparatus of claim 3 , wherein managing the virtual volumes is also performed independently of the physical storage devices.

9. The computer program product of claim 4 , wherein managing the virtual volumes is also performed independently of the physical storage devices.

10. The method of claim 2 , wherein the chunk size is at least an order of magnitude larger than the block size.

11. The method of claim 2 , wherein the chunk size is at least 128 Mb.

12. The apparatus of claim 3 , wherein the chunk size is at least an order of magnitude larger than the block size.

13. The apparatus of claim 3 , wherein the chunk size is at least 128 Mb.

14. The computer program product of claim 4 , wherein the chunk size is at least an order of magnitude larger than the block size.

15. The computer program product of claim 4 , wherein the chunk size is at least 128 Mb.

16. The method of claim 2 , wherein the plurality of available chunks are represented in a sequence and dynamically allocating physical resources to the virtual volumes comprises allocating a non-contiguous series of chunks in the sequence.

17. The method of claim 16 , wherein descriptors respectively corresponding to individual ones of the virtual volumes define the non-contiguous series of chunks.

18. The apparatus of claim 3 , wherein the plurality of available chunks are represented in a sequence and dynamically allocating physical resources to the virtual volumes comprises allocating a non-contiguous series of chunks in the sequence.

19. The apparatus of claim 18 , wherein descriptors respectively corresponding to individual ones of the virtual volumes define the non-contiguous series of chunks.

20. The computer program product of claim 4 , wherein the plurality of available chunks are represented in a sequence and dynamically allocating physical resources to the virtual volumes comprises allocating a non-contiguous series of chunks in the sequence.

21. The computer program product of claim 20 , wherein descriptors respectively corresponding to individual ones of the virtual volumes define the non-contiguous series of chunks.

Assignments (9)
SECURITY INTEREST Recorded May 29, 2024
From: DATACORE SOFTWARE CORPORATION
To: VISTARA TECHNOLOGY GROWTH FUND V MASTER, LP
Reel/Frame 067563/0884 →
SECURITY INTEREST Recorded Oct 28, 2021
From: DATACORE SOFTWARE CORPORATION
To: STIFEL BANK
Reel/Frame 057969/0086 →
SECURITY INTEREST Recorded Dec 14, 2017
From: DATACORE SOFTWARE CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 044400/0417 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYANCE TYPE FROM "RELEASE BY SECURED PARTY" TO "SECURITY AGREEMENT". PREVIOUSLY RECORDED ON REEL 018313 FRAME 0295. ASSIGNOR(S) HEREBY CONFIRMS THE INTELLECTUAL PROPERTY ASSIGNMENT AGREEMENT.. Recorded Feb 15, 2007
From: DATACORE SOFTWARE CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 018898/0241 →
RELEASE OF SECURITY INTEREST Recorded Sep 27, 2006
From: BRIDGE BANK, N.A.
To: DATACORE SOFTWARE CORPORATION
Reel/Frame 018313/0282 →
RELEASE OF SECURITY INTEREST Recorded Sep 27, 2006
From: DATACORE SOFTWARE CORPORATION
To: SILICON VALLEY BANK
Reel/Frame 018313/0295 →
SECURITY AGREEMENT Recorded Sep 26, 2006
From: DATACORE SOFTWARE CORPORATION
To: PARTNERS FOR GROWTH II, L.P.
Reel/Frame 018303/0104 →
SECURITY AGREEMENT Recorded Nov 4, 2005
From: DATACORE SOFTWARE CORPORATION
To: BRIDGE BANK, NATIONAL ASSOCIATION
Reel/Frame 016722/0595 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2002
From: PUTRA, RONI J.; CONNOLLY, NICHOLAS; CHEN, YE; LINDE, DAVID A.; ARAL, ZIYA; GHANEM, MOHAMED; FRIEDMAN, MARK
To: DATACORE SOFTWARE CORPORATION
Reel/Frame 013338/0653 →