WO2018059495A1 - Solid state drive (ssd), storage device, and data storage method - Google Patents

Solid state drive (ssd), storage device, and data storage method Download PDF

Info

Publication number
WO2018059495A1
WO2018059495A1 PCT/CN2017/104017 CN2017104017W WO2018059495A1 WO 2018059495 A1 WO2018059495 A1 WO 2018059495A1 CN 2017104017 W CN2017104017 W CN 2017104017W WO 2018059495 A1 WO2018059495 A1 WO 2018059495A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
external cache
cache partition
data
stored
Prior art date
Application number
PCT/CN2017/104017
Other languages
French (fr)
Chinese (zh)
Inventor
江维
张箭
孙睿
Original Assignee
华为技术有限公司
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
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2018059495A1 publication Critical patent/WO2018059495A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for 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/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Definitions

  • the data to be stored of each flash granule that is delivered to a storage strip is cached, and then stored separately to each target flash granule, and the data to be stored in the external cache partition is stored to each target flash memory.
  • the particles can be performed in parallel, which not only saves the controller's scheduling processing, but also improves the processing speed and performance of the data write request.
  • the at least two flash memory particles are disposed on the memory strip in a patch.
  • the method of soldering the flash memory particles on the PCB is more convenient for the user to replace the flash memory particles.
  • the disk body is provided with a buffer slot, and the circuit board where the external cache partition is located is pluggable into the buffer slot. This makes it easy to replace a new external cache partition.
  • a frame the frame is provided with at least one storage interface; a controller is disposed in the frame; at least one storage module is pluggably inserted on the at least one storage interface; at least one external cache partition, and The at least one storage module is in one-to-one correspondence; the controller is configured to: when receiving a data write request, acquire a target storage module that stores data to be stored from the data write request, and determine a target external location corresponding to the target storage module Cache partitioning, storing the data to be stored in the target external cache partition; storing the data to be stored from the target external cache partition to the target storage module through a storage interface connected to the target storage module.
  • the data to be stored that is delivered to a storage module is cached by the external cache partition, and then stored in each target storage module, and the data to be stored in the external cache partition is stored in each target storage module in parallel. This can save the scheduling process of the controller and improve the processing speed and performance of the data write request.
  • At least two storage units are disposed on each of the at least one storage module, and an external cache partition corresponding to each of the storage modules includes a corresponding one of the at least two storage units.
  • At least two external sub-cache partitions; the controller is configured to obtain a target storage unit that stores data to be stored from the data write request, determine a target external sub-cache partition corresponding to the target storage unit, and store the data to be stored And storing the to-be-stored data from the target external sub-cache partition to the target storage unit through a storage interface connected by the storage module where the target storage unit is located.
  • the external cache partition corresponding to each storage module also includes at least two external sub-cache partitions corresponding to at least two storage units. Further, because the external sub-cache partition is used to cache the data to be stored that is sent to a certain storage unit, and then stored separately to each target storage unit, the data to be stored in the external sub-cache partition is stored to each target storage. Units can be performed in parallel, which not only saves the controller's scheduling processing, but also improves the processing speed and performance of data write requests.
  • the storage device further includes at least one backup external cache partition, the at least one backup external cache partition is in one-to-one correspondence with the at least one external cache partition, and the controller is further configured to determine the Backing up an external cache partition corresponding to the target external cache partition, and storing the to-be-stored data in the backup external cache partition; failing to store the to-be-stored data from the target external cache partition to the target storage module And storing the to-be-stored data from the backup external cache partition to the target storage module.
  • a backup external cache partition for the external cache partition it avoids the loss of data in the target external cache partition so that data cannot be successfully written to the target storage module.
  • the storage device further includes at least one backup external cache partition, the at least A backup external cache partition is in one-to-one correspondence with the at least one external cache partition, and is described from the perspective of the controller.
  • the method further includes: the controller determining a backup external cache partition corresponding to the target external cache partition, and Depositing the to-be-stored data into the backup external cache partition; the controller, when the storage of the to-be-stored data from the target external cache partition fails to the target storage module, the data to be stored is The backup external cache partition is stored to the target storage module.
  • the method further includes: the controller determining a backup storage module of the target storage module, determining an external cache partition corresponding to the backup storage module; The controller stores the to-be-stored data in an external cache partition corresponding to the backup storage module; and stores the to-be-stored data from an external cache partition corresponding to the backup storage module to the backup storage module.
  • the specific structure of the control device as the controller may include a receiving unit, a determining unit, and a processing unit.
  • the receiving unit, the determining unit, and the processing unit may perform respective functions in the method of the above third aspect.
  • FIG. 1 is a structural diagram of an SSD according to an embodiment of the present invention
  • FIG. 3 is a structural diagram of a system according to an embodiment of the present invention.
  • FIG. 4 is a schematic diagram of a visual management interface according to an embodiment of the present invention.
  • FIG. 5 is a structural diagram of a storage device according to an embodiment of the present invention.
  • FIG. 7 is a functional block diagram of a control apparatus according to an embodiment of the present invention.
  • the present invention provides a solid state hard disk SSD, a storage device, and a data storage method for solving the technical problems of disassembly and replacement of the structure of the SSD in the prior art.
  • FIG. 1 is a structural diagram of an SSD according to an embodiment of the present invention.
  • the SSD includes a disk body 10 on which a connection port 101 for connecting to a disk array and at least one memory bar interface 102 are disposed.
  • the connection port 101 is, for example, a Serial Attached Small Computer System Interface (SAS) or a Peripheral Component Interface Express (English: Peripheral Component Interface Express, PCIE or PCIe).
  • SAS Serial Attached Small Computer System Interface
  • PCIE Peripheral Component Interface Express
  • the SSD further includes a controller 20 disposed in the disk body 10.
  • the controller 20 is electrically connected to the connection port 101 and the memory bar interface 102, respectively.
  • the disk 10 further includes a controller slot, and the circuit board where the controller 20 is located is pluggable into the controller slot. This makes it easy to replace the controller 20 without having to disassemble the cover and replace the entire PCB as in the prior art.
  • the SSD also includes at least one memory stick 30 that is pluggably inserted into the at least one memory stick interface 102.
  • the memory stick 30 includes a connector 302.
  • the memory strip 30 can be inserted into the disk body 10 or detached from the disk body 10 through the connector 302 and the memory bar interface 102.
  • the memory stick 30 further includes a handle 303.
  • the handle 303 facilitates the user to insert and remove the memory stick 30.
  • At least two flash memory (English: Flash) particles 301 are disposed on each of the at least one memory stick 30. Flash memory particles 301 are used to store data.
  • the controller 20 can receive a data read/write request sent by an upper host or other entity through the connection port 101.
  • the controller 20 is configured to read and write data in the flash memory particles 301 on the memory stick connected to each of the memory strip interfaces 102 through each of the memory strip interfaces 102 according to the data read/write request.
  • the flash granule 301 includes an internal buffer and a flash memory.
  • a capacitor and a non-volatile random access memory (English: Non-Volatile Random Access Memory, NVRAM for short) can be placed on the memory stick 30.
  • Capacitors and NVRAM can perform some auxiliary functions of SSD, such as rectification and filtering, to prevent the supply voltage of each part of the circuit from changing due to load changes, and to improve the speed of data access.
  • the flash memory 301, the capacitor or the NVRAM on the memory stick 30 can be disposed on the memory stick 30 in a manner of being mounted on the PCB, compared to the flash memory 301, the capacitor or the NVRAM in the prior art.
  • the way, the way of patching is more convenient for users to replace.
  • the disk 10 further includes a storage strip slot 103.
  • the storage strip 30 When the storage strip 30 is inserted into the storage strip interface 102, the storage strip 30 can be received in the storage strip slot 103, and the storage strip 30 can be fixed on the one hand. On the other hand, it is easy to carry SSD.
  • a two-stage serial-to-channel is provided in the present embodiment.
  • devices of the same type are connected in parallel and then connected in series with other devices.
  • the one-stage serial transmission channel is: each storage bar interface 102 is in parallel structure, and then each storage bar interface 102 and the controller 20 are connected in series.
  • the data communication of the channels between the memory stick 30 and the memory stick 30 is in a serial to parallel manner.
  • the communication bus 201 between the controller 20 and the memory stick interface 102 may be a PCIe serial bus.
  • the second stage serial transmission channel is: parallelizing the flash memory particles 301 inside the memory strip 30, and then connecting in series with the memory strip interface 102.
  • the flash memory particles 301 are connected in parallel, but the flash memory particles and the memory strip interface 102 are connected in series. In this way, data communication between the flash memory particles 301 inside the memory strip can be realized by a serial to parallel method.
  • the bus 202 between the memory strip interface 102 and the flash memory 301 may be a hot-swappable internal integrated circuit (English: Inter-Integrated Circuit, I 2 C) bus.
  • the SSD also includes an external buffer area 40.
  • the external buffer area 40 and the controller 20 can be interconnected by using a PCIe bus.
  • the external buffer area 40 is divided into at least two external cache partitions 401.
  • Each external cache partition 401 corresponds to one flash granule 301.
  • Each flash granule 301 has an internal buffer 3011.
  • the external buffer area 40 includes four external cache partitions 401, which are external cache partitions C1 to C4, respectively.
  • the external cache partition C1 corresponds to the flash granule 1 of the first memory stick.
  • the flash memory particle 1 has an internal buffer area C1'.
  • the external cache partition C2 corresponds to the flash granule 2 of the first memory stick.
  • the flash memory 2 has an internal buffer area C2'.
  • the external cache partition C3 corresponds to the flash memory particles 3 of the first memory stick.
  • the flash memory chip 3 has an internal buffer area C3'.
  • the external cache partition C4 corresponds to the flash memory particles 4 of the first memory stick.
  • the flash memory 4 has an internal buffer area C4'.
  • FIG. 3 Please refer to FIG. 3 as a system diagram after having an external buffer area.
  • the host can write data to the SSD, and can also read data from the SSD. Therefore, the host can send a data read/write request to the controller 20 through the connection port 101, which can also be called input (English: Input, referred to as: I)/output ( English: Output, referred to as: O) Request.
  • I Input
  • O Output
  • the external buffer area 40 may further include an external cache partition C9 and an external cache partition C10.
  • the external cache partition C9 and the external cache partition C10 correspond to the flash granules 9 and the flash granules 10 of the second memory strip, respectively.
  • the solid arrow indicates the I/O interaction flow, that is, the I/O request is sent from the upper host to the external cache partition 401, and the external cache partition 401 stores the data to be stored to the flash memory.
  • the dotted arrow indicates the logical processing flow, that is, the external cache partition 401 establishes a logical mapping relationship with the internal buffer area 3011 of the flash memory, or the external buffer area 40 establishes a logical mapping relationship with the external buffer area 50, which is a backup relationship. The contents of each other's backup relationship will be described in detail later.
  • a buffer slot may be reserved on the disk body 10.
  • the external buffer area 40 may be inserted into or removed from the disk body 10 through the buffer slot.
  • the damaged external buffer area 40 can be unplugged, and the new external buffer area 40 or the external cache partition area 401 can be replaced offline.
  • a correspondence mapping table between the external cache partition 401 and the flash memory 301 can be established and stored in the controller 20 or other storage unit.
  • the controller 20 can determine which partition the external cache partition corresponding to each flash granule is.
  • the controller 20 When the controller 20 receives the data write request, for example, receiving a data write request sent by the host from the connection port 101, acquiring target flash memory particles storing the data to be stored from the data write request, determining that the target flash memory particle corresponds to a target external cache partition, storing the to-be-stored data in the target external cache partition; storing the to-be-stored data from the target external cache partition to the target flash granule.
  • the controller 20 receives a data write request sent by the host through the connection port 101.
  • the data write request may include data to be stored and a location of the target flash granule for storing the data to be stored, such as flash granule 1 on the memory stick 30 numbered 1.
  • the controller 20 can acquire the target flash granules by a data write request, for example, the target flash granules are the flash granules 1 on the memory stick 30 numbered 1.
  • the data write request may not include a location of the target flash granule for storing the data to be stored, and the controller 20 may store the request to be stored in the data write request according to a preset write data rule.
  • the data identifies a target flash granule.
  • the determined target flash granule is the flash granule 1 on the memory stick 30 numbered 1.
  • the controller 20 determines, for example, a target external cache partition corresponding to the target flash particle by using the foregoing mapping table.
  • the controller 20 determines, according to the mapping table, the target external cache partition corresponding to the target flash particle as the external cache partition C1.
  • the controller 20 stores the data to be stored in the target external cache partition, for example, into the external cache partition C1.
  • the data to be stored is directly migrated from the target external cache partition to the target flash granule, or the data to be stored in the target external cache partition may be copied and stored to the target flash granule.
  • the memory strip interface 102 can perform multiple data to be stored in parallel.
  • the bank interface 102 can process multiple data write requests in parallel.
  • the controller 20 migrates the data to be stored stored on the target external cache partition C1 to the flash granule 1 through the target flash granule, that is, the memory stick interface 102 to which the flash granule 1 is connected.
  • the controller 20 can also migrate the data to be stored stored on the target external cache partition C2 to the flash memory particles 2 through the target flash granules, that is, the memory strip interface 102 to which the flash granules 2 are connected, wherein the flash granules 1 and the flash granules 2
  • the connected memory strip interfaces are the same memory stick interface.
  • the target flash granules can be successfully stored after the data to be stored is stored on the target flash granules.
  • the response is given to the controller 20, and the controller 20 deletes the data to be stored stored on the target external cache partition according to the response to save storage space. If the storage is not successful, the controller 20 may repeatedly control to store the data to be stored from the target external cache partition to the target flash granules until the storage is successful.
  • storing the data to be stored from the target external cache partition to the target flash granule may directly store the data to be stored from the target external cache partition to the flash memory of the target flash granule, or may be The data to be stored is stored from the target external cache partition into the internal cache area of the target flash granule, and then the controller of the target flash granule stores the data to be stored from the internal buffer in the flash memory of the target flash granule through the internal cache mechanism.
  • the embodiment of the present invention caches the data to be stored of each flash granule that is sent to a certain storage strip 30 through the external cache partition 401, and then stores the data to each target flash granule, respectively.
  • the storage of the data to be stored in the external cache partition 401 to each target flash granule can be performed in parallel, which can save the scheduling process of the controller 20 and improve the processing speed and performance of the data write request. For example, suppose a certain memory bar 30 contains four flash memory particles 301, and the host issues four data write requests to write data to the four flash memory particles respectively, and the controller 20 writes the four data write requests.
  • the stored data is stored in the external cache partition corresponding to the four flash granules, and then the data to be stored stored in the external cache partition corresponding to the four flash granules 301 is stored in the four flash granules 301 in parallel.
  • At least two external cache partitions are connected to each other, so the controller 20 can directly control data transfer from one external cache partition to another external cache partition, and the data does not need to be transferred by the controller 20, so The purpose of fast data interaction can be achieved.
  • the SSD further includes another external buffer area 50, which can serve as a backup buffer area of the external buffer area 40.
  • the external buffer area 50 and the external buffer area 40 can be connected in series through the interface bus to maintain interworking.
  • the external buffer area 50 includes, for example, at least two external cache partitions 501, such as external cache partitions C5 to C8, respectively.
  • the external cache partition C5 is the backup cache partition of the external cache partition C1.
  • the external cache partition C6 is the backup cache partition of the external cache partition C2.
  • the external cache partition C7 is the backup cache partition of the external cache partition C3.
  • the external cache partition C8 is the backup cache partition of the external cache partition C4.
  • the number of external buffers 50 for backup may be one or multiple.
  • a backup mapping relationship between each external cache partition in two external cache areas can be established.
  • the backup mapping relationship can be stored on the controller 20 or on other storage units.
  • the controller 20 After determining the target external cache partition corresponding to the target flash granule, the backup external cache partition of the target external cache partition may also be determined according to the backup mapping relationship. Further, the controller 20 may store the data to be stored in the target external cache partition corresponding to the target flash granule and the backup external cache partition in the target external cache partition.
  • the controller 20 can determine that the backup external cache partition of the external cache partition C1 is the external cache partition C5. The controller 20 can then store the data to be stored in the external cache partition C1 and the external cache partition C5.
  • the target external cache partition fails before storing the data to be stored from the target external cache partition to the target flash granule; or during the migration from the target external cache partition to the target flash granule, the user mistakenly pulls out the storage strip 30 Or the target flash granule fails, the data to be stored is not successfully stored to the target flash granule, and the controller 20 can obtain the data to be stored from the backup external cache partition when receiving the response of the storage failure and the above failure reason. And store the data to be stored in the target flash granules.
  • the controller 20 in the case that the user mistakenly removes the memory stick 30, if the user reinserts the memory stick 30, when the controller 20 stores the data to be stored to the target flash granule, the previously stored portion is to be stored. Data is overwritten to ensure data consistency. If the user has replaced the memory stick 30, the controller 20 directly stores the data to be stored in the backup external cache partition directly into the target flash memory of the replaced memory stick. This also ensures data integrity and consistency.
  • the controller 20 may further determine Backup flash granules of target flash granules.
  • the controller 20 may be a backup flash granule that determines a target flash granule according to a backup relationship table between the flash granules.
  • the backup relationship table is pre-configured to the controller 20, or the controller 20 is established according to a preset rule.
  • the controller 20 can also determine an external cache partition corresponding to the backup flash granule according to the foregoing mapping table. The controller 20 then stores the data to be stored to the external cache partition corresponding to the backup flash granules, and then stores the data to be stored from the external cache partition corresponding to the backup flash granules to the internal cache area of the backup flash granules, and then stores the data to the backup flash memory. Particles on the flash.
  • the data to be stored in a data write request is stored on the target flash granule and the backup flash granule. When the target flash granule fails, the data to be stored can still be found on the backup flash granule to ensure the normal operation of the host.
  • the backup flash granules and the target flash granules are located on different storage strips 30.
  • the data to be stored in a data write request is stored on the target flash granule and the backup flash granule.
  • the to-be-stored can still be found on the backup flash granule. Data, without data loss due to the memory strip 30 where the target flash granules are located is misplaced.
  • the existing Small Computer System Interface (SCSI) protocol can be modified to match the online capacity change of the memory stick 30.
  • SCSI Small Computer System Interface
  • Table 1 A possible format of the modified SCSI protocol is shown in Table 1.
  • the operation code is similar to the read command 0x28 of the existing SCSI protocol, and the write command 0x2a.
  • This embodiment can define a special operation code to represent the operation of the memory bar.
  • the definition operation code 0xf1 indicates the operation of the memory stick.
  • the storage bar operation code indicates that a specific operation is performed on the storage bar 30, for example, inserting or extracting a certain storage bar 30, and a specific operation code may be represented by one byte, for example, it may be defined as: 0x1 indicates that a certain storage bar is queried. 30, 0x2 indicates that a certain memory strip 30 is deleted, 0x3 indicates that a certain storage strip 30 is inserted, and 0x6 indicates that data of a certain storage strip 30 is migrated, and other similarities are not exemplified herein.
  • Controlled storage strip identifier identifies the number of the storage strip 30 to be operated.
  • the controlled storage strip identifier is defined as 0x5
  • the identifier of the storage strip 30 indicating that the data is to be migrated is 0x5.
  • Control Variables and Data 1 Specify the identifier of the memory stick 30 to which the data is to be moved, the amount of data to be migrated, the data address, the data length, and the flag bit for completion of migration. Optionally, this field can be empty when the operation instruction is simple.
  • Control variables and data 2 and reserved fields belong to fields that can be further extended.
  • this field can be empty when the operation instruction is simple. For example, when a certain memory stick 30 is inserted, only the identification to the controlled memory stick 30 needs to be made, and the control variables and data 1, control variables and data 2 and reserved fields can be empty. Therefore, whether some of the fields in Table 1 are empty depends on the complexity of the operation.
  • control variables can support the management of the flash granules 301, and two fields of control variables and data are designed to ensure that a combination of various command parameters is completed.
  • the controller 20 can automatically report to the array system that the memory stick 30 is inserted or removed.
  • the controller 20 detects whether there is a faulty flash granule 301; if the faulty flash granule 301 is detected, determining the location of the faulty flash granule 301, for example, the storage strip where the faulty flash granule 301 is located The number or identification of 30, and the location of the failed flash granule 301 on the memory stick 30; then the controller 20 can report the location of the failed flash granule to the array system or host.
  • the manner in which the controller 20 detects the faulty flash granules 301 is well known to those skilled in the art. For example, the controller 20 periodically sends detection signals to all the online flash granules 301, if at a preset time. If the reply signal of a certain flash memory 301 is not received, it indicates that the flash memory 301 is faulty.
  • the flash memory particles 301 can also calculate its own failure time according to its own degree of wear, and then send the failure time or alarm signal to the controller 20.
  • the controller 20 can place the flash memory 301 to be invalidated.
  • the number or identification of the memory stick 30 and the location of the flash memory 301 to be expired on the memory stick 30 are reported to the array system or host.
  • the controller 20 may also migrate data on the flash granules 301 to be lapsed to other non-failed flash granules 301 according to the aforementioned extended SCSI protocol.
  • the embodiment of the present invention further provides a visual management interface for cooperating with the operation of the storage strip 30.
  • the faulty flash granule 301 and the flash granule 301 to be invalidated may be displayed to prompt the user to perform the replacement operation. .
  • FIG. 4 is a schematic diagram of a possible visual management interface.
  • the array system or the host receives the failed flash granules 301 or the flash granules 301 to be invalidated by the controller 20, it is performed on the visual management interface corresponding to the faulty flash granules 301 or the icon positions of the flash granules 301 to be invalidated.
  • FIG. 4 different filled backgrounds are used to represent flash granules of different states, but in practical applications, other prompting manners may be used for prompting, for example, red indicates failure, green indicates normal, and yellow indicates failure.
  • the foregoing external cache partition, backup cache partition, and backup target flash granules may also be applied to the hard disk array and the server.
  • FIG. 5 is a structural diagram of a storage device according to an embodiment of the present invention.
  • the storage device includes: a frame 601, at least one storage interface 6011 is disposed on the frame 601; a controller 602 is disposed in the frame 601; and at least one storage module 603 is pluggably inserted into the at least one storage interface 6011; An external cache partition 604 is in one-to-one correspondence with at least one storage module 603.
  • FIG. 6 is a flowchart of a data storage method applied to the storage device shown in FIG. 5.
  • the implementation of the data storage method and the functions that can be implemented by various parts of the storage device will be described below with reference to FIGS. 5 and 6.
  • the method includes:
  • Step 701 The controller 602 receives a data write request.
  • Step 702 The controller 602 acquires, from the data write request, a target storage module that stores data to be stored, and determines a target external cache partition corresponding to the target storage module.
  • Step 703 The controller 602 stores the to-be-stored data in the target external cache partition, and stores the to-be-stored data from the target external cache partition to the storage interface 6011 connected to the target storage module.
  • the target storage module The target storage module.
  • each storage module 603 includes an internal buffer area 6031 and a storage body. Therefore, in step 703, the data to be stored is stored from the target external cache partition to the target storage module through the storage interface 6011 connected to the target storage module, and the data to be stored may be external to the target.
  • the cache partition is stored in the internal cache area 6031 of the target storage module by the storage interface 6011 connected to the target storage module, or may be the storage to be stored from the target external cache partition through the target storage module.
  • the interface 6011 is stored to the storage body of the target storage module. If the internal cache area 6031 of the target storage module is first stored, the controller of the target storage module may store the data to be stored from the internal cache area 6031 of the target storage module to the storage body of the target storage module according to an internal cache mechanism.
  • step 702 includes: the controller 602 acquires, from the data write request, a target storage unit that stores the data to be stored, and determines a target external sub-cache partition corresponding to the target storage unit.
  • Step 703 includes: the controller 602 storing the to-be-stored data in the target external sub-cache partition; and connecting the to-be-stored data from the target external sub-cache partition through a storage module in which the target storage unit is located
  • the storage interface is stored to the target storage unit.
  • the specific implementation is similar to the foregoing SSD, as long as the flash granules are replaced by the storage unit, that is, the implementation process of step 702 and step 703 in this embodiment.
  • each storage unit includes an internal sub-buffer and a storage body.
  • the foregoing scheme of backing up the external cache partition and backing up the target flash granules may also be used, as long as the flash granules are replaced with the storage units, ie, The specific implementation process in the embodiment.
  • each storage module 603 is a single storage unit
  • the foregoing scheme of backing up the external cache partition and the backup target storage unit may also be used.
  • the specific implementation process is as follows: the storage device further includes at least one Backing up an external cache partition, the at least one backup external cache partition is in one-to-one correspondence with the at least one external cache partition.
  • the controller 602 determines a backup external cache partition corresponding to the target external cache partition, and stores the to-be-stored data in the backup external cache partition; the controller 602 is configured to store the data to be stored from the target When the external cache partition is stored to the target storage module, the data to be stored is stored from the backup external cache partition to the target storage module.
  • the solution is a solution that uses a backup external cache partition to provide data storage reliability. For a detailed implementation process, reference may be made to the description of the backup external cache partition in the foregoing SSD.
  • the solution of the backup storage module is as follows: the controller 602 further determines a backup storage module of the target storage module, and determines an external cache partition corresponding to the backup storage module; the controller 602 also stores the data to be stored into the backup. An external cache partition corresponding to the storage module; storing the data to be stored from an external cache partition corresponding to the backup storage module to the backup storage module.
  • the target storage module can be prevented from being faulty or misplaced, and data can be found in the backup storage module to avoid data loss.
  • an embodiment of the present invention provides a control device for implementing the data storage method shown in FIG. 6 to control the storage device as shown in FIG. 5 above.
  • FIG. 7 is a functional block diagram of the control device.
  • the control device includes a receiving unit 801 , a determining unit 802 , and a processing unit 803 .

Abstract

A solid state drive (SSD), a storage device, and a data storage method. The SSD comprises: a drive body, provided with a connector configured to connect to a redundant array of independent disks, and at least one memory module socket; a controller, configured in the drive body, the controller being electrically connected to the connector and the memory module socket, respectively; at least one memory module, detachably inserted into the at least one memory module socket, each of the at least one memory module being provided with at least two flash packages, which are used for storing data. The controller is used for reading and writing, by means of each memory module socket, data in the flash packages on the memory module connected to the memory module socket. The SSD in the present invention can be easily detached and replaced.

Description

一种固态硬盘SSD、存储装置及数据存储方法Solid state hard disk SSD, storage device and data storage method 技术领域Technical field
本发明涉及存储技术领域,尤其涉及一种固态硬盘SSD、存储装置及数据存储方法。The present invention relates to the field of storage technologies, and in particular, to a solid state hard disk SSD, a storage device, and a data storage method.
背景技术Background technique
固态硬盘(英文:Solid State Drives,简称:SSD)是存储阵列的一个重要存储部件。在现有的SSD生产方式中,SSD的闪存颗粒、控制器以及其它辅助元件,例如电容均焊接在一块印刷电路板(英文:Printed Circuit Board,简称:PCB)上。然后通过两块盖板将PCB进行封装,组成一块完整的SSD。Solid State Drives (English: Solid State Drives, SSD for short) are an important storage component of storage arrays. In the existing SSD production mode, SSD flash granules, controllers and other auxiliary components, such as capacitors, are soldered on a printed circuit board (English: Printed Circuit Board, PCB for short). The PCB is then packaged through two cover plates to form a complete SSD.
因此,现有的SSD,因为闪存颗粒、控制器均焊接在同一块PCB上,任意一个闪存颗粒或者控制器损坏导致SSD失效,则需要拆卸下整块PCB进行更换,所以拆卸和更换复杂,而且更换整块PCB,成本也较高。Therefore, in the existing SSD, since the flash memory particles and the controller are soldered on the same PCB, and any one of the flash memory particles or the controller is damaged, the SSD is invalidated, and the entire PCB needs to be removed for replacement, so the disassembly and replacement are complicated, and The cost of replacing the entire PCB is also high.
发明内容Summary of the invention
本发明提供一种固态硬盘SSD、存储装置及数据存储方法,用以解决现有技术中SSD的结构导致拆卸以及更换复杂的技术问题。The present invention provides a solid state hard disk SSD, a storage device, and a data storage method for solving the technical problems of disassembly and replacement of the structure of the SSD in the prior art.
第一方面,本发明实施例提供一种固态硬盘SSD,包括:In a first aspect, an embodiment of the present invention provides a solid state hard disk SSD, including:
盘体,所述盘体上设置有用于与磁盘阵列连接的连接口、至少一个存储条接口;控制器,设置于所述盘体中,所述控制器分别与所述连接口和所述存储条接口电性连接;至少一个存储条,可插拔的插设于所述至少一个存储条接口上,所述至少一个存储条中每个存储条上设置有至少两个闪存颗粒,所述闪存颗粒用于存储数据,所述控制器用于通过每个存储条接口对每个存储条接口连接的存储条上的闪存颗粒中的数据进行读写。通过将存储条设计成可插拔的形式,便于更换存储条,而无需像现有技术中那样需要拆开盖板,更换整个PCB,所以也能降低成本。a disk body, the disk body is provided with a connection port for connecting with the disk array, at least one memory bar interface; a controller is disposed in the disk body, and the controller is respectively connected to the connection port and the storage The strip interface is electrically connected; at least one memory strip is pluggably inserted into the at least one memory strip interface, and at least two flash memory particles are disposed on each of the at least one memory strip, the flash memory The granules are used to store data, and the controller is configured to read and write data in the flash granules on the storage strips of each of the memory strip interface connections through each of the memory strip interfaces. By designing the memory strip in a pluggable form, it is easy to replace the memory stick without having to open the cover and replace the entire PCB as in the prior art, thereby also reducing the cost.
在一个可能的设计中,所述SSD还包括至少两个外部缓存分区,每个外部缓存分区对应一个闪存颗粒,每个闪存颗粒具有一个内部缓存区;所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标闪存颗粒,确定所述目标闪存颗粒对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒。通过外部缓存分区,将下发到某个存储条的每个闪存颗粒的待存储数据缓存起来,然后再分别存储到各个目标闪存颗粒,每次外部缓存分区中的待存储数据存储到各个目标闪存颗粒都可以并行进行,既可以省去控制器的调度处理,也提升了数据写请求的处理速度和性能。In one possible design, the SSD further includes at least two external cache partitions, each of the external cache partitions corresponding to one flash granule, each flash granule having an internal cache area; and the controller for receiving a data write request Obtaining, from the data write request, a target flash granule storing the data to be stored, determining a target external cache partition corresponding to the target flash granule, and storing the to-be-stored data in the target external cache partition; The data to be stored is stored from the target external cache partition to the target flash granule. Through the external cache partition, the data to be stored of each flash granule that is delivered to a storage strip is cached, and then stored separately to each target flash granule, and the data to be stored in the external cache partition is stored to each target flash memory. The particles can be performed in parallel, which not only saves the controller's scheduling processing, but also improves the processing speed and performance of the data write request.
在一个可能的设计中,所述SSD还包括至少两个备份外部缓存分区,所述至少两个备份外部缓存分区与所述至少两个外部缓存分区一一对应,所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;在将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标闪存颗粒。通过为外部缓存 分区设计备份外部缓存分区,在将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒失败时,还可以通过备份外部缓存分区将数据存储至目标闪存颗粒,避免了因目标外部缓存分区中的数据丢失以致于无法将数据成功写入目标闪存颗粒。In a possible design, the SSD further includes at least two backup external cache partitions, the at least two backup external cache partitions are in one-to-one correspondence with the at least two external cache partitions, and the controller is further configured to determine Backing up an external cache partition corresponding to the target external cache partition, and storing the to-be-stored data in the backup external cache partition; storing the to-be-stored data from the target external cache partition to the target flash granule Upon failure, the data to be stored is stored from the backup external cache partition to the target flash granule. By external caching The partition design backs up the external cache partition, and when the storage of the to-be-stored data from the target external cache partition fails to the target flash granule fails, the data can be stored to the target flash granule by backing up the external cache partition, thereby avoiding the target The data in the external cache partition is so lost that the data cannot be successfully written to the target flash granules.
在一个可能的设计中,所述控制器还用于确定所述目标闪存颗粒的备份闪存颗粒,确定所述备份闪存颗粒对应的外部缓存分区,将所述待存储数据存入所述备份闪存颗粒对应的外部缓存分区;将所述待存储数据从所述备份闪存颗粒对应的外部缓存分区存储至所述备份闪存颗粒。通过为目标闪存颗粒设计备份闪存颗粒,并且在备份闪存颗粒中也存储待存储数据,如此可以避免因误拔存储条或者闪存颗粒故障造成数据丢失。In a possible design, the controller is further configured to determine backup flash granules of the target flash granule, determine an external cache partition corresponding to the backup flash granule, and store the to-be-stored data into the backup flash granule Corresponding external cache partition; storing the to-be-stored data from an external cache partition corresponding to the backup flash granule to the backup flash granule. By designing backup flash granules for the target flash granules and storing the data to be stored in the backup flash granules, data loss due to misfed memory sticks or flash granule failures can be avoided.
在一个可能的设计中,所述控制器还用于侦测是否有故障的闪存颗粒;在侦测到有故障的闪存颗粒时,所述控制器还用于确定所述故障的闪存颗粒所在的存储条以及所述故障的闪存颗粒在所述存储条上的位置;所述控制器还用于上报所述故障的闪存颗粒所在的存储条的标识以及所述故障的闪存颗粒在所述存储条上的位置。因为及时侦测和上报故障闪存颗粒,所以可以提示用户及时采取措施,例如更换故障的闪存颗粒或者更换故障的闪存颗粒所在的存储条。In one possible design, the controller is further configured to detect faulty flash granules; and when detecting faulty flash granules, the controller is further configured to determine where the faulty flash granules are located a memory strip and a location of the failed flash memory particle on the memory strip; the controller is further configured to report an identifier of a memory strip in which the faulty flash memory particle is located and the faulty flash memory particle in the memory strip The location on the top. Because the faulty flash granules are detected and reported in time, the user can be prompted to take timely action, such as replacing the failed flash granules or replacing the memory stick where the failed flash granules are located.
在一个可能的设计中,所述盘体上还包括控制器插槽,所述控制器所在的电路板可插拔的插入所述控制器插槽中。如此便于更换所述控制器,而无需像现有技术中那样拆开盖板,更换整个PCB。In a possible design, the disk body further includes a controller slot, and the circuit board where the controller is located is pluggable into the controller slot. This makes it easy to replace the controller without having to open the cover and replace the entire PCB as in the prior art.
在一个可能的设计中,所述至少两个闪存颗粒以贴片的方式设置在所述存储条上。相较于现有技术中将闪存颗粒焊接在PCB上的方式,更容方便用户更换闪存颗粒。In one possible design, the at least two flash memory particles are disposed on the memory strip in a patch. Compared with the prior art, the method of soldering the flash memory particles on the PCB is more convenient for the user to replace the flash memory particles.
在一个可能的设计中,每个所述存储条接口之间并联,每个所述存储条接口和所述控制器之间串联。如此可以实现存储条和存储条之间通道的数据通信由串行转并行方式,所以可以提高数据写请求的处理速度和性能。In one possible design, each of the memory strip interfaces are connected in parallel, with each of the memory strip interfaces and the controller being connected in series. In this way, the data communication between the memory strip and the memory stick can be realized by the serial to parallel mode, so the processing speed and performance of the data write request can be improved.
在一个可能的设计中,每个所述存储条上的闪存颗粒之间并联,闪存颗粒与自身所在的存储条所连接的存储条接口串联。如此可以实现存储条内部各闪存颗粒之间数据通信由串行转并行方式,所以可以提高数据写请求的处理速度和性能。In one possible design, the flash memory particles on each of the memory strips are connected in parallel, and the flash memory particles are in series with the memory strip interface to which the memory strip in which it is located is connected. In this way, the data communication between the flash memory particles inside the memory strip can be realized by the serial to parallel mode, so the processing speed and performance of the data write request can be improved.
在一个可能的设计中,所述盘体上设置有缓冲器插槽,所述外部缓存分区所在的电路板可插拔的插入所述缓冲器插槽中。如此方便更换新的外部缓存分区。In a possible design, the disk body is provided with a buffer slot, and the circuit board where the external cache partition is located is pluggable into the buffer slot. This makes it easy to replace a new external cache partition.
在一个可能的设计中,每个闪存颗粒还可以根据自身的磨损程度极端自身的失效时间,并将失效时间或者告警信号发送给所述控制器。所述控制器将将要失效的闪存颗粒所在的存储条的编号或标识以及将要失效的闪存颗粒在存储条上的位置上报给阵列系统或主机。如此,可以便于主机或阵列系统进行相应的操作,例如进行数据迁移,还可以提示用户及时更换将要失效的闪存颗粒。In one possible design, each flash ray can also have its own failure time based on its own degree of wear and send a failure time or alarm signal to the controller. The controller reports the number or identification of the memory stick where the flash granules to be deflated and the location of the flash granules to be deflated on the memory stick to the array system or host. In this way, it is convenient for the host or the array system to perform corresponding operations, such as data migration, and prompt the user to replace the flash granules that are to be invalidated in time.
第二方面,本发明实施例提供一种存储装置,包括:In a second aspect, an embodiment of the present invention provides a storage device, including:
框架,所述框架上设置有至少一个存储接口;控制器,设置于所述框架中;至少一个存储模块,可插拔的插设于所述至少一个存储接口上;至少一个外部缓存分区,与所述至少一个存储模块一一对应;所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标存储模块,确定所述目标存储模块对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块。通过外部缓存分区,将下发到某个存储模块的待存储数据缓存起来,然后再分别存储到各个目标存储模块,每次外部缓存分区中的待存储数据存储到各个目标存储模块都可以并行 进行,既可以省去控制器的调度处理,也提升了数据写请求的处理速度和性能。a frame, the frame is provided with at least one storage interface; a controller is disposed in the frame; at least one storage module is pluggably inserted on the at least one storage interface; at least one external cache partition, and The at least one storage module is in one-to-one correspondence; the controller is configured to: when receiving a data write request, acquire a target storage module that stores data to be stored from the data write request, and determine a target external location corresponding to the target storage module Cache partitioning, storing the data to be stored in the target external cache partition; storing the data to be stored from the target external cache partition to the target storage module through a storage interface connected to the target storage module. The data to be stored that is delivered to a storage module is cached by the external cache partition, and then stored in each target storage module, and the data to be stored in the external cache partition is stored in each target storage module in parallel. This can save the scheduling process of the controller and improve the processing speed and performance of the data write request.
在一个可能的设计中,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;所述控制器用于从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区,将所述待存储数据存入所述目标外部子缓存分区;将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。因为每个存储模块上设置有至少两个存储单元,所以与每个存储模块对应的外部缓存分区也包括与至少两个存储单元对应的至少两个外部子缓存分区。进一步,因为通过外部子缓存分区,将下发到某个存储单元的待存储数据缓存起来,然后再分别存储到各个目标存储单元,每次外部子缓存分区中的待存储数据存储到各个目标存储单元都可以并行进行,既可以省去控制器的调度处理,也提升了数据写请求的处理速度和性能。In a possible design, at least two storage units are disposed on each of the at least one storage module, and an external cache partition corresponding to each of the storage modules includes a corresponding one of the at least two storage units. At least two external sub-cache partitions; the controller is configured to obtain a target storage unit that stores data to be stored from the data write request, determine a target external sub-cache partition corresponding to the target storage unit, and store the data to be stored And storing the to-be-stored data from the target external sub-cache partition to the target storage unit through a storage interface connected by the storage module where the target storage unit is located. Since at least two storage units are disposed on each storage module, the external cache partition corresponding to each storage module also includes at least two external sub-cache partitions corresponding to at least two storage units. Further, because the external sub-cache partition is used to cache the data to be stored that is sent to a certain storage unit, and then stored separately to each target storage unit, the data to be stored in the external sub-cache partition is stored to each target storage. Units can be performed in parallel, which not only saves the controller's scheduling processing, but also improves the processing speed and performance of data write requests.
在一个可能的设计中,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。通过为外部缓存分区设计备份外部缓存分区,避免了因目标外部缓存分区中的数据丢失以致于无法将数据成功写入目标存储模块。In a possible design, the storage device further includes at least one backup external cache partition, the at least one backup external cache partition is in one-to-one correspondence with the at least one external cache partition, and the controller is further configured to determine the Backing up an external cache partition corresponding to the target external cache partition, and storing the to-be-stored data in the backup external cache partition; failing to store the to-be-stored data from the target external cache partition to the target storage module And storing the to-be-stored data from the backup external cache partition to the target storage module. By designing a backup external cache partition for the external cache partition, it avoids the loss of data in the target external cache partition so that data cannot be successfully written to the target storage module.
在一个可能的设计中,所述控制器还用于确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区,将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。通过为目标存储模块设计备份存储模块,并且在备份存储模块中也存储待存储数据,如此可以避免因误拔存储模块或存储模块故障造成数据丢失。In a possible design, the controller is further configured to determine a backup storage module of the target storage module, determine an external cache partition corresponding to the backup storage module, and store the to-be-stored data in the backup storage module. Corresponding external cache partitions; storing the data to be stored from an external cache partition corresponding to the backup storage module to the backup storage module. By designing a backup storage module for the target storage module and storing the data to be stored in the backup storage module, data loss due to faulty storage module or storage module failure can be avoided.
第三方面,本发明实施例提供一种数据存储方法,用于控制如第二方面所述的存储装置。该方法从控制器的角度进行描述。在该方法中,控制器接收数据写请求。然后控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区。接下来控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块。In a third aspect, an embodiment of the present invention provides a data storage method for controlling a storage device according to the second aspect. This method is described from the perspective of the controller. In this method, the controller receives a data write request. The controller then acquires a target storage module storing the data to be stored from the data write request, and determines a target external cache partition corresponding to the target storage module. And then the controller stores the to-be-stored data in the target external cache partition; and stores the to-be-stored data from the target external cache partition to the target storage through a storage interface to which the target storage module is connected Module.
在一个可能的设计中,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;所述控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;以及所述控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块,包括:所述控制器从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区;所述控制器将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。In a possible design, at least two storage units are disposed on each of the at least one storage module, and an external cache partition corresponding to each of the storage modules includes a corresponding one of the at least two storage units. At least two external sub-cache partitions; the controller acquires a target storage module storing data to be stored from the data write request, and determines a target external cache partition corresponding to the target storage module; and the controller Storing the data to be stored in the target external cache partition; and storing the data to be stored from the target external cache partition to the target storage module through a storage interface connected to the target storage module, including: the control Obtaining, from the data write request, a target storage unit storing data to be stored, determining a target external sub-cache partition corresponding to the target storage unit; and the controller storing the to-be-stored data in the target external sub-cache Partitioning; and passing the data to be stored from the target external sub-cache partition through the target storage list Interface memory storage where the memory module connected to the target storage unit.
在一个可能的设计中,所述存储装置还包括至少一个备份外部缓存分区,所述至少 一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,从控制器的角度来描述,所述方法还包括:所述控制器确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;所述控制器在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。In one possible design, the storage device further includes at least one backup external cache partition, the at least A backup external cache partition is in one-to-one correspondence with the at least one external cache partition, and is described from the perspective of the controller. The method further includes: the controller determining a backup external cache partition corresponding to the target external cache partition, and Depositing the to-be-stored data into the backup external cache partition; the controller, when the storage of the to-be-stored data from the target external cache partition fails to the target storage module, the data to be stored is The backup external cache partition is stored to the target storage module.
在一个可能的设计中,从控制器的角度来描述,所述方法还包括:所述控制器确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区;所述控制器将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。In a possible design, from the perspective of the controller, the method further includes: the controller determining a backup storage module of the target storage module, determining an external cache partition corresponding to the backup storage module; The controller stores the to-be-stored data in an external cache partition corresponding to the backup storage module; and stores the to-be-stored data from an external cache partition corresponding to the backup storage module to the backup storage module.
第四方面,本发明实施例提供一种控制装置,用于控制如第二方面所述的存储装置。具体的,该控制装置可以为控制器。该控制装置具有实现第三方面的方法中控制器的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。In a fourth aspect, an embodiment of the present invention provides a control apparatus for controlling the storage apparatus according to the second aspect. Specifically, the control device can be a controller. The control device has the function of implementing the controller in the method of the third aspect. These functions can be implemented in hardware or in software by executing the corresponding software. The hardware or software includes one or more units corresponding to the functions described above.
在一个可能的设计中,作为控制器的控制装置的具体结构可包括接收单元、确定单元以及处理单元。接收单元、确定单元以及处理单元可执行上述第三方面的方法中的相应功能。In one possible design, the specific structure of the control device as the controller may include a receiving unit, a determining unit, and a processing unit. The receiving unit, the determining unit, and the processing unit may perform respective functions in the method of the above third aspect.
第五方面,本发明实施例提供一种计算机存储介质,用于存储为上述第四方面所描述的控制装置所用的计算机软件指令,并包含用于执行上述方面所设计的程序。In a fifth aspect, an embodiment of the present invention provides a computer storage medium for storing computer software instructions used by the control device described in the above fourth aspect, and including a program designed to execute the above aspects.
附图说明DRAWINGS
图1为本发明实施例提供的一种SSD的结构图;FIG. 1 is a structural diagram of an SSD according to an embodiment of the present invention;
图2为本发明实施例提供的另一种SSD的结构图;2 is a structural diagram of another SSD according to an embodiment of the present invention;
图3为本发明实施例提供的一种系统结构图;3 is a structural diagram of a system according to an embodiment of the present invention;
图4为本发明实施例提供的一种可视化管理界面的示意图;4 is a schematic diagram of a visual management interface according to an embodiment of the present invention;
图5为本发明实施例提供的一种存储装置的结构图;FIG. 5 is a structural diagram of a storage device according to an embodiment of the present invention;
图6为本发明实施例提供的一种数据存储方法的流程图;FIG. 6 is a flowchart of a data storage method according to an embodiment of the present invention;
图7为本发明实施例提供的一种控制装置的功能框图。FIG. 7 is a functional block diagram of a control apparatus according to an embodiment of the present invention.
具体实施方式detailed description
本发明提供一种固态硬盘SSD、存储装置及数据存储方法,用以解决现有技术中SSD的结构导致拆卸以及更换复杂的技术问题。The present invention provides a solid state hard disk SSD, a storage device, and a data storage method for solving the technical problems of disassembly and replacement of the structure of the SSD in the prior art.
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。The term "and/or" in this context is merely an association describing the associated object, indicating that there may be three relationships, for example, A and / or B, which may indicate that A exists separately, and both A and B exist, respectively. B these three situations. In addition, the character "/" in this article generally indicates that the contextual object is an "or" relationship.
下面将结合本发明实施例中的附图,本发明实施例中的技术方案进行描述。The technical solutions in the embodiments of the present invention will be described below with reference to the accompanying drawings in the embodiments of the present invention.
请参考图1所示,为本发明实施例提供的一种SSD的结构图。该SSD包括:盘体10,盘体10上设置有用于与磁盘阵列连接的连接口101、至少一个存储条接口102。连接口101例如为串行小型计算机系统接口(英文:Serial Attached Small Computer System Interface,简称:SAS)或者是快速外设组件接口(英文:Peripheral Component Interface Express,简称:PCIE或PCIe)。 Please refer to FIG. 1 , which is a structural diagram of an SSD according to an embodiment of the present invention. The SSD includes a disk body 10 on which a connection port 101 for connecting to a disk array and at least one memory bar interface 102 are disposed. The connection port 101 is, for example, a Serial Attached Small Computer System Interface (SAS) or a Peripheral Component Interface Express (English: Peripheral Component Interface Express, PCIE or PCIe).
该SSD还包括控制器20,设置于盘体10中。控制器20分别与连接口101和存储条接口102电性连接。The SSD further includes a controller 20 disposed in the disk body 10. The controller 20 is electrically connected to the connection port 101 and the memory bar interface 102, respectively.
可选的,盘体10上还包括控制器插槽,控制器20所在的电路板可插拔的插入控制器插槽中。如此便于更换控制器20,而无须像现有技术中那样需要拆开盖板,更换整个PCB。Optionally, the disk 10 further includes a controller slot, and the circuit board where the controller 20 is located is pluggable into the controller slot. This makes it easy to replace the controller 20 without having to disassemble the cover and replace the entire PCB as in the prior art.
该SSD还包括至少一个存储条30,可插拔的插设于至少一个存储条接口102上。具体的,存储条30包括连接头302。通过连接头302和存储条接口102,存储条30可插设于盘体10中,也可以从盘体10中脱离。The SSD also includes at least one memory stick 30 that is pluggably inserted into the at least one memory stick interface 102. Specifically, the memory stick 30 includes a connector 302. The memory strip 30 can be inserted into the disk body 10 or detached from the disk body 10 through the connector 302 and the memory bar interface 102.
可选的,存储条30还包括拉手303。拉手303便于用户对存储条30进行插拔。Optionally, the memory stick 30 further includes a handle 303. The handle 303 facilitates the user to insert and remove the memory stick 30.
至少一个存储条30中每个存储条上设置有至少两个闪存(英文:Flash)颗粒301。闪存颗粒301用于存储数据。控制器20可以通过连接口101接收上层主机或其它实体发送的数据读写请求。控制器20用于根据该数据读写请求通过每个存储条接口102对每个存储条接口102连接的存储条上的闪存颗粒301中的数据进行读写。At least two flash memory (English: Flash) particles 301 are disposed on each of the at least one memory stick 30. Flash memory particles 301 are used to store data. The controller 20 can receive a data read/write request sent by an upper host or other entity through the connection port 101. The controller 20 is configured to read and write data in the flash memory particles 301 on the memory stick connected to each of the memory strip interfaces 102 through each of the memory strip interfaces 102 according to the data read/write request.
如此便于更换存储条30,而无须像现有技术中那样需要拆开盖板,更换整个PCB,同时也能降低更换成本。This makes it easy to replace the memory stick 30 without having to open the cover and replace the entire PCB as in the prior art, while also reducing the replacement cost.
可选的,闪存颗粒301包括内部缓存区和闪存。Optionally, the flash granule 301 includes an internal buffer and a flash memory.
可选的,存储条30上还可以放置电容和非易失性随机访问存储器(英文:Non-Volatile Random Access Memory,简称:NVRAM)。电容和NVRAM可以完成一些SSD的辅助功能,例如整流,滤波,防止电路各部分供电电压因负载变化而产生变化,提高数据访问的速度等。Optionally, a capacitor and a non-volatile random access memory (English: Non-Volatile Random Access Memory, NVRAM for short) can be placed on the memory stick 30. Capacitors and NVRAM can perform some auxiliary functions of SSD, such as rectification and filtering, to prevent the supply voltage of each part of the circuit from changing due to load changes, and to improve the speed of data access.
可选的,存储条30上的闪存颗粒301、电容或NVRAM均可以采用贴片的方式设置在存储条30上,相较于现有技术中闪存颗粒301、电容或NVRAM被焊接在PCB上的方式,贴片的方式更方便用户更换。Optionally, the flash memory 301, the capacitor or the NVRAM on the memory stick 30 can be disposed on the memory stick 30 in a manner of being mounted on the PCB, compared to the flash memory 301, the capacitor or the NVRAM in the prior art. The way, the way of patching is more convenient for users to replace.
可选的,盘体10还包括存储条容槽103,当存储条30插设于存储条接口102上时,存储条30可以容置于存储条容槽103中,一方面便于固定存储条30,另一方面便于搬运SSD。Optionally, the disk 10 further includes a storage strip slot 103. When the storage strip 30 is inserted into the storage strip interface 102, the storage strip 30 can be received in the storage strip slot 103, and the storage strip 30 can be fixed on the one hand. On the other hand, it is easy to carry SSD.
请继续参考图1所示,为了提高数据访问速度,在本实施中提供了两级串转并通道,简而言之,即将同类型器件先并联起来,然后再和别的器件进行串联。具体的,其中一级串转并通道为:每个存储条接口102之间是并联结构,然后每个存储条接口102和控制器20之间是串联。如此,存储条30和存储条30之间通道的数据通信由串行转并行方式。Please continue to refer to FIG. 1. In order to improve the data access speed, a two-stage serial-to-channel is provided in the present embodiment. In short, devices of the same type are connected in parallel and then connected in series with other devices. Specifically, the one-stage serial transmission channel is: each storage bar interface 102 is in parallel structure, and then each storage bar interface 102 and the controller 20 are connected in series. As such, the data communication of the channels between the memory stick 30 and the memory stick 30 is in a serial to parallel manner.
可选的,控制器20与存储条接口102之间的通信总线201可以为PCIe串行总线。Alternatively, the communication bus 201 between the controller 20 and the memory stick interface 102 may be a PCIe serial bus.
第二级串转并通道为:将存储条30内部的闪存颗粒301进行并联,然后再与存储条接口102串联。换言之,闪存颗粒301之间是并联的,但是闪存颗粒和存储条接口102之间是串联的。如此可以实现存储条内部各闪存颗粒301之间数据通信由串行转并行方式。The second stage serial transmission channel is: parallelizing the flash memory particles 301 inside the memory strip 30, and then connecting in series with the memory strip interface 102. In other words, the flash memory particles 301 are connected in parallel, but the flash memory particles and the memory strip interface 102 are connected in series. In this way, data communication between the flash memory particles 301 inside the memory strip can be realized by a serial to parallel method.
可选的,存储条接口102与闪存颗粒301之间的总线202可以为热插拔缓冲式内部整合电路(英文:Inter-Integrated Circuit,简称:I2C)总线。Optionally, the bus 202 between the memory strip interface 102 and the flash memory 301 may be a hot-swappable internal integrated circuit (English: Inter-Integrated Circuit, I 2 C) bus.
接下来请参考图2所示,SSD还包括外部缓存区40。外部缓存区40与控制器20之间可以采用PCIe总线进行互联。外部缓存区40被划分为至少两个外部缓存分区401。每个外部缓存分区401对应一个闪存颗粒301。每个闪存颗粒301具有一个内部缓存区 3011。如图2所示,外部缓存区40包括4个外部缓存分区401,分别为外部缓存分区C1至C4。外部缓存分区C1与第一存储条的闪存颗粒1对应。闪存颗粒1具有一个内部缓存区C1’。外部缓存分区C2与第一存储条的闪存颗粒2对应。闪存颗粒2具有一个内部缓存区C2’。外部缓存分区C3与第一存储条的闪存颗粒3对应。闪存颗粒3具有一个内部缓存区C3’。外部缓存分区C4与第一存储条的闪存颗粒4对应。闪存颗粒4具有一个内部缓存区C4’。Referring next to FIG. 2, the SSD also includes an external buffer area 40. The external buffer area 40 and the controller 20 can be interconnected by using a PCIe bus. The external buffer area 40 is divided into at least two external cache partitions 401. Each external cache partition 401 corresponds to one flash granule 301. Each flash granule 301 has an internal buffer 3011. As shown in FIG. 2, the external buffer area 40 includes four external cache partitions 401, which are external cache partitions C1 to C4, respectively. The external cache partition C1 corresponds to the flash granule 1 of the first memory stick. The flash memory particle 1 has an internal buffer area C1'. The external cache partition C2 corresponds to the flash granule 2 of the first memory stick. The flash memory 2 has an internal buffer area C2'. The external cache partition C3 corresponds to the flash memory particles 3 of the first memory stick. The flash memory chip 3 has an internal buffer area C3'. The external cache partition C4 corresponds to the flash memory particles 4 of the first memory stick. The flash memory 4 has an internal buffer area C4'.
请同时参考图3所示,为具有外部缓存区之后的系统图。其中主机可以向SSD写数据,也可以从SSD读数据,所以主机可以通过连接口101向控制器20下发数据读写请求,也可以称为输入(英文:Input,简称:I)/输出(英文:Output,简称:O)请求。Please refer to FIG. 3 as a system diagram after having an external buffer area. The host can write data to the SSD, and can also read data from the SSD. Therefore, the host can send a data read/write request to the controller 20 through the connection port 101, which can also be called input (English: Input, referred to as: I)/output ( English: Output, referred to as: O) Request.
另外,在图3中,外部缓存区40还可以包括外部缓存分区C9和外部缓存分区C10。外部缓存分区C9和外部缓存分区C10分别与第二存储条的闪存颗粒9和闪存颗粒10对应。In addition, in FIG. 3, the external buffer area 40 may further include an external cache partition C9 and an external cache partition C10. The external cache partition C9 and the external cache partition C10 correspond to the flash granules 9 and the flash granules 10 of the second memory strip, respectively.
需要说明的是,在图3中,实线箭头表示I/O交互流程,即表示I/O请求从上层主机下发到外部缓存分区401,再由外部缓存分区401将待存储数据存储到闪存颗粒301的内部缓存区3011。虚线箭头表示逻辑处理流程,即表示外部缓存分区401与闪存颗粒的内部缓存区3011建立起逻辑上的映射关系,或外部缓存区40与外部缓存区50建立起逻辑映射关系,互为备份关系。其中互为备份关系的内容将在后面详细描述。It should be noted that, in FIG. 3, the solid arrow indicates the I/O interaction flow, that is, the I/O request is sent from the upper host to the external cache partition 401, and the external cache partition 401 stores the data to be stored to the flash memory. The internal buffer area 3011 of the particles 301. The dotted arrow indicates the logical processing flow, that is, the external cache partition 401 establishes a logical mapping relationship with the internal buffer area 3011 of the flash memory, or the external buffer area 40 establishes a logical mapping relationship with the external buffer area 50, which is a backup relationship. The contents of each other's backup relationship will be described in detail later.
可选的,盘体10上还可以预留缓冲器插槽,外部缓存区40可以通过缓冲器插槽插入到盘体10上或者从盘体10上拔出。在外部缓存区40损坏的情况下,可以拔出损坏的外部缓存区40,离线更换新的外部缓存区40或者是外部缓存分区401。Optionally, a buffer slot may be reserved on the disk body 10. The external buffer area 40 may be inserted into or removed from the disk body 10 through the buffer slot. In the event that the external cache area 40 is corrupted, the damaged external buffer area 40 can be unplugged, and the new external buffer area 40 or the external cache partition area 401 can be replaced offline.
在实际运用中,可以建立一个外部缓存分区401和闪存颗粒301之间的对应关系映射表,存储在控制器20中或者其它存储单元上。当然也可以直接建立一个外部缓存分区401和内部缓存区3011之间的对应关系映射表。通过该映射表,控制器20可以确定每个闪存颗粒对应的外部缓存分区是哪个分区。In actual use, a correspondence mapping table between the external cache partition 401 and the flash memory 301 can be established and stored in the controller 20 or other storage unit. Of course, it is also possible to directly establish a correspondence mapping table between the external cache partition 401 and the internal cache area 3011. Through the mapping table, the controller 20 can determine which partition the external cache partition corresponding to each flash granule is.
当控制器20在接收到数据写请求时,例如从连接口101接收到主机发送的数据写请求,从所述数据写请求中获取存储待存储数据的目标闪存颗粒,确定所述目标闪存颗粒对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒。When the controller 20 receives the data write request, for example, receiving a data write request sent by the host from the connection port 101, acquiring target flash memory particles storing the data to be stored from the data write request, determining that the target flash memory particle corresponds to a target external cache partition, storing the to-be-stored data in the target external cache partition; storing the to-be-stored data from the target external cache partition to the target flash granule.
举例来说,控制器20通过连接口101接收到主机发送的数据写请求。数据写请求中可以包含待存储数据以及用于存储所述待存储数据的目标闪存颗粒的位置,例如编号为1的存储条30上的闪存颗粒1。在该种情况下,控制器20就可以通过数据写请求获取目标闪存颗粒,例如目标闪存颗粒为编号为1的存储条30上的闪存颗粒1。For example, the controller 20 receives a data write request sent by the host through the connection port 101. The data write request may include data to be stored and a location of the target flash granule for storing the data to be stored, such as flash granule 1 on the memory stick 30 numbered 1. In this case, the controller 20 can acquire the target flash granules by a data write request, for example, the target flash granules are the flash granules 1 on the memory stick 30 numbered 1.
可选的,数据写请求中也可以不包括用于存储所述待存储数据的目标闪存颗粒的位置,控制器20可以根据预设的写数据规则,为本次数据写请求中包含的待存储数据确定一个目标闪存颗粒。例如确定出的目标闪存颗粒为编号为1的存储条30上的闪存颗粒1。Optionally, the data write request may not include a location of the target flash granule for storing the data to be stored, and the controller 20 may store the request to be stored in the data write request according to a preset write data rule. The data identifies a target flash granule. For example, the determined target flash granule is the flash granule 1 on the memory stick 30 numbered 1.
可选的,控制器20例如是通过前述映射表确定所述目标闪存颗粒对应的目标外部缓存分区。Optionally, the controller 20 determines, for example, a target external cache partition corresponding to the target flash particle by using the foregoing mapping table.
举例来说,控制器20根据映射表确定目标闪存颗粒对应的目标外部缓存分区为外部缓存分区C1。For example, the controller 20 determines, according to the mapping table, the target external cache partition corresponding to the target flash particle as the external cache partition C1.
接下来控制器20将待存储数据存入目标外部缓存分区,例如存入外部缓存分区C1。Next, the controller 20 stores the data to be stored in the target external cache partition, for example, into the external cache partition C1.
可选的,将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒,可 以是直接将待存储数据从目标外部缓存分区迁移至目标闪存颗粒,也可以是将目标外部缓存分区中的待存储数据复制一份,存储至目标闪存颗粒。Optionally, storing the to-be-stored data from the target external cache partition to the target flash granule, Therefore, the data to be stored is directly migrated from the target external cache partition to the target flash granule, or the data to be stored in the target external cache partition may be copied and stored to the target flash granule.
可选的,因为存储条接口102与连接至其上的存储条30上的闪存颗粒301是串联,各个闪存颗粒301之间是并联,所以存储条接口102可以并行进行多个将待存储数据发往对应的目标闪存颗粒的操作。如此,存储条接口102就可以并行处理多个数据写请求。Optionally, because the memory strip interface 102 is connected in series with the flash memory particles 301 on the memory stick 30 connected thereto, and the respective flash memory particles 301 are connected in parallel, the memory strip interface 102 can perform multiple data to be stored in parallel. The operation of the corresponding target flash granules. As such, the bank interface 102 can process multiple data write requests in parallel.
举例来说,控制器20将存储在目标外部缓存分区C1上的待存储数据通过目标闪存颗粒,即闪存颗粒1所连接的存储条接口102迁移至闪存颗粒1。同时控制器20还可以将存储在目标外部缓存分区C2上的待存储数据通过目标闪存颗粒,即闪存颗粒2所连接的存储条接口102迁移至闪存颗粒2,其中,闪存颗粒1和闪存颗粒2所连接的存储条接口是相同的存储条接口。For example, the controller 20 migrates the data to be stored stored on the target external cache partition C1 to the flash granule 1 through the target flash granule, that is, the memory stick interface 102 to which the flash granule 1 is connected. At the same time, the controller 20 can also migrate the data to be stored stored on the target external cache partition C2 to the flash memory particles 2 through the target flash granules, that is, the memory strip interface 102 to which the flash granules 2 are connected, wherein the flash granules 1 and the flash granules 2 The connected memory strip interfaces are the same memory stick interface.
需要说明的是,若是通过将目标外部缓存分区中的待存储数据复制一份,存储至目标闪存颗粒的方式,那么在待存储数据存储在目标闪存颗粒上之后,目标闪存颗粒可以发送已存储成功的响应给控制器20,控制器20根据该响应将存储在目标外部缓存分区上的待存储数据进行删除,以节约存储空间。若未存储成功,控制器20可以重复控制将待存储数据从目标外部缓存分区中复制一份存储至目标闪存颗粒,直至存储成功。It should be noted that, if the data to be stored in the target external cache partition is copied to the target flash granules, the target flash granules can be successfully stored after the data to be stored is stored on the target flash granules. The response is given to the controller 20, and the controller 20 deletes the data to be stored stored on the target external cache partition according to the response to save storage space. If the storage is not successful, the controller 20 may repeatedly control to store the data to be stored from the target external cache partition to the target flash granules until the storage is successful.
可选的,将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒,可以是直接将待存储数据从目标外部缓存分区存储至目标闪存颗粒的闪存上,也可以是先将待存储数据从目标外部缓存分区存储至目标闪存颗粒的内部缓存区中,然后目标闪存颗粒的控制器再通过内部缓存机制,将待存储数据从内部缓存区中存储在目标闪存颗粒的闪存上。Optionally, storing the data to be stored from the target external cache partition to the target flash granule may directly store the data to be stored from the target external cache partition to the flash memory of the target flash granule, or may be The data to be stored is stored from the target external cache partition into the internal cache area of the target flash granule, and then the controller of the target flash granule stores the data to be stored from the internal buffer in the flash memory of the target flash granule through the internal cache mechanism. .
由以上描述可以看出,本发明实施例通过外部缓存分区401,将下发到某个存储条30的每个闪存颗粒的待存储数据缓存起来,然后再分别存储到各个目标闪存颗粒,每次外部缓存分区401中的待存储数据存储到各个目标闪存颗粒都可以并行进行,既可以省去控制器20的调度处理,也提升了数据写请求的处理速度和性能。举例来说,假设某个存储条30包含有4个闪存颗粒301,主机下发4个数据写请求,分别向这4个闪存颗粒写数据,控制器20将这4个数据写请求中的待存储数据分别存入这4个闪存颗粒对应的外部缓存分区,然后再将存放在这4个闪存颗粒301对应的外部缓存分区中的待存储数据并行存入到这4个闪存颗粒301中。As can be seen from the above description, the embodiment of the present invention caches the data to be stored of each flash granule that is sent to a certain storage strip 30 through the external cache partition 401, and then stores the data to each target flash granule, respectively. The storage of the data to be stored in the external cache partition 401 to each target flash granule can be performed in parallel, which can save the scheduling process of the controller 20 and improve the processing speed and performance of the data write request. For example, suppose a certain memory bar 30 contains four flash memory particles 301, and the host issues four data write requests to write data to the four flash memory particles respectively, and the controller 20 writes the four data write requests. The stored data is stored in the external cache partition corresponding to the four flash granules, and then the data to be stored stored in the external cache partition corresponding to the four flash granules 301 is stored in the four flash granules 301 in parallel.
可选的,至少两个外部缓存分区之间是相互连通的,所以控制器20可以直接控制数据从一个外部缓存分区转移至另一个外部缓存分区,而数据不需要通过控制器20进行中转,所以可以实现数据快速交互的目的。Optionally, at least two external cache partitions are connected to each other, so the controller 20 can directly control data transfer from one external cache partition to another external cache partition, and the data does not need to be transferred by the controller 20, so The purpose of fast data interaction can be achieved.
可选的,请继续参考图2所示,SSD还包括另一外部缓存区50,可以作为外部缓存区40的备份缓存区。外部缓存区50和外部缓存区40之间可以通过接口总线串联在一起,保持互通。Optionally, referring to FIG. 2, the SSD further includes another external buffer area 50, which can serve as a backup buffer area of the external buffer area 40. The external buffer area 50 and the external buffer area 40 can be connected in series through the interface bus to maintain interworking.
具体的,外部缓存区50例如包括至少两个外部缓存分区501,例如分别为外部缓存分区C5至C8。外部缓存分区C5为外部缓存分区C1的备份缓存分区。外部缓存分区C6为外部缓存分区C2的备份缓存分区。外部缓存分区C7为外部缓存分区C3的备份缓存分区。外部缓存分区C8为外部缓存分区C4的备份缓存分区。Specifically, the external buffer area 50 includes, for example, at least two external cache partitions 501, such as external cache partitions C5 to C8, respectively. The external cache partition C5 is the backup cache partition of the external cache partition C1. The external cache partition C6 is the backup cache partition of the external cache partition C2. The external cache partition C7 is the backup cache partition of the external cache partition C3. The external cache partition C8 is the backup cache partition of the external cache partition C4.
可选的,用于备份的外部缓存区50的数量可以是一个,也可以是多个。Optionally, the number of external buffers 50 for backup may be one or multiple.
在实际运用中,可以建立两个外部缓存区中每个外部缓存分区之间的备份映射关系。备份映射关系可以存储在控制器20上或者其它存储单元上。在这种情况下,控制器20 在确定目标闪存颗粒对应的目标外部缓存分区后,还可以根据备份映射关系确定目标外部缓存分区的备份外部缓存分区。进一步,控制器20可以将待存储数据存入目标闪存颗粒对应的目标外部缓存分区,以及存入目标外部缓存分区的备份外部缓存分区。继续以前述实例为例,假设目标外部缓存分区为外部缓存分区C1,那么控制器20可以确定外部缓存分区C1的备份外部缓存分区为外部缓存分区C5。然后控制器20可以将待存储数据存入外部缓存分区C1和外部缓存分区C5。In practice, a backup mapping relationship between each external cache partition in two external cache areas can be established. The backup mapping relationship can be stored on the controller 20 or on other storage units. In this case, the controller 20 After determining the target external cache partition corresponding to the target flash granule, the backup external cache partition of the target external cache partition may also be determined according to the backup mapping relationship. Further, the controller 20 may store the data to be stored in the target external cache partition corresponding to the target flash granule and the backup external cache partition in the target external cache partition. Continuing with the foregoing example as an example, assuming that the target external cache partition is the external cache partition C1, the controller 20 can determine that the backup external cache partition of the external cache partition C1 is the external cache partition C5. The controller 20 can then store the data to be stored in the external cache partition C1 and the external cache partition C5.
接下来如果在将待存储数据从目标外部缓存分区存储至目标闪存颗粒前,目标外部缓存分区出现故障;或者从目标外部缓存分区迁移至目标闪存颗粒的过程中,用户误拔出了存储条30或者目标闪存颗粒出现故障,导致待存储数据未成功存储至目标闪存颗粒,控制器20在接收到存储失败的响应以及以上失败原因时,控制器20还可以从备份外部缓存分区中获取待存储数据,并再将待存储数据存储至目标闪存颗粒中。Next, if the target external cache partition fails before storing the data to be stored from the target external cache partition to the target flash granule; or during the migration from the target external cache partition to the target flash granule, the user mistakenly pulls out the storage strip 30 Or the target flash granule fails, the data to be stored is not successfully stored to the target flash granule, and the controller 20 can obtain the data to be stored from the backup external cache partition when receiving the response of the storage failure and the above failure reason. And store the data to be stored in the target flash granules.
需要说明的是,对于在用户误拔存储条30的情况下,若是用户重新将存储条30插入,那么在控制器20向目标闪存颗粒存储待存储数据时,将前次已存储的部分待存储数据覆盖掉,以保证数据的一致性。如果用户已将存储条30更换,那么控制器20就直接将备份的外部缓存分区中的待存储数据直接存入已更换的存储条的目标闪存颗粒中。如此同样可以保证数据的完整性和一致性。It should be noted that, in the case that the user mistakenly removes the memory stick 30, if the user reinserts the memory stick 30, when the controller 20 stores the data to be stored to the target flash granule, the previously stored portion is to be stored. Data is overwritten to ensure data consistency. If the user has replaced the memory stick 30, the controller 20 directly stores the data to be stored in the backup external cache partition directly into the target flash memory of the replaced memory stick. This also ensures data integrity and consistency.
通过该实施例中的备份外部缓存分区,可以提高数据存储的可靠性。With the backup external cache partition in this embodiment, the reliability of data storage can be improved.
可选的,为了误拔存储条30或者闪存颗粒301故障造成数据丢失,在本发明实施例中,控制器20在确定出用于存储待存储数据的目标闪存颗粒之后,控制器20还可以确定目标闪存颗粒的备份闪存颗粒。具体的,控制器20可以是根据闪存颗粒之间的备份关系表确定目标闪存颗粒的备份闪存颗粒。该备份关系表为预先配置给控制器20,或者是控制器20根据预设规则建立的。Optionally, in order to mistype the memory strip 30 or the flash memory 301 to cause data loss, in the embodiment of the present invention, after determining the target flash granule for storing the data to be stored, the controller 20 may further determine Backup flash granules of target flash granules. Specifically, the controller 20 may be a backup flash granule that determines a target flash granule according to a backup relationship table between the flash granules. The backup relationship table is pre-configured to the controller 20, or the controller 20 is established according to a preset rule.
控制器20还可以根据前述映射表确定备份闪存颗粒对应的外部缓存分区。然后控制器20还将待存储数据存储至备份闪存颗粒对应的外部缓存分区,再将待存储数据从备份闪存颗粒对应的外部缓存分区存储至备份闪存颗粒的内部缓存区,进而再存储至备份闪存颗粒的闪存上。一个数据写请求中的待存储数据被存储至目标闪存颗粒以及备份闪存颗粒上,当目标闪存颗粒出现故障时,依然可以在备份闪存颗粒上找到该待存储数据,保证主机的正常运行。The controller 20 can also determine an external cache partition corresponding to the backup flash granule according to the foregoing mapping table. The controller 20 then stores the data to be stored to the external cache partition corresponding to the backup flash granules, and then stores the data to be stored from the external cache partition corresponding to the backup flash granules to the internal cache area of the backup flash granules, and then stores the data to the backup flash memory. Particles on the flash. The data to be stored in a data write request is stored on the target flash granule and the backup flash granule. When the target flash granule fails, the data to be stored can still be found on the backup flash granule to ensure the normal operation of the host.
较佳的,备份闪存颗粒和目标闪存颗粒位于不同的存储条30上。如此一来,一个数据写请求中的待存储数据被存储至目标闪存颗粒以及备份闪存颗粒上,当目标闪存颗粒所在的存储条30被误拔之后,依然可以在备份闪存颗粒上找到该待存储数据,而不会因为目标闪存颗粒所在的存储条30被误拔导致数据丢失。Preferably, the backup flash granules and the target flash granules are located on different storage strips 30. In this way, the data to be stored in a data write request is stored on the target flash granule and the backup flash granule. After the storage strip 30 where the target flash granule is located is mistakenly deleted, the to-be-stored can still be found on the backup flash granule. Data, without data loss due to the memory strip 30 where the target flash granules are located is misplaced.
接下来将描述如何在线变更存储条30的容量,例如在线减少或增加闪存颗粒301,或者是替换闪存颗粒301,或者是插入,拔出或删除存储条30,或者是存储条30的数据迁移。Next, how to change the capacity of the memory stick 30 online, for example, to reduce or increase the flash memory particles 301 online, or to replace the flash memory particles 301, or to insert, unplug or delete the memory stick 30, or the data migration of the memory stick 30 will be described.
在一个可能的例子中,可以修改现有的小型计算机系统接口(英文:Small Computer System Interface,简称:SCSI)协议来配合存储条30的在线容量变更。修改后的SCSI协议的一种可能的格式如表一所示。In one possible example, the existing Small Computer System Interface (SCSI) protocol can be modified to match the online capacity change of the memory stick 30. A possible format of the modified SCSI protocol is shown in Table 1.
Figure PCTCN2017104017-appb-000001
Figure PCTCN2017104017-appb-000001
Figure PCTCN2017104017-appb-000002
Figure PCTCN2017104017-appb-000002
表一Table I
其中,在表一中,操作码类似于现有SCSI协议的读命令0x28,写命令0x2a,本实施例可以定义一个特殊的操作码来表示存储条操作,比如定义操作码0xf1表示存储条操作。Among them, in Table 1, the operation code is similar to the read command 0x28 of the existing SCSI protocol, and the write command 0x2a. This embodiment can define a special operation code to represent the operation of the memory bar. For example, the definition operation code 0xf1 indicates the operation of the memory stick.
存储条操作代码:表示对存储条30执行具体的操作,例如插入或拔出某个存储条30,可以用一个字节来表示具体的操作代码,比如可以定义为:0x1表示查询某个存储条30,0x2表示删除某个存储条30,0x3表示插入某个存储条条30,0x6表示迁移某个存储条30的数据,其它类似,在此不再一一举例。The storage bar operation code: indicates that a specific operation is performed on the storage bar 30, for example, inserting or extracting a certain storage bar 30, and a specific operation code may be represented by one byte, for example, it may be defined as: 0x1 indicates that a certain storage bar is queried. 30, 0x2 indicates that a certain memory strip 30 is deleted, 0x3 indicates that a certain storage strip 30 is inserted, and 0x6 indicates that data of a certain storage strip 30 is migrated, and other similarities are not exemplified herein.
被控存储条标识:标识待操作的存储条30的编号。比如被控存储条标识定义为0x5,表示要迁移数据的存储条30的标识为0x5。Controlled storage strip identifier: identifies the number of the storage strip 30 to be operated. For example, the controlled storage strip identifier is defined as 0x5, and the identifier of the storage strip 30 indicating that the data is to be migrated is 0x5.
控制变量和数据1:指定将数据迁往的存储条30的标识以及要迁移的数据量,数据地址,数据长度,以及是否迁移完成的标志位等。可选的,在操作指令较简单时,此字段可为空。Control Variables and Data 1: Specify the identifier of the memory stick 30 to which the data is to be moved, the amount of data to be migrated, the data address, the data length, and the flag bit for completion of migration. Optionally, this field can be empty when the operation instruction is simple.
控制变量和数据2和保留字段属于可进一步扩展的字段。可选的,在操作指令较简单时,此字段可以为空。举例来说,插入某个存储条30时,就只需要制定到被控存储条30的标识即可,控制变量和数据1、控制变量和数据2和保留字段就可以为空。因此,表一中的部分字段是否为空取决于操作的繁简程度。Control variables and data 2 and reserved fields belong to fields that can be further extended. Optionally, this field can be empty when the operation instruction is simple. For example, when a certain memory stick 30 is inserted, only the identification to the controlled memory stick 30 needs to be made, and the control variables and data 1, control variables and data 2 and reserved fields can be empty. Therefore, whether some of the fields in Table 1 are empty depends on the complexity of the operation.
在以上扩展的SCSI协议中,控制变量可以支持到闪存颗粒301的管理,并且设计了两个控制变量和数据的字段,能够保证完成多种命令参数的组合。In the extended SCSI protocol above, the control variables can support the management of the flash granules 301, and two fields of control variables and data are designed to ensure that a combination of various command parameters is completed.
进一步,当存储条30被插拔时,控制器20可以自动向阵列系统上报存储条30被插入或被拔出。Further, when the memory stick 30 is plugged and unplugged, the controller 20 can automatically report to the array system that the memory stick 30 is inserted or removed.
可选的,控制器20侦测是否有故障的闪存颗粒301;若侦测到有故障的闪存颗粒301,确定所述故障的闪存颗粒301所在的位置,例如故障的闪存颗粒301所在的存储条30的编号或标识,以及故障的闪存颗粒301在存储条30上的位置;然后控制器20可以向阵列系统或主机上报故障的闪存颗粒的位置。需要说明的是,控制器20侦测是否有故障的闪存颗粒301的方式为本领域技术人员所熟知的,例如控制器20定期向所有在线的闪存颗粒301发送侦测信号,若在预设时间内未收到某个闪存颗粒301的回复信号,则表示该闪存颗粒301故障了。Optionally, the controller 20 detects whether there is a faulty flash granule 301; if the faulty flash granule 301 is detected, determining the location of the faulty flash granule 301, for example, the storage strip where the faulty flash granule 301 is located The number or identification of 30, and the location of the failed flash granule 301 on the memory stick 30; then the controller 20 can report the location of the failed flash granule to the array system or host. It should be noted that the manner in which the controller 20 detects the faulty flash granules 301 is well known to those skilled in the art. For example, the controller 20 periodically sends detection signals to all the online flash granules 301, if at a preset time. If the reply signal of a certain flash memory 301 is not received, it indicates that the flash memory 301 is faulty.
可选的,闪存颗粒301还可以根据自身的磨损程度计算自身的失效时间,然后将失效时间或者告警信号发送给控制器20。控制器20可以将将要失效的闪存颗粒301所在 的存储条30的编号或标识以及将要失效的闪存颗粒301在存储条30上的位置上报给阵列系统或主机。Optionally, the flash memory particles 301 can also calculate its own failure time according to its own degree of wear, and then send the failure time or alarm signal to the controller 20. The controller 20 can place the flash memory 301 to be invalidated. The number or identification of the memory stick 30 and the location of the flash memory 301 to be expired on the memory stick 30 are reported to the array system or host.
可选的,控制器20还可以根据前述扩展的SCSI协议将将要失效的闪存颗粒301上的数据迁移至其它未失效的闪存颗粒301上。Optionally, the controller 20 may also migrate data on the flash granules 301 to be lapsed to other non-failed flash granules 301 according to the aforementioned extended SCSI protocol.
可选的,本发明实施例还提供了一种可视化管理界面,用于配合存储条30的操作使用,例如可以将故障的闪存颗粒301和将要失效的闪存颗粒301进行显示,提示用户进行更换操作。Optionally, the embodiment of the present invention further provides a visual management interface for cooperating with the operation of the storage strip 30. For example, the faulty flash granule 301 and the flash granule 301 to be invalidated may be displayed to prompt the user to perform the replacement operation. .
请参考图4所示,为一种可能的可视化管理界面的示意图。当阵列系统或主机接收到控制器20上报的故障的闪存颗粒301或将要失效的闪存颗粒301后,就在可视化管理界面上对应故障的闪存颗粒301或将要失效的闪存颗粒301的图标位置上进行提示,在图4中,利用不同的填充背景表示不同状态的闪存颗粒,但在实际应用中,可以用其它提示方式进行提示,例如用红色表示故障,绿色表示正常,黄色表示将要失效。Please refer to FIG. 4, which is a schematic diagram of a possible visual management interface. When the array system or the host receives the failed flash granules 301 or the flash granules 301 to be invalidated by the controller 20, it is performed on the visual management interface corresponding to the faulty flash granules 301 or the icon positions of the flash granules 301 to be invalidated. It is suggested that in FIG. 4, different filled backgrounds are used to represent flash granules of different states, but in practical applications, other prompting manners may be used for prompting, for example, red indicates failure, green indicates normal, and yellow indicates failure.
可选的,前述外部缓存分区、备份缓存分区、备份目标闪存颗粒的方案还可以应用于硬盘阵列、服务器中。Optionally, the foregoing external cache partition, backup cache partition, and backup target flash granules may also be applied to the hard disk array and the server.
具体的,请参考图5所示,为本发明实施例提供的一种存储装置的结构图。该存储装置包括:框架601,框架601上设置有至少一个存储接口6011;控制器602,设置于框架601中;至少一个存储模块603,可插拔的插设于至少一个存储接口6011上;至少一个外部缓存分区604,与至少一个存储模块603一一对应。Specifically, please refer to FIG. 5, which is a structural diagram of a storage device according to an embodiment of the present invention. The storage device includes: a frame 601, at least one storage interface 6011 is disposed on the frame 601; a controller 602 is disposed in the frame 601; and at least one storage module 603 is pluggably inserted into the at least one storage interface 6011; An external cache partition 604 is in one-to-one correspondence with at least one storage module 603.
请同时参考图6所示,为应用于图5所示存储装置的数据存储方法的流程图。以下将结合图5和图6说明数据存储方法的实施过程以及存储装置的各个部分所能实现的功能。如图6所示,该方法包括:Please refer to FIG. 6 at the same time, which is a flowchart of a data storage method applied to the storage device shown in FIG. 5. The implementation of the data storage method and the functions that can be implemented by various parts of the storage device will be described below with reference to FIGS. 5 and 6. As shown in FIG. 6, the method includes:
步骤701:控制器602接收数据写请求;Step 701: The controller 602 receives a data write request.
步骤702:控制器602从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;Step 702: The controller 602 acquires, from the data write request, a target storage module that stores data to be stored, and determines a target external cache partition corresponding to the target storage module.
步骤703:控制器602将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块。Step 703: The controller 602 stores the to-be-stored data in the target external cache partition, and stores the to-be-stored data from the target external cache partition to the storage interface 6011 connected to the target storage module. The target storage module.
可选的,每个存储模块603包括一个内部缓存区6031和存储本体。因此,步骤703中,将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块,可以是将待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块的内部缓存区6031,也可以是待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口6011存储至所述目标存储模块的存储本体。如果是先存储目标存储模块的内部缓存区6031,那么目标存储模块的控制器可以根据内部缓存机制,将待存储数据从目标存储模块的内部缓存区6031存储到目标存储模块的存储本体。Optionally, each storage module 603 includes an internal buffer area 6031 and a storage body. Therefore, in step 703, the data to be stored is stored from the target external cache partition to the target storage module through the storage interface 6011 connected to the target storage module, and the data to be stored may be external to the target. The cache partition is stored in the internal cache area 6031 of the target storage module by the storage interface 6011 connected to the target storage module, or may be the storage to be stored from the target external cache partition through the target storage module. The interface 6011 is stored to the storage body of the target storage module. If the internal cache area 6031 of the target storage module is first stored, the controller of the target storage module may store the data to be stored from the internal cache area 6031 of the target storage module to the storage body of the target storage module according to an internal cache mechanism.
若每个存储模块603上仅有一个存储单元,即一个存储模块603就是一个单独的存储单元,那么步骤701至步骤703的实施过程,与前述描述SSD时,SSD的控制器20的数据存储方法是类似的,只要将前述描述中的闪存颗粒301替换为本实施例中的存储模块603即可。If there is only one storage unit on each storage module 603, that is, one storage module 603 is a single storage unit, then the implementation process of steps 701 to 703, and the foregoing description of the SSD, the data storage method of the controller 20 of the SSD It is similar if the flash memory 301 in the foregoing description is replaced with the storage module 603 in the present embodiment.
若每个存储模块603上设置有至少两个存储单元,例如前述SSD的存储条30上设置有至少两个闪存颗粒301。对应的,与每个存储模块603对应的外部缓存分区604包 括与至少两个存储单元对应的至少两个外部子缓存分区。对应的,步骤702包括:控制器602从数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区。步骤703包括:控制器602将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。具体的实现方式与前述SSD时是类似的,只要将闪存颗粒替换为存储单元,即为本实施例中步骤702和步骤703的实施过程。If at least two storage units are disposed on each storage module 603, for example, at least two flash memory particles 301 are disposed on the storage strip 30 of the foregoing SSD. Correspondingly, an external cache partition 604 packet corresponding to each storage module 603 At least two external sub-cache partitions corresponding to at least two storage units are included. Correspondingly, step 702 includes: the controller 602 acquires, from the data write request, a target storage unit that stores the data to be stored, and determines a target external sub-cache partition corresponding to the target storage unit. Step 703 includes: the controller 602 storing the to-be-stored data in the target external sub-cache partition; and connecting the to-be-stored data from the target external sub-cache partition through a storage module in which the target storage unit is located The storage interface is stored to the target storage unit. The specific implementation is similar to the foregoing SSD, as long as the flash granules are replaced by the storage unit, that is, the implementation process of step 702 and step 703 in this embodiment.
可选的,每个存储单元包括一个内部子缓存区和存储本体。Optionally, each storage unit includes an internal sub-buffer and a storage body.
可选的,在每个存储模块603上设置有至少两个存储单元的情况下,也可以使用前述备份外部缓存分区和备份目标闪存颗粒的方案,只要将闪存颗粒替换为存储单元,即为本实施例中的具体实施过程。Optionally, in the case that at least two storage units are disposed on each storage module 603, the foregoing scheme of backing up the external cache partition and backing up the target flash granules may also be used, as long as the flash granules are replaced with the storage units, ie, The specific implementation process in the embodiment.
可选的,在每个存储模块603为单独的一个存储单元的情况下,也可以使用前述备份外部缓存分区和备份目标存储单元的方案,具体的实施过程如下:所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应。相应的,控制器602确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;控制器602在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。该方案为采用备份外部缓存分区的方案,可以提供数据存储的可靠性。详细的实施过程可以参考前述SSD中对备份外部缓存分区的描述。Optionally, in the case that each storage module 603 is a single storage unit, the foregoing scheme of backing up the external cache partition and the backup target storage unit may also be used. The specific implementation process is as follows: the storage device further includes at least one Backing up an external cache partition, the at least one backup external cache partition is in one-to-one correspondence with the at least one external cache partition. Correspondingly, the controller 602 determines a backup external cache partition corresponding to the target external cache partition, and stores the to-be-stored data in the backup external cache partition; the controller 602 is configured to store the data to be stored from the target When the external cache partition is stored to the target storage module, the data to be stored is stored from the backup external cache partition to the target storage module. The solution is a solution that uses a backup external cache partition to provide data storage reliability. For a detailed implementation process, reference may be made to the description of the backup external cache partition in the foregoing SSD.
采用备份存储模块的方案如下:控制器602还确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区;控制器602还将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。通过该方案可以避免目标存储模块故障或者被误拔之后,还可以在备份存储模块中找到数据,避免了数据丢失。详细的实施过程可以参考前述SSD中对备份闪存颗粒的描述。The solution of the backup storage module is as follows: the controller 602 further determines a backup storage module of the target storage module, and determines an external cache partition corresponding to the backup storage module; the controller 602 also stores the data to be stored into the backup. An external cache partition corresponding to the storage module; storing the data to be stored from an external cache partition corresponding to the backup storage module to the backup storage module. Through this solution, the target storage module can be prevented from being faulty or misplaced, and data can be found in the backup storage module to avoid data loss. For a detailed implementation process, reference may be made to the description of the backup flash granules in the aforementioned SSD.
基于同一发明构思,本发明实施例提供一种控制装置,用于实现前述图6所示的数据存储方法,以控制如前述图5所示的存储装置。作为一个例子,请参考图7所示,为该控制装置的功能框图,该控制装置包括:接收单元801、确定单元802以及处理单元803。Based on the same inventive concept, an embodiment of the present invention provides a control device for implementing the data storage method shown in FIG. 6 to control the storage device as shown in FIG. 5 above. As an example, please refer to FIG. 7 , which is a functional block diagram of the control device. The control device includes a receiving unit 801 , a determining unit 802 , and a processing unit 803 .
其中,接收单元801,用于接收数据写请求;确定单元802,用于从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;处理单元803,用于用于将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块。The receiving unit 801 is configured to receive a data write request, and the determining unit 802 is configured to acquire, from the data write request, a target storage module that stores data to be stored, and determine a target external cache partition corresponding to the target storage module; The unit 803 is configured to store the to-be-stored data into the target external cache partition, and store the to-be-stored data from the target external cache partition to a storage interface connected by the target storage module. The target storage module.
可选的,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;确定单元802用于从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区;处理单元803用于将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。 Optionally, at least two storage units are disposed on each of the at least one storage module, and an external cache partition corresponding to each of the storage modules includes at least two corresponding to the at least two storage units. An external sub-cache partition; the determining unit 802 is configured to obtain, from the data write request, a target storage unit that stores data to be stored, and determine a target external sub-cache partition corresponding to the target storage unit; and the processing unit 803 is configured to: The storage data is stored in the target external sub-cache partition; and the data to be stored is stored from the target external sub-cache partition to the target storage unit through a storage interface to which the storage module in which the target storage unit is located is connected.
可选的,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,确定单元802还用于:确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;处理单元803还用于:在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。Optionally, the storage device further includes at least one backup external cache partition, the at least one backup external cache partition is in one-to-one correspondence with the at least one external cache partition, and the determining unit 802 is further configured to: determine the target external cache. Replacing the external cache partition corresponding to the partition, and storing the data to be stored in the backup external cache partition; the processing unit 803 is further configured to: store the to-be-stored data from the target external cache partition to the target When the storage module fails, the data to be stored is stored from the backup external cache partition to the target storage module.
可选的,确定单元802还用于:确定所述目标存储模块的备份存储模块,确定所述备份闪存颗粒对应的外部缓存分区;处理单元803还用于:将所述待存储数据存入所述备份闪存颗粒对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。Optionally, the determining unit 802 is further configured to: determine a backup storage module of the target storage module, and determine an external cache partition corresponding to the backup flash granule; the processing unit 803 is further configured to: store the to-be-stored data into the The external cache partition corresponding to the backup flash granule is stored; the data to be stored is stored from the external cache partition corresponding to the backup storage module to the backup storage module.
需要说明的是,控制装置以功能单元的形式展示。在不受限制的情况下,本文所使用的术语“单元”可指执行一个或多个软件或固件程序的专用集成电路(ASIC)、电子电路、(共享、专用或组)处理器以及存储器,组合逻辑电路,和/或提供所述功能的其它合适的部件。It should be noted that the control device is presented in the form of a functional unit. The term "unit" as used herein, without limitation, may refer to an application-specific integrated circuit (ASIC), electronic circuit, (shared, dedicated or group) processor, and memory that executes one or more software or firmware programs. Combining logic circuits, and/or other suitable components that provide the described functionality.
前述SSD实施例中的各种变化方式和具体实例同样适用于本实施例的存储装置和控制装置,通过前述对SSD的详细描述,本领域技术人员可以清楚的知道本实施例中存储装置和控制装置的实施方法,所以为了说明书的简洁,在此不再详述。The various changes and specific examples in the foregoing SSD embodiments are also applicable to the storage device and the control device of the present embodiment. Through the foregoing detailed description of the SSD, those skilled in the art can clearly know the storage device and the control in this embodiment. The method of implementation of the device, so for the sake of brevity of the description, it will not be described in detail herein.
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。Those skilled in the art will appreciate that embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。The present invention has been described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (system), and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flowchart illustrations and/or FIG. These computer program instructions can be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing device to produce a machine for the execution of instructions for execution by a processor of a computer or other programmable data processing device. Means for implementing the functions specified in one or more of the flow or in a block or blocks of the flow chart.
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。The computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device. The apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device. The instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。 It is apparent that those skilled in the art can make various modifications and variations to the invention without departing from the spirit and scope of the invention. Thus, it is intended that the present invention cover the modifications and modifications of the invention

Claims (13)

  1. 一种固态硬盘SSD,其特征在于,包括:A solid state hard disk SSD, comprising:
    盘体,所述盘体上设置有用于与磁盘阵列连接的连接口、至少一个存储条接口;a disk body, the disk body is provided with a connection port for connecting with the disk array, and at least one memory bar interface;
    控制器,设置于所述盘体中,所述控制器分别与所述连接口和所述存储条接口电性连接;a controller is disposed in the disk body, and the controller is electrically connected to the connection port and the storage bar interface respectively;
    至少一个存储条,可插拔的插设于所述至少一个存储条接口上,所述至少一个存储条中每个存储条上设置有至少两个闪存颗粒,所述闪存颗粒用于存储数据,所述控制器用于通过每个存储条接口对每个存储条接口连接的存储条上的闪存颗粒中的数据进行读写。At least one memory strip is pluggably inserted into the at least one memory strip interface, and each of the at least one memory strip is provided with at least two flash memory particles, wherein the flash memory particles are used for storing data, The controller is configured to read and write data in the flash granules on the storage strips connected to each of the memory strip interfaces through each of the memory strip interfaces.
  2. 如权利要求1所述的SSD,其特征在于,所述SSD还包括至少两个外部缓存分区,每个外部缓存分区对应一个闪存颗粒,The SSD of claim 1 wherein said SSD further comprises at least two external cache partitions, each external cache partition corresponding to a flash memory granule.
    所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标闪存颗粒,确定所述目标闪存颗粒对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;The controller is configured to: when receiving a data write request, acquire target flash granules storing data to be stored from the data write request, determine a target external cache partition corresponding to the target flash granule, and store the to-be-stored data Entering the target external cache partition;
    将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒。The data to be stored is stored from the target external cache partition to the target flash granule.
  3. 如权利要求2所述的SSD,其特征在于,所述SSD还包括至少两个备份外部缓存分区,所述至少两个备份外部缓存分区与所述至少两个外部缓存分区一一对应,The SSD of claim 2, wherein the SSD further comprises at least two backup external cache partitions, and the at least two backup external cache partitions are in one-to-one correspondence with the at least two external cache partitions.
    所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;The controller is further configured to determine a backup external cache partition corresponding to the target external cache partition, and store the to-be-stored data in the backup external cache partition;
    在将所述待存储数据从所述目标外部缓存分区存储至所述目标闪存颗粒失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标闪存颗粒。And storing the to-be-stored data from the backup external cache partition to the target flash granule when the storage of the to-be-stored data from the target external cache partition fails.
  4. 如权利要求2所述的SSD,其特征在于,所述控制器还用于确定所述目标闪存颗粒的备份闪存颗粒,确定所述备份闪存颗粒对应的外部缓存分区,将所述待存储数据存入所述备份闪存颗粒对应的外部缓存分区;将所述待存储数据从所述备份闪存颗粒对应的外部缓存分区存储至所述备份闪存颗粒。The SSD of claim 2, wherein the controller is further configured to determine backup flash granules of the target flash granule, determine an external cache partition corresponding to the backup flash granule, and store the data to be stored And entering an external cache partition corresponding to the backup flash granule; storing the data to be stored from an external cache partition corresponding to the backup flash granule to the backup flash granule.
  5. 如权利要求1-4中任一项所述的SSD,其特征在于,所述控制器还用于侦测是否有故障的闪存颗粒;The SSD according to any one of claims 1 to 4, wherein the controller is further configured to detect whether there is a faulty flash memory particle;
    在侦测到有故障的闪存颗粒时,所述控制器还用于确定所述故障的闪存颗粒所在的存储条以及所述故障的闪存颗粒在所述存储条上的位置;所述控制器还用于上报所述故障的闪存颗粒所在的存储条的标识以及所述故障的闪存颗粒在所述存储条上的位置。The controller is further configured to determine a memory strip in which the faulty flash memory is located and a location of the faulty flash memory on the memory strip when the faulty flash memory particle is detected; the controller further An identifier of a memory strip in which the flash memory particles reporting the fault are located and a location of the faulty flash memory particle on the memory strip.
  6. 一种存储装置,其特征在于,包括:A storage device, comprising:
    框架,所述框架上设置有至少一个存储接口;a frame on which at least one storage interface is disposed;
    控制器,设置于所述框架中;a controller disposed in the frame;
    至少一个存储模块,可插拔的插设于所述至少一个存储接口上;At least one storage module is pluggably inserted into the at least one storage interface;
    至少一个外部缓存分区,与所述至少一个存储模块一一对应;At least one external cache partition corresponding to the at least one storage module;
    所述控制器用于在接收到数据写请求时,从所述数据写请求中获取存储待存储数据的目标存储模块,确定所述目标存储模块对应的目标外部缓存分区,将所述待存储数据存入所述目标外部缓存分区;The controller is configured to: when the data write request is received, acquire a target storage module that stores the data to be stored from the data write request, determine a target external cache partition corresponding to the target storage module, and store the data to be stored. Entering the target external cache partition;
    将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储 接口存储至所述目标存储模块。And storing the to-be-stored data from the target external cache partition through the storage connected to the target storage module The interface is stored to the target storage module.
  7. 如权利要求6所述的存储装置,其特征在于,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;The storage device according to claim 6, wherein each of the at least one storage module is provided with at least two storage units, and an external cache partition corresponding to each of the storage modules includes the At least two external sub-cache partitions corresponding to at least two storage units;
    所述控制器用于从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区,将所述待存储数据存入所述目标外部子缓存分区;The controller is configured to obtain, from the data write request, a target storage unit that stores data to be stored, determine a target external sub-cache partition corresponding to the target storage unit, and store the to-be-stored data in the target external sub-cache. Partition
    将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。And storing the to-be-stored data from the target external sub-cache partition to a storage interface connected by a storage module where the target storage unit is located to the target storage unit.
  8. 如权利要求6所述的存储装置,其特征在于,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,The storage device of claim 6, wherein the storage device further comprises at least one backup external cache partition, the at least one backup external cache partition being in one-to-one correspondence with the at least one external cache partition,
    所述控制器还用于确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;The controller is further configured to determine a backup external cache partition corresponding to the target external cache partition, and store the to-be-stored data in the backup external cache partition;
    在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。And storing the to-be-stored data from the backup external cache partition to the target storage module when the storage of the to-be-stored data from the target external cache partition fails to the target storage module.
  9. 如权利要求6所述的存储装置,其特征在于,所述控制器还用于确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区,将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。The storage device of claim 6, wherein the controller is further configured to determine a backup storage module of the target storage module, determine an external cache partition corresponding to the backup storage module, and store the data to be stored. And storing the data to be stored from the external cache partition corresponding to the backup storage module to the backup storage module.
  10. 一种数据存储方法,用于如权利要求6所述的存储装置,其特征在于,所述方法包括:A data storage method for a storage device according to claim 6, wherein the method comprises:
    所述控制器接收数据写请求;The controller receives a data write request;
    所述控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;The controller acquires a target storage module that stores data to be stored from the data write request, and determines a target external cache partition corresponding to the target storage module;
    所述控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块。The controller stores the to-be-stored data in the target external cache partition; and stores the to-be-stored data from the target external cache partition to a target storage through a storage interface to which the target storage module is connected Module.
  11. 如权利要求10所述的方法,其特征在于,所述至少一个存储模块中每个存储模块上设置有至少两个存储单元,与所述每个存储模块对应的外部缓存分区包括与所述至少两个存储单元对应的至少两个外部子缓存分区;所述控制器从所述数据写请求获取存储待存储数据的目标存储模块,并确定所述目标存储模块对应的目标外部缓存分区;以及所述控制器将所述待存储数据存入所述目标外部缓存分区;以及将所述待存储数据从所述目标外部缓存分区通过所述目标存储模块所连接的存储接口存储至所述目标存储模块,包括:The method according to claim 10, wherein each of the at least one storage module is provided with at least two storage units, and an external cache partition corresponding to each of the storage modules includes the at least At least two external sub-cache partitions corresponding to the two storage units; the controller acquires a target storage module storing the data to be stored from the data write request, and determines a target external cache partition corresponding to the target storage module; The controller stores the to-be-stored data in the target external cache partition; and stores the to-be-stored data from the target external cache partition to the target storage module through a storage interface to which the target storage module is connected ,include:
    所述控制器从所述数据写请求中获取存储待存储数据的目标存储单元,确定所述目标存储单元对应的目标外部子缓存分区;The controller acquires, from the data write request, a target storage unit that stores data to be stored, and determines a target external sub-cache partition corresponding to the target storage unit;
    所述控制器将所述待存储数据存入所述目标外部子缓存分区;以及将所述待存储数据从所述目标外部子缓存分区通过所述目标存储单元所在的存储模块所连接的存储接口存储至所述目标存储单元。 The controller stores the to-be-stored data in the target external sub-cache partition; and partitions the to-be-stored data from the target external sub-cache partition through a storage interface to which the storage module in which the target storage unit is located Stored to the target storage unit.
  12. 如权利要求10所述的方法,其特征在于,所述存储装置还包括至少一个备份外部缓存分区,所述至少一个备份外部缓存分区与所述至少一个外部缓存分区一一对应,所述方法还包括:The method of claim 10, wherein the storage device further comprises at least one backup external cache partition, the at least one backup external cache partition being in one-to-one correspondence with the at least one external cache partition, the method further include:
    所述控制器确定所述目标外部缓存分区对应的备份外部缓存分区,并将所述待存储数据存入所述备份外部缓存分区;Determining, by the controller, a backup external cache partition corresponding to the target external cache partition, and storing the to-be-stored data in the backup external cache partition;
    所述控制器在将所述待存储数据从所述目标外部缓存分区存储至所述目标存储模块失败时,将所述待存储数据从所述备份外部缓存分区存储至所述目标存储模块。And when the controller fails to store the to-be-stored data from the target external cache partition to the target storage module, the controller stores the to-be-stored data from the backup external cache partition to the target storage module.
  13. 如权利要求10所述的方法,其特征在于,所述方法还包括:The method of claim 10, wherein the method further comprises:
    所述控制器确定所述目标存储模块的备份存储模块,确定所述备份存储模块对应的外部缓存分区;Determining, by the controller, a backup storage module of the target storage module, and determining an external cache partition corresponding to the backup storage module;
    所述控制器将所述待存储数据存入所述备份存储模块对应的外部缓存分区;将所述待存储数据从所述备份存储模块对应的外部缓存分区存储至所述备份存储模块。 The controller stores the to-be-stored data in an external cache partition corresponding to the backup storage module; and stores the to-be-stored data from an external cache partition corresponding to the backup storage module to the backup storage module.
PCT/CN2017/104017 2016-09-30 2017-09-28 Solid state drive (ssd), storage device, and data storage method WO2018059495A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201610873544.8A CN107885457B (en) 2016-09-30 2016-09-30 Solid State Disk (SSD), storage device and data storage method
CN201610873544.8 2016-09-30

Publications (1)

Publication Number Publication Date
WO2018059495A1 true WO2018059495A1 (en) 2018-04-05

Family

ID=61763714

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/104017 WO2018059495A1 (en) 2016-09-30 2017-09-28 Solid state drive (ssd), storage device, and data storage method

Country Status (2)

Country Link
CN (1) CN107885457B (en)
WO (1) WO2018059495A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599310A (en) * 2022-11-30 2023-01-13 苏州浪潮智能科技有限公司(Cn) Method and device for controlling storage resources in storage node and storage node

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108932138B (en) * 2018-06-21 2021-08-10 郑州云海信息技术有限公司 RSSD hard disk configuration method, device, equipment and medium
CN109378021A (en) * 2018-10-10 2019-02-22 郑州云海信息技术有限公司 Server and its SSD disc
CN111104056B (en) * 2018-10-25 2021-12-31 华为技术有限公司 Data recovery method, system and device in storage system
CN112817533A (en) * 2021-01-29 2021-05-18 深圳忆联信息系统有限公司 SSD management method, device computer equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201725323U (en) * 2010-06-07 2011-01-26 宇达电脑(上海)有限公司 Independent redundant disk array
CN202102724U (en) * 2011-06-17 2012-01-04 刘淑敏 Solid storing device realized by volatile storage
CN103049220A (en) * 2012-12-19 2013-04-17 华为技术有限公司 Storage control method, storage control device and solid-state storage system
CN103729148A (en) * 2013-12-30 2014-04-16 华澜微电子有限公司 SSD with RAID function
CN104461964A (en) * 2014-12-12 2015-03-25 杭州华澜微科技有限公司 Memory device
CN104575595A (en) * 2014-12-12 2015-04-29 杭州华澜微科技有限公司 Nonvolatile random access memory device

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103092267A (en) * 2011-11-07 2013-05-08 鸿富锦精密工业(深圳)有限公司 Mainboard where solid state disk is installed
CN103713969A (en) * 2013-12-30 2014-04-09 华为技术有限公司 Method and device for improving reliability of solid state disk
CN204440375U (en) * 2015-02-25 2015-07-01 浪潮集团有限公司 The adjustable PCIe solid state hard disc of a kind of memory capacity

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201725323U (en) * 2010-06-07 2011-01-26 宇达电脑(上海)有限公司 Independent redundant disk array
CN202102724U (en) * 2011-06-17 2012-01-04 刘淑敏 Solid storing device realized by volatile storage
CN103049220A (en) * 2012-12-19 2013-04-17 华为技术有限公司 Storage control method, storage control device and solid-state storage system
CN103729148A (en) * 2013-12-30 2014-04-16 华澜微电子有限公司 SSD with RAID function
CN104461964A (en) * 2014-12-12 2015-03-25 杭州华澜微科技有限公司 Memory device
CN104575595A (en) * 2014-12-12 2015-04-29 杭州华澜微科技有限公司 Nonvolatile random access memory device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115599310A (en) * 2022-11-30 2023-01-13 苏州浪潮智能科技有限公司(Cn) Method and device for controlling storage resources in storage node and storage node

Also Published As

Publication number Publication date
CN107885457A (en) 2018-04-06
CN107885457B (en) 2020-08-07

Similar Documents

Publication Publication Date Title
WO2018059495A1 (en) Solid state drive (ssd), storage device, and data storage method
US8839030B2 (en) Methods and structure for resuming background tasks in a clustered storage environment
US7660867B2 (en) Virtual computer system and virtual computer migration control method
US11630578B2 (en) Electronic system with storage management mechanism and method of operation thereof
KR101547317B1 (en) System for detecting fail block using logic block address and data buffer address in storage test device
US10592341B2 (en) Self-healing using a virtual boot device
JP2009251725A (en) Storage controller and duplicated data detection method using storage controller
US10607714B2 (en) Verification of storage media upon deployment
US11137918B1 (en) Administration of control information in a storage system
JP6652647B2 (en) Storage system
US11437071B2 (en) Multi-session concurrent testing for multi-actuator drive
WO2019077379A1 (en) Method for backing up and restoring digital data stored on a solid-state storage device, and a highly secure solid-state storage device
US9836359B2 (en) Storage and control method of the same
US20160378351A1 (en) Exposing a geometry of a storage device
US20210117094A1 (en) Mirroring data onto disparate types of non-volatile data storage
JP5729043B2 (en) Storage device and control device
US9639417B2 (en) Storage control apparatus and control method
US20230393959A1 (en) Out-of-band management method for storage apparatus, baseboard management controller and storage apparatus
JP6704127B2 (en) Information processing equipment
US20160196184A1 (en) Storage system and storage system failure management method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17854945

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17854945

Country of ref document: EP

Kind code of ref document: A1