US20160034202A1 - Multi-tiered storage device system and method thereof - Google Patents

Multi-tiered storage device system and method thereof Download PDF

Info

Publication number
US20160034202A1
US20160034202A1 US14/746,878 US201514746878A US2016034202A1 US 20160034202 A1 US20160034202 A1 US 20160034202A1 US 201514746878 A US201514746878 A US 201514746878A US 2016034202 A1 US2016034202 A1 US 2016034202A1
Authority
US
United States
Prior art keywords
storage
data
mtsd
storage devices
devices
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/746,878
Inventor
Yaniv Romem
Omri Mann
Ofer Oshri
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Excelero
Original Assignee
Excelero
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US201462030700P priority Critical
Priority to US201462085568P priority
Priority to US201462096908P priority
Priority to US201562119412P priority
Priority to US201562126920P priority
Application filed by Excelero filed Critical Excelero
Priority to US14/746,878 priority patent/US20160034202A1/en
Assigned to EXCELERO reassignment EXCELERO ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: MANN, OMRI, OSHRI, OFER, ROMEM, YANIV
Publication of US20160034202A1 publication Critical patent/US20160034202A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0602Dedicated interfaces to storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0602Dedicated interfaces to storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0628Dedicated interfaces to storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0668Dedicated interfaces to storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0668Dedicated interfaces to storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from or digital output to record carriers, e.g. RAID, emulated record carriers, networked record carriers
    • G06F3/0601Dedicated interfaces to storage systems
    • G06F3/0668Dedicated interfaces to storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/06Answer-back mechanisms or circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network-specific arrangements or communication protocols supporting networked applications
    • H04L67/10Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network
    • H04L67/1097Network-specific arrangements or communication protocols supporting networked applications in which an application is distributed across nodes in the network for distributed storage of data in a network, e.g. network file system [NFS], transport mechanisms for storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation

Abstract

A system for controlling a multi-tiered storage device (MTSD) includes a first group of storage devices and a second group of storage devices, wherein each storage device of the first group of storage devices has a higher endurance than each storage device of a second group of storage devices of the MTSD. A block of data is received by a controller of the MTSD, and is written to a storage device of the first group of storage devices. Upon determination that the block of data has been written to infrequently, the block of data is written to a storage device of the second group of storage devices. The block of data may then be erased from the storage device of the first group of storage devices. In some embodiments, a storage device from the first group is associated with the second group, upon determination that the storage has degraded.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This Application claims the benefit of U.S. provisional Application Nos. 62/126,920 filed on Mar. 2, 2015, 62/119,412 filed on Feb. 23, 2015, 62/096,908 filed on Dec. 26, 2014, 62/085,568 filed on Nov. 30, 2014, and 62/030,700 filed on Jul. 30, 2014, the entire disclosures of which are incorporated herein by reference for all purposes.
  • BACKGROUND
  • 1. Field
  • The disclosure generally relates to multi-tiered storage devices and particularly to controlling multi-tiered storage devices.
  • 2. Description of Related Art
  • Storage devices constructed in accordance with different technologies offer different advantages for different types of data. Hard disk drives (HDDs) are typically electro-mechanic devices storing data magnetically, offering low-cost storage. Solid-state drives (SSDs) are storage devices based on integrated circuits (ICs), using for example flash memory and offering higher-cost storage. While byte-for-byte SSDs are more expensive than HDDs, an SSD offers lower access times and lower latency than HDDs. Solutions exist which attempt to consolidate the advantages of different technologies, for example by creating hybrid drives, however the efficiency of these solutions is varying. Furthermore, SSDs constructed in accordance with different technologies offer different levels of write endurance.
  • SUMMARY
  • Exemplary embodiments overcome the above disadvantages and other disadvantages not described above. Also, an exemplary embodiment is not required to overcome the disadvantages described above, and an exemplary embodiment of the present inventive concept may not overcome any of the problems described above.
  • One or more exemplary embodiments provide a method for controlling a multi-tiered storage device (MTSD). The method includes receiving a block of data using a controller of the MTSD, the MTSD including a first storage including one or more storage devices, and a second storage including one or more storage devices, wherein each storage device of the first storage has a higher write endurance than each storage device of the second storage; writing, by the controller, the received block of data to a first storage device of the first storage; assigning a timestamp respective of the received block of data; writing, by the controller, the received block of data to a second storage device of the second storage, in response to determining that a time elapsed since the timestamp is above a first threshold value.
  • The method may further include erasing the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
  • A storage device of the first storage may be one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
  • The method may further include detecting a degradation in a physical parameter of the first storage device of the first storage; and associating the first storage device with the second storage.
  • The method may further include duplicating at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and removing the duplicated data from the first storage device of the first storage.
  • Detection of the degradation in the physical parameter may include determining that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
  • According to an aspect of another exemplary embodiment there is a system for controlling a multi-tiered storage device (MTSD). The system includes a processing unit (PU); an input/output (I/O) interface communicatively coupled to the MTSD, the MTSD includes a first storage including one or more storage devices, and a second storage including one or more storage devices, each storage device of the first storage has a higher write endurance than each storage device of the second storage; and a memory communicatively coupled to the PU, the memory storing instructions that when executed by the PU configure the system to: receive a block of data; write the received block of data to a first storage device of the first storage; assign a timestamp respective of the received block of data; and write the received block of data to a second storage device of the second storage, upon determination that a time elapsed since the timestamp is above a first threshold value.
  • The memory may further store instructions that when executed by the PU configure the system to erase the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
  • The first storage device may be one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
  • The memory may further store instructions that when executed by the PU configure the system to: detect a degradation in a physical parameter of the first storage device of the first storage; and associate the first storage device with the second storage.
  • The memory may further store instructions that when executed by the PU configure the system to: duplicate at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and remove the duplicated data from the first storage device.
  • The memory may further store instructions that when executed by the PU to detect the degradation in the physical parameter further configure the system to determine that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
  • A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute any of the methods described above.
  • According to another exemplary aspect of the present disclosure there is a system including: a controller; and a memory that stores information arranging storage devices in a multi-tiered storage device (MTSD) into at least two groups including a first group of storage devices and a second group of storage devices, the storage devices in the first group of storage devices have a write endurance that is higher than a write endurance of the storage devices of the second group of storage devices, wherein in response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller re-assigns the first storage device to the second group of storage devices.
  • In response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller may further cause data on the first storage device to be written to a second storage device of the first group of storage devices.
  • The system may be connected to the MTSD over a network.
  • Other features and aspects will be apparent from the following detailed description, the drawings, and the claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The foregoing and other objects, features and advantages will become apparent and more readily appreciated from the following detailed description taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 is a schematic illustration of system for controlling a multi-tiered storage device (MTSD) implemented according to an embodiment.
  • FIG. 2 is a schematic illustration of an MTSD in accordance with an embodiment.
  • FIG. 3 is a flowchart of a method for controlling an MTSD in accordance with an embodiment.
  • DETAILED DESCRIPTION
  • Below, exemplary embodiments will be described in detail with reference to accompanying drawings so as to be easily realized by a person having ordinary skill in the art. The exemplary embodiments may be embodied in various forms without being limited to the exemplary embodiments set forth herein. Descriptions of well-known parts are omitted for clarity, and like reference numerals refer to like elements throughout.
  • The exemplary embodiments disclosed herein are only examples of the many advantageous uses of the innovative teachings herein. In general, statements made in the specification of the present application do not necessarily limit any of the various claims. Moreover, some statements may apply to some inventive features but not to others. In general, unless otherwise indicated, singular elements may be in plural and vice versa with no loss of generality.
  • Storage devices degrade over time. For example, storage devices have an endurance. The term endurance as used herein can be considered as any of the life span of the storage device that a user can expect when reading and writing data, changing performance of the storage device over time, changing update latency of the storage device over time, changing access time of the storage device over time, and the like. A multi-tiered storage device (MTSD) includes a first group of storage devices and a second group of storage devices. The groups of storage devices may be determined by the relative endurance of the storage devices. For example, each storage device of the first group of storage devices may have a higher endurance than each storage device of a second group of storage devices of the MTSD.
  • A block of data may be received by a controller of the MTSD, and written to a first storage device that is part of the first group of storage devices. Upon determination that the block of data has been written to infrequently, the block of data may be written to a second storage device that is part of the second group of storage devices and the block of data may be erased from the first storage device. In this way, the life span of the second storage device (or any storage device in the second group of storage devices) may be preserved. In some exemplary embodiments, the classification of a storage device may change from the first group of storage devices to the second group of storage device. For example, over time the endurance of a certain storage device may degrade. In this case, that certain storage device, which was originally part of the first group of storage devices, becomes part of the second group of storage devices. This reclassification may occur in response to determining that the endurance or lifespan of a certain storage device has degraded beyond the threshold for being classified in the first group. The threshold for determining which classification a storage device should receive is arbitrary and may be set by the designer.
  • FIG. 1 is an exemplary and non-limiting schematic illustration of a system 100 for controlling a multi-tiered storage device implemented according to an exemplary embodiment. The system 100 includes at least one processing element 110, for example, a central processing unit (CPU). The CPU is coupled via a bus 105 to a memory 120. The memory 120 further includes a memory portion 122 that contains instructions that when executed by the processing element 110 perform the method described in more detail herein. The memory 120 may be further used as a working scratch pad for the processing element 110, a temporary storage, and others, as the case may be. The memory 120 may include volatile memory such as, but not limited to, random access memory (RAM), or non-volatile memory (NVM), such as, but not limited to, Flash memory. The memory 120 may further include memory portion 124 containing a timestamp respective of received blocks of data. The processing element 110 may be coupled to an input device 150 via the bus 105, for example. The processing element 110 may be further coupled with a database 130 via the bus 105, for example. The database 130 may hold a copy of the method executed in accordance with the disclosed technique. The database 130 may further include storage portion 135 containing a list of storage devices associated with an MTSD 200. The system 100 is communicatively coupled with the MTSD 200.
  • In some exemplary embodiments, the MTSD 200 is coupled via the bus 105 to the CPU. In other exemplary embodiments, the MTSD may be communicatively coupled with the system 100 through, for example, a network. The network may be configured to provide connectivity of various sorts, as may be desired based on the particular implementation, including but not limited to, wired and/or wireless connectivity, including, for example, local area network (LAN), wide area network (WAN), metro area network (MAN), worldwide web (WWW), Internet, and any combination thereof, as well as cellular connectivity.
  • FIG. 2 is a non-limiting exemplary schematic illustration of the MTSD 200. The MTSD 200 includes a first group of storage devices 210-1 through 210-N and a second group of storage devices 220-1 through 220-M, where ‘N’ and ‘M’ are integers having a value equal to, or greater than ‘1’. N and M may be the same value or different values. The first group of storage devices 210 is characterized in that each storage device 210-1 through 210-N has a higher write endurance than each of the storage devices of the second group of storage devices 220. For example, an MTSD 200 may associate all storage devices with a write endurance of fifty thousand (50,000) cycles and above with the first group of storage devices, and all storage devices with a write endurance below 50,000 cycles to the second group of storage devices 220. The MTSD 200 is coupled with a controller 230. In some embodiments, the first group of storage devices 210 may include solid state drives (SSDs). In certain embodiments, the second group of storage devices 220 may include SSDs and/or hard disk drives (HDDs). In some embodiments, the MTSD may have more than two tiers (groups) of storage devices, wherein each tier includes storage devices which each have a write endurance level that is within the threshold of that tier. Some storage technologies, such as solid-state drive technology, have a natural degradation of the storage device. In such embodiments, a controller may re-designate a degraded storage device from the first group of storage devices 210 to the second group of storage devices 220. Degradation may be determined, for example, by a controller 230 or a system 100, according to a threshold respective of a physical characteristic of a storage device, such as access time of the device, update latency, endurance or performance.
  • FIG. 3 is a non-limiting exemplary flowchart of a method for controlling a multi-tiered storage device (MTSD) in accordance with an embodiment. In S310 a block of data is received by a controller 230 to be written to the MTSD 200. In S320 the received block of data is written by the controller 230 to a storage device of a first group of storage devices 210 of the MTSD 200. Each storage device of the first group of storage devices 210 has a higher endurance than each storage device of a second group of storage devices 220 of the MTSD 200. In S330 a timestamp is assigned to the block of data, to determine the time in which the received block of data was written. In S340 a time elapsed is determined from the timestamp. In S350 a check is performed to determine if the determined time elapsed since the timestamp is above a determined first threshold. If yes, execution continues at S360, otherwise execution continues at S340. The threshold may be static, dynamic or adaptive. Static thresholds are predetermined thresholds that remain constant. Dynamic thresholds are forcefully changed, for example, at a certain time of day, a certain day of the year, and the like. Adaptive thresholds are changed in response to changes in characteristics of the MTSD 200 and may vary depending on a variety of parameters, such as total free memory in the MTSD 200, and the like. In 5360 the received block of data is written to a storage device of the second group of storage devices 220. The block of data on the storage device of the first group of storage devices 210 is now redundant, and may be erased, in some embodiments.
  • In some embodiments, a degradation in a physical parameter of a storage device 210-1 of the first group of storage devices 210 is detected. Detection of the degradation includes determining that the physical parameter of the at least a storage device is below a second threshold value. The physical parameter may be endurance, performance, update latency, access time, and the like. At least a portion of data stored on the storage device 210-1 is duplicated and stored on the storage device 210-2 of the first group of storage devices 210. Once the data is stored on the second storage device 210-2, the duplicated data is removed from the first storage device 210-1 and the first storage device 210-1 becomes associated with the second group of storage devices 220.
  • The principles herein are implemented as hardware, firmware, software or any combination thereof. Moreover, the software is preferably implemented as an application program tangibly embodied on a program storage unit or computer readable medium. The application program may be uploaded to, and executed by, a machine including any suitable architecture. Preferably, the machine is implemented on a computer platform having hardware such as a processing unit (“CPU”), a memory, and input/output interfaces. The computer platform may also include an operating system and microinstruction code. The various processes and functions described herein may be either part of the microinstruction code or part of the application program, or any combination thereof, which may be executed by a CPU, whether or not such computer or processor is explicitly shown. In addition, various other peripheral units may be connected to the computer platform such as an additional data storage unit and a printing unit and/or display unit.
  • All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the principles of the disclosure and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions. Moreover, all statements herein reciting principles, aspects, and embodiments, as well as specific examples thereof, are intended to encompass both structural and functional equivalents thereof. Additionally, it is intended that such equivalents include both currently known equivalents as well as equivalents developed in the future, i.e., any elements developed that perform the same function, regardless of structure.

Claims (16)

What is claimed is:
1. A method for controlling a multi-tiered storage device (MTSD), the method comprising:
receiving a block of data using a controller of the MTSD, the MTSD comprising a first storage comprising one or more storage devices, and a second storage comprising one or more storage devices, wherein each storage device of the first storage has a higher write endurance than each storage device of the second storage;
writing, by the controller, the received block of data to a first storage device of the first storage;
assigning a timestamp respective of the received block of data; and
writing, by the controller, the received block of data to a second storage device of the second storage, in response to determining that a time elapsed since the timestamp is above a first threshold value.
2. The method of claim 1, further comprising:
erasing the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
3. The method of claim 1, wherein a storage device of the first storage is one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
4. The method of claim 1, further comprising:
detecting a degradation in a physical parameter of the first storage device of the first storage; and
associating the first storage device with the second storage.
5. The method of claim 4, further comprising:
duplicating at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and
removing the duplicated data from the first storage device of the first storage.
6. The method of claim 4, wherein detection of the degradation in the physical parameter comprises:
determining that the physical parameter of the first storage device is below a second threshold value, the physical parameter comprises at least one of endurance, performance, update latency and access time.
7. A system for controlling a multi-tiered storage device (MTSD), the system comprising:
a processing unit (PU);
an input/output (I/O) interface communicatively coupled to the MTSD, the MTSD comprises a first storage comprising one or more storage devices, and a second storage comprising one or more storage devices, each storage device of the first storage has a higher write endurance than each storage device of the second storage; and
a memory communicatively coupled to the PU, the memory storing instructions that when executed by the PU configure the system to:
receive a block of data;
write the received block of data to a first storage device of the first storage;
assign a timestamp respective of the received block of data; and
write the received block of data to a second storage device of the second storage, upon determination that a time elapsed since the timestamp is above a first threshold value.
8. The system of claim 7, wherein the memory further stores instructions that when executed by the PU configure the system to erase the received block of data from the first storage device of the first storage, in response to determining that the received block of data was written to the second storage device of the second storage.
9. The system of claim 7, wherein the first storage device is one from among a solid-state drive (SSD), and a hard-disk drive (HDD).
10. The system of claim 7, wherein the memory further stores instructions that when executed by the PU configure the system to:
detect a degradation in a physical parameter of the first storage device of the first storage; and
associate the first storage device with the second storage.
11. The system of claim 10, wherein the memory further stores instructions that when executed by the PU configure the system to:
duplicate at least a portion of data stored on the first storage device of the first storage to another storage device of the first storage; and
remove the duplicated data from the first storage device.
12. The system of claim 10, wherein the memory further stores instructions that when executed by the PU to detect the degradation in the physical parameter further configure the system to determine that the physical parameter of the first storage device is below a second threshold value, the physical parameter includes at least one of endurance, performance, update latency and access time.
13. A non-transitory computer readable medium having stored thereon instructions for causing one or more processing units to execute the method according to claim 1.
14. A system comprising:
a controller; and
a memory that stores information arranging storage devices in a multi-tiered storage device (MTSD) into at least two groups including a first group of storage devices and a second group of storage devices, the storage devices in the first group of storage devices have a write endurance that is higher than a write endurance of the storage devices of the second group of storage devices,
wherein in response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller re-assigns the first storage device to the second group of storage devices.
15. The system according to claim 14, wherein in response to the write endurance of a first storage device of the first group of storage devices falling below a threshold, the controller further causes data on the first storage device to be written to a second storage device of the first group of storage devices.
16. The system according to claim 14, wherein the system is connected to the MTSD over a network.
US14/746,878 2014-07-30 2015-06-23 Multi-tiered storage device system and method thereof Abandoned US20160034202A1 (en)

Priority Applications (6)

Application Number Priority Date Filing Date Title
US201462030700P true 2014-07-30 2014-07-30
US201462085568P true 2014-11-30 2014-11-30
US201462096908P true 2014-12-26 2014-12-26
US201562119412P true 2015-02-23 2015-02-23
US201562126920P true 2015-03-02 2015-03-02
US14/746,878 US20160034202A1 (en) 2014-07-30 2015-06-23 Multi-tiered storage device system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/746,878 US20160034202A1 (en) 2014-07-30 2015-06-23 Multi-tiered storage device system and method thereof

Publications (1)

Publication Number Publication Date
US20160034202A1 true US20160034202A1 (en) 2016-02-04

Family

ID=55180065

Family Applications (5)

Application Number Title Priority Date Filing Date
US14/698,121 Active 2035-11-23 US9658782B2 (en) 2014-07-30 2015-04-28 Scalable data using RDMA and MMIO
US14/724,971 Active 2036-01-29 US10976932B2 (en) 2014-07-30 2015-05-29 Method for providing a client device access to a plurality of remote storage devices
US14/726,919 Active 2036-05-04 US9971519B2 (en) 2014-07-30 2015-06-01 System and method for efficient access for remote storage devices
US14/746,878 Abandoned US20160034202A1 (en) 2014-07-30 2015-06-23 Multi-tiered storage device system and method thereof
US15/975,379 Active US10788992B2 (en) 2014-07-30 2018-05-09 System and method for efficient access for remote storage devices

Family Applications Before (3)

Application Number Title Priority Date Filing Date
US14/698,121 Active 2035-11-23 US9658782B2 (en) 2014-07-30 2015-04-28 Scalable data using RDMA and MMIO
US14/724,971 Active 2036-01-29 US10976932B2 (en) 2014-07-30 2015-05-29 Method for providing a client device access to a plurality of remote storage devices
US14/726,919 Active 2036-05-04 US9971519B2 (en) 2014-07-30 2015-06-01 System and method for efficient access for remote storage devices

Family Applications After (1)

Application Number Title Priority Date Filing Date
US15/975,379 Active US10788992B2 (en) 2014-07-30 2018-05-09 System and method for efficient access for remote storage devices

Country Status (1)

Country Link
US (5) US9658782B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901787A (en) * 2017-12-08 2019-06-18 比亚迪股份有限公司 The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system
CN109903792A (en) * 2017-12-08 2019-06-18 比亚迪股份有限公司 The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936200B2 (en) 2014-07-30 2021-03-02 Excelero Storage Ltd. System and method for improved RDMA techniques for multi-host network interface controllers
US10979503B2 (en) 2014-07-30 2021-04-13 Excelero Storage Ltd. System and method for improved storage access in multi core system
US9112890B1 (en) 2014-08-20 2015-08-18 E8 Storage Systems Ltd. Distributed storage over shared multi-queued storage device
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
US9712619B2 (en) 2014-11-04 2017-07-18 Pavilion Data Systems, Inc. Virtual non-volatile memory express drive
US9565269B2 (en) * 2014-11-04 2017-02-07 Pavilion Data Systems, Inc. Non-volatile memory express over ethernet
US9519666B2 (en) * 2014-11-27 2016-12-13 E8 Storage Systems Ltd. Snapshots and thin-provisioning in distributed storage over shared storage devices
US9525737B2 (en) 2015-04-14 2016-12-20 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect
US9529542B2 (en) 2015-04-14 2016-12-27 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect
US10237347B2 (en) 2015-06-08 2019-03-19 Excelero Storage Ltd. System and method for providing a client device seamless access to a plurality of remote storage devices presented as a virtual device
US10496626B2 (en) 2015-06-11 2019-12-03 EB Storage Systems Ltd. Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect
US10055144B1 (en) * 2016-03-30 2018-08-21 Amazon Technologies, Inc. Configurable storage drive
US9842084B2 (en) 2016-04-05 2017-12-12 E8 Storage Systems Ltd. Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices
US10754988B2 (en) * 2016-08-30 2020-08-25 Winbond Electronics Corporation Anti-rollback version upgrade in secured memory chip
US10891253B2 (en) * 2016-09-08 2021-01-12 Microsoft Technology Licensing, Llc Multicast apparatuses and methods for distributing data to multiple receivers in high-performance computing and cloud-based networks
US20180089044A1 (en) * 2016-09-27 2018-03-29 Francesc Guim Bernat Technologies for providing network interface support for remote memory and storage failover protection
US10031872B1 (en) 2017-01-23 2018-07-24 E8 Storage Systems Ltd. Storage in multi-queue storage devices using queue multiplexing and access control
US10685010B2 (en) 2017-09-11 2020-06-16 Amazon Technologies, Inc. Shared volumes in distributed RAID over shared multi-queue storage devices
CN107592361B (en) * 2017-09-20 2020-05-29 郑州云海信息技术有限公司 Data transmission method, device and equipment based on dual IB network
US10503590B2 (en) 2017-09-21 2019-12-10 International Business Machines Corporation Storage array comprising a host-offloaded storage function
US20190102287A1 (en) * 2017-09-29 2019-04-04 Intel Corporation Remote persistent memory access device
US10452295B1 (en) * 2017-10-06 2019-10-22 EMC IP Holding Company LLC Data routing in information processing system utilizing persistent memory
US10789179B1 (en) 2017-10-06 2020-09-29 EMC IP Holding Company LLC Decentralized access management in information processing system utilizing persistent memory
CN109729110A (en) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 Manage method, equipment and the computer-readable medium of dedicated processes resource
WO2019127018A1 (en) * 2017-12-26 2019-07-04 华为技术有限公司 Memory system access method and device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169541A1 (en) * 2008-12-30 2010-07-01 Guy Freikorn Method and apparatus for retroactive adaptation of data location
US20100325352A1 (en) * 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
US20130297869A1 (en) * 2012-05-01 2013-11-07 Enmotus Inc. Storage system with load balancing mechanism and method of operation thereof
US20150160858A1 (en) * 2013-08-26 2015-06-11 Hitachi, Ltd. Storage apparatus and tier control method

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745671A (en) 1995-02-28 1998-04-28 International Business Machines Corporation Data storage system with localized XOR function
US5717691A (en) 1995-10-30 1998-02-10 Nec Usa, Inc. Multimedia network interface for asynchronous transfer mode communication system
US6108812A (en) 1996-06-20 2000-08-22 Lsi Logic Corporation Target device XOR engine
US5889934A (en) 1997-02-24 1999-03-30 Data General Corporation Data validation system for a group of data storage disks
US6839803B1 (en) 1999-10-27 2005-01-04 Shutterfly, Inc. Multi-tier data storage system
US7515612B1 (en) 2002-07-19 2009-04-07 Qlogic, Corporation Method and system for processing network data packets
US7577667B2 (en) 2002-09-18 2009-08-18 Netezza Corporation Programmable streaming data processor for database appliance having multiple processing unit groups
US7539780B2 (en) 2003-12-01 2009-05-26 International Business Machines Corporation Asynchronous completion notification for an RDMA system
US20050129039A1 (en) 2003-12-11 2005-06-16 International Business Machines Corporation RDMA network interface controller with cut-through implementation for aligned DDP segments
JP2006079380A (en) 2004-09-10 2006-03-23 Hitachi Ltd Disk array device
US7853957B2 (en) * 2005-04-15 2010-12-14 Intel Corporation Doorbell mechanism using protection domains
US8037154B2 (en) 2005-05-19 2011-10-11 International Business Machines Corporation Asynchronous dual-queue interface for use in network acceleration architecture
US7590768B2 (en) 2005-09-23 2009-09-15 Joseph Gormley Control and interconnection system
US7710968B2 (en) 2006-05-11 2010-05-04 Intel Corporation Techniques to generate network protocol units
US7822921B2 (en) 2006-10-31 2010-10-26 Netapp, Inc. System and method for optimizing write operations in storage systems
US8233380B2 (en) 2006-11-06 2012-07-31 Hewlett-Packard Development Company, L.P. RDMA QP simplex switchless connection
US8103785B2 (en) 2007-12-03 2012-01-24 Seafire Micros, Inc. Network acceleration techniques
US8407448B1 (en) * 2008-05-06 2013-03-26 Emc Corporation Shared storage I/O elimination through mapping client integration into a hypervisor
US8775718B2 (en) 2008-05-23 2014-07-08 Netapp, Inc. Use of RDMA to access non-volatile solid-state memory in a network storage system
US8266099B2 (en) 2008-05-29 2012-09-11 Vmware, Inc. Offloading storage operations to storage hardware using a third party server
US8122155B1 (en) 2009-06-23 2012-02-21 Chelsio Communications, Inc. RDMA write completion semantics
US8307271B1 (en) 2009-09-17 2012-11-06 Emc Corporation Fast verification of data block cycle redundancy checks
US8259582B2 (en) 2009-11-13 2012-09-04 Intel Corporation Method and apparatus to manage per flow state
US8265095B2 (en) * 2009-12-02 2012-09-11 International Business Machines Corporation Resource management finite state machine for handling resource management tasks separate from a protocol finite state machine
US8423717B2 (en) 2009-12-02 2013-04-16 Honeywell International Inc. Multi-core processing cache image management
US8433848B1 (en) 2010-03-30 2013-04-30 Emc Corporation Analysis tool for a multi-tier storage environment
US9331963B2 (en) 2010-09-24 2016-05-03 Oracle International Corporation Wireless host I/O using virtualized I/O controllers
US8713362B2 (en) 2010-12-01 2014-04-29 International Business Machines Corporation Obviation of recovery of data store consistency for application I/O errors
US8910031B1 (en) 2011-03-29 2014-12-09 Emc Corporation DIF-CRC based fast hashing
US8832216B2 (en) 2011-08-31 2014-09-09 Oracle International Corporation Method and system for conditional remote direct memory access write
WO2013048409A1 (en) 2011-09-29 2013-04-04 Intel Corporation Writing message to controller memory space
EP2771797A4 (en) 2011-10-28 2015-08-05 Univ California Multiple-core computer processor
US10360176B2 (en) 2012-01-17 2019-07-23 Intel Corporation Techniques for command validation for access to a storage device by a remote client
US8706962B2 (en) 2012-01-27 2014-04-22 International Business Machines Corporation Multi-tier storage system configuration adviser
US9507752B2 (en) 2012-09-27 2016-11-29 Intel Corporation Methods, apparatus and systems for facilitating RDMA operations with reduced doorbell rings
US9639457B1 (en) 2012-12-20 2017-05-02 Datadirect Networks, Inc. Data storage system and method for data migration between high-performance computing architectures and data storage devices using storage controller with distributed XOR capability
US8908704B2 (en) 2013-01-31 2014-12-09 Mellanox Technologies Ltd. Switch with dual-function management port
US9483191B2 (en) 2013-03-15 2016-11-01 Arris Enterprises, Inc. Multi-tier storage for delivery of services
US9311230B2 (en) 2013-04-23 2016-04-12 Globalfoundries Inc. Local direct storage class memory access
US9558146B2 (en) 2013-07-18 2017-01-31 Intel Corporation IWARP RDMA read extensions
US9241044B2 (en) * 2013-08-28 2016-01-19 Hola Networks, Ltd. System and method for improving internet communication by using intermediate nodes
US9798655B2 (en) 2013-09-20 2017-10-24 Oracle International Corporation Managing a cache on storage devices supporting compression
US9462308B2 (en) * 2013-10-17 2016-10-04 Crestron Electronics Inc. Audiovisual distribution network
US9294567B2 (en) 2014-05-02 2016-03-22 Cavium, Inc. Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller
US10275310B2 (en) 2015-03-09 2019-04-30 Western Digital Technologies, Inc. Updating exclusive-or parity data
US9985904B2 (en) 2015-12-29 2018-05-29 Amazon Technolgies, Inc. Reliable, out-of-order transmission of packets
US10142231B2 (en) 2016-03-31 2018-11-27 Intel Corporation Technologies for network I/O access
US10585818B2 (en) 2017-04-05 2020-03-10 International Business Machines Corporation Low overhead exclusive control for shared memory objects

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100169541A1 (en) * 2008-12-30 2010-07-01 Guy Freikorn Method and apparatus for retroactive adaptation of data location
US20100325352A1 (en) * 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
US20130297869A1 (en) * 2012-05-01 2013-11-07 Enmotus Inc. Storage system with load balancing mechanism and method of operation thereof
US20150160858A1 (en) * 2013-08-26 2015-06-11 Hitachi, Ltd. Storage apparatus and tier control method

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109901787A (en) * 2017-12-08 2019-06-18 比亚迪股份有限公司 The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system
CN109903792A (en) * 2017-12-08 2019-06-18 比亚迪股份有限公司 The storage of energy-storage battery parameter, read method, device and equipment in energy-storage system

Also Published As

Publication number Publication date
US20160034419A1 (en) 2016-02-04
US9658782B2 (en) 2017-05-23
US20160034418A1 (en) 2016-02-04
US9971519B2 (en) 2018-05-15
US20160036913A1 (en) 2016-02-04
US10788992B2 (en) 2020-09-29
US20180260139A1 (en) 2018-09-13
US10976932B2 (en) 2021-04-13

Similar Documents

Publication Publication Date Title
US10338985B2 (en) Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
US10579278B2 (en) Techniques for controlling recycling of blocks of memory
US10600491B2 (en) Method for managing data blocks and method of data management for data storage device
US9928167B2 (en) Information processing system and nonvolatile storage unit
US9916087B2 (en) Method and system for throttling bandwidth based on temperature
US9298608B2 (en) Biasing for wear leveling in storage systems
US9442662B2 (en) Device and method for managing die groups
US8737148B2 (en) Selective retirement of blocks
KR101892302B1 (en) Weave sequence counter for non-volatile memory systems
US9298534B2 (en) Memory system and constructing method of logical block
US10275162B2 (en) Methods and systems for managing data migration in solid state non-volatile memory
KR101636785B1 (en) Dynamic higher-level redundancy mode management with independent silicon elements
CN110832590A (en) Method and system for mitigating write amplification in a phase change memory-based memory device
JP6412583B2 (en) Modified memory compression
US8463983B2 (en) Container marker scheme for reducing write amplification in solid state devices
JP4844639B2 (en) MEMORY CONTROLLER, FLASH MEMORY SYSTEM HAVING MEMORY CONTROLLER, AND FLASH MEMORY CONTROL METHOD
US8910017B2 (en) Flash memory with random partition
US8230184B2 (en) Techniques for writing data to different portions of storage devices based on write frequency
TWI539277B (en) System, method and computer program product for increasing spare space in memory to extend a lifetime of the memory
JP5814335B2 (en) Reduction of writing and estimation and display of remaining life of nonvolatile memory
US9092141B2 (en) Method and apparatus to manage data location
CN104750571B (en) To the controller of the method, storage device and the storage device that carry out error correcting
US10127166B2 (en) Data storage controller with multiple pipelines
US8458417B2 (en) Garbage collection in a storage device
US8438361B2 (en) Logical block storage in a storage device

Legal Events

Date Code Title Description
AS Assignment

Owner name: EXCELERO, ISRAEL

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ROMEM, YANIV;MANN, OMRI;OSHRI, OFER;REEL/FRAME:035880/0275

Effective date: 20150609

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION