IP Library Granted Patent US 7,330,931
Granted Patent B2
US 7,330,931 · App. 11/322,787 · Granted Feb 12, 2008

Method and system for accessing auxiliary data in power-efficient high-capacity scalable 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,330,931
App. No.
11/322,787
Granted
Feb 12, 2008
Kind
B2
Abstract

A method for preparing data units for access in a data storage system is disclosed. The data storage system includes multiple storage devices having data units. All the storage devices of the data storage system are not powered on at the same time. The method includes preparing and storing the auxiliary data. The auxiliary data is prepared for a data unit on a storage device that will be powered off during an access request of the data unit. The auxiliary data is stored on the storage devices so that the auxiliary data is likely to be available on a powered-on storage device when the data unit is the subject of an access request.

Claims (80)

1. A method for preparing data units for access in a data storage system, the data storage system comprising a plurality of storage devices having data units, wherein not all of the storage devices are powered on at the same time, the method comprising:

preparing auxiliary data for a data unit on a data unit storage device that will be powered down during an access request of the data unit; and

storing the auxiliary data on one or more of the storage devices so that the auxiliary data is always available on a powered-on storage device when the data unit is a subject of an access request while the data unit storage device is powered down, wherein after receiving the access request, the powered-on storage device is not powered-on from a powered down state to respond to the access request.

2. The method of claim 1 , wherein the auxiliary data is stored on all of the storage devices.

3. The method of claim 1 , further comprising:

using an auxiliary data area on a storage device to store the auxiliary data; and

updating the auxiliary data.

4. The method of claim 3 , further comprising:

using a change log and a generation identification number to update the auxiliary data.

5. The method of claim 4 , wherein the generation identification number is incremented each time the auxiliary data is updated.

6. The method of claim 4 , wherein the auxiliary data is updated on the auxiliary data area when the generation identity number is not latest.

7. The method of claim 4 , wherein the change log includes updates corresponding to each increment of the generation identification number.

8. The method of claim 3 , wherein the auxiliary data is updated from one set of storage devices to a next set of storage devices when the next set of storage devices is being powered on upon the access request.

9. The method of claim 3 , wherein updating the auxiliary data comprises:

modifying the auxiliary data on all of powered-on storage devices of the data storage system when the access request is a write operation.

10. The method of claim 1 , wherein the auxiliary data is read from one of powered-on storage devices of the data storage system when the access request is a read operation.

11. The method of claim 1 , wherein the access request is received from a host.

12. The method of claim 1 , wherein preparing the auxiliary data for the data unit comprises:

configuring the data storage system during a boot cycle of the data storage system; and

synchronizing the auxiliary data in all data units of the data storage system.

13. The method of claim 12 , wherein configuring the data storage system comprises:

assigning an auxiliary data area on each storage device of the data storage system to a set of logical blocks of one or more data units of the data storage system; and

collecting the auxiliary data from the auxiliary data area to the set of logical blocks of the one or more data units.

14. The method of claim 12 , further comprising:

reconfiguring auxiliary data areas on all of the storage devices.

15. The method of claim 14 , wherein reconfiguring the auxiliary data areas comprises:

unpinning auxiliary data from the auxiliary data areas that are no longer in the configuration;

assigning new auxiliary data areas to the set of logical blocks of the one or more data units; and

collecting data from the set of logical blocks of the one or more data units to the new auxiliary data areas.

16. The method of claim 15 , wherein reconfiguring the auxiliary data areas further comprises:

modifying the set of logical blocks by using a vendor unique command that is received through one of an out-of-band and an in-band interface.

17. The method of claim 16 , further comprising:

synchronizing data in the auxiliary data areas.

18. The method of claim 1 , further comprising:

maintaining the auxiliary data on a set of storage devices of the plurality of storage devices in a background mode when a storage management unit of the data storage system is idle for a predetermined time.

19. The method of claim 18 , wherein maintaining the auxiliary data comprises:

powering on the set of storage devices in the background mode.

20. The method of claim 19 , wherein powering on the set of storage devices further comprises:

periodically swapping powered-on storage devices in the set of storage device with storage devices that are powered-off.

21. The method of claim 20 , wherein a period for periodically swapping the storage devices and the storage devices to be swapped are provided by a Self-Monitoring, Analysis and Reporting Technology (SMART) data, wherein the SMART data keeps an account of time for which each storage device in the set of storage devices is powered-on.

22. The method of claim 20 , the set of storage devices includes storage devices with least powered-on times.

23. A data storage system comprising:

a plurality of storage devices having data units, wherein not all of the storage devices are powered on at the same time;

a storage management unit capable of:

preparing auxiliary data for a data unit on a data unit storage device that will be powered down during an access request of the data unit; and

storing the auxiliary data on one or more of the storage devices in the plurality of storage devices so that the auxiliary data is always available on a powered-on storage device when the data unit is the subject of an access request while the data unit storage device is powered down, wherein after receiving the access request, the powered-on storage device is not powered-on from a powered down state to respond to the access request.

24. The data storage system of claim 23 , further comprising a controller coupled to each storage device of the plurality of storage devices, wherein the controller comprises:

a counter for incrementing a generation identification number, wherein the generation identification number is incremented each time the auxiliary data area is updated; and

a change log for storing updates corresponding to each increment of the generation identification number.

25. The data storage system of claim 24 , wherein at least one storage device of the plurality of the storage devices comprising a latest update of the auxiliary data is always powered-on.

26. The data storage system of claim 23 , further comprising a reconfiguration manager for reconfiguring auxiliary data areas on all of the storage devices.

27. The data storage system of claim 23 , further comprising an auxiliary data area management application program interface for determining logical blocks to be managed in the auxiliary data areas.

28. The data storage system of claim 23 , further comprising an auxiliary data area manager for maintaining the auxiliary data on the plurality of storage devices in a background mode when the storage management unit is idle for a predetermined time.

29. The data storage system of claim 23 , wherein the auxiliary data area is a low Mean Time to First Byte (MTFB) area in each storage device of the plurality of storage devices.

30. The data storage system of claim 29 , wherein the low MTFB area maps to a set of logical blocks, wherein the set of logical blocks is set during configuration of the data storage system.

31. An apparatus comprising:

a processor for executing instructions; and

a machine-readable medium including:

one or more instructions for preparing auxiliary data for a data unit on a data unit drive that will be powered-off during an access request of the data unit; and

one or more instructions for storing the auxiliary data on one or more storage devices so that the auxiliary data is always available on a powered-on device when the data unit is the subject of an access request while the data unit drive is powered down, wherein after receiving the access request, the powered-on storage device is not powered-on from a powered down state to respond to the access request.

32. A machine-readable medium including instructions executable by a processor for preparing data units for access in a data storage system, the data storage system comprising a plurality of storage devices having data units, wherein not all of the storage devices are powered-on at the same time, the machine readable medium comprising:

one or more instructions for preparing auxiliary data for a data unit on a data unit drive that will be powered-off during an access request of the data unit; and

one or more instructions for storing the auxiliary data on one or more of the storage devices so that the auxiliary data is always accessible and available on a powered-on device when the data unit is the subject of an access request while the data unit drive is powered down, wherein after receiving the access request, the powered-on storage device is not powered-on from a powered down state to respond to the access request.

33. A method for preparing data units for access in a data storage system, the data storage system comprising a plurality of storage devices having data units, wherein not all of the storage devices are powered on at the same time, the method comprising:

storing a data unit on a first storage device;

storing auxiliary data for the data unit on a second storage device that is in a powered-on state;

receiving an access request, wherein the first storage device is in a powered down state when the access request is received; and

responding to the access request using the auxiliary data that is stored on the second storage device that is powered-on, the second storage device not being powered on from a powered down state to service the access request.

34. The method of claim 33 , further comprising:

determining if the access request is for the auxiliary data;

responding to the request using the auxiliary data.

35. The method of claim 33 , further comprising:

determining that the second storage device will be powered down; and

moving the auxiliary data to a third storage device that is powered on such that the auxiliary data is available on a powered on storage device.

36. The method of claim 33 , wherein the auxiliary data is ensured to be on a powered on storage drive before the access request is made.

37. The method of claim 33 , further comprising:

determining if the access request is for the data unit; and

powering on the first storage device if the access request is for the data unit; and

servicing the request using the data unit on the first storage device.

38. The method of claim 33 , wherein the auxiliary data is stored on one or more additional storage devices other than the second storage device.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054198/0029 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054244/0566 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
RELEASE (REEL 038041 / FRAME 0001) Recorded Jan 2, 2018
From: JPMORGAN CHASE BANK, N.A.
To: RPX CORPORATION; RPX CLEARINGHOUSE LLC
Reel/Frame 044970/0030 →
SECURITY AGREEMENT Recorded Mar 9, 2016
From: RPX CORPORATION; RPX CLEARINGHOUSE LLC
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038041/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2015
From: SILICON GRAPHICS INTERNATIONAL CORP.
To: RPX CORPORATION
Reel/Frame 035409/0615 →
RELEASE OF SECURITY INTEREST Recorded Feb 23, 2014
From: WESTBURY INVESTMENT PARTNERS SBIC, LP
To: SILICON VALLEY BANK
Reel/Frame 032276/0091 →