IP Library Granted Patent US 10,089,023
Granted Patent B2
US 10,089,023 · App. 14/747,098 · Granted Oct 2, 2018

Data management for object based storage

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 10,089,023
App. No.
14/747,098
Granted
Oct 2, 2018
Kind
B2
Abstract

An object based storage cluster includes at least one Data Storage Device (DSD) with a plurality of media portions for storing data. Media mapping information is received from the at least one DSD with the media mapping information indicating addresses assigned to each media portion of the plurality of media portions. Each media portion of the plurality of media portions is identified as a separate Object Storage Device (OSD) in the object based storage cluster using the media mapping information.

Claims (95)

1. A host, comprising:

an interface for communicating with at least one Data Storage Device (DSD) including a plurality of media portions for storing data, wherein each media portion of the plurality of media portions is a disk surface of a rotating magnetic disk or a die of a solid-state memory; and

a processor configured to:

receive media mapping information from the at least one DSD via the interface, the media mapping information indicating one or more ranges of multiple addresses assigned to each media portion of the plurality of media portions;

use at least one of an Operating System (OS), a file system, and a driver to partition the one or more ranges of multiple addresses to define a partition or a logical device for each media portion of the plurality of media portions based on the received media mapping information; and

identify, using the defined partition or logical device, each media portion of the plurality of media portions as a separate Object Storage Device (OSD) in an object based storage cluster such that each disk surface or die of the plurality of media portions is identified as a separate OSD.

2. The host of claim 1 , wherein the media mapping information indicates a plurality of contiguous ranges of multiple addresses assigned to a media portion of the plurality of media portions.

3. The host of claim 1 , wherein the processor is further configured to:

assign a weight to each OSD based on a portion of a total storage capacity of the plurality of media portions that is contributed by a media portion corresponding to the OSD; and

allocate data objects for storage among the plurality of media portions based on the weight assigned to each OSD.

4. The host of claim 3 , wherein the processor is further configured to:

determine that a media portion of the plurality of media portions is no longer available for storing data;

assign a new weight to each OSD based on a new portion of a new total storage capacity of the plurality of media portions without the media portion that is no longer available for storing data; and

allocate data objects for storage among the plurality of media portions except the media portion that is no longer available for storing data, wherein the allocation of data objects is based on the new weight assigned to each OSD.

5. The host of claim 1 , wherein the processor is further configured to:

determine that a media portion of the plurality of media portions is no longer available for storing data; and

set a reserved OSD corresponding to a spare media portion as available for storing data.

6. The host of claim 5 , wherein the spare media portion is located within the same DSD as the media portion that is no longer available for storing data.

7. The host of claim 5 , wherein the spare media portion is located within a spare DSD of the at least one DSD that has been reserved for providing spare media portions.

8. The host of claim 1 , wherein the processor is further configured to:

monitor an indicator of reliability for storing data on a media portion of the plurality of media portions; and

compare the indicator of reliability to a threshold to determine whether the media portion is no longer available for storing data.

9. The host of claim 1 , wherein the processor is further configured to:

determine whether a media portion of the plurality of media portions is available for storing data; and

if it is determined that the media portion is no longer available for storing data:

send a command to a DSD of the at least one DSD that includes the media portion, wherein the command instructs the DSD to perform a diagnostic test or a recovery measure for the media portion; and

identify the media portion as a reserved OSD if a notification is received from the DSD that the media portion is available for storing data after performing the diagnostic test or the recovery measure.

10. The host of claim 1 , wherein the processor is further configured to:

identify redundant data or erasure coded data associated with a data object stored in or to be stored in a media portion of the plurality of media portions; and

determine an OSD for storing the redundant data or erasure coded data so that the redundant data or erasure coded data is not stored in the same media portion as its associated data object.

11. The host of claim 10 , wherein in determining the OSD for storing the redundant or erasure coded data, the processor is further configured to identify from among a plurality of predetermined sets of OSDs, a predetermined set of OSDs including the OSD for storing the redundant data or erasure coded data.

12. The host of claim 1 , wherein the processor is further configured to send via the interface a command to the at least one DSD to request the media mapping information.

13. A Data Storage Device (DSD), comprising:

an interface configured to communicate with a host;

a plurality of media portions for storing data, wherein each media portion of the plurality of media portions is a disk surface of a rotating magnetic disk or a die of a solid-state memory; and

a controller configured to:

assign one or more ranges of multiple addresses to each media portion of the plurality of media portions;

create media mapping information indicating the one or more ranges of multiple addresses assigned to each media portion of the plurality of media portions; and

send the media mapping information to the host via the interface so that the host can use at least one of an Operating System (OS), a file system, and a driver to partition the one or more ranges of multiple addresses to define a partition or a logical device for each media portion of the plurality of media portions based on the media mapping information and identify each media portion of the plurality of media portions as a separate Object Storage Device (OSD) in an object based storage cluster such that each disk surface or die of the plurality of media portions is identified as a separate OSD.

14. The DSD of claim 13 , wherein the controller is further configured to:

create a replacement partition table indicating the one or more ranges of multiple addresses assigned to each media portion of the plurality of media portions;

receive a request from the host via the interface requesting data from a partition table stored in a media portion; and

in response to the request from the host, send data from the replacement partition table as the media mapping information.

15. The DSD of claim 13 , wherein the controller is further configured to:

monitor an indicator of reliability for storing data in a media portion of the plurality of media portions;

determine whether the indicator of reliability has reached a threshold; and

if the indicator of reliability has reached the threshold, send a notification via the interface to the host to indicate a reliability status for the media portion.

16. The DSD of claim 15 , wherein the indicator of reliability indicates at least one of a frequency or an amount of errors for the media portion, a number of operations performed in the media portion, and an average time for performing operations in the media portion.

17. The DSD of claim 13 , wherein the plurality of media portions include at least one spare media portion reserved as a replacement media portion.

18. The DSD of claim 13 , wherein the controller is further configured to send the media mapping information to the host in response to a command received from the host via the interface.

19. A method for operating an object based storage cluster including at least one Data Storage Device (DSD) with a plurality of media portions for storing data, wherein each media portion of the plurality of media portions is a disk surface of a rotating magnetic disk or a die of a solid-state memory, the method comprising:

receiving media mapping information from the at least one DSD, the media mapping information indicating ranges of multiple addresses assigned to each media portion of the plurality of media portions;

using at least one of an Operating System (OS), a file system, and a driver to partition the one or more ranges of multiple addresses to define a partition or a logical device for each media portion of the plurality of media portions based on the received media mapping information; and

identifying, using the defined partition or logical device, each media portion of the plurality of media portions as a separate Object Storage Device (OSD) in the object based storage cluster such that each disk surface or die of the plurality of media portions is identified as a separate OSD.

20. The method of claim 19 , wherein the media mapping information indicates a plurality of contiguous ranges of multiple addresses assigned to a media portion of the plurality of media portions.

21. The method of claim 19 , further comprising:

assigning a weight to each OSD based on a portion of a total storage capacity of the plurality of media portions that is contributed by a media portion corresponding to the OSD; and

allocating data objects for storage among the plurality of media portions based on the weight assigned to each OSD.

22. The method of claim 21 , further comprising:

determining that a media portion of the plurality of media portions is no longer available for storing data;

assigning a new weight to each OSD based on a new portion of a new total storage capacity of the plurality of media portions without the media portion that is no longer available for storing data; and

allocating data objects for storage among the plurality of media portions except the media portion that is no longer available for storing data, wherein the allocation of data objects is based on the new weight assigned to each OSD.

23. The method of claim 19 , further comprising:

determining that a media portion of the plurality of media portions is no longer available for storing data; and

setting a reserved OSD corresponding to a spare media portion as available for storing data.

24. The method of claim 23 , wherein the spare media portion is located within the same DSD as the media portion that is no longer available for storing data.

25. The method of claim 23 , wherein the spare media portion is located within a spare DSD of the at least one DSD that has been reserved for providing spare media portions.

26. The method of claim 19 , further comprising:

monitoring an indicator of reliability for storing data on a media portion of the plurality of media portions; and

comparing the indicator of reliability to a threshold to determine whether the media portion is no longer available for storing data.

27. The method of claim 19 , further comprising:

determining whether a media portion of the plurality of media portions is available for storing data; and

if it is determined that the media portion is no longer available for storing data:

sending a command to a DSD of the at least one DSD that includes the media portion, wherein the command instructs the DSD to perform a diagnostic test or a recovery measure for the media portion; and

identifying the media portion as a reserved OSD if a notification is received from the DSD that the media portion is available for storing data after performing the diagnostic test or the recovery measure.

28. The method of claim 19 , further comprising:

identifying redundant data or erasure coded data associated with a data object stored on or to be stored in a media portion of the plurality of media portions; and

determining an OSD for storing the redundant data or erasure coded data so that the redundant data or erasure coded data is not stored in the same media portion as its associated data object.

29. The method of claim 28 , wherein in determining the OSD for storing the redundant or erasure coded data, the method further comprises identifying from among a plurality of predetermined sets of OSDs, a predetermined set of OSDs including the OSD for storing the redundant data or erasure coded data.

30. The method of claim 19 , further comprising sending a command to the at least one DSD to request the media mapping information.

31. A method for operating a Data Storage Device (DSD) including a plurality of media portions for storing data, wherein each media portion of the plurality of media portions is a disk surface of a rotating magnetic disk or a die of a solid-state memory, the method comprising:

assigning one or more ranges of multiple addresses to each media portion of the plurality of media portions;

creating media mapping information indicating the one or more ranges of multiple addresses assigned to each media portion of the plurality of media portions; and

sending the media mapping information to a host so that the host can use at least one of an Operating System (OS), a file system, and a driver to partition the one or more ranges of multiple addresses to define a partition or a logical device for each media portion of the plurality of media portions based on the media mapping information and identify each media portion of the plurality of media portions as a separate Object Storage Device (OSD) in an object based storage cluster such that each disk surface or die of the plurality of media portions is identified as a separate OSD.

32. The method of claim 31 , further comprising:

creating a replacement partition table indicating the one or more ranges of multiple addresses assigned to each media portion of the plurality of media portions;

receiving a request from the host via requesting data from a partition table stored in a media portion; and

in response to the request from the host, sending data from the replacement partition table as the media mapping information.

33. The method of claim 31 , further comprising:

monitoring an indicator of reliability for storing data on a media portion of the plurality of media portions;

determining whether the indicator of reliability has reached a threshold; and

if the indicator of reliability has reached the threshold, sending a notification to the host to indicate a reliability status for the media portion.

34. The method of claim 33 , wherein the indicator of reliability indicates at least one of a frequency or an amount of errors for the media portion, a number of operations performed in the media portion, and an average time for performing operations in the media portion.

35. The method of claim 31 , wherein the plurality of media portions include at least one spare media portion reserved as a replacement media portion.

36. The method of claim 31 , further comprising sending the media mapping information to the host in response to a command received from the host.

Assignments (8)
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2015
From: MALINA, JAMES N.; ARUL DHAS, BENIXON; AZMI, MOHAMAD HASMIZAL; LIOU, AUSTIN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 036800/0021 →
Cited By (1)
US 12,481,436