US 12,306,749 B2
Redundant storage across namespaces with dynamically allocated capacity in data storage devices
Sridhar Sabesan, Bangalore (IN); Dinesh Babu, Bangalore (IN); and Pavan Gururaj, Bangalore (IN)
Assigned to Western Digital Technologies, Inc., San Jose, CA (US)
Filed by Western Digital Technologies, Inc., San Jose, CA (US)
Filed on Jul. 20, 2023, as Appl. No. 18/355,771.
Claims priority of provisional application 63/498,037, filed on Apr. 25, 2023.
Prior Publication US 2024/0362161 A1, Oct. 31, 2024
Int. Cl. G06F 12/02 (2006.01); G06F 3/06 (2006.01)
CPC G06F 12/023 (2013.01) [G06F 3/0604 (2013.01); G06F 3/0665 (2013.01); G06F 3/0689 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A system, comprising:
at least one data storage device, wherein each data storage device of the at least one data storage device comprises:
a non-volatile storage medium configured to store host data for at least one host system; and
a host interface configured to communicate with the at least one host system using a storage protocol; and
a controller configured to:
determine a plurality of host connections to a plurality of namespaces in the at least one data storage device, wherein:
each namespace of the plurality of namespaces has a first allocated capacity;
at least one namespace of the plurality of namespaces is configured to allocate a portion of the first allocated capacity to a floating namespace pool; and
the portion of the first allocated capacity allocated to the floating namespace pool remains allocated to that at least one namespace until used by another namespace;
determine a redundant array of independent disks (RAID) configuration comprising a RAID set of namespaces from the plurality of namespaces;
store, based on the RAID configuration, host data to the RAID set of namespaces;
determine, for a target namespace of the RAID set of namespaces, whether a filled mark of the target namespace meets a flexible capacity threshold for the target namespace; and
allocate, responsive to the filled mark meeting the flexible capacity threshold, a capacity unit from the floating namespace pool to the target namespace to increase the first allocated capacity to a second allocated capacity.