IP Library Granted Patent US 8,145,841
Granted Patent B2
US 8,145,841 · App. 12/479,377 · Granted Mar 27, 2012

Method and system for initializing storage in a 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 8,145,841
App. No.
12/479,377
Granted
Mar 27, 2012
Kind
B2
Abstract

Embodiments of systems and methods for a storage system are disclosed. More particularly, in certain embodiments desired locations of storage devices may be zeroed out during operation of the storage system and areas that have been zeroed out allocated to store data when commands pertaining to that data are received. Specifically, in one embodiment a distributed RAID system comprising a set of data banks may be provided where each data bank in the set of data banks may execute a background process which zeroes areas of the storage devices of the data bank. When a command pertaining to a logical location is received a zeroed area of the physical storage devices on the data bank may be allocated to store data associated with that logical location.

Claims (52)

1. A system, comprising:

one or more hosts;

a storage system coupled to each host including:

a processor;

a data store;

a computer readable medium comprising instructions executable for:

determining a set of physical segments of the data store are unallocated;

for each of the unallocated physical segments in the set of segments, determining if the unallocated physical segment has been zeroed and, if the unallocated physical segment has not be zeroed, zeroing the unallocated physical segment;

receiving a command corresponding to a first logical segment of a volume;

determining if any physical segment of the data store has been allocated to the first logical segment; and

if no physical segment has been allocated to the first logical segment, determining a first physical segment of the data store that is unallocated and zeroed and allocating the first physical segment to the first logical segment.

2. The system of claim 1 , wherein the storage system is a distributed Redundant Array of Independent Disks (RAID) system comprising a set of data banks operable to store one or more volumes on each of the plurality of data banks, such that for each physical segment corresponding to the volume corresponding to the first logical segment a corresponding redundancy segment comprising redundancy data associated with that physical segment does not reside on the same data bank as the physical segment.

3. The system of claim 2 , wherein determining if any physical segment of the data store has been allocated and determining the first physical segment of the data store that is unallocated and zeroed are accomplished using a disk table.

4. The system of claim 3 , wherein the instructions are further executable for updating the disk table when one of the physical segments of the data store is zeroed or when one of the physical segments of the data store is allocated.

5. A method for initializing storage in a storage system, the method implemented on a storage system having a processor, the method comprising:

determining a set of physical segments of a data store are unallocated;

for each of the unallocated physical segments in the set of segments, determining if the unallocated physical segment has been zeroed and, if the unallocated physical segment has not be zeroed, zeroing the unallocated physical segment;

receiving a command corresponding to a first logical segment of a volume;

determining if any physical segment of the data store has been allocated to the first logical segment; and

if no physical segment has been allocated to the first logical segment, determining a first physical segment of the data store that is unallocated and zeroed and allocating the first physical segment to the first logical segment.

6. The method of claim 5 , wherein the storage system is a distributed Redundant Array of Independent Disks (RAID) system comprising a set of data banks operable to store one or more volumes on each of the plurality of data banks, such that for each physical segment corresponding to the volume corresponding to the first logical segment a corresponding redundancy segment comprising redundancy data associated with that physical segment does not reside on the same data bank as the physical segment.

7. The method of claim 6 , wherein determining if any physical segment of the data store has been allocated and determining the first physical segment of the data store that is unallocated and zeroed are accomplished using a disk table.

8. The method of claim 7 , further comprising updating the disk table when one of the physical segments of the data store is zeroed or when one of the physical segments of the data store is allocated.

9. A method for allocating storage in response to commands from a host computer to a storage system, comprising:

receiving a command corresponding to a first logical segment of a volume from a host;

determining a set of physical segments of a data store of the storage system are unallocated;

for each of the unallocated physical segments in the set of segments, determining if the unallocated physical segment has been zeroed and, if the unallocated physical segment has not be zeroed, zeroing the unallocated physical segment;

determining if any physical segment of the data store has been allocated to the first logical segment;

if no physical segment has been allocated to the first logical segment, determining a first physical segment of the data store that is unallocated and zeroed and allocating the first physical segment to the first logical segment; and

storing data corresponding to the first logical segment of the volume in the first physical segment.

10. The method of claim 9 , wherein the storage system is a distributed Redundant Array of Independent Disks (RAID) system comprising a set of data banks operable to store one or more volumes on each of the plurality of data banks, such that for each physical segment corresponding to the volume corresponding to the first logical segment a corresponding redundancy segment comprising redundancy data associated with that physical segment does not reside on the same data bank as the physical segment.

11. The method of claim 10 , wherein determining if any physical segment of the data store has been allocated and determining the first physical segment of the data store that is unallocated and zeroed are accomplished using a disk table.

12. The method of claim 11 , further comprising updating the disk table when one of the physical segments of the data store is zeroed or when one of the physical segments of the data store is allocated.

13. A computer readable medium for initializing storage in a storage system, the computer readable medium comprising instructions executable for:

determining a set of physical segments of a data store are unallocated;

for each of the unallocated physical segments in the set of segments, determining if the unallocated physical segment has been zeroed and, if the unallocated physical segment has not be zeroed, zeroing the unallocated physical segment;

receiving a command corresponding to a first logical segment of a volume;

determining if any physical segment of the data store has been allocated to the first logical segment; and

if no physical segment has been allocated to the first logical segment, determining a first physical segment of the data store that is unallocated and zeroed and allocating the first physical segment to the first logical segment.

14. The computer readable medium of claim 13 , wherein the storage system is a distributed Redundant Array of Independent Disks (RAID) system comprising a set of data banks operable to store one or more volumes on each of the plurality of data banks, such that for each physical segment corresponding to the volume corresponding to the first logical segment a corresponding redundancy segment comprising redundancy data associated with that physical segment does not reside on the same data bank as the physical segment.

15. The computer readable medium of claim 14 , wherein determining if any physical segment of the data store has been allocated and determining the first physical segment of the data store that is unallocated and zeroed are accomplished using a disk table.

16. The computer readable medium of claim 15 , the computer executable instructions further executable for updating the disk table when one of the physical segments of the data store is zeroed or when one of the physical segments of the data store is allocated.

17. A computer readable medium for allocating storage in response to commands from a host computer to a storage system, the computer readable medium comprising computer executable instructions for:

receiving a command corresponding to a first logical segment of a volume from a host;

determining a set of physical segments of a data store of the storage system are unallocated;

for each of the unallocated physical segments in the set of segments, determining if the unallocated physical segment has been zeroed and, if the unallocated physical segment has not be zeroed, zeroing the unallocated physical segment;

determining if any physical segment of the data store has been allocated to the first logical segment;

if no physical segment has been allocated to the first logical segment, determining a first physical segment of the data store that is unallocated and zeroed and allocating the first physical segment to the first logical segment; and

storing data corresponding to the first logical segment of the volume in the first physical segment.

18. The computer readable medium of claim 17 , wherein the storage system is a distributed Redundant Array of Independent Disks (RAID) system comprising a set of data banks operable to store one or more volumes on each of the plurality of data banks, such that for each physical segment corresponding to the volume corresponding to the first logical segment a corresponding redundancy segment comprising redundancy data associated with that physical segment does not reside on the same data bank as the physical segment.

19. The computer readable medium of claim 18 , wherein determining if any physical segment of the data store has been allocated and determining the first physical segment of the data store that is unallocated and zeroed are accomplished using a disk table.

20. The computer readable medium of claim 19 , the computer executable instructions further executable for updating the disk table when one of the physical segments of the data store is zeroed or when one of the physical segments of the data store is allocated.

Assignments (8)
INTELLECTUAL PROPERTY RELEASE Recorded Jan 4, 2024
From: RUNWAY GROWTH FINANCE CORP.
To: PIVOT3, INC.; NEXGEN STORAGE, INC.
Reel/Frame 066193/0189 →
RELEASE OF SECURITY INTEREST Recorded May 15, 2019
From: PACIFIC WESTERN BANK
To: PIVOT3, INC.
Reel/Frame 049186/0154 →
SECURITY INTEREST Recorded May 13, 2019
From: PIVOT3, INC.; NEXGEN STORAGE, INC.
To: RUNWAY GROWTH CREDIT FUND INC.
Reel/Frame 049164/0117 →
RELEASE OF SECURITY INTEREST Recorded Mar 28, 2016
From: COMERICA BANK
To: PIVOT3, INC.
Reel/Frame 038114/0207 →
SECURITY INTEREST Recorded Mar 22, 2016
From: PIVOT3, INC.
To: PACIFIC WESTERN BANK
Reel/Frame 038068/0092 →
CORRECTIVE DOCUMENT FOR ASSIGNMENT ORIGINALLY RECORDED AT REEL/FRAME 023030/0202 Recorded Jul 3, 2012
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; PELLEGRINO, GREG J.; TAN, CHOON-SENG; SCHOLHAMER, GEORGE J. III
To: PIVOT3, INC.
Reel/Frame 028554/0656 →
SECURITY AGREEMENT Recorded Nov 17, 2009
From: PIVOT3, INC.
To: COMERICA BANK, A TEXAS BANKING ASSOCIATION
Reel/Frame 023525/0365 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2009
From: GALLOWAY, WILLIAM C.; CALLISON, RYAN A.; PELLEGRINO, GREG J.; TAN, CHOON-SENG; SCHOLHAMER, GEORGE J., III
To: PIVOT3
Reel/Frame 023030/0202 →