IP Library Granted Patent US 8,135,907
Granted Patent B2
US 8,135,907 · App. 12/165,463 · Granted Mar 13, 2012

Method and system for managing wear-level aware file systems

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,135,907
App. No.
12/165,463
Granted
Mar 13, 2012
Kind
B2
Abstract

A method for wear level-based allocation in a storage pool. The method includes receiving a first request to write a first data item in a storage pool, where the storage pool includes a number of physical locations associated with the storage devices, and where each of the storage devices includes metadata regarding a level of wear of the storage device. The method further includes determining a first target physical location selected from the plurality of physical locations by using a wear-level selection policy and a wear cost for each of the storage devices, where the wear cost is determined based on a type of the storage device. The method further includes allocating a first data block to the first target physical location writing the first data block to the first target physical locations, wherein the first data block comprises a first portion of the first data item.

Claims (55)

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;

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;

selecting a first set of physical block locations using a wear-level selection policy, wherein selecting the first set of physical locations comprises:

identifying the first set of physical block locations using the metadata, wherein the physical blocks at the first set of physical block locations combine to form the logical block,

determining a wear cost to read each of the physical blocks located at the first set of physical block locations to obtain a first plurality of wear costs,

combining the first plurality of wear costs to obtain a first aggregate wear cost,

identifying a second set of physical block locations using the metadata, wherein the physical blocks at the second set of physical block locations combine to form the logical block,

determining a wear cost to read each of the physical blocks located at the second set of physical block locations to obtain a second plurality of wear costs,

combining the second plurality of wear costs to obtain a second aggregate wear cost, and

selecting the first set of physical block locations based on the first aggregate wear cost, the second aggregate wear cost, and the wear-level selection policy;

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

issuing a first set of I/O requests;

receiving the 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, based on the comparing, the second set of physical block locations;

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

issuing the second set of I/O requests;

receiving the 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 selecting the first set of physical block locations further comprises determining a first set of wear-level distribution Input/Output I/O) queues using the first set of physical block locations, wherein each of the wear-level distribution I/O queues is associated with one of the plurality of storage devices.

6. A non-transitory computer readable medium comprising a plurality of executable instructions for, retrieving a logical block, wherein the plurality of executable instructions comprises instructions to:

receive a request to read the logical block;

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

a replication type used to store the logical block;

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;

select a first set of physical block locations using a wear-level selection policy, wherein selecting the first set of physical locations comprises:

identifying the first set of physical block locations using the metadata, wherein the physical blocks at the first set of physical block locations combine to form the logical block,

determining a wear cost to read each of the physical blocks located at the first set of physical block locations to obtain a first plurality of wear costs,

combining the first plurality of wear costs to obtain a first aggregate wear cost,

identifying a second set of physical block locations using the metadata, wherein the physical blocks at the second set of physical block locations combine to form the logical block,

determining a wear cost to read each of the physical blocks located at the second set of physical block locations to obtain a second plurality of wear costs,

combining the second plurality of wear costs to obtain a second aggregate wear cost, and

selecting the first set of physical block locations based on the first aggregate wear cost, the second aggregate wear cost, and the wear-level selection policy;

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

issue a first set of I/O requests;

receive the 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.

7. The non-transitory computer readable medium of claim 6 , wherein the plurality of executable instructions further comprises instructions to:

after constructing the logical block, calculating 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, based on the comparing, the second set of physical block locations;

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

issue the second set of I/O requests;

receive the 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.

8. The non-transitory computer readable medium of claim 6 , wherein the replication type defines a level of replication of the logical block in the storage pool.

9. The non-transitory computer readable medium of claim 8 , wherein the replication type is one selected from a group consisting of 2-way mirroring, n-way mirroring, and RAID-type replication.

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/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2008
From: MOORE, WILLIAM H.; JOHNSON, DARRIN P.; SAXE, ERIC C.
To: SUN MICROSYSTEMS, INC.
Reel/Frame 021195/0022 →