Method and system for managing wear-level aware file systems
First Claim
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, andselecting 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 Assignments
0 Petitions
Accused Products
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.
-
Citations
9 Claims
-
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. - View Dependent Claims (2, 3, 4, 5)
-
-
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. - View Dependent Claims (7, 8, 9)
-
Specification