LOGICAL ZONE MAPPING

Information

  • Patent Application
  • 20150363126
  • Publication Number
    20150363126
  • Date Filed
    November 13, 2014
    10 years ago
  • Date Published
    December 17, 2015
    9 years ago
Abstract
A mass data storage system includes a plurality of communicatively coupled storage resources that are each controlled by one of a plurality of distinct storage controllers. Each of the storage resources are mapped to one or more logical zones, and the logical zones each apply an associated storage condition to data stored therein.
Description
BRIEF DESCRIPTIONS OF THE DRAWINGS


FIG. 1 illustrates an example mass data storage system with storage resources allocated between multiple logical zones.



FIG. 2 illustrates another example mass data storage system that implements logical zoning of storage resources.



FIG. 3 illustrates aspects of another example mass storage system that implements logical zoning of storage resources.



FIG. 4 illustrates another mass data storage system including an example control system for selecting one or more logical zones to receive data of a write request.



FIG. 5 illustrates example operations for mapping and selecting logical zones in a mass data storage system.



FIG. 6 illustrates additional example operations for mapping and selecting logical zones in a mass data storage system.







SUMMARY

Implementations disclosed herein provide for mapping a plurality of storage resources to one or more of multiple logical zones in a storage system. Each of the logical zones is associated with a different storage condition and defines a group of storage resources applying the associated storage condition to data stored therein.


This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter. These and various other features and advantages will be apparent from a reading of the following Detailed Description.


DETAILED DESCRIPTION

On-line mass data storage (sometimes referred to as secondary storage) refers to one or more interconnected data storage units that are actively running and available for read/write operations. Example on-line mass data storage units include hard disk drives (HDDs), optical drives, and flash memory drives. Typically, time-to-data (TTD) for on-line mass data storage units is less than 2 milliseconds. On-line mass data storage benefits from very high TTD capabilities, but is expensive to build and operate. More specifically, individual on-line mass data storage units are of high-quality, driving build costs up, and they consume significant power in an on-line state, driving operating costs up.


Near-line (or near on-line) mass data storage refers to one or more interconnected data storage units that are powered on, but in a low power consumption state and are brought to an on-line state before running read/write operations. Hard disk drives, optical drives, and/or flash memory drives may also be used for near-line storage, with the difference being an added mechanism to bring a selected storage unit to an on-line state for read/write operations. Such example mechanisms are robotic near-line storage (i.e., the system is aware of where a desired data chunk resides on a physical volume and utilizes a robotic mechanism to retrieve the physical volume for read/write operations) and hard drive near-line storage (e.g., massive array of idle discs (MAID)). MAID systems archive data in an array of disc drives that are operating in a standby power state, but most of which are not spinning. The MAID system spins up each disc drive on demand when desired to perform read/write data on a disc within that drive. Typically, TTD for MAID-type near-line mass data storage units is less than 4 milliseconds. Near-line mass data storage systems have lower operating costs than on-line mass data storage systems due to the reduced power demand, but have similar build costs.


Off-line (or cold) mass data storage refers to one or more interconnected data storage units that are kept in a power off state and/or utilize remotely located storage media to store data. Typically, off-line mass data storage utilizes one or more interconnected tape drives, each with numerous tapes associated with the drive. As discussed above with regard to robotic near-line storage, a desired tape is retrieved from its storage location and loaded into its associated drive for read/write operations. In off-line tape mass data storage units, the desired tape is often manually retrieved and loaded, and as a result TTD for off-line tape mass data storage units can be greater than 24 hours. While the build and operating costs of off-line tape mass data storage are low, some applications require a faster access time than 24 hours, but not as fast as on-line or near-line mass data storage systems.


The disclosed off-line HDD mass data storage systems can achieve TTD greater than 4 ms and typically faster than that of off-line tape mass data storage while maintaining build and operating costs competitive with off-line tape mass data storage. According to one implementation, storage resources in the disclosed off-line HDD mass data storage systems are classified into logical zones based on a storage condition applied to data stored in each respective zone. The usage of logical zones enhances system performance in a variety of ways and also provides a diverse array of storage options for an end user.



FIG. 1 illustrates an example mass data storage system 100 with storage resources allocated between multiple logical zones (e.g., logical zones 126, 136) that store data according to a common storage condition. The storage system 100 (e.g., a server cluster or farm) is comprised of a number of storage racks (e.g., storage racks 102, 104) oriented in adjacent or separate physical locations or facilities (e.g., data rooms or centers). In some implementations, a first quantity of storage racks is located in a first server facility, a second quantity of storage racks is located in a second server facility, and so on. The server facilities may be separated by any distance (e.g., several feet or many miles). The storage system 100 may accommodate any number of storage racks and each rack is located in one of any number of server facilities. The storage system 100 may accommodate any use of mass data storage (e.g., content delivery, backup, archiving, running scientific simulations such as computational fluid dynamics, and rendering computer generated imagery, such as a render farm).


The individual storage racks are interconnected to one another via a computer network 106 (e.g., Gigabit Ethernet or a custom interconnect network). Further, the interconnected storage racks may be connected to one or more external data source(s)/destination(s) 108 via the same computer network 106 or an additional interconnected network (e.g., a local area network or a wide area network, not shown) using a variety of communication protocols (e.g., TCP/IP, packet over SONET/SDH, multiprotocol label switching (MPLS), asynchronous transfer mode (ATM), Ethernet, and frame relay). As a result, data may be moved between the individual storage racks and the external data source(s)/destination(s) 108 as desired.


Each individual storage rack includes an array of storage media units, each powered by a power supply (e.g., a power supply 164) and configured to receive data transfer requests (e.g., read/write requests) from a rack controller (alternatively referred to as a storage rack server or a storage system server). For example, storage rack 102 includes 12 individual storage media units (e.g., storage media unit 110) and power supply 164 controlled by rack controller 118. Storage rack 104 includes 6 individual storage media units (e.g., storage media unit 112) and power supply 166 controlled by rack controller 120. In some implementations, individual storage racks may include greater or fewer individual storage media units than the depicted 12 and 6 storage media units per storage rack. In other implementations, some racks may not include a rack controller and/or an individual rack controller may control multiple racks.


Each media unit within a storage rack comprises an array of individual storage drives controlled by a same media unit controller. For example, the media unit 110 includes 6 individual storage drives (e.g., storage drive 114) that are each read and written to by a media unit controller 122. The media unit 112 includes 4 individual storage drives (e.g., storage drive 116) that are each read and written to by a media unit controller 124. In other implementations, individual storage media units may include greater or fewer storage drives than the depicted 6 and 4 storage drives per media unit.


As shown, the power supply units 164, 166 power multiple media units (e.g., an entire associated rack, either rack 102 or rack 104). However, in another implementation, there exist multiple power supply units per rack and/or each power supply unit powers a single associated media unit. An upper end power capability of each individual power supply may determine how many storage drives may be operated simultaneously by that power supply, which may range from a single media unit to multiple media units.


In some implementations, the individual media units are selectively installed and uninstalled from the storage rack (e.g., configured as a blade, which corresponds to the storage rack physical configuration). In an example standard server-rack configuration, the individual storage racks are each subdivided into individual rack units (e.g., 42 rack units), where each media unit is physically dimensioned to fill one rack unit (i.e., 19 inches wide by 1.75 inches tall) and thus each storage rack can accommodate a total of 42 media units. In other implementations, the storage rack is physically dimensioned to accommodate any desired number of media units.


In one implementation, each storage drive is a distinct storage medium or set of storage media with some or all of the read/write control functions of the storage drive removed to the corresponding media unit controller and/or rack controller of the mass data storage system 100. As a result, one or both of the media unit controller and/or rack controller of the mass data storage system can selectively power (e.g., power-on, power-off, spin-up, spin-down, etc.) an individual storage drive as desired to read/write data from the individual storage drive without having to supply power to the individual storage drive continuously.


In various implementations, the individual storage drives in each of the media unit have characteristics present in existing state of the art storage drives with the exception that some or all of the control hardware and software is removed to the corresponding media unit controller and/or rack controller, thereby centralizing control functions of the individual storage drives to a media unit level and/or a rack level. Further, the individual storage drives may utilize any available storage technology (e.g., magnetic storage, optical storage, semiconducting storage (e.g., flash-based solid state)). In the illustrated implementation, each of the storage resources in an individual media unit is managed by a same controller. For example, the media unit controller 122 manages and directs read and write operations to each of the six storage resources (e.g., a disk drive 114) in the media unit 110.


Further, by moving some or all of the control hardware/software of the individual storage drives out of the individual storage drives and into the corresponding media unit controller and/or rack controller, the individual storage drives may have disparate characteristics and the operation of the mass data storage system 100 may be optimized based on the performance characteristics of the storage drives available within the system 100. In one example implementation, each of the individual storage drives within a media unit has disparate performance characteristics, but each media unit has the same performance characteristics (i.e., similar within industry acceptable tolerances).


Storage resources in the system 100 are partitioned into a number of logical zones (e.g., a logical zone 126, 136) that are each configured to stored data according to a same storage condition. For simplicity, the storage resources included in each of the illustrated logical zones 126 and 136 are shown to be in physical proximity to other storage resources in the same logical zone 126 or 136. However, physical proximity is not a requirement of resources in a shared logical zone. In some implementations, a logical zone can include storage resources from different media units, racks, and even facilities (e.g., geographical locations). For example, a zone may include storage resources communicatively coupled via the computer network 106 but located at computer farms in different geographical regions.


When a data transfer request (e.g., read or write command) is received by a controller (e.g., one of the rack controllers 118, 120) in the system 100, the controller selects a logical zone to receive data or act as a data source for execution of the data transfer request. Some or all of the individual logical zones (e.g., the logical zones 126 and 136) stores data according to a storage condition that is different from a storage condition of one or more other logical zones in the system 100.


A “storage condition” of a logical zone may refer to, for example, a performance characteristic satisfying an operational threshold common to storage resources in a logical zone; a method of data storage (e.g., level of integrity or data security) provided by storage resource(s) in a same logical zone; and/or a degree of data integrity attributable to a structural arrangement of storage resource(s) in a same logical zone. Examples of these and other storage conditions utilized in defining logical zones (e.g., the logical zones 126, 136, 140) are discussed in greater detail below with respect to FIGS. 2-3.


Using logical zones to sort and store incoming data can provide a number of benefits. For example, a likelihood of data loss due to power supply failure can be diminished if storage resources are assigned to logical zones based on a distribution of power resources (e.g., power supply units 164, 166). Further, read and write latencies can by decreased by zoning the storage resources according to common performance characteristics, such as by storage capacity, rotational speed, time-to-data (TTD), etc. Further still, the use of logical zoning can provide a diverse selection of storage options to an end user. For example, a system implementing logical zoning according to the disclosed implementations may allow a user to select a desired type of storage, a desired security protocol, a desired degree of compression, desired degree of redundancy, desired speeds of accessibility, and more.



FIG. 2 illustrates another example mass data storage system 200 that implements logical zoning of storage resources for data management. The mass data storage system 200 includes multiple racks (e.g., racks 202, 204, and 206) that each includes a rack controller (e.g., rack controllers 218, 219, 220) and at least one power supply unit (e.g., power supply units 264, 265, 266) powering the storage resources on the associated rack. Although three racks (e.g., racks 202, 204, and 206) are shown in FIG. 2, the mass data storage system 200 may include any number of racks and media units at one or more physical storage facilities.


Each of the racks 202 and 204 further includes an array of media units (e.g., media units 210, 212), and each of the media units includes a media unit controller (e.g., a media unit controller 222). Each of the rack controllers 218, 219, and 220 is communicatively coupled to the media unit controllers within the corresponding rack (e.g., the racks 202, 204, and 206 respectively), and each of the media unit controllers are communicatively coupled to an associated nest of storage drives (e.g., via compute nodes, serial attached SCSI (SAS) connections, etc.)


Controllers (e.g., rack controllers and/or media unit controllers) of each individual rack may be communicatively coupled to the controllers of other racks in the system. For example, the rack controller 218 may be able to send and receive data transfer requests to and from the other rack controllers 219 and 220, and to other racks in the mass data storage system 200, such as those located at different storage facilities.


Each storage resource (e.g., a storage drive 214) in the mass data storage system 200 is assigned to an associated logical zone (e.g., logical zones A-H). For simplicity, the storage resources included in each of the illustrated logical zones A-H are shown to be in physical proximity to other storage resources in the same logical zone (e.g., each zone includes storage resources spanning a same row of media units across the racks 202, 204, and 206). However, physical proximity is not a requirement of resources in a same logical zone. For example, one logical zone (not shown) may include one or more drives within the media unit 210 in a top row of the rack 206, one or more drives within media unit 212 in a bottom row of the rack 206, and any number of storage resources from other racks in any physical location relative to the media units 210 and 212.


When a data transfer request is received by a controller (e.g., a rack controller and/or a media unit controller), the controller selects a logical zone, and also selects one or more specific storage resources in the selected logical zone on which to execute the data transfer request. The controller transmits the request along available channels within the identified logical zone to the appropriate media unit controller(s) tasked with managing read/writes of each of the selected resource(s).


Each of the different logical zones A-H is configured to store data according to one or more common storage conditions. By example and not limitation, a number of potential “storage conditions” are discussed below.


In one implementation, a logical zone “storage condition” is a degree of data integrity provided by a structural arrangement of resources in the logical zone. For example, logical zones may be defined so as to distribute available power supply units evenly between the storage resources in each logical zone. This concept is illustrated by the configuration of FIG. 2, wherein logical zone A applies a storage condition in which no more than two media units share a common power supply unit (e.g., power supply units 264, 265, and 266, respectively). As a result, unavailability of one or more of the media units due to a power supply failure is less likely to cause a delay in data transfer and/or prevent recoverability of requested data.


In one implementation, a write of data to logical zone ‘A’ entails writing error correction code (ECC) for the data on multiple different resources (e.g., media units on each of the racks 202, 204, 206) within the logical zone A. If one power supply unit of logical zone A fails, some of the storage resources go offline. However, data of the offline resource(s) may be recoverable using the ECC on the other resources in the logical zone that are unaffected by the power failure.


In another implementation, a storage condition applied by a logical zone is a maximum number of storage resources sharing a common field replaceable unit (FRU) (e.g., a media unit). As used herein, ‘FRU’ refers to a group of data resources that are collectively taken “offline” in order to replace an individual storage resource in the group. For example, all six storage drives within the media unit 210 may be taken temporarily offline in order to replace an individual storage drive 216 housed within the media unit 210. If an individual logical zone includes storage resources that are spread across a relatively large number of FRUs, the system 200 is less likely to be disrupted for data transfer requests occurring while one or more FRUs are offline. The reason for this is similar to that described above: ECC can be spread across multiple storage resources in a logical zone. If one media unit of logical zone A is ejected to replace a drive, data stored on the offline storage resource(s) may still be recoverable using the ECC stored on the other resources in the logical zone.


In other implementations, a storage condition applied by a logical zone is a maximum number of storage resources sharing some physical component other than an FRU or power supply (e.g., a fan). This storage condition mitigates system performance degradation in the event that the shared component fails.


In lieu of the above examples, the storage condition(s) applied within each of the logical zones A-H are not necessarily conditions attributable to structure or distribution of storage resources in a zone. In other implementations, the different logical zones (e.g., logical zones A-H) are managed by different data management modules. The different data management modules may execute a same command type (e.g., a write command, a read command, an erase command) according to a different set of processing operations. For example, a data management module of logical zone A may write data according to a first set of processing operations while a data management module of logical zone B writes data according to a second, different set of processing operations. In these implementations, the storage condition of a logical zone is an outcome of a processing operation applied to data stored within the logical zone. A few examples of this are provided below.


In one implementation, the storage condition of a logical zone is a degree of data redundancy with which data is saved in the logical zone. For example, a data management module of a first logical zone may implement a non-existent or a low level of redundancy (e.g., redundant array of independent discs (RAID 0-3), while a data management module of a second logical zone implements a medium level of redundancy (e.g., RAID 4-6), and a data management module of a third logical zone implements a high degree of redundancy (e.g., RAID 7-10).


In another implementation, a storage condition of a logical zone is an error correction code (ECC) rate utilized for writing data in each logical zone. For example, the data management module of logical zone A may write data according to a different ECC rate than that utilized by a data management module of zones B, C, D, etc.


In yet another implementation, a storage condition of a logical zone is a degree or type of encryption applied to data stored in the zone. For example, data management modules of various logical zones may each write data with a varying degree of encryption. A high-security encryption code is applied to data stored in a first logical zone; a medium security encryption code is applied to data stored in a second logical zone; a low security encryption code is applied to data stored in a third logical zone, etc.


Yet another example storage condition of a logical zone is a read/write priority that is associated with each read/write request to the logical zone. For example, read/write operations in a low quality of service (QOS) logical zone may only occur during idle time, while read/write operation in a high QOS logical zone may interrupt any current read/write operations being performed.


In still other implementations, a “storage condition” is a storage resource performance characteristic satisfying an operation threshold. Example performance characteristics include without limitation storage capacity, rotational speed of a storage resource (e.g., a disk), time-to-data (TTD), and storage resource cost. These, and other, performance characteristics are discussed in greater detail below:


In one implementation, a storage condition of a logical zone is a same or similar storage capacity shared by storage resources in the logical zone. For example, 4 terabyte drives have the capability of storing at least 4 terabytes of data and are formatted to store 4 terabytes of data. Drives that meet this threshold are referred to herein as having the same or similar storage capacity. Drives that do not have the capability of storing 4 terabytes of data and/or drives that are formatted to store a different quantity of data are referred to herein as having disparate storage capacity. Accordingly to one implementation, media units with a high storage capacity (or high data compression) are grouped into a high capacity logical zone, while media units with a particularly low storage capacity (or low data compression) are grouped into a low capacity logical zone. Zoning storage resources according to storage capacity allows for a uniform organization of meta data and increased disc capacity utilization.


In another implementation, all storage resources in a same logical zone share the same or similar rotational speeds (e.g., another example performance characteristic). For example, a 7,200 RPM storage drive varies from 7,200 RPM by no more than 1% during read/write operations. Drives that meet this operating limitation are referred to herein as having the same or similar rotational speeds. Drives that fail to meet this operating limitation are referred to herein as having disparate rotational speeds. According to one implementation, media units with a particularly high read/write speed are grouped into a high speed zone. Similarly, media units with a particularly low read/write speed may be grouped into a low speed zone.


In still another implementation, storage resources in a same logical zone are available are of the same or similar cost. For example, higher-cost (e.g., more reliable) storage resources may be assigned to a first zone, while lower-cost (e.g., less reliable) storage resources may be assigned to another zone.


In still another implementation, different logical zones include randomly writeable data units of a same or similar capacity. For example, the storage drive 216 may be a shingled magnetic recording disk drive including multiple shingled data bands that are each assigned to one of multiple different logical zones. In shingled magnetic recording, the term “shingled data band” refers to a grouping of adjacent data tracks written as a single unit. An update to one or more cells within a shingled data band includes re-writing the entire data band, including both changed and unchanged cells. By assigning shingled data bands to different logical zones based on storage capacity, a data write can be intelligently directed to a shingled band of an appropriate (comparable) size, reducing unnecessary read/write overhead.


In still other implementations, logical zones are used to partition different types of data. For example, logical zone A may store medical records from the state of Colorado; logical zone B may store uploaded user media files, etc.


In some implementations, selection of a logical zone for execution of a data write request is based on a storage characteristic of incoming data, or based on a storage characteristic specified in association with the data. Example storage characteristics are discussed in greater detail with respect to FIG. 3.



FIG. 3 illustrates aspects of another example storage system 300 that implements logical zoning of storage resources. The storage system 300 includes a zone manager 302 that receives data transfer requests from a computer network 306. Responsive to each data transfer request, the zone manager 302 selects a logical zone of the mass data storage system 300 on which to execute the data transfer request.


The zone manager 302 may include hardware and/or software implemented via any tangible computer-readable storage media within or communicatively coupled to the mass data storage system. The term “tangible computer-readable storage media” includes, but is not limited to, random access memory (“RAM”), ROM, EEPROM, flash memory or other memory technology, CDROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other tangible medium which can be used to store the desired information and which can accessed by mobile device or computer. In contrast to tangible computer-readable storage media, intangible computer-readable communication signals may embody computer readable instructions, data structures, program modules or other data resident in a modulated data signal, such as a carrier wave or other signal transport mechanism.


In various implementations, some or all functionality of the zone manager 302 (described below) may be implemented in rack controller (e.g., a rack controller 118, 120 of FIG. 1) of a mass storage system, one or more media unit controllers (e.g., a media unit controller 124 of FIG. 1) or other computing node(s) communicatively coupled to processing resources capable of initiating reads and writes within the storage system 300. In one implementation, the storage system 300 includes a massive network of controllers (e.g., rack controllers, media unit controllers) that manage read and write operations to multiple different storage resources with disparate performance characteristics.


Storage resources in the storage system 300 are divided into a number of logical zones. Each logical zone stores data according to a storage condition that is different from a storage condition of one or more other logical zones in the storage system 300. FIG. 3 generally illustrates eight logical zones (A-H), but any number of such zones is contemplated.


When the zone manager 302 receives a write request, the zone manager 302 selects an associated logical zone for execution of the write request. In one implementation, the zone manager 302 selects a logical zone and one or more resources within the selected logical zone to receive the data. The zone manager 302 then directs the read/write request to one or more appropriate controllers with read/write authority to the selected resources. In another implementation, the zone manger 302 selects a logical zone but does not specifically select which resources in the logical zone may receive data of the write request. In this case, the zone manager 302 may simply forward the data write request to another controller, such as a zone-level controller specifically designated for selecting resources to receive incoming data.


The selection of a logical zone for execution of a data write request is based on a storage characteristic associated with the request. More specifically, the storage characteristic may be identified: (1) based on information implicit in the request, such as the size of a data write; (2) based on information specified by a user initiating the write request (e.g., within the request or in association with the request); (3) based on settings of a user subscription to storage on the storage system 300; or (4) based on a source of a particular data transfer request (e.g., an IP address, geographical region, etc.).


For example, a user may subscribe to storage on the system 300 (e.g., cloud-based storage) and elect, either by indicating preference or selecting a particular subscription plan, one or more storage characteristics that the zone manger 302 associates with data from that user. A group of users, such as those affiliated with a business (e.g., a shared IP address) may share a subscription. Further, certain logical zones may not be available for requests arriving from certain users, IP addresses, etc.


In one implementation, the zone controller 302 selects a logical zone for a write request based on a size of data to be written (e.g., one example storage characteristic). If, for example, the various logical zones group together shingled data bands of the same or similar size, the zone controller 302 may select a logical zone to receive data that includes shingled data bands of capacity comparable to (e.g., equal to or just slightly larger than) the size of the data.


In another implementation, the zone controller 302 selects a logical zone for a write operation based on a specified storage characteristic. For example, the storage characteristic may be specified by a user or in association with a user's subscription, profile, location, etc. For example, a user may specify or subscribe to a desired level of data integrity (e.g., redundancy) with which to save the data of the write request. The data is then directed to a logical zone that applies a corresponding degree of redundancy to the data stored therein. For example, high integrity data is directed to a high redundancy logical zone (e.g., RAID 7-10); medium integrity data is directed to a “medium redundancy” logical zone (e.g., RAID 4-6); and “low integrity data” is directed to a “low redundancy” logical zone (e.g., RAID 0-3).


In other implementations, the storage characteristic used to select a logical zone is a specified type of error correction code (e.g., LDPC, modulation codes, etc.). In this case, the data management system 300 directs the write request to a logical zone applying requested type of error correction code to data stored therein.


In another implementation, the zone controller 302 selects a logical zone for a write operation based on a specified frequency or a priority with which associated data is to be accessed. For example, data that needs to be frequently and/or quickly accessed may be directed to storage resources in a high-speed logical zone, while data that is infrequently accessed or not urgent when accessed is directed to storage resources in a low speed zone. Similarly, data considered high priority may be written to a higher QOS zone while data considered lower priority may be written to a lower QOS zone.


In yet another implementation, the zone controller 302 selects a logical zone for a write operation based on a specified degree or type of security (e.g., data encryption). For example, the write request may specify a level of desired security (e.g., high security, low security). Data that is particularly sensitive or confidential may be specified as “high security” and stored in a high security logical zone (e.g., a zone applying a sophisticated encryption scheme), while data that is neither particularly sensitive nor confidential can be specified as “low security” and stored in a low security logical zone. A “high-security” logical zone may be, for example, a zone that utilizes advanced encryption techniques, such as techniques that allow for secure erasure and removal of the data.


In some implementations, the logical zones may overlap, providing different logical zone assignments for storage resources based on one or more performance characteristics associated with a particular data set to be stored therein. For example, Logical Zone A may be “fast-access” zone, Logical Zone G may be a “high QOS priority zone;” and Logical Zone H may be a “low QOS priority zone.” A storage resource with a short TTD could belong to Logical Zone A and also belong to one of Logical Zones G or H.


Higher-performing logical zones may have a higher cost associated with them that may be passed along to a user of the mass data storage system 300 in the form of a surcharge. Similarly, lower-performing logical zones may have a lower cost associated with them that is also passed along to the user of the mass data storage system in the form of a discount.


In some implementations, incoming data is assigned to a logical zone based on an attribute of the data identified by the zone manager 302. For example, the zone manager 302 may be programmed to recognize that incoming data is a medical record, or that the medical record geographically originates from Colorado. Colorado medical records may all be directed to a same logical zone. In various other implementations, the zone manager 302 assigns data to a logical zone by identifying a data type, geographic source, author or originator, security, confidentiality level, character encoding, a checksum, a cryptographic hash, a digital signature, etc. In some implementations, the zone manager 302 appends the incoming data with an extended file attribute describing characteristics of the data.



FIG. 4 illustrates another mass data storage system 400 including an example control system 402 for selecting one or more logical zones to receive data of a write request. Aspects of the control system 402 may be contained within a rack controller (e.g., rack controller 118, 120 of FIG. 1) and/or a media unit controller (e.g., media unit controller 124 of FIG. 1) associated with each individual storage drive (e.g., a storage drive 214 of FIG. 2) of the mass data storage system 400. In some implementations, aspects of the mass data storage system 400 may span multiple racks and/or geographic locations.


The control system 402 includes a storage interface 440 that allows the mass data storage system to receive incoming data from external data source(s) from a computer network 406 and send outgoing data to external data destination(s) (see, e.g., external data source(s) and destination(s) 108 of FIG. 1) that may have disparate operating systems operating over one or more computer networks (see e.g., computer network 106 of FIG. 1).


The control system 402 further includes a power manager 452 that queries computing nodes (e.g., controllers) to discover power information and create a power map 456 detailing physical distribution of storage resources and power availability within the storage system 400. A zone manager 442 discovers performance characteristics of various system storage resources by querying system controllers (e.g., other rack controllers and/or media unit controllers) for such information. Additionally, the zone manager 442 works in conjunction with a read/write manager 446 to identify available types of data management schemes (e.g., encryption, compression, etc.). Using the discovered performance characteristics, power map 456, and/or information from the read/write manager 446, the zone manager 442 generates a zone map 444 that groups the various storage resources of the data storage system 400 into logical zones.


In one implementation, zone manager 442 selects one or more logical zones for each storage resource based on performance features that are common between different storage resources (e.g., storage capacity, access speed, drive reliability, etc.). In another implementation, the zone manager 442 selects one or more logical zones for each storage resource according to a scheme that ensures a particular distribution of storage drives between various power resources and/or across various FRUs in the storage system 400. In still other implementations, the zone manager 442 groups one or more storage resources into logical zones based on instructions from the data read/write manager 446. For example, the read/write manager 446 may identify a number of resources to apply a first data management scheme (e.g., a sophisticated encryptions scheme) and a number or resources to apply a different data management scheme (e.g., a low-level encryption scheme).


Periodically, the zone manager 442 may re-generate the zone map 444 to take away or add storage capacity to one or more logical zones in the system. If, for example, storage resources in one logical zone are taken offline (e.g., to replace a drive or other component), the zone manager may elastically re-allocate additional storage resources to that zone to keep zone capacity the same. This reallocation may occur on a time schedule for re-evaluating the storage needs of the mass data storage system or on-demand as the storage needs of the mass data storage system change.


To elastically re-allocate resources, the zone manager 442 may consult an elastic capacity library 450 including a master listing of storage resources that are either temporarily allocated to a particular zone or available for reallocation. Using such information, the zone manager 442 can dynamically reallocate storage resources between logical zones and dynamically increase logical zone capacity as needed.


For example, the zone manager 442 may determine that incoming data is to be stored in a first logical zone that does not have sufficient available storage space due to the fact that one or more storage drives are currently offline (e.g., for maintenance). In such case, the zone manager 442 may consult the elastic capacity library 450 to identify a storage location where the incoming data can be temporarily stored according to the storage condition of the first logical zone. Once the offline storage resources become available in the first logical zone, the data can be moved from the temporary storage location to a more permanent storage location within the first logical zone.


In another implementation, the zone manager 442 works in conjunction with the elastic capacity library 450 to permanently increase a storage capacity of a given logical zone.


For example, the demand for storage capacity in a logical zone may, at some point, exceed the available storage capacity in that logical zone. Rather than query a user to replace disks or media units, the zone manager 442 can simply re-allocate unused storage capacity of one logical zone to another logical zone that is in need of increased storage capacity.


In yet another implementation, the zone manager 442 tracks health and wear-leveling of various storage resources within each zone, anticipates the failures of the various storage resources, adds capacity to each zone as needed (e.g., via the elastic capacity library 450), and automatically moves data between the old (e.g., failing) storage resources and the storage resources newly allocated to the logical zone.


In still another implementation, a consumer leases components of storage system implementing the control system 402. Depending on the terms of the licensing agreement, the user may not initially have write access to all of the storage resources in the storage system. For example, some storage resources may be in an offline (powered off) state until remotely activated. If the user upgrades a subscription plan, the zone manager 442 may be instructed to elastically allocate some of the previously inaccessible resources to one or more of the logical zones.


In some implementations, logical zones in the storage system 400 overlap, and a storage resource may be assigned to two or more logical zones. For example, a solid state device (SSD) may belong to a ‘high access speed logical zone’ exclusively including high speed devices and also belong to ‘high redundancy logical zone’ including both high-speed and low-speed devices.


In various implementations, the zone manager 442 is an object manager, a file system manager and may incorporate a proprietary interface, such as a block layer interface 454. The zone manager 442 is communicatively coupled, through the block layer interface 454, to a plurality of storage nodes (e.g., rack controllers, media unit controllers, etc.) within the mass storage system 400. Communication channels may allow for bidirectional data flow between all storage nodes in the mass data storage system 400. For example, the zone manager 442 may be communicatively coupled a plurality of different rack controllers; each rack controller may be communicatively coupled to media unit controllers within the corresponding rack; and each of the media unit controllers may be communicatively coupled to an associated nest of internal storage drives.


In implementations where incoming data is to be written to a logical zone that utilizes shingled magnetic recording (SMR) technology, the zone manager 442 consults with an SMR manager 448 to write the incoming data to an appropriate shingled logical zone. More specifically, the zone manger 442 consults the zone map 444 to select appropriate available storage space for the incoming data. The zone manager 442 instructs the SMR manager 448 to write the incoming data to the selected logical zone (and/or specific selected storage resources) within the storage system 400.



FIG. 5 illustrates example operations 500 for mapping and selecting logical zones in a mass data storage system. A mapping operation 505 maps different storage resources to different logical zones in the storage system. Each of the logical zones is defined based on a storage condition applied to data stored therein. The storage condition may be, for example, a performance characteristic satisfying an operational threshold common to storage resources in a logical zone; a method of data storage provided by storage resource(s) in a same logical zone; and/or a degree of data integrity attributable to a structural arrangement of storage resource(s) in a same logical zone.


A receiving operation 510 receives an incoming data transfer request (e.g., a read or write request). A determination operation 515 determines whether the data transfer request is a write request. If the data transfer request is a write request, a selection operation 520 selects one of the logical zones to receive the data based on a storage characteristic associated with the write request that satisfies the storage condition of the selected logical zone. For example, a logical zone may have a storage condition prohibiting writes of new data in excess of a threshold data size. If the incoming data has a size less than or equal to the threshold data size, the storage condition is satisfied.


In another implementation, a storage condition is an outcome of a processing operation performed on data stored within a specific zone. For example, the storage condition may be a level of security, redundancy, compression, type of encryption, etc. Such storage condition(s) may be satisfied, for example, if a user specifies a storage characteristic that matches the storage condition. For example, the user may select the storage characteristic (e.g., a desired redundancy) specifically within a read/write request, via a subscription service, a profile election, etc.


In still other implementations, a storage condition is a performance characteristic of storage resources in a given zone. For example, the storage resources may have a set capacity, be of a set type (disk, SSD, etc.), have a same or similar TTD, etc. Such storage condition(s) may be satisfied, for example, if a user specifies a storage characteristic that matches or otherwise satisfies the storage condition. For example, the user may select a desired TTD that falls within a range of TTDs provided by a particular logical zone.


If the determination operation 515 determines that the data transfer request is a read request rather than a write request, a selection and determination operation 525 selects a logical zone that includes the requested data and determines read parameters for the read operation based on the storage condition(s) applied within the selected logical zone. For example, selecting the logical zone including the requested data may entail accessing one or more mapping tables to that associate parameters of the incoming read command with physical storage location(s) within the storage system.


Storage conditions of the selected logical zone may influence read parameters of the read command. For example, a particular ECC rate may be utilized if the data is stored in a logical zone applying a specific ECC rate. Similarly, the read operation may be postponed until an landil time if the data is stored in a logical zone associated with a low QOS storage condition. Further still, the number of resources from which the data is retrieved may vary based on a redundancy associated with the logical zone where the data is stored. These read parameters are meant to be explanatory and do not by any means contemplate all storage conditions that may affect read parameters related to execution of the read command.



FIG. 6 illustrates additional example operations 600 for mapping and selecting logical zones in a mass data storage system. A mapping operation 605 maps different storage resources to different logical zones in the storage system. Each of the different logical zones is defined to have an independent power source for a set number of storage resources.


A selection operation 610 selects multiple storage resources within a logical zone to receive data of a write request. For example, an independent power source may power no more than ¼ of the storage resources in any one zone. If ECC for incoming data of a write request is written to ½ of the storage resources in a logical zone, then the ECC is guaranteed to be accessible on at least one storage resource even if one of the power sources fails. This decreases a risk of system performance degradation in the event of a power source failure.


The embodiments of the disclosed technology described herein are implemented as logical steps in one or more computer systems. The logical operations of the presently disclosed technology are implemented (1) as a sequence of processor-implemented steps executing in one or more computer systems and (2) as interconnected machine or circuit modules within one or more computer systems. The implementation is a matter of choice, dependent on the performance requirements of the computer system implementing the disclosed technology. Accordingly, the logical operations making up the embodiments of the disclosed technology described herein are referred to variously as operations, steps, objects, or modules. Furthermore, it should be understood that logical operations may be performed in any order, adding and omitting as desired, unless explicitly claimed otherwise or a specific order is inherently necessitated by the claim language.


The above specification, examples, and data provide a complete description of the structure and use of exemplary embodiments of the disclosed technology. Since many embodiments of the disclosed technology can be made without departing from the spirit and scope of the disclosed technology, the disclosed technology resides in the claims hereinafter appended. Furthermore, structural features of the different embodiments may be combined in yet another embodiment without departing from the recited claims.

Claims
  • 1. A method comprising: mapping a plurality of storage resources to one or more of multiple logical zones in a storage system, each of the storage resources having a storage controller and each of the logical zones associated with a different storage condition and defining a group of storage resources applying the associated storage condition to data stored therein.
  • 2. The method of claim 1 further comprising: selecting one of the logical zones to receive data of a write request based on a storage characteristic of the write request satisfying the storage condition of the logical zone that was selected.
  • 3. The method of claim 2 wherein the storage characteristic is specified in the write request.
  • 4. The method of claim 2 wherein the storage characteristic is determined based on a user's subscription to a storage service.
  • 5. The method of claim 2 wherein the storage condition and the storage characteristic indicate a degree of data integrity.
  • 6. The method of claim 2 wherein the storage condition is a size of a shingled magnetic recording band and the storage characteristic is a size of the data of the write request.
  • 7. The method of claim 2 wherein the storage condition and the storage characteristic indicate a level of encryption for data of the write request.
  • 8. The method of claim 2 wherein the storage condition is an access speed and the storage characteristic refers to a time-to-data (TTD) in which data of the write request can be accessed.
  • 9. The method of claim 1 wherein the storage resources have disparate physical characteristics.
  • 10. A storage system comprising: a zone manager configured to map a plurality of storage devices to one of multiple logical zones in the storage system, each of the storage devices having a distinct storage controller and each of the logical zones associated with a different storage condition and defining a group of storage devices applying the associated storage condition to data stored therein.
  • 11. The storage system of claim 10 further comprising: a write manager configured to select one of the logical zones to receive data of a write request based on a storage characteristic of the write request satisfying the storage condition of the selected logical zone.
  • 12. The storage system of claim 11 wherein the storage condition and the storage characteristic indicate a degree of data integrity.
  • 13. The storage system of claim 11 wherein the storage condition and the storage characteristic indicate of a level of encryption for data of the write request.
  • 14. The storage system of claim 11 wherein the storage condition is an access speed and the storage characteristic refers to a time-to-data (TTD) in which data of the write request can be accessed from the storage system.
  • 15. The storage system of claim 11 wherein each of the logical zones is defined to have an independent power source for each of a predetermined number of storage devices.
  • 16. The storage system of claim 10 wherein each of the different logical zones is defined to include storage devices of substantially the same capacity.
  • 17. The storage system of claim 10 wherein the zone manager is configured to dynamically add or remove storage devices from each of the logical zones.
  • 18. A method comprising: mapping storage resources to different logical zones in a computer system, each of the logical zones defined to have an independent power source for each of a predetermined number of storage resources; andselecting multiple storage resources in a logical zone to receive data of a write request.
  • 19. The method of claim 18 wherein each of the different logical zones is defined to have a maximum number of storage resources in a same field replaceable unit.
  • 20. The method of claim 18 wherein at least two of the storage resources are managed by different storage controllers.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims benefit of priority to U.S. Provisional Patent Application No. 62/012,205 entitled “Off-line/On-line Mass Data Storage Management” and filed on Jun. 13, 2014, and also claims benefit of priority to U.S. Provisional Patent Application No. 62/012,219 entitled “Off-line/On-line Mass Data Storage System” and filed on Jun. 13, 2014. Both of these applications are specifically incorporated by reference for all that they disclose or teach.

Provisional Applications (2)
Number Date Country
62012205 Jun 2014 US
62012219 Jun 2014 US