IP Library Granted Patent US 8,095,728
Granted Patent B2
US 8,095,728 · App. 12/105,414 · Granted Jan 10, 2012

Method and system for power aware I/O scheduling

Assignee: Oracle America, Inc.
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,095,728
App. No.
12/105,414
Granted
Jan 10, 2012
Kind
B2
Abstract

A method for retrieving a logical block, including receiving a request to read the logical block, and obtaining metadata associated with the logical block, wherein the metadata includes a replication type used to store the logical block and physical block locations in a storage pool for each physical block associated with the logical block. The method further includes obtaining power state information including a power state for the storage devices specified in the physical block locations, selecting a first set of physical block locations using the metadata, the power state information, and a power-usage selection policy, and generating I/O requests, where each I/O request specifies one of the first set of physical block locations. The method further includes issuing the I/O requests, receiving physical blocks in response to the I/O requests, and constructing the logical block using the physical blocks.

Claims (88)

1. A method for retrieving a logical block, comprising:

receiving a request to read the logical block;

obtaining metadata associated with the logical block, wherein the metadata comprises:

a replication type used to store the logical block, and

physical block locations in a storage pool for each physical block associated with the logical block, wherein each physical block location specifies one of a plurality storage devices in the storage pool;

obtaining power state information comprising a power state for each of the plurality of storage devices specified in the physical block locations;

selecting a first set of physical block locations using the metadata, the power state information, and a power-usage selection policy;

generating a first set of I/O requests, wherein each I/O request of the set of I/O requests specifies one of the issuing the first set of I/O requests;

issuing the first set of I/O requests;

receiving a first set of physical blocks in response to the first set of I/O requests; and

constructing the logical block using the first set of physical blocks.

2. The method of claim 1 , further comprising:

after constructing the logical block, calculating a checksum of the logical block;

comparing the checksum to a stored checksum of the logical block, wherein the checksum and stored checksum do not match;

selecting a second set of physical block locations using the metadata, the power state information, and the power-usage selection policy;

generating a second set of I/O requests, wherein each I/O request of the second set of I/O requests specifies one of the second set of physical block locations;

issuing the second set of I/O requests;

receiving a second set of physical blocks in response to the second set of I/O requests; and

constructing the logical block using the second set of physical blocks.

3. The method of claim 1 , wherein the replication type defines a level of replication of the logical block in the storage pool.

4. The method of claim 3 , wherein the replication type is one selected from a group consisting of 2-way mirroring, n-way mirroring, and RAID-type replication.

5. The method of claim 1 , wherein the power state is one selected from a group consisting of spun-up, spinning-up, spinning-down, and spun down.

6. The method of claim 1 , wherein selecting the first set of physical block locations comprises:

selecting the first set of physical block locations, wherein the first set of physical blocks at the first set of physical block locations combine to form the logical block;

determining a first power cost to obtain the first set of physical blocks located at the first set of physical block locations using the power state information;

selecting a second set of physical block locations, wherein a second set of physical blocks at the second set of physical block locations combine to form the logical block;

determining a second power cost to obtain the second set of physical blocks located at the second set of physical block locations using the power state information;

selecting the first set of physical block locations using the first power cost, the second power cost and the power-usage selection policy; and

determining a first set of power distribution Input/Output (I/O) queues using the first set of physical block locations.

7. The method of claim 6 , wherein each of the power distribution I/O queues is associated with one of the plurality of storage devices.

8. The method of claim 1 , wherein the first set of I/O requests comprises a plurality of I/O requests.

9. A system, comprising:

a storage pool comprising a plurality of storage devices; and

a file system comprising:

an I/O scheduler configured to:

receive a request to read a logical block;

obtain metadata associated with the logical block, wherein the metadata comprises: a replication type used to store the logical block, and physical block locations in the storage pool for each physical block associated with the logical block, wherein each physical block location specifies one of the plurality of storage devices in the storage pool;

obtain power state information comprising a power state for each of the plurality of storage devices specified in the physical block locations;

select a first set of physical block locations using the metadata, the power state information, and a power-usage selection policy;

generate a first set of I/O requests, wherein each I/O request of the first set of I/O requests specifies one of the first set of physical block locations; and

issue the first set of I/O requests,

wherein the file system is configured to:

receive a first set of physical blocks in response to the first set of I/O requests, and

constructing the logical block using the first set of physical blocks.

10. The system of claim 9 ,

wherein the file system configured to:

after constructing the logical block, calculate a checksum of the logical block;

compare the checksum to a stored checksum of the logical block, wherein the checksum and stored checksum do not match;

select a second set of physical block locations using the metadata, the power state information, and the power-usage selection policy;

generate a second set of I/O requests, wherein each I/O request of the second set of I/O requests specifies one of the second set of physical block locations; and

issue the second set of I/O requests, and

wherein the file system is further configured to:

receive a second set of physical blocks in response to the second set of 1 /O requests; and

construct the logical block using the second set of physical blocks.

11. The system of claim 9 , wherein the replication type defines a level of replication of the logical block in the storage pool.

12. The system of claim 11 , wherein the replication type is one selected from a group consisting of 2-way mirroring, n-way mirroring, and RAID-type replication.

13. The system of claim 9 , wherein the power state is one selected from a group consisting of spun-up, spinning-up, spinning-down, and spun down.

14. The system of claim 9 , wherein selecting the first set of physical block locations comprises:

selecting the first set of physical block locations, wherein the first set of physical blocks at the first set of physical block locations combine to form the logical block;

determining a first power cost to obtain the first set of physical blocks located at the first set of physical block locations using the power state information;

selecting a second set of physical block locations, wherein a second set of physical blocks at the second set of physical block locations combine to form the logical block;

determining a second power cost to obtain the second set of physical blocks located at the second set of physical block locations using the power state information;

selecting the first set of physical block locations using the first power cost, the second power cost and the power-usage selection policy; and

determining a first set of power distribution Input/Output (I/O) queues using the first set of physical block locations.

15. The system of claim 14 , wherein each of the power distribution I/O queues is associated with one of the plurality of storage devices.

16. The system of claim 9 , wherein the first set of I/O requests comprises a plurality of I/O requests.

17. A computer readable medium comprising computer readable program code embodied therein for causing a computer system to:

receive a request to read a logical block;

obtain metadata associated with the logical block, wherein the metadata comprises:

a replication type used to store the logical block, and

physical block locations in a storage pool for each physical block associated with the logical block, wherein each physical block location specifies one of a plurality of storage devices in the storage pool;

obtain power state information comprising a power state for each of the plurality of storage devices specified in the physical block locations;

select a first set of physical block locations using the metadata, the power state information, and a power-usage selection policy; and

generate a first set of I/O requests, wherein each I/O request of the first set of I/O requests specifies one of the first set of physical block locations;

issue the first set of I/O requests;

receive a first set of physical blocks in response to the first set of I/O requests; and

construct the logical block using the first set of physical blocks.

18. The computer readable medium of claim 17 , further comprising computer readable program code embodied therein for causing the computer system to:

after constructing the logical block, calculate a checksum of the logical block;

compare the checksum to a stored checksum of the logical block, wherein the checksum and stored checksum do not match;

select a second set of physical block locations using the metadata, the power state information, and the power-usage selection policy;

generate a second set of I/O requests, wherein each I/O request of the second set of I/O requests specifies one of the second set of physical block locations;

issue the second set of I/O requests;

receive a second set of physical blocks in response to the second set of I/O requests; and

construct the logical block using the second set of physical blocks.

19. The computer readable medium of claim 18 , wherein the first set of I/O requests comprises a plurality of I/O requests.

20. The computer readable medium of claim 18 , further comprising computer readable program code embodied therein for causing the computer system to:

determine a first set of power distribution Input/Output (I/O) queues using the first set of physical block locations, wherein each power distribution I/O queue of the first set of power distribution I/O queues is associated with one of the plurality of storage devices.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0134 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 6, 2008
From: MOORE, WILLIAM H.; JOHNSON, DARRIN P.; WILSON, GEORGE R.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 020906/0207 →
Continuity (1)
Related Publication 20090265519A1 · Oct 22, 2009