This disclosure relates to hard disk drive (HDD) systems, and in particular to a logical method of removing defective physical heads from use within the HDD system.
Large data storage facilities, such as those used to implement “cloud storage” applications, utilize a plurality of redundant hard disk drive (HDD) systems. In response to a HDD failure, the failed unit is replaced while the overall system remains online. Because the data is stored redundantly, the HDDs are consumed as “fuel” for the data storage facility. The “fuel” costs associated with data storage facilities is defined by the number of HDDs that must be replaced.
There are several methods of reducing these “fuel” costs. For example, HDD reliability may be improved, thereby reducing the number of HDDs that must be replaced annually. Alternatively, rather than replace a HDD in response to an error, the damaged portion of the HDD may be eliminated while continuing to utilize usable capacity of the HDD. For example, a HDD includes a plurality of disks, and one or more physical heads associated with each disk to enable read and write operations to the disk. If one of the physical heads fails, the portion of the HDD associated with the failed physical head is lost, but the remainder of the HDD system associated with the remaining physical heads remains useful. The effectiveness of this approach depends on how easily the failed physical head can be eliminated and how quickly the remainder of the HDD system can be brought back online.
A method of logically removing a defective physical head from service in a hard disk drive (HDD) system includes (a) selecting a current region from a region array. The method further includes (b) determining whether the current region is associated with the defective physical head. If the current region is not associated with the defective physical head then the method assigns a next available logical block address (LBA) range to the current region by updating the region array and updates a region chain of a previous region assigned an LBA range in the region array with the location of the current region. the method increments the current region and repeating steps (a) and (b) for all available regions.
A storage device includes a magnetic media, a plurality of physical heads, and a indirection controller. The magnetic media includes one or more disks for storing data, wherein the magnetic media is organized into a plurality of regions, each region having a plurality of physical block addresses (PBAs). The plurality of physical heads write information to and read information from the magnetic media, each physical head associated with selected regions within the plurality of regions. The indirection controller translates LBAs received from an external system to PBAs, wherein the indirection controller is configured to logically remove a defective physical head from service by dynamically re-assigning LBAs to each of the plurality of regions while preventing LBAs from being assigned to regions associated with the defective physical head.
A computer readable storage medium containing instructions for logically removing a physical head from being utilized in a hard disk drive (HDD) system, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to carry out the steps of includes (a) selecting a current region from a region array and (b) determining whether the current region is associated with the defective physical head. If the current region is not associated with the defective physical head then the next available LBA range is assigned to the current region by updating the region array, and updating a region chain parameters of a previous region assigned an LBA range in the region array with the location of the current region. The current region is incremented and the steps are repeated for all available regions.
The hard disk drive (HDD) system disclosed herein provides for the logical removal of physical heads. In particular, the HDD system utilizes an indirection addressing architecture to dynamically re-assign logical addresses to physical addresses, while preventing logical addresses from being assigned to physical addresses associated with defective physical heads.
Indirection controller 106 provides a dynamic translation layer between logical block addresses (LBAs) utilized by host/user system 102 and physical blocks addresses (PBAs) used to access data stored to disks 112a and 112b. That is, indirection controller 106 manages the assignment of LBAs to PBAs. In a conventional system, mapping LBAs to PBAs remains relatively static because individual tracks can be re-written at any time. In more complex architectures, such as those employing shingled magnetic recording (SMR) or indirection-based perpendicular magnetic recording (PMR), the mapping between LBAs and PBAs can change with every write operation because the system dynamically determines the physical location (i.e., PBA) assigned a particular logical location (i.e., LBA). The data for the same LBA will be written to a different location the next time the host LBA is updated. In this way, indirection controller 106 provides a dynamic translation layer between LBAs provided by host/user system 102 and PBAs associated with hard disk components 108.
In the embodiment shown in
Tracks associated with magnetic disks 112a and 112b are divided into a plurality of regions. Those regions utilized to store customer data are referred to as “I-regions” and are labeled in
Indirection controller 106 is responsible for managing the assignment of LBAs to the plurality of PBAs. As part of this responsibility, indirection controller 106 maintains a region array data structure to manage the assignment of logical addresses to physical addresses. In one embodiment, the data structure is a region array that includes an entry for each of the plurality of regions (e.g., I-regions 0-7). For each entry (e.g., I-region 0), the array would include PBA range, LBA range, and pointers (e.g., region chains) that identify successive regions to traverse based on LBA assignment.
For the embodiment shown in
As discussed above, the region array is organized by I-regions 0-7 and stores parameters associated with each region, including LBA range assigned to the regions, PBA range assigned to each region, physical head used to access the region, and region chain. In particular, the region chain identifies with respect to a given region the region assigned the successive LBAs. In this way, region chain allows the regions to be traversed quickly to find a desired LBA.
As discussed above, the modification of the region array does not include re-assignment of PBAs. For example, even though physical head #2 is defective, PBA range 12-14 and 15-17 remains assigned to physical head #2. However, the LBA ranges previously assigned to PBA range 12-14 and 15-17 have been re-assigned to other PBA ranges. Therefore, with respect to I-region 2 and 7 (associated with defective physical head #2), no LBAs are assigned to these regions. In addition, region chain has been updated to correctly traverse the regions in order of ascending LBA addresses.
The method starts at step 302 with the identification of a defective physical head. A number of methods may be utilized to detect defective physical heads, any one of which may be utilized herein.
At step 304, a number of parameters associated with the logical head removal process are initialized to begin the re-assignment process. In some embodiments, the region array (or equivalent data structure) remains populated with LBA, PBA, and region chain parameters. Logical head removal therefore includes traversal of each region in the region array in ascending order with updates made to each entry in the region array until all regions have been analyzed. Therefore, a region index value (identifying the current region to be examined) would be initialized at this step to a value of 0 to ensure that the process begins with the first region in the region array. Other parameters that require initialization include the address of the first LBA to be assigned, as well as parameters associated with region chains.
At step 306, a current region is selected from the region array for LBA assignment based on the region index value. For example, following initialization at step 306, in which region index is set equal to zero, the current region selected at step 306 will be the first region in the region array (i.e., I-region 0). In the steps following steps 306, parameters associated with the region array are modified to logically remove one or more defective physical heads from use.
At step 308, a determination is made whether the current region is associated with the physical head to be logically removed. For example, if physical head #0 were identified as defective, then the current region (e.g., I-region 0) would be identified as associated with a defective physical head. If the current region is associated with a physical head to be logically removed, then no LBAs are assigned to the current region and the method continues at step 314 with the incrementing of the region index. As a result, no LBAs are assigned to this region. In one embodiment, this requires the LBA range associated with the region to be set to null, while in other embodiments all LBA ranges are set to null during the initialization and is simply left as a null value. If the current region is not associated with a physical head to be logically removed, then at steps 310 and 312 LBAs are assigned to the current region and the region array is updated to reflect the LBA assignment.
In particular, at step 310 a range of LBAs are assigned to the current region. This step may additionally include making a determination of the size of the region (i.e., the number of PBAs that can be assigned LBAs). This determination of region size accounts for defective PBAs within the region. For example, in the embodiment shown in FIGS. 2A and 2B, for I-region 0 the region size would be identified as three because all three PBAs are available for LBA assignment. However, in I-region 4 one of the PBAs is defective, such that only two PBAs are available for assignment and thus the size of the region is two and not three. In one embodiment, this determination is made based on the range of LBA's previously assigned to the region. Once the size of the region is known, a range of LBAs are assigned to the PBAs associated with the current region.
At step 312, the region chain associated with the previous region assigned LBAs is updated to point to the current region. For example, in region array shown in Table 2, if I-region 3 is the current region, then I-region 1 would be the previous region because this was the last I-region to which LBAs were assigned (i.e., no LBAs were assigned to I-region 2 because physical write head #2 was defective). In this way, the region chain associated with the previous region (e.g., I-region 1) is updated in the region array to correctly point to the current region (e.g., I-region 3).
At step 314 the region index is incremented to select the next available region as the current region. For example, if region index is equal to 1 (thereby selecting I-region 1) then incrementing the region index results in I-region 2 being selected as the next “current” region.
At step 316 a determination is made regarding whether all regions have been assigned LBAs. In one embodiment, this includes comparing the current region index to the number of known regions available for assignment. If all regions have been assigned LBAs then at step 318 the region array (completed with LBA assignments and region chains) is saved by indirection controller 106 and the method ends at step 320. In one embodiment, region array is saved to a reserved memory location.
If at step 316 it is determined that additional regions remain for LBA assignment, then the method continues at step 306, wherein the current region (incremented at step 314) is selected for LBA assignment. The method continues until all regions have been assigned LBAs. However, because those regions associated with defective physical heads are not assigned LBAs, the method results in the logical removal of those physical heads from service even though the PBAs remain associated with the defective physical heads.
In this way, indirection controller 106 is capable of logically removing a defective physical head from use. Because the logical removal of the defective physical head does not require re-mapping of physical block addresses, defective physical heads can be logically removed quickly, allowing the remaining usable portion of hard disk drive (HDD) to be returned to operational status quickly.
While the invention has been described with reference to an exemplary embodiment(s), it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment(s) disclosed, but that the invention will include all embodiments falling within the scope of the appended claims.
This application claims the benefit of U.S. provisional application No. 61/814,453, filed on 22 Apr. 2013, the entire contents of which are incorporated herein by reference. A claim of priority is made.
Number | Date | Country | |
---|---|---|---|
61814453 | Apr 2013 | US |