[go: up one dir, main page]

WO2019001521A1 - Data storage method, storage device, client and system - Google Patents

Data storage method, storage device, client and system Download PDF

Info

Publication number
WO2019001521A1
WO2019001521A1 PCT/CN2018/093419 CN2018093419W WO2019001521A1 WO 2019001521 A1 WO2019001521 A1 WO 2019001521A1 CN 2018093419 W CN2018093419 W CN 2018093419W WO 2019001521 A1 WO2019001521 A1 WO 2019001521A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
storage device
stripe
strip
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2018/093419
Other languages
French (fr)
Chinese (zh)
Inventor
陈伟
林起芊
汪渭春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Publication of WO2019001521A1 publication Critical patent/WO2019001521A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers 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/0662Virtualisation aspects
    • G06F3/0667Virtualisation aspects at data level, e.g. file, record or object virtualisation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers 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

Definitions

  • the embodiments of the present invention relate to the field of computer technologies, and in particular, to a data storage method, a storage device, a client, and a system.
  • the storage system mainly includes a client and a storage device, wherein the client is mainly used for writing data by a user, and the storage device is mainly used for storing data written by a user through a client.
  • the storage device generally includes a plurality of solid state disks and a plurality of disks, wherein the solid state disks have high random write and read performance, but the storage capacity is small, and the storage capacity of the disks is large. , but the read and write performance is usually poor.
  • the storage device in order to improve the read and write performance of data, in the data storage process, the storage device generally caches the data written by the user delivered by the client to a plurality of solid state disks, and caches any solid disk in the plurality of solid state disks. When the data reaches a certain capacity, the data cached in the plurality of SSDs is stored in the plurality of disks, thereby realizing data storage.
  • the embodiment of the present application provides a data storage method, a storage device, a client, and a system, which can solve the problem that the solid state hard disk abnormality causes data loss and cannot be retrieved.
  • the technical solution is as follows:
  • the first aspect provides a data storage method, which is applied to a first storage device of a storage system, where the first storage device includes a plurality of solid state disks, and the method includes:
  • the first storage device performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data,
  • the verification data is used to verify the plurality of stripe data;
  • the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives, respectively.
  • the second aspect provides a data storage method, which is applied to a client of a storage system, where the storage system further includes a first storage device, where the first storage device includes a plurality of solid state disks, and the method includes:
  • the client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, the school
  • the test data is used to verify the plurality of stripe data;
  • a third aspect provides a data storage method, which is applied to a first storage device of a storage system, where the storage system further includes a client, where the first storage device includes a plurality of solid state disks, and the method includes:
  • the EC strip data sent by the client, where the EC strip data includes the plurality of stripe data and check data, where the check data is used for the multiple strips Carrying data for verification, the plurality of stripe data being obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;
  • the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives, respectively.
  • a fourth aspect provides a data storage device, which is deployed in a first storage device of a storage system, where the first storage device includes a plurality of solid state disks, and the device includes:
  • a receiving processing module configured to receive data sent by the client, and perform virtualized strip processing on the data to obtain a plurality of stripe data, where the data sent by the client is the original data written in the client ;
  • An encoding processing module configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and verification data, The verification data is used to verify the plurality of stripe data;
  • a first storage module configured to cache the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives respectively.
  • a data storage device which is deployed in a client of a storage system, the storage system further includes a first storage device, the first storage device includes a plurality of solid state disks, and the device includes:
  • a stripe processing module configured to perform virtualized stripe processing on the data to obtain a plurality of stripe data, where the data is original data written in the client;
  • An encoding processing module configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and verification data, The verification data is used to verify the plurality of stripe data;
  • a sending module configured to send the EC strip data to the first storage device, so that the first storage device uses the plurality of stripe data included in the EC strip data and the checksum
  • the data is separately cached into the plurality of solid state drives.
  • the sixth aspect provides a data storage device, which is deployed in a first storage device of the storage system, where the first storage device includes a plurality of solid state disks, and the device includes:
  • a receiving module configured to receive EC strip data sent by the client, where the EC strip data includes the plurality of stripe data and check data, and the check data is used to the plurality of strips The data is verified, and the plurality of stripe data is obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;
  • a first storage module configured to cache the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives respectively.
  • the seventh aspect provides a first storage device, which is deployed in a storage system, where the first storage device includes a plurality of solid state disks, and the first storage device includes:
  • One or more processors are One or more processors.
  • the memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for:
  • the eighth aspect provides a client that is deployed in a storage system, where the storage system further includes a first storage device, where the first storage device includes a plurality of solid state disks, and the client includes:
  • One or more processors are One or more processors.
  • the memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for:
  • Transmitting the EC stripe data to the first storage device so that the first storage device caches the plurality of stripe data and the check data included in the EC stripe data respectively Said in multiple solid state drives.
  • a ninth aspect a first storage device is provided, which is deployed in a storage system, where the first storage device includes a plurality of solid state disks, and the first storage device includes:
  • One or more processors are One or more processors.
  • the memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for:
  • the EC strip data includes the plurality of stripe data and check data, and the check data is used to verify the plurality of stripe data,
  • the plurality of stripe data is obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;
  • a storage system where the storage system includes a client and a first storage device, and the first storage device includes a plurality of solid state disks, and the method includes:
  • the client performs virtualized strip processing on the data to obtain a plurality of stripe data, where the data is original data written in the client;
  • the client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, the school
  • the test data is used to verify the plurality of stripe data;
  • the first storage device when the first storage device receives the data written by the client and is written in the client, the data is sequentially subjected to virtualized strip processing and encoding processing, thereby obtaining a plurality of stripe data and Check the EC strip data of the data. Then, the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.
  • FIG. 1 is a schematic structural diagram of a storage system according to an exemplary embodiment.
  • FIG. 2 is a flow chart showing a data storage method according to an exemplary embodiment.
  • FIG. 3 is a schematic diagram of a specific implementation of an EC algorithm according to the embodiment of FIG. 2.
  • FIG. 3 is a schematic diagram of a specific implementation of an EC algorithm according to the embodiment of FIG. 2.
  • FIG. 4 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2.
  • FIG. 5 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2.
  • FIG. 5 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2.
  • FIG. 6 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2.
  • FIG. 6 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2.
  • FIG. 7 is a schematic diagram of a data storage method according to the embodiment of FIG. 2.
  • FIG. 7 is a schematic diagram of a data storage method according to the embodiment of FIG. 2.
  • FIG. 8 is a flowchart of a data storage method according to another exemplary embodiment.
  • FIG. 9 is a schematic structural diagram of a data storage device according to an exemplary embodiment.
  • FIG. 10 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 11 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 13 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 14 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 15 is a schematic structural diagram of a data storage device according to an exemplary embodiment.
  • FIG. 16 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 17 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 18 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 19 is a schematic structural diagram of a data storage device according to another exemplary embodiment.
  • FIG. 20 is a schematic structural diagram of a first storage device according to an exemplary embodiment.
  • FIG. 21 is a schematic structural diagram of a client according to an exemplary embodiment.
  • the EC algorithm that is, the (Erasure Code) algorithm is a data protection method, which can be mainly used for performing redundant data block expansion and encoding on data.
  • Solid state drives Solid State Drives (SSDs), which are typically fabricated from solid state electronic memory chip arrays, consisting primarily of control units and memory cells.
  • the storage unit includes, but is not limited to, a FLASH chip and a DRAM (Dynamic Random Access Memory) chip.
  • Solid state drives have high random write and read and write performance, but the capacity is generally small and expensive. Typically, this solid state drive is used for higher levels of tiered storage, ie as a cache device.
  • Disk It can read and write data through mechanical operations such as disk rotation and head movement, and has a large storage capacity. However, due to mechanical operation such as disk rotation and head movement, disk read and write performance is poor. . Disks are typically used for lower layers of hierarchical storage, ie as the final carrier for data storage. In general, you can use the copy method for data storage.
  • Hierarchical storage refers to the hierarchical storage of data based on factors such as read and write performance, business continuity, storage security, data retention policies, and hardware costs.
  • hierarchical storage methods may include primary storage, backup disk storage, and archive disk. Storage, disk archive storage, CD archive storage, and more. That is to say, the tiered storage is based on the importance of the data, the access frequency, the retention time, the capacity, the performance, and the like, and the data is stored in different storage modes on the first storage device of different performance.
  • the grading storage can realize automatic migration of data between the SSD and the disk.
  • the first storage device can implement data migration according to the frequency of data being accessed, for example, migrating data with less frequent access frequency from the SSD. To disk, or to migrate data that is accessed more frequently (which can be called hotspot data) from disk to SSD.
  • FIG. 1 is a schematic structural diagram of a storage system.
  • the storage system mainly includes a client 110 and a plurality of storage devices, and the plurality of storage devices include a first Storage device 120.
  • the client 110 can be connected to the first storage device 120 through a wired network or a wireless network.
  • the client 110 is mainly used for user to write data, and the client 110 can support keyboard input.
  • the keyboard can be a virtual keyboard or a physical keyboard.
  • the client 110 can be installed in the terminal and run the client 110 through the terminal.
  • the terminal may be a device such as a mobile phone, a tablet computer, or a computer, which is not limited in this embodiment of the present application.
  • the client 110 may not be installed in the terminal, but may be a physical device.
  • the first storage device 120 is mainly configured to receive data sent by the client 110 and store the data.
  • the first storage device 120 includes a plurality of solid state disks.
  • the first storage device 120 can implement data caching through the plurality of solid state disks.
  • the first storage device 120 may further include multiple disks, and in some conditions, the first storage device 120 stores the data cached in the plurality of solid state disks to the plurality of disks.
  • the specific implementation is as described in the following FIG. 2 or FIG. 8 embodiment.
  • the multiple storage devices further include a second storage device 130, where the second storage device 130 includes a plurality of disks. That is, in an actual implementation, the plurality of SSDs and the plurality of disks may not be in one storage device.
  • the plurality of SSDs belong to the first storage device 120
  • the plurality of disks belong to the second storage device 130.
  • the process implementation process for data involved below is performed by the first storage device 120, and then, under some conditions, the first storage device 120 transmits data stored by the plurality of solid state disks to the second
  • the storage device 130 stores the data by the second storage device 130 through a plurality of disks included therein.
  • the embodiment of the present application first performs virtualized strip processing on data written in the client 110 and performs encoding processing by using an EC algorithm to obtain EC strip data, and then EC stripe data is cached into multiple SSDs.
  • the data cached in the plurality of SSDs meets certain conditions, the data cached in the plurality of SSDs is transferred to the disk for storage.
  • the solid state hard disk is used as the intermediate cache, the data read and write performance is improved, and since the encoding process is performed by the EC algorithm, and the principle of the EC algorithm is to add check data to the data, when data loss occurs
  • the verification data can be used for data recovery to ensure the reliability of data storage.
  • the manner of tiered storage is referred to as distributed storage.
  • the storage system may further include an MDS (Meta Data Server) 140, and the metadata server 140 is mainly used for allocating and managing storage of data.
  • the metadata server 140 is equivalent to the dispatch center of the storage system, i.e., the metadata server 140 can control which solid storage disk or disk to store the data to.
  • the metadata server 140 can monitor the storage state of the first storage device 120, and allocate the solid state hard disk to the client 110 according to the monitored storage state.
  • MDS Metal Data Server
  • the embodiment of the present application is only described by using the metadata server 140 in the storage system as an example.
  • the storage of the data may be controlled by specifying a scheduling algorithm, where the specified scheduling algorithm may be run on the client or in the first On the storage device, this embodiment of the present application does not introduce too much.
  • a series of processes such as virtualized striping and encoding are required for data written on the client.
  • this series of processing may be performed by the first storage device or by the client.
  • the data storage method will be described in detail by taking the first storage device and the client to perform the series of processing as an example, as shown in the following FIG. 2 embodiment and FIG.
  • FIG. 2 is a flowchart of a data storage method according to an exemplary embodiment. The embodiment may be implemented by using the storage system shown in FIG. 1.
  • the data storage method may include the following steps:
  • Step 201 The client sends a storage request to the metadata server.
  • a storage request may be sent to the metadata server, where the storage request is used to instruct the metadata server to allocate a solid state hard disk for storing data for the client.
  • the storage request may generally carry the number of copies of the data to be stored, so that the metadata server can determine the number of copies according to the number of copies. The number of SSDs that need to be allocated.
  • Step 202 The metadata server allocates a solid state hard disk to the client.
  • the metadata server can obtain the storage space size of the first storage device, and the metadata server is responsible for allocating a storage location of the data to the client, that is, the metadata server can monitor the first storage device.
  • the storage server can obtain the storage status of the first storage device.
  • the metadata server can obtain the current storage status of the plurality of SSDs. Therefore, the metadata server may allocate a solid state hard disk to the client according to the number of copies carried in the storage request and the current storage condition of each solid state hard disk in the plurality of solid state disks, and send the address information of the allocated solid state disk. Give the client.
  • the metadata server may send a storage response to the client, where the storage response carries address information of the allocated SSD.
  • Step 203 The client sends data to the first storage device, where the first storage device receives data sent by the client, and the data sent by the client is data written in the client.
  • the data written in the client is processed through the first storage device, so that the client can directly send the write to the client to the first storage device.
  • the original data in a specific implementation, the client may send data to the first storage device based on the address information of the solid state hard disk allocated by the metadata server.
  • Step 204 The first storage device performs virtualized strip processing on the data to obtain a plurality of stripe data.
  • the first storage device After receiving the data sent by the client, the first storage device performs virtualized stripe data processing on the data.
  • the first storage device divides the data into the same according to a preset fixed stripe block size. Multiple pieces of data of a size, the multiple pieces of data of the same size obtained here are referred to as a plurality of stripe data. For example, if the data is 5 M data, the first storage device divides the data according to the 1 M strip block size, and after the virtualized strip processing, the data is divided into 5 pieces to obtain 5 strip data.
  • the size of each stripe data is 1M.
  • the five strip data are D1, D2, D3, D4, and D5, respectively.
  • Step 205 The first storage device performs encoding processing on the plurality of stripe data by using an EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data is used by the check data. The plurality of stripe data is verified.
  • the first storage device generates a vector based on the plurality of strip data, and multiplies the generated vector by a preset generation matrix to obtain a coding vector, where the first storage device determines the data included in the coding vector.
  • Strip data for this EC is a specific implementation.
  • the specific implementation process of the first storage device to generate a vector based on the multiple stripe data includes: the first storage device constructs the plurality of stripe data into a column vector.
  • the preset generation matrix can be customized by the user according to actual needs.
  • the preset generation matrix is a matrix B. If the plurality of stripe data are D1, D2, D3, D4, and D5, a vector D is generated based on the plurality of stripe data, and the generated vector D is multiplied by the preset generation matrix B to obtain a coded vector C.
  • the first storage device determines the data included in the code vector C as EC stripe data. Specifically, the plurality of stripe data included in the EC stripe data are D1, D2, D3, D4, and D5, respectively, and the check data is C1, C2, and C3.
  • the number of the verification data is also different.
  • the technical personnel can perform the setting according to the actual requirements, which is not limited by the embodiment of the present application.
  • the data of the cached data of the SSD may be lost due to the poor connection of the plug-in interface of the SSD and the power failure of the first storage device.
  • the lost data is recovered by the EC algorithm.
  • the implementation process of recovering the stripe data included in the EC stripe data is as follows:
  • the target row is determined from the preset generation matrix B. Since the lost data is D1, D3, and C1, the rows in the preset generation matrix B that are multiplied by the vector D composed of the plurality of stripe data to obtain the lost data are the first row and the third row, respectively. And the sixth line, therefore, it can be determined that the target line is the first line, the third line, and the sixth line, respectively.
  • the first row, the third row, and the sixth row in the preset generation matrix B are deleted, and the target generation matrix is obtained as shown in FIG. 4.
  • the first storage device determines an inverse matrix of the target generation matrix according to the formula shown in FIG.
  • the first storage device multiplies the vector composed of the EC strip data remaining after the data is lost, and obtains the formula shown in FIG. 6. After the first storage device solves the formula, the lost strip data D1 and the strip data D3 can be determined, thereby realizing recovery of the EC strip data.
  • the first storage device can recover the lost data through the EC algorithm, thereby ensuring the reliability of the data storage.
  • Step 206 The first storage device caches the plurality of stripe data and the check data included in the EC stripe data into the plurality of solid state drives.
  • the plurality of stripe data included in the EC stripe data are D1, D2, D3, D4, and D5, and the check data is C1, C2, and C3, and the first storage device uses the EC strip.
  • data cache to multiple solid state drives as shown in Figure 7.
  • the first storage success message may be sent to the metadata server to notify The metadata server successfully implements data storage.
  • the first storage success message may further carry the first storage information of the stored data, where the first storage information may include information such as specific storage locations of the data on each solid state drive.
  • the cached data is encrypted in the SSD, the EC stripe data of the check data is added, and the data is not backed up, so the data storage is performed in the SSD compared to the backup mode. Can save storage space for SSDs.
  • the first storage device may, under some conditions, the first storage device Data from multiple SSD caches is stored on disk.
  • the following two possible implementations can be included in the implementation:
  • the first storage device further includes a plurality of disks.
  • the specific implementation of the data storage by the first storage device by using multiple disks included in the first storage device may include the following steps (1)-(2):
  • the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.
  • the current storage capacity of the plurality of solid state drives may be determined by a metadata server. That is, after the metadata server receives the first storage success message, the current storage capacity of each solid state hard disk can be determined. If the metadata server determines that the data capacity of any of the plurality of SSDs in the plurality of SSDs reaches a preset capacity, the data stored in the plurality of SSDs needs to be moved to the disk.
  • the preset time period may be customized by the user according to actual needs, or may be set by default by the first storage device, which is not limited by the embodiment of the present application.
  • the preset number of times may be customized by the user according to actual needs, or may be set by default by the first storage device, which is not limited by the embodiment of the present application.
  • the metadata server selects multiple disks according to the current storage state of the multiple disks, and sends address information of the multiple disks to the first storage device, so that the first The storage device stores data in the plurality of solid state drives through the plurality of disks.
  • the first storage device After receiving the plurality of address information, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.
  • the data attribute information may be used to indicate information such as a storage attribute, a folder, and the like of the plurality of stripe data.
  • the first storage device stores the duplicate data in a plurality of disks included in the first storage device.
  • the replica data is stored in the plurality of disks.
  • the first storage device After the first storage device generates the replica data, the replica data is stored in the plurality of disks.
  • the first storage device generates N replica data, and stores the N replica data into N disks respectively.
  • the N copies of the data are stored as cold data, wherein the N is a natural number greater than one.
  • the second case under the preset condition, the first storage device performs data storage by using a plurality of disks included in the second storage device.
  • the first storage device includes only a plurality of solid state disks
  • the storage system further includes a second storage device, where the second storage device includes a plurality of disks.
  • the specific implementation of the data storage by the first storage device by using multiple disks included in the second storage device may include the following steps (3)-(5):
  • the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.
  • the first storage device does not include the disk. Therefore, the first storage device can store the copy data through another second storage device including multiple disks, that is, the first storage device. The copy data is sent to the second storage device.
  • the second storage device receives the copy data sent by the first storage device, and stores the received copy data into a plurality of disks included in the second storage device.
  • the specific implementation that the second storage device stores the received copy data in the multiple disks included in the second storage device may be referred to that the first storage device stores the copy data to the first storage device.
  • Step 207 The first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives.
  • the plurality of stripe data cached in the plurality of solid state disks and the check data may be deleted.
  • the first storage device after the first storage device successfully stores the replica data through the plurality of disks included in the first storage device, or when the first storage device successfully stores the replica data through multiple disks included in the second storage device Afterwards, the first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives.
  • the first storage device After the first storage device successfully stores the replica data through the plurality of disks included in the first storage device, the first storage device can successfully store the replica data in the plurality of disks included in the first storage device.
  • the data storage server sends a second storage success message, where the second storage success message is used to notify the metadata server that the copy data is successfully stored in the disk. Further, the second storage success message may carry the second storage information.
  • the second storage information may include information such as a specific storage location of the duplicate data on the disk.
  • the metadata server may return a deletion indication to the first storage device, where the deletion indication may be used to instruct the first storage device to delete data cached in the plurality of solid state disks. That is, after receiving the deletion indication, the first storage device deletes the plurality of stripe data and the plurality of verification data buffered in the plurality of solid state disks.
  • the third storage success message is used to notify the metadata server that the copy data is successfully stored in the disk, and further, the third storage success message may carry the third storage information.
  • the third storage information may include information such as a specific storage location of the replica data on the disk.
  • the metadata server may return a deletion indication to the first storage device, where the deletion indication may be used to instruct the first storage device to delete data cached in the plurality of solid state disks. That is, after receiving the deletion indication, the first storage device deletes the plurality of stripe data and the plurality of verification data buffered in the plurality of solid state disks.
  • the client can generally read data from the solid state hard disk first, and if the data cached in the solid state hard disk is deleted, the data is read from the disk.
  • the read request may be sent to the metadata server, where the read request carries related information of the data to be read.
  • the metadata server can sense the storage status of each SSD and each disk in the first storage device. After receiving the read request, the metadata server can determine the plurality of SSDs according to the related information. Whether to store the data that needs to be read.
  • the data to be read is stored in the plurality of solid state disks, obtaining specific storage location information of the data to be read in the plurality of solid state disks, and transmitting the obtained specific storage location information to the client End, so that the client reads data from the plurality of solid state disks according to the specific storage location information.
  • the metadata server determines, according to the related information, storage location information of the data to be read on the disk, and determines the storage location information.
  • the client is sent so that the client reads data from the plurality of disks based on the storage location information.
  • the first storage device may migrate some hotspot data from the disk to the solid state hard disk according to the frequency of data access.
  • the hotspot data refers to data that is often used.
  • the first storage device may perform the above series of processing on the hotspot data by using the operations performed in steps 204 to 205. In this way, after the hotspot data is stored in the SSD, even if the SSD is abnormal, the hotspot data is lost, and the first storage device can retrieve the lost hotspot data, thereby preventing the data storage system from being abnormal due to the loss of the hotspot data. The situation of operation.
  • the first storage device when the first storage device receives the data written by the client and is written in the client, the data is sequentially subjected to virtualized strip processing and encoding processing, and then obtained. EC stripe data including multiple stripe data and check data. Then, the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.
  • FIG. 8 is a flowchart of a data storage method according to an exemplary embodiment.
  • the embodiment may be implemented by using the storage system shown in FIG. 1.
  • the data storage method may include the following steps:
  • Step 301 The client sends a storage request to the metadata server.
  • step 201 in the foregoing embodiment of FIG. 2.
  • Step 302 The metadata server allocates a solid state hard disk to the client.
  • step 202 For the specific implementation process, refer to step 202 in the foregoing embodiment of FIG. 2.
  • Step 303 The client performs virtualized strip processing on the data to obtain a plurality of stripe data.
  • the virtualized stripe processing may be considered to divide the continuous data into data blocks of the same size.
  • Step 304 The client performs encoding processing on the plurality of stripe data by deleting the correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data Used to verify the multiple stripe data.
  • the client generates a vector based on the plurality of stripe data, and multiplies the generated vector by a preset generation matrix to obtain a code vector, and the client determines the data included in the code vector as the EC stripe. data.
  • the first storage device determines a target row from the preset generation matrix, and the preset data in the target row and the vector of the plurality of stripe data After multiplication, you can get the missing data.
  • the first storage device deletes the target row in the preset generation matrix to obtain a target generation matrix, and multiplies a vector composed of EC strip data remaining after data loss by an inverse matrix of the target generation matrix to EC strip data is restored.
  • Step 305 The client sends the EC stripe data to the first storage device, so that the first storage device caches the plurality of stripe data and the check data included in the EC stripe data to the plurality of Solid state drive.
  • the EC strip data obtained by the processing may be sent to the first storage device.
  • the client may use the address information of the solid state hard disk allocated by the metadata server.
  • the first storage device sends the EC strip data obtained after the processing.
  • Step 306 The first storage device receives the EC strip data sent by the client, where the EC strip data includes the plurality of strip data and check data, where the check data is used to perform the multiple strip data. Verification, the plurality of stripe data is obtained by the client performing virtualized strip processing on the data, and the data is the original data written in the client.
  • Step 307 The first storage device caches the plurality of stripe data and the check data included in the EC stripe data into the plurality of solid state drives.
  • step 206 For the specific implementation process, refer to step 206 in the foregoing embodiment of FIG. 2.
  • the first storage device caches the plurality of stripe data and the check data included in the EC stripe data into the plurality of solid state hard disks
  • the first storage may be performed under some conditions.
  • the device stores the data of the plurality of SSD caches on the disk.
  • the first case under the preset condition, the first storage device performs data storage by using a plurality of disks included in the first storage device.
  • the first storage device further includes a plurality of disks.
  • the specific implementation of the data storage by the first storage device by using multiple disks included in the first storage device may include the following steps (6)-(7):
  • the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.
  • step (1) in the foregoing embodiment of FIG. 2.
  • the first storage device stores the copy data in a plurality of disks included in the first storage device.
  • the second case under the preset condition, the first storage device performs data storage through a plurality of disks included in the second storage device.
  • the first storage device includes only a plurality of solid state disks
  • the storage system further includes a second storage device, where the second storage device includes a plurality of disks.
  • the specific implementation of the data storage by the first storage device by using multiple disks included in the second storage device may include the following steps (8)-(10):
  • the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.
  • step (3) in the foregoing embodiment of FIG. 2.
  • the first storage device sends the copy data to the second storage device.
  • step (4) in the foregoing embodiment of FIG. 2.
  • the second storage device receives the copy data sent by the first storage device, and stores the received copy data into a plurality of disks included in the second storage device.
  • step (5) in the foregoing embodiment of FIG. 2.
  • Step 308 The first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives.
  • step 207 in the foregoing embodiment of FIG. 2.
  • the EC strip data including the plurality of stripe data and the check data is obtained. Then, the EC strip data is sent to the first storage device, and the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.
  • FIG. 9 is a schematic structural diagram of a data storage device, which may be implemented by software, hardware, or a combination of both, according to an exemplary embodiment.
  • the data storage device is deployed in a first storage device in the storage system shown in FIG. 1 , where the first storage device includes a plurality of solid state disks, and the device includes:
  • the receiving processing module 410 is configured to receive data sent by the client, perform virtualized strip processing on the data, and obtain a plurality of stripe data, where the data sent by the client is written in the client Raw data;
  • the encoding processing module 412 is configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and verification data, The verification data is used to verify the plurality of stripe data;
  • the first storage module 414 is configured to cache the plurality of stripe data and the verification data included in the EC stripe data into the plurality of solid state drives.
  • the first storage device further includes multiple disks.
  • the device further includes:
  • the first aggregation module 415 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;
  • the second storage module 416 stores the copy data into a plurality of disks included in the first storage device.
  • the apparatus further includes:
  • the first deleting module 418 is configured to delete the plurality of stripe data and the check data buffered in the plurality of solid state disks.
  • the encoding processing module 412 is configured to:
  • the data included in the coding vector is determined as the EC strip data.
  • the apparatus further includes:
  • a determining module 420 configured to determine, from the preset generation matrix, a target row, a preset data in the target row, and a vector consisting of the multiple stripe data when a data loss situation occurs in the plurality of solid state drives After multiplication, the lost data can be obtained;
  • a second deleting module 421, configured to delete the target row in the preset generation matrix to obtain a target generation matrix
  • the recovery module 422 is configured to multiply a vector consisting of the remaining EC strip data after data loss and an inverse matrix of the target generation matrix to recover the EC strip data.
  • the storage system further includes a second storage device, and the second storage device includes a plurality of disks.
  • the device further includes:
  • the second aggregation module 424 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;
  • a sending module 426 configured to send the replica data to the second storage device; the second storage device receives replica data sent by the sending module, and stores the received replica data to the second storage
  • the device is included in multiple disks.
  • the first storage device when the first storage device receives the data written by the client and is written in the client, the data is sequentially subjected to virtualized strip processing and encoding processing, and then obtained. EC stripe data including multiple stripe data and check data. Then, the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.
  • FIG. 14 is a schematic structural diagram of a data storage device according to an exemplary embodiment.
  • the data storage device can be implemented by software, hardware, or a combination of both.
  • the data storage device is deployed in a client in the storage system shown in FIG. 1.
  • the storage system further includes a first storage device, the first storage device includes a plurality of solid state disks, and the device includes:
  • the stripe processing module 510 is configured to perform virtualized stripe processing on the data to obtain a plurality of stripe data, where the data is original data written in the client;
  • the encoding processing module 530 is configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data.
  • the verification data is used to verify the plurality of stripe data;
  • the sending module 540 is configured to send the EC strip data to the first storage device, so that the first storage device uses the plurality of strip data and the school included in the EC strip data.
  • the test data is separately cached into the plurality of solid state drives.
  • the encoding processing module 530 is configured to:
  • the data included in the coding vector is determined as the EC strip data.
  • the EC strip data including the plurality of stripe data and the check data is obtained. Then, the EC strip data is sent to the first storage device, and the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.
  • FIG. 15 is a schematic structural diagram of a data storage device according to an exemplary embodiment.
  • the data storage device can be implemented by software, hardware, or a combination of both.
  • the data storage device is deployed in the first storage device in the storage system shown in FIG. 1.
  • the storage system further includes a client, where the first storage device includes a plurality of solid state disks, and the device includes:
  • the receiving module 610 is configured to receive EC strip data sent by the client, where the EC strip data includes the plurality of strip data and check data, where the check data is used to the multiple strips Carrying data for verification, the plurality of stripe data being obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;
  • the first storage module 620 is configured to cache the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives.
  • the first storage device further includes a plurality of disks.
  • the device further includes:
  • the first aggregation module 622 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;
  • the second storage module 624 is configured to store the replica data into a plurality of disks included in the first storage device.
  • the apparatus further includes:
  • the first deleting module 630 is configured to delete the plurality of stripe data and the check data buffered in the plurality of solid state disks.
  • the apparatus further includes:
  • a determining module 640 configured to determine a target row from the preset generation matrix when a data loss situation occurs in the plurality of solid state disks, where preset data in the target row is combined with the plurality of stripe data The vector is multiplied to get the missing data;
  • a second deleting module 642 configured to delete the target row in the preset generation matrix to obtain a target generation matrix
  • the recovery module 650 is configured to multiply a vector composed of EC strip data remaining after data loss and an inverse matrix of the target generation matrix to recover the EC strip data.
  • the storage system further includes a second storage device, and the second storage device includes a plurality of disks.
  • the device further includes:
  • the second aggregation module 660 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;
  • a sending module 670 configured to send the copy data to the second storage device; the second storage device receives the copy data sent by the first storage device, and stores the received copy data to the first Two storage devices are included in multiple disks.
  • the EC strip data including the plurality of stripe data and the check data is obtained. Then, the EC strip data is sent to the first storage device, and the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.
  • FIG. 20 is a schematic structural diagram of a first storage device, which mainly includes a transmitter 701, a receiver 702, a memory 704, a processor 703, and a communication bus 705, according to an exemplary embodiment. It will be understood by those skilled in the art that the structure of the first storage device 700 shown in FIG. 20 does not constitute a limitation on the intelligent lighting device, may include more or less components than those illustrated, or combine some components, or The components of the present application are not limited in this embodiment.
  • the transmitter 701 can be configured to send data, such as frame data, to the subsequent processing module.
  • the memory 704 can be used to store parsed valid data, and the memory 704 can also be used to store one or more running programs and/or modules for performing the data processing methods described above.
  • the processor 703 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more An integrated circuit that controls the execution of the program of the present application.
  • the processor 703 can implement the methods provided by the embodiment of FIG. 2 or FIG. 8 above by running or executing software programs and/or modules stored in the memory 704, as well as invoking data stored in the memory 704.
  • the communication bus 705 can include a path for transferring information between the processor 703 and the memory 704.
  • non-transitory computer readable storage medium comprising instructions, for example, a memory comprising instructions executable by a processor of a first storage device to perform the data storage method described above.
  • the non-transitory computer readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device.
  • FIG. 21 is a schematic structural diagram of a client, which mainly includes a transmitter 801, a receiver 802, a memory 804, a processor 803, and a communication bus 805, according to an exemplary embodiment. It will be understood by those skilled in the art that the structure of the client 800 shown in FIG. 21 does not constitute a limitation on the intelligent lighting device, may include more or less components than those illustrated, or combine some components, or different. The component arrangement is not limited in this embodiment of the present application.
  • the transmitter 801 can be used to send data, such as frame data, to the subsequent processing module.
  • the memory 804 can be used to store parsed valid data, and the memory 804 can also be used to store one or more running programs and/or modules for performing the data processing methods described above.
  • the processor 803 can be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more An integrated circuit that controls the execution of the program of the present application.
  • the processor 803 can implement the method provided by the embodiment of FIG. 2 or FIG. 8 above by running or executing software programs and/or modules stored in the memory 804, as well as invoking data stored in the memory 804.
  • the communication bus 805 can include a path for transferring information between the processor 803 and the memory 804.
  • non-transitory computer readable storage medium comprising instructions, for example, a memory comprising instructions executable by a processor of a client to perform the data storage method described above.
  • the non-transitory computer readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device.
  • a person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium.
  • the storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

The embodiments of the present application relate to the field of computer technologies, and disclosed thereby are a data storage method, a storage device, a client and a system. The method is applied to a first storage device of a storage system, and the first storage device comprises a plurality of solid-state drives; the first storage device receives data sent by a client and performs strip virtualization on the data to obtain a plurality of strip data, the data sent by the client being original data written therein; the first storage device encodes the plurality of strip data by means of an elliptic curve (EC) algorithm to obtain EC strip data, the EC strip data comprising a plurality of strip data and check data, and the check data being used for checking the plurality of strip data; and the first storage device caches a plurality of strip data and check data comprised in the EC strip data into a plurality of solid-state drives respectively. Hence, EC strip data may be recovered by means of the EC algorithm when data are lost, thus ensuring the integrity of data storage.

Description

数据存储方法、存储设备、客户端及系统Data storage method, storage device, client and system

本申请要求于2017年06月29日提交中国国家知识产权局、申请号为201710515890.3、发明名称为“数据存储方法、装置及系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese Patent Application, which is filed on June 29, 2017, the Chinese National Intellectual Property Office, the application number is 201710515890.3, and the invention is entitled "Data Storage Method, Apparatus and System", the entire contents of which are incorporated herein by reference. In the application.

技术领域Technical field

本申请实施例涉及计算机技术领域,特别涉及一种数据存储方法、存储设备、客户端及系统。The embodiments of the present invention relate to the field of computer technologies, and in particular, to a data storage method, a storage device, a client, and a system.

背景技术Background technique

随着计算机技术的快速发展,目前大部分均采用存储系统来实现数据存储。存储系统中主要包括有客户端和存储设备,其中,该客户端主要用于用户写入数据,该存储设备主要用于存储用户通过客户端写入的数据。With the rapid development of computer technology, most of the current storage systems are used to implement data storage. The storage system mainly includes a client and a storage device, wherein the client is mainly used for writing data by a user, and the storage device is mainly used for storing data written by a user through a client.

在实际实现时,该存储设备中一般包括有多个固态硬盘和多个磁盘,其中,固态硬盘具有较高的随机写入和读取性能,但存储容量较小,而磁盘的存储容量较大,但读写性能通常较差。目前,为了提高数据的读写性能,在数据存储过程中,存储设备一般先将客户端传递的用户写入的数据缓存至多个固态硬盘中,当该多个固态硬盘中任一固态磁盘缓存的数据达到一定容量时,再将该多个固态硬盘中缓存的数据存储到该多个磁盘中,从而实现数据的存储。In actual implementation, the storage device generally includes a plurality of solid state disks and a plurality of disks, wherein the solid state disks have high random write and read performance, but the storage capacity is small, and the storage capacity of the disks is large. , but the read and write performance is usually poor. At present, in order to improve the read and write performance of data, in the data storage process, the storage device generally caches the data written by the user delivered by the client to a plurality of solid state disks, and caches any solid disk in the plurality of solid state disks. When the data reaches a certain capacity, the data cached in the plurality of SSDs is stored in the plurality of disks, thereby realizing data storage.

然而,当采用上述方式进行数据存储时,如果某固态硬盘出现异常,则缓存在该固态硬盘上的数据将会丢失,且丢失后的数据将无法找回。However, when data storage is performed in the above manner, if an SSD is abnormal, the data cached on the SSD will be lost, and the lost data will not be retrieved.

发明内容Summary of the invention

本申请实施例提供了一种数据存储方法、存储设备、客户端及系统,能够解决固态硬盘异常导致数据丢失且无法找回的问题。所述技术方案如下:The embodiment of the present application provides a data storage method, a storage device, a client, and a system, which can solve the problem that the solid state hard disk abnormality causes data loss and cannot be retrieved. The technical solution is as follows:

第一方面,提供了一种数据存储方法,应用于存储系统的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述方法包括:The first aspect provides a data storage method, which is applied to a first storage device of a storage system, where the first storage device includes a plurality of solid state disks, and the method includes:

所述第一存储设备接收客户端发送的数据,并对所述数据进行虚拟化条带 处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;Receiving, by the first storage device, data sent by the client, and performing virtualized strip processing on the data to obtain a plurality of stripe data, where the data sent by the client is the original data written in the client ;

所述第一存储设备通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The first storage device performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, The verification data is used to verify the plurality of stripe data;

所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。The first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives, respectively.

第二方面,提供了一种数据存储方法,应用于存储系统的客户端中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,所述方法包括:The second aspect provides a data storage method, which is applied to a client of a storage system, where the storage system further includes a first storage device, where the first storage device includes a plurality of solid state disks, and the method includes:

所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;The client performs virtualized strip processing on the data to obtain a plurality of stripe data, where the data is original data written in the client;

所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, the school The test data is used to verify the plurality of stripe data;

所述客户端将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。Transmitting, by the client, the EC strip data to the first storage device, so that the first storage device uses the plurality of stripe data and the check data included in the EC strip data Cache to the plurality of solid state drives respectively.

第三方面,提供了一种数据存储方法,应用于存储系统的第一存储设备中,所述存储系统还包括客户端,所述第一存储设备中包括多个固态硬盘,所述方法包括:A third aspect provides a data storage method, which is applied to a first storage device of a storage system, where the storage system further includes a client, where the first storage device includes a plurality of solid state disks, and the method includes:

所述第一存储设备接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;Receiving, by the first storage device, the EC strip data sent by the client, where the EC strip data includes the plurality of stripe data and check data, where the check data is used for the multiple strips Carrying data for verification, the plurality of stripe data being obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;

所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。The first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives, respectively.

第四方面,提供了一种数据存储装置,部署于存储系统的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述装置包括:A fourth aspect provides a data storage device, which is deployed in a first storage device of a storage system, where the first storage device includes a plurality of solid state disks, and the device includes:

接收处理模块,用于接收客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原 始数据;a receiving processing module, configured to receive data sent by the client, and perform virtualized strip processing on the data to obtain a plurality of stripe data, where the data sent by the client is the original data written in the client ;

编码处理模块,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;An encoding processing module, configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and verification data, The verification data is used to verify the plurality of stripe data;

第一存储模块,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。And a first storage module, configured to cache the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives respectively.

第五方面,提供了一种数据存储装置,部署于存储系统的客户端中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,所述装置包括:In a fifth aspect, a data storage device is provided, which is deployed in a client of a storage system, the storage system further includes a first storage device, the first storage device includes a plurality of solid state disks, and the device includes:

条带处理模块,用于对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;a stripe processing module, configured to perform virtualized stripe processing on the data to obtain a plurality of stripe data, where the data is original data written in the client;

编码处理模块,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;An encoding processing module, configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and verification data, The verification data is used to verify the plurality of stripe data;

发送模块,用于将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。a sending module, configured to send the EC strip data to the first storage device, so that the first storage device uses the plurality of stripe data included in the EC strip data and the checksum The data is separately cached into the plurality of solid state drives.

第六方面,提供了一种数据存储装置,部署于所述存储系统的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述装置包括:The sixth aspect provides a data storage device, which is deployed in a first storage device of the storage system, where the first storage device includes a plurality of solid state disks, and the device includes:

接收模块,用于接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;a receiving module, configured to receive EC strip data sent by the client, where the EC strip data includes the plurality of stripe data and check data, and the check data is used to the plurality of strips The data is verified, and the plurality of stripe data is obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;

第一存储模块,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。And a first storage module, configured to cache the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives respectively.

第七方面,提供了一种第一存储设备,部署于存储系统中,所述第一存储设备中包括多个固态硬盘,所述第一存储设备包括:The seventh aspect provides a first storage device, which is deployed in a storage system, where the first storage device includes a plurality of solid state disks, and the first storage device includes:

一个或多个处理器;和One or more processors; and

存储器;Memory

所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或多个处理器执行,所述一个或多个程序包含用于进行以下操作的指令:The memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for:

接收客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;Receiving data sent by the client, and performing virtualized strip processing on the data to obtain a plurality of stripe data, where the data sent by the client is the original data written in the client;

通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;Encoding the plurality of stripe data by using a codec EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data is used for Performing verification on the plurality of stripe data;

将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。And storing the plurality of stripe data and the check data included in the EC strip data into the plurality of solid state drives respectively.

第八方面,提供了一种客户端,部署于存储系统中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,所述客户端包括:The eighth aspect provides a client that is deployed in a storage system, where the storage system further includes a first storage device, where the first storage device includes a plurality of solid state disks, and the client includes:

一个或多个处理器;和One or more processors; and

存储器;Memory

所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或多个处理器执行,所述一个或多个程序包含用于进行以下操作的指令:The memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for:

对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;Performing virtualized stripe processing on the data to obtain a plurality of stripe data, the data being original data written in the client;

通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;Encoding the plurality of stripe data by using a codec EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data is used for Performing verification on the plurality of stripe data;

将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。Transmitting the EC stripe data to the first storage device, so that the first storage device caches the plurality of stripe data and the check data included in the EC stripe data respectively Said in multiple solid state drives.

第九方面,提供了一种第一存储设备,部署于存储系统中,所述第一存储设备中包括多个固态硬盘,所述第一存储设备包括:A ninth aspect, a first storage device is provided, which is deployed in a storage system, where the first storage device includes a plurality of solid state disks, and the first storage device includes:

一个或多个处理器;和One or more processors; and

存储器;Memory

所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或多个处理器执行,所述一个或多个程序包含用于进行以下操作的指令:The memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for:

接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;Receiving EC strip data sent by the client, the EC strip data includes the plurality of stripe data and check data, and the check data is used to verify the plurality of stripe data, The plurality of stripe data is obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;

将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。And storing the plurality of stripe data and the check data included in the EC strip data into the plurality of solid state drives respectively.

第十方面,提供了一种存储系统,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:According to a tenth aspect, a storage system is provided, where the storage system includes a client and a first storage device, and the first storage device includes a plurality of solid state disks, and the method includes:

所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;The client performs virtualized strip processing on the data to obtain a plurality of stripe data, where the data is original data written in the client;

所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, the school The test data is used to verify the plurality of stripe data;

所述客户端将所述EC条带数据发送给所述第一存储设备;Sending, by the client, the EC strip data to the first storage device;

所述第一存储设备接收所述客户端发送的EC条带数据,并将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。Receiving, by the first storage device, the EC strip data sent by the client, and buffering the plurality of strip data and the check data included in the EC strip data to the plurality of solid state drives respectively in.

本申请实施例提供的技术方案带来的有益效果是:The beneficial effects brought by the technical solutions provided by the embodiments of the present application are:

在存储系统中,当第一存储设备接收到客户端发送的在该客户端中写入的数据时,对该数据依次进行虚拟化条带处理及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。In the storage system, when the first storage device receives the data written by the client and is written in the client, the data is sequentially subjected to virtualized strip processing and encoding processing, thereby obtaining a plurality of stripe data and Check the EC strip data of the data. Then, the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.

附图说明DRAWINGS

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings used in the description of the embodiments will be briefly described below. It is obvious that the drawings in the following description are only some embodiments of the present application. Other drawings may also be obtained from those of ordinary skill in the art in light of the inventive work.

图1是根据一示例性实施例示出的一种存储系统的架构示意图。FIG. 1 is a schematic structural diagram of a storage system according to an exemplary embodiment.

图2是根据一示例性实施例示出的一种数据存储方法的流程图。FIG. 2 is a flow chart showing a data storage method according to an exemplary embodiment.

图3是图2实施例涉及的一种EC算法的具体实现示意图。FIG. 3 is a schematic diagram of a specific implementation of an EC algorithm according to the embodiment of FIG. 2. FIG.

图4是图2实施例涉及的另一种EC算法的具体实现示意图。4 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2.

图5是图2实施例涉及的另一种EC算法的具体实现示意图。FIG. 5 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2. FIG.

图6是图2实施例涉及的另一种EC算法的具体实现示意图。FIG. 6 is a schematic diagram of a specific implementation of another EC algorithm involved in the embodiment of FIG. 2. FIG.

图7是图2实施例涉及的一种数据存储方式的示意图。FIG. 7 is a schematic diagram of a data storage method according to the embodiment of FIG. 2. FIG.

图8是根据另一示例性实施例示出的一种数据存储方法的流程图。FIG. 8 is a flowchart of a data storage method according to another exemplary embodiment.

图9是根据一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 9 is a schematic structural diagram of a data storage device according to an exemplary embodiment.

图10是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 10 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图11是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 11 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图12是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 12 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图13是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 13 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图14是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 14 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图15是根据一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 15 is a schematic structural diagram of a data storage device according to an exemplary embodiment.

图16是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 16 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图17是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 17 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图18是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 18 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图19是根据另一示例性实施例示出的一种数据存储装置的结构示意图。FIG. 19 is a schematic structural diagram of a data storage device according to another exemplary embodiment.

图20是根据一示例性实施例示出的一种第一存储设备的结构示意图。FIG. 20 is a schematic structural diagram of a first storage device according to an exemplary embodiment.

图21是根据一示例性实施例示出的一种客户端的结构示意图。FIG. 21 is a schematic structural diagram of a client according to an exemplary embodiment.

具体实施方式Detailed ways

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。The embodiments of the present application will be further described in detail below with reference to the accompanying drawings.

在对本申请实施例进行详细介绍之前,先对本申请实施例中涉及的名词进行简单介绍:Before the detailed description of the embodiments of the present application, the nouns involved in the embodiments of the present application are briefly introduced:

EC算法:即,(Erasure Code,纠删码)算法,是一种数据保护方法,该算法主要可以用于对数据进行冗余数据块扩展、编码等处理。The EC algorithm: that is, the (Erasure Code) algorithm is a data protection method, which can be mainly used for performing redundant data block expansion and encoding on data.

固态硬盘:即,(Solid State Drives,SSD),该固态硬盘一般采用固态电子存储芯片阵列制作而成,主要由控制单元和存储单元组成。其中,该存储单元包括但不限于FLASH(快闪)芯片、DRAM(Dynamic Random Access Memory,动态随机存取存储器)芯片。固态硬盘具有较高的随机写入和读写性能,但容量一般较小,且价格较为昂贵。通常情况下,该固态硬盘被用于分级存储的较高层,即作为缓存设备。Solid state drives: Solid State Drives (SSDs), which are typically fabricated from solid state electronic memory chip arrays, consisting primarily of control units and memory cells. The storage unit includes, but is not limited to, a FLASH chip and a DRAM (Dynamic Random Access Memory) chip. Solid state drives have high random write and read and write performance, but the capacity is generally small and expensive. Typically, this solid state drive is used for higher levels of tiered storage, ie as a cache device.

磁盘(Disk):通过磁片旋转和磁头移动等机械操作实现数据的读写,具有较大的存储容量,但由于受到磁片旋转和磁头移动等机械操作的限制,磁盘的读写性能较差。磁盘一般被用于分级存储的较低层,即作为数据存储的最终载体。一般情况下,可以采用副本方式进行数据存储。Disk: It can read and write data through mechanical operations such as disk rotation and head movement, and has a large storage capacity. However, due to mechanical operation such as disk rotation and head movement, disk read and write performance is poor. . Disks are typically used for lower layers of hierarchical storage, ie as the final carrier for data storage. In general, you can use the copy method for data storage.

分级存储:是指基于读写性能、业务连续性、存储安全性、数据保留策略以及硬件成本等因素,将数据进行分级存储,如,分级存储方式可以包括主盘存储、备份盘存储、归档盘存储、磁盘归档存储、光盘归档存储等。也就是说,分级存储是根据数据的重要性、访问频率、保留时间、容量、性能等指标,将数据采取不同的存储方式分别存储在不同性能的第一存储设备上。通过分级存储可以实现数据在固态硬盘和磁盘之间的自动迁移,具体地,第一存储设备可以根据数据被访问的频次实现数据的迁移,如,将被访问频次较少的数据从固态硬盘迁移至磁盘中,或者,将被访问频次较多的数据(可以称为热点数据)从磁盘迁移至固态硬盘中。Hierarchical storage: refers to the hierarchical storage of data based on factors such as read and write performance, business continuity, storage security, data retention policies, and hardware costs. For example, hierarchical storage methods may include primary storage, backup disk storage, and archive disk. Storage, disk archive storage, CD archive storage, and more. That is to say, the tiered storage is based on the importance of the data, the access frequency, the retention time, the capacity, the performance, and the like, and the data is stored in different storage modes on the first storage device of different performance. The grading storage can realize automatic migration of data between the SSD and the disk. Specifically, the first storage device can implement data migration according to the frequency of data being accessed, for example, migrating data with less frequent access frequency from the SSD. To disk, or to migrate data that is accessed more frequently (which can be called hotspot data) from disk to SSD.

接下来,对本申请实施例涉及的存储系统进行介绍。请参考图1,该图1是根据一示例性实施例示出的一种存储系统的架构示意图,该存储系统中主要包括有客户端110和多个存储设备,该多个存储设备包括有第一存储设备120。其中,该客户端110可以通过有线网络或者无线网络与该第一存储设备120之间进行连接。Next, the storage system according to the embodiment of the present application is introduced. Please refer to FIG. 1 , which is a schematic structural diagram of a storage system. The storage system mainly includes a client 110 and a plurality of storage devices, and the plurality of storage devices include a first Storage device 120. The client 110 can be connected to the first storage device 120 through a wired network or a wireless network.

其中,该客户端110主要用于用户写入数据,该客户端110可以支持键盘输入,该键盘可以为虚拟键盘,也可以为实体键盘。在实际应用场景中,该客户端110可以安装在终端中,并通过该终端运行该客户端110。其中,该终端可以为诸如手机、平板电脑、计算机之类的设备,本申请实施例对此不作限定。The client 110 is mainly used for user to write data, and the client 110 can support keyboard input. The keyboard can be a virtual keyboard or a physical keyboard. In an actual application scenario, the client 110 can be installed in the terminal and run the client 110 through the terminal. The terminal may be a device such as a mobile phone, a tablet computer, or a computer, which is not limited in this embodiment of the present application.

需要说明的是,该客户端110也可以不安装在终端中,而是单独存在的一个实体设备,本申请实施例对此不做限定。It should be noted that the client 110 may not be installed in the terminal, but may be a physical device.

其中,该第一存储设备120主要用于接收客户端110发送的数据,并对该数据进行存储。该第一存储设备120中包括多个固态硬盘,在具体实现中,该第一存储设备120可以通过该多个固态硬盘实现数据缓存。The first storage device 120 is mainly configured to receive data sent by the client 110 and store the data. The first storage device 120 includes a plurality of solid state disks. In a specific implementation, the first storage device 120 can implement data caching through the plurality of solid state disks.

另外,在一种可能的实现方式中,该第一存储设备120还可能包括多个磁盘,在一些条件下,该第一存储设备120将该多个固态硬盘中缓存的数据存储至该多个磁盘中,具体实现如下文图2或图8实施例所述。In addition, in a possible implementation, the first storage device 120 may further include multiple disks, and in some conditions, the first storage device 120 stores the data cached in the plurality of solid state disks to the plurality of disks. In the disk, the specific implementation is as described in the following FIG. 2 or FIG. 8 embodiment.

在另一种可能的实现方式中,该多个存储设备还包括有第二存储设备130,该第二存储设备130中包括多个磁盘。也就是说,在实际实现中,该多个固态硬盘和该多个磁盘可能不在一个存储设备中,如,该多个固态硬盘属于第一存储设备120,该多个磁盘属于第二存储设备130。在该种情况下,下文所涉及的关于数据的处理实现过程由该第一存储设备120执行,之后,在一些条件下,该第一存储设备120将多个固态硬盘存储的数据发送给第二存储设备130,由该第二存储设备130通过其包括的多个磁盘存储该数据。In another possible implementation manner, the multiple storage devices further include a second storage device 130, where the second storage device 130 includes a plurality of disks. That is, in an actual implementation, the plurality of SSDs and the plurality of disks may not be in one storage device. For example, the plurality of SSDs belong to the first storage device 120, and the plurality of disks belong to the second storage device 130. . In this case, the process implementation process for data involved below is performed by the first storage device 120, and then, under some conditions, the first storage device 120 transmits data stored by the plurality of solid state disks to the second The storage device 130 stores the data by the second storage device 130 through a plurality of disks included therein.

在实际实现中,本申请实施例基于上述存储系统,先对客户端110中写入的数据进行虚拟化条带处理、以及通过EC算法进行编码处理,得到EC条带数据,之后,再将该EC条带数据缓存至多个固态硬盘中。当该多个固态硬盘中缓存的数据满足一定的条件时,将该多个固态硬盘中缓存的数据转移至磁盘中进行存储。如此,由于采用了固态硬盘做中间缓存,所以提高了数据的读写性能,并且,由于通过EC算法进行编码处理,且该EC算法的原理是为数据添加校验数据,因此,当出现数据丢失情况下,可以基于该EC算法,利用该校验数据进行数据恢复,保证数据存储的可靠性。通常情况下,该种分层存储的方式被称为分布式存储,其具体实现请参见下文图2或图8实施例所述。In an actual implementation, the embodiment of the present application first performs virtualized strip processing on data written in the client 110 and performs encoding processing by using an EC algorithm to obtain EC strip data, and then EC stripe data is cached into multiple SSDs. When the data cached in the plurality of SSDs meets certain conditions, the data cached in the plurality of SSDs is transferred to the disk for storage. In this way, since the solid state hard disk is used as the intermediate cache, the data read and write performance is improved, and since the encoding process is performed by the EC algorithm, and the principle of the EC algorithm is to add check data to the data, when data loss occurs In this case, based on the EC algorithm, the verification data can be used for data recovery to ensure the reliability of data storage. Generally, the manner of tiered storage is referred to as distributed storage. For the specific implementation, please refer to the embodiment of FIG. 2 or FIG. 8 below.

进一步地,在具体实现中,该存储系统中还可以包括有MDS(Meta Data Server,元数据服务器)140,该元数据服务器140主要用于分配和管理数据的存储。实际上,该元数据服务器140相当于该存储系统的调度中心,即该元数据服务器140可以控制将数据具体存储到哪个或哪些固态硬盘或磁盘中。在具体实现中,该元数据服务器140可以监测第一存储设备120的存储状态,并根据所监测到的存储状态为客户端110分配固态硬盘,其具体实现过程可以参见下文所述实施例。Further, in a specific implementation, the storage system may further include an MDS (Meta Data Server) 140, and the metadata server 140 is mainly used for allocating and managing storage of data. In effect, the metadata server 140 is equivalent to the dispatch center of the storage system, i.e., the metadata server 140 can control which solid storage disk or disk to store the data to. In a specific implementation, the metadata server 140 can monitor the storage state of the first storage device 120, and allocate the solid state hard disk to the client 110 according to the monitored storage state. For the specific implementation process, refer to the embodiments described below.

需要说明的是,本申请实施例仅是以该存储系统中包括元数据服务器140为例进行说明。在另一实施例中,如果该存储系统中不包括元数据服务器140,则可以通过指定调度算法来控制数据的存储,其中,该指定调度算法可以运行在客户端上,也可以运行在第一存储设备上,本申请实施例对此不做过多介绍。It should be noted that the embodiment of the present application is only described by using the metadata server 140 in the storage system as an example. In another embodiment, if the metadata server 140 is not included in the storage system, the storage of the data may be controlled by specifying a scheduling algorithm, where the specified scheduling algorithm may be run on the client or in the first On the storage device, this embodiment of the present application does not introduce too much.

如前文所述,在本申请实施例中,需要对在客户端写入的数据进行虚拟化条带以及编码等一系列处理。在实际实现中,这一系列处理可以由第一存储设备来执行,也可以由客户端来执行。接下来,将通过如下图2实施例和图8实 施例分别介绍由第一存储设备及由客户端执行这一系列处理为例,对该数据存储方法进行详细介绍。As described above, in the embodiment of the present application, a series of processes such as virtualized striping and encoding are required for data written on the client. In an actual implementation, this series of processing may be performed by the first storage device or by the client. Next, the data storage method will be described in detail by taking the first storage device and the client to perform the series of processing as an example, as shown in the following FIG. 2 embodiment and FIG.

请参考图2,这里以上述一系列处理由第一存储设备执行为例进行说明。该图2是根据一示例性实施例示出的一种数据存储方法的流程图,本实施例可以通过图1所示的存储系统来实现,该数据存储方法可以包括如下几个步骤:Please refer to FIG. 2 , where the above series of processing is performed by the first storage device as an example for description. FIG. 2 is a flowchart of a data storage method according to an exemplary embodiment. The embodiment may be implemented by using the storage system shown in FIG. 1. The data storage method may include the following steps:

步骤201:客户端向元数据服务器发送存储请求。Step 201: The client sends a storage request to the metadata server.

在实际实现中,当客户端需要向第一存储设备存储数据时,可以向元数据服务器发送存储请求,该存储请求用于指示元数据服务器为该客户端分配用于存储数据的固态硬盘。进一步地,为了便于元数据服务器确定需要为该客户端分配几个固态硬盘,该存储请求中一般还可以携带需要存储的数据的份数,如此,该元数据服务器即可根据该份数来确定需要分配的固态硬盘的数量。In an actual implementation, when the client needs to store data to the first storage device, a storage request may be sent to the metadata server, where the storage request is used to instruct the metadata server to allocate a solid state hard disk for storing data for the client. Further, in order to facilitate the metadata server to determine that several SSDs need to be allocated to the client, the storage request may generally carry the number of copies of the data to be stored, so that the metadata server can determine the number of copies according to the number of copies. The number of SSDs that need to be allocated.

步骤202:该元数据服务器为该客户端分配固态硬盘。Step 202: The metadata server allocates a solid state hard disk to the client.

通常情况下,由于元数据服务器能够获取到第一存储设备的存储空间大小,并且,该元数据服务器负责为客户端分配数据的存储位置,即该元数据服务器可以监测该第一存储设备中已占用了多少存储空间,以及剩余多少存储空间,所以,该元数据服务器可以获取该第一存储设备的存储状态,进一步来说,该元数据服务器可以获取该多个固态硬盘当前的存储情况。因此,该元数据服务器可以根据上述存储请求中携带的份数以及该多个固态硬盘中各个固态硬盘当前的存储情况,为该客户端分配固态硬盘,并将所分配的固态硬盘的地址信息发送给该客户端。Generally, since the metadata server can obtain the storage space size of the first storage device, and the metadata server is responsible for allocating a storage location of the data to the client, that is, the metadata server can monitor the first storage device. The storage server can obtain the storage status of the first storage device. Further, the metadata server can obtain the current storage status of the plurality of SSDs. Therefore, the metadata server may allocate a solid state hard disk to the client according to the number of copies carried in the storage request and the current storage condition of each solid state hard disk in the plurality of solid state disks, and send the address information of the allocated solid state disk. Give the client.

在具体实现中,该元数据服务器可以向该客户端发送存储响应,该存储响应中携带所分配的固态硬盘的地址信息。In a specific implementation, the metadata server may send a storage response to the client, where the storage response carries address information of the allocated SSD.

步骤203:客户端向第一存储设备发送数据,该第一存储设备接收该客户端发送的数据,该客户端发送的数据为该客户端中写入的数据。Step 203: The client sends data to the first storage device, where the first storage device receives data sent by the client, and the data sent by the client is data written in the client.

如前文所述,由于本实施例中是通过第一存储设备对该客户端中写入的数据进行一系列处理,因此,客户端可以直接向该第一存储设备发送在该客户端写入的原始数据,在具体实现中,该客户端可以基于元数据服务器所分配的固态硬盘的地址信息,向该第一存储设备发送数据。As described above, in this embodiment, the data written in the client is processed through the first storage device, so that the client can directly send the write to the client to the first storage device. The original data, in a specific implementation, the client may send data to the first storage device based on the address information of the solid state hard disk allocated by the metadata server.

步骤204:第一存储设备对该数据进行虚拟化条带处理,得到多个条带数据。Step 204: The first storage device performs virtualized strip processing on the data to obtain a plurality of stripe data.

第一存储设备接收到客户端发送的数据后,对该数据进行虚拟化条带数据 处理,在具体实现中,该第一存储设备按照预先设置的固定条带块大小,将该数据切分成相同大小的多份数据,这里将得到的该相同大小的多份数据称为多个条带数据。譬如,假设该数据为5M大小的数据,该第一存储设备按照1M条带块大小将该数据进行分割,则经过虚拟化条带处理后将该数据被分成5份,得到5个条带数据,每个条带数据的大小为1M。例如,该5个条带数据分别为D1、D2、D3、D4和D5。After receiving the data sent by the client, the first storage device performs virtualized stripe data processing on the data. In a specific implementation, the first storage device divides the data into the same according to a preset fixed stripe block size. Multiple pieces of data of a size, the multiple pieces of data of the same size obtained here are referred to as a plurality of stripe data. For example, if the data is 5 M data, the first storage device divides the data according to the 1 M strip block size, and after the virtualized strip processing, the data is divided into 5 pieces to obtain 5 strip data. The size of each stripe data is 1M. For example, the five strip data are D1, D2, D3, D4, and D5, respectively.

步骤205:该第一存储设备通过EC算法对该多个条带数据进行编码处理,得到EC条带数据,该EC条带数据包括该多个条带数据和校验数据,该校验数据用于对该多个条带数据进行校验。Step 205: The first storage device performs encoding processing on the plurality of stripe data by using an EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data is used by the check data. The plurality of stripe data is verified.

在具体实现中,该第一存储设备基于该多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量,该第一存储设备将该编码向量包括的数据确定为该EC条带数据。In a specific implementation, the first storage device generates a vector based on the plurality of strip data, and multiplies the generated vector by a preset generation matrix to obtain a coding vector, where the first storage device determines the data included in the coding vector. Strip data for this EC.

在实际算法运算过程中,该第一存储设备基于该多个条带数据生成向量的具体实现过程包括:该第一存储设备将该多个条带数据构成列向量。In the actual algorithm operation, the specific implementation process of the first storage device to generate a vector based on the multiple stripe data includes: the first storage device constructs the plurality of stripe data into a column vector.

其中,该预设生成矩阵可以由用户根据实际需求自定义设置。The preset generation matrix can be customized by the user according to actual needs.

例如,请参考图3,该预设生成矩阵为矩阵B。若该多个条带数据为D1、D2、D3、D4和D5,则基于该多个条带数据生成向量D,并将生成的向量D与预设生成矩阵B相乘,得到编码向量C。第一存储设备将该编码向量C包括的数据确定为EC条带数据。具体地,该EC条带数据中包括的多个条带数据分别为D1、D2、D3、D4和D5,校验数据为C1、C2和C3。For example, referring to FIG. 3, the preset generation matrix is a matrix B. If the plurality of stripe data are D1, D2, D3, D4, and D5, a vector D is generated based on the plurality of stripe data, and the generated vector D is multiplied by the preset generation matrix B to obtain a coded vector C. The first storage device determines the data included in the code vector C as EC stripe data. Specifically, the plurality of stripe data included in the EC stripe data are D1, D2, D3, D4, and D5, respectively, and the check data is C1, C2, and C3.

需要说明的是,根据预设生成矩阵的设置规则不同,该校验数据的数量也随之不同。在实际实现中,技术人员可以根据实际需求进行设置,本申请实施例对此不做限定。It should be noted that, according to the setting rules of the preset generation matrix, the number of the verification data is also different. In an actual implementation, the technical personnel can perform the setting according to the actual requirements, which is not limited by the embodiment of the present application.

进一步地,当该多个固态硬盘中出现数据丢失情况时,从该预设生成矩阵中确定目标行,其中,该目标行中的预设数据与该多个条带数据组成的向量相乘后能够得到丢失的数据,之后,该第一存储设备将该预设生成矩阵中的目标行删除,得到目标生成矩阵,将数据丢失后剩下的EC条带数据组成的向量与该目标生成矩阵的逆矩阵相乘,以对该EC条带数据进行恢复。Further, when a data loss situation occurs in the plurality of solid state disks, determining a target row from the preset generation matrix, wherein the preset data in the target row is multiplied by a vector composed of the plurality of stripe data The lost data can be obtained. After the first storage device deletes the target row in the preset generation matrix, the target generation matrix is obtained, and the vector composed of the EC strip data remaining after the data is lost and the target generation matrix are obtained. The inverse matrix is multiplied to recover the EC strip data.

在实际应用场景中,可能由于固态硬盘的插拔接口接触不良、第一存储设备出现断电等情况,导致该多个固态硬盘中缓存的数据存在丢失的情况,在本申请实施例中,可以通过EC算法对丢失的数据进行恢复。In the actual application scenario, the data of the cached data of the SSD may be lost due to the poor connection of the plug-in interface of the SSD and the power failure of the first storage device. In the embodiment of the present application, The lost data is recovered by the EC algorithm.

例如,假设上述EC条带数据包括的D1、D3和C1三个数据丢失,则对EC条带数据中包括的条带数据进行恢复的实现过程如下:For example, if the three data of D1, D3, and C1 included in the EC strip data are lost, the implementation process of recovering the stripe data included in the EC stripe data is as follows:

请参考图4,从该预设生成矩阵B中确定目标行。由于丢失的数据为D1、D3和C1,而在该预设生成矩阵B中与该多个条带数据组成的向量D相乘后能够得到丢失的数据的行分别为第一行、第三行和第六行,因此,可以确定该目标行分别为第一行、第三行和第六行。将该预设生成矩阵B中第一行、第三行和第六行删除,得到该目标生成矩阵如图4所示。该第一存储设备根据该图4所示的公式确定该目标生成矩阵的逆矩阵。Referring to FIG. 4, the target row is determined from the preset generation matrix B. Since the lost data is D1, D3, and C1, the rows in the preset generation matrix B that are multiplied by the vector D composed of the plurality of stripe data to obtain the lost data are the first row and the third row, respectively. And the sixth line, therefore, it can be determined that the target line is the first line, the third line, and the sixth line, respectively. The first row, the third row, and the sixth row in the preset generation matrix B are deleted, and the target generation matrix is obtained as shown in FIG. 4. The first storage device determines an inverse matrix of the target generation matrix according to the formula shown in FIG.

之后,请参考图5所示的公式,该第一存储设备将数据丢失后剩下的EC条带数据组成的向量与该逆矩阵进行相乘,可以得到图6所示的公式。该第一存储设备对该公式进行求解后,即可确定丢失的条带数据D1和条带数据D3,从而实现对该EC条带数据进行恢复。After that, referring to the formula shown in FIG. 5, the first storage device multiplies the vector composed of the EC strip data remaining after the data is lost, and obtains the formula shown in FIG. 6. After the first storage device solves the formula, the lost strip data D1 and the strip data D3 can be determined, thereby realizing recovery of the EC strip data.

由此可见,经过上述一系列处理后,即使固态硬盘异常导致出现数据丢失的情况,该第一存储设备也可以通过EC算法对丢失的数据进行恢复,从而保证了数据存储的可靠性。It can be seen that after the above series of processing, even if the SSD abnormality causes data loss, the first storage device can recover the lost data through the EC algorithm, thereby ensuring the reliability of the data storage.

步骤206:该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至多个固态硬盘中。Step 206: The first storage device caches the plurality of stripe data and the check data included in the EC stripe data into the plurality of solid state drives.

请参考图4,假设该EC条带数据包括的多个条带数据分别为D1、D2、D3、D4和D5,校验数据为C1、C2和C3,则该第一存储设备将该EC条带数据缓存至多个固态硬盘如图7所示。Referring to FIG. 4, it is assumed that the plurality of stripe data included in the EC stripe data are D1, D2, D3, D4, and D5, and the check data is C1, C2, and C3, and the first storage device uses the EC strip. With data cache to multiple solid state drives as shown in Figure 7.

在实际实现中,当将该EC条带数据包括的该多个条带数据和该校验数据分别缓存至该多个固态硬盘中后,可以向元数据服务器发送第一存储成功消息,以通知该元数据服务器成功实现数据存储。并且,为了便于元数据服务器进行数据管理,该第一存储成功消息中还可以携带所存储的数据的第一存储信息,该第一存储信息可以包括数据在各个固态硬盘的具体存储位置等信息。In an actual implementation, after the plurality of stripe data and the check data included in the EC strip data are respectively cached in the plurality of solid state disks, the first storage success message may be sent to the metadata server to notify The metadata server successfully implements data storage. In addition, in order to facilitate the data management of the metadata server, the first storage success message may further carry the first storage information of the stored data, where the first storage information may include information such as specific storage locations of the data on each solid state drive.

由于在向固态硬盘中缓存数据时,缓存的是增加了校验数据的EC条带数据,而不需要对数据进行备份存储,因此,相比于采用备份方式在固态硬盘中进行数据存储来说,可以节省固态硬盘的存储空间。Since the cached data is encrypted in the SSD, the EC stripe data of the check data is added, and the data is not backed up, so the data storage is performed in the SSD compared to the backup mode. Can save storage space for SSDs.

需要说明的是,在实际实现中,第一存储设备将EC条带数据包括的多个条带数据和校验数据缓存至多个固态硬盘中后,在一些条件下,该第一存储设备将该多个固态硬盘缓存的数据存储至磁盘中。在具体实现中可以包括如下两 种可能的实现方式:It should be noted that, in an actual implementation, after the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives, the first storage device may, under some conditions, the first storage device Data from multiple SSD caches is stored on disk. The following two possible implementations can be included in the implementation:

第一种情况:在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储。The first case: under the preset condition, the first storage device performs data storage by using a plurality of disks included in the first storage device.

在该种情况下,该第一存储设备还包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(1)-(2)几个步骤:In this case, the first storage device further includes a plurality of disks. In a specific implementation, the specific implementation of the data storage by the first storage device by using multiple disks included in the first storage device may include the following steps (1)-(2):

(1)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。(1) if the data capacity of any of the plurality of solid state hard disks is up to a preset capacity, or if the data of any of the plurality of solid state disks is read in the preset time period If the number of times is less than the preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.

其中,该预设容量可以由用户根据实际需求自定义设置,也可以由该第一存储设备默认设置,本申请实施例对此不做限定。例如,该预设容量可以为固态硬盘总存储容量的三分之一。The preset capacity may be customized by the user according to actual requirements, or may be set by default by the first storage device, which is not limited by the embodiment of the present application. For example, the preset capacity may be one-third of the total storage capacity of the solid state drive.

在具体实现中,可以由元数据服务器来确定该多个固态硬盘当前的存储容量。也即是,当该元数据服务器接收第一存储成功消息后,可以确定各个固态硬盘当前的存储容量。如果元数据服务器确定该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,则说明需要将该多个固态硬盘中存储的数据移动至磁盘中。In a specific implementation, the current storage capacity of the plurality of solid state drives may be determined by a metadata server. That is, after the metadata server receives the first storage success message, the current storage capacity of each solid state hard disk can be determined. If the metadata server determines that the data capacity of any of the plurality of SSDs in the plurality of SSDs reaches a preset capacity, the data stored in the plurality of SSDs needs to be moved to the disk.

其中,该预设时间段可以由用户根据实际需求自定义设置,也可以由该第一存储设备默认设置,本申请实施例对此不做限定。The preset time period may be customized by the user according to actual needs, or may be set by default by the first storage device, which is not limited by the embodiment of the present application.

其中,该预设次数可以由用户根据实际需求自定义设置,也可以由该第一存储设备默认设置,本申请实施例对此不做限定。The preset number of times may be customized by the user according to actual needs, or may be set by default by the first storage device, which is not limited by the embodiment of the present application.

在具体实现中,可以由元数据服务器来监测该多个固态硬盘中数据被读取的次数。也即是,当该元数据服务器接收第一存储成功消息后,可以监测该多个固态硬盘中缓存的数据被读取的次数。如果在预设时间段内,该多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则说明该数据为冷数据,为了节省固态硬盘的存储空间,可以将该多个固态硬盘中存储的数据移动至磁盘中。其中,该冷数据是指不常被使用的数据。In a specific implementation, the number of times the data in the plurality of solid state drives is read may be monitored by a metadata server. That is, after the metadata server receives the first storage success message, the number of times the data cached in the plurality of solid state disks is read may be monitored. If the number of times the data of any one of the plurality of SSDs is read less than the preset number of times in the preset time period, the data is cold data, and the storage space of the solid state hard disk may be saved. Data stored in multiple SSDs is moved to disk. Among them, the cold data refers to data that is not often used.

在一种可能的实现方式中,该元数据服务器根据该多个磁盘当前的存储状态,选择多个磁盘,并将该多个磁盘的地址信息发送给该第一存储设备,以使该第一存储设备通过该多个磁盘来存储该多个固态硬盘中的数据。In a possible implementation, the metadata server selects multiple disks according to the current storage state of the multiple disks, and sends address information of the multiple disks to the first storage device, so that the first The storage device stores data in the plurality of solid state drives through the plurality of disks.

该第一存储设备接收到该多个地址信息后,将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。其中,数据属性信息可以用于指示该多个条带数据的存储属性、所属文件夹等信息。After receiving the plurality of address information, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data. The data attribute information may be used to indicate information such as a storage attribute, a folder, and the like of the plurality of stripe data.

(2)该第一存储设备将该副本数据存储至该第一存储设备包括的多个磁盘中。(2) The first storage device stores the duplicate data in a plurality of disks included in the first storage device.

该第一存储设备生成副本数据后,将该副本数据存储至该多个磁盘中,例如,该第一存储设备生成N个副本数据,并将该N个副本数据分别存储至N个磁盘中,以将该N个副本数据作为冷数据进行存储,其中,该N为大于1的自然数。After the first storage device generates the replica data, the replica data is stored in the plurality of disks. For example, the first storage device generates N replica data, and stores the N replica data into N disks respectively. The N copies of the data are stored as cold data, wherein the N is a natural number greater than one.

由于保存在该多个磁盘中的数据是以副本的形式进行存储的,因此,在读取数据的过程中,可以支持并行读取,从而提高了读取的性能。Since the data stored in the plurality of disks is stored in the form of a copy, parallel reading can be supported in the process of reading data, thereby improving the performance of reading.

第二种情况:在预设条件下,第一存储设备通过第二存储设备包括的多个磁盘进行数据存储。The second case: under the preset condition, the first storage device performs data storage by using a plurality of disks included in the second storage device.

在该种情况下,该第一存储设备仅包括多个固态硬盘,该存储系统中还包括第二存储设备,该第二存储设备包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第二存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(3)-(5)几个步骤:In this case, the first storage device includes only a plurality of solid state disks, and the storage system further includes a second storage device, where the second storage device includes a plurality of disks. In a specific implementation, the specific implementation of the data storage by the first storage device by using multiple disks included in the second storage device may include the following steps (3)-(5):

(3)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内该多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。(3) If the data capacity of any of the plurality of solid state drives is up to a preset capacity, or if the data of any of the plurality of SSDs is read in the preset time period If the number of times is less than the preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.

其具体实现可以参见上述第一种情况中的步骤(1),这里不再重复赘述。For the specific implementation, reference may be made to the step (1) in the first case mentioned above, and the detailed description is not repeated here.

(4)该第一存储设备将该副本数据发送给该第二存储设备。(4) The first storage device sends the copy data to the second storage device.

由于需要将该副本数据存储至磁盘中,该第一存储设备不包括磁盘,因此,该第一存储设备可以通过其它包括多个磁盘的第二存储设备存储该副本数据,即该第一存储设备将该副本数据发送给第二存储设备。Because the copy data needs to be stored in the disk, the first storage device does not include the disk. Therefore, the first storage device can store the copy data through another second storage device including multiple disks, that is, the first storage device. The copy data is sent to the second storage device.

(5)该第二存储设备接收该第一存储设备发送的副本数据,并将所接收的副本数据存储至该第二存储设备包括的多个磁盘中。(5) The second storage device receives the copy data sent by the first storage device, and stores the received copy data into a plurality of disks included in the second storage device.

在具体实现中,该第二存储设备将所接收的副本数据存储至该第二存储设备包括的多个磁盘中的具体实现可以参见上述第一存储设备将副本数据存储 至该第一存储设备包括的多个磁盘中的实现过程。In a specific implementation, the specific implementation that the second storage device stores the received copy data in the multiple disks included in the second storage device may be referred to that the first storage device stores the copy data to the first storage device. The implementation process in multiple disks.

步骤207:该第一存储设备删除该多个固态硬盘中缓存的该多个条带数据和该校验数据。Step 207: The first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives.

在实际实现中,为了节省固态硬盘的存储空间,当将该多个条带数据成功存储至磁盘中后,可以将该多个固态硬盘中缓存的该多个条带数据和该校验数据删除。在具体实现中,当该第一存储设备通过该第一存储设备包括的多个磁盘成功存储副本数据后,或者,当该第一存储设备通过第二存储设备包括的多个磁盘成功存储副本数据后,第一存储设备删除该多个固态硬盘中缓存的该多个条带数据和该校验数据。In an actual implementation, in order to save the storage space of the solid state hard disk, after the plurality of stripe data is successfully stored in the disk, the plurality of stripe data cached in the plurality of solid state disks and the check data may be deleted. . In a specific implementation, after the first storage device successfully stores the replica data through the plurality of disks included in the first storage device, or when the first storage device successfully stores the replica data through multiple disks included in the second storage device Afterwards, the first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives.

以该第一存储设备通过第一存储设备包括的多个磁盘成功存储副本数据后为例,当第一存储设备成功将副本数据存储至第一存储设备包括的多个磁盘中后,可以向元数据服务器发送第二存储成功消息,该第二存储成功消息用于通知该元数据服务器已经成功将副本数据存储至磁盘中,进一步地,该第二存储成功消息中可以携带第二存储信息,该第二存储信息可以包括副本数据在磁盘中的具体存储位置等信息。After the first storage device successfully stores the replica data through the plurality of disks included in the first storage device, the first storage device can successfully store the replica data in the plurality of disks included in the first storage device. The data storage server sends a second storage success message, where the second storage success message is used to notify the metadata server that the copy data is successfully stored in the disk. Further, the second storage success message may carry the second storage information. The second storage information may include information such as a specific storage location of the duplicate data on the disk.

该元数据服务器接收到该第二存储成功消息后,可以向第一存储设备返回删除指示,该删除指示可以用于指示该第一存储设备删除该多个固态硬盘中缓存的数据。即该第一存储设备接收到该删除指示后,将该多个固态硬盘中缓存的多个条带数据和多个校验数据进行删除。After receiving the second storage success message, the metadata server may return a deletion indication to the first storage device, where the deletion indication may be used to instruct the first storage device to delete data cached in the plurality of solid state disks. That is, after receiving the deletion indication, the first storage device deletes the plurality of stripe data and the plurality of verification data buffered in the plurality of solid state disks.

或者,以该第一存储设备通过第二存储设备包括的多个磁盘成功存储副本数据后为例,当第二存储设备成功将副本数据存储至第二存储设备包括的多个磁盘中后,可以向元数据服务器发送第三存储成功消息,该第三存储成功消息用于通知该元数据服务器已经成功将副本数据存储至磁盘中,进一步地,该第三存储成功消息中可以携带第三存储信息,该第三存储信息可以包括副本数据在磁盘中的具体存储位置等信息。Alternatively, after the first storage device successfully stores the replica data through the plurality of disks included in the second storage device, after the second storage device successfully stores the replica data in the plurality of disks included in the second storage device, Sending a third storage success message to the metadata server, the third storage success message is used to notify the metadata server that the copy data is successfully stored in the disk, and further, the third storage success message may carry the third storage information. The third storage information may include information such as a specific storage location of the replica data on the disk.

该元数据服务器接收到该第三存储成功消息后,可以向第一存储设备返回删除指示,该删除指示可以用于指示该第一存储设备删除该多个固态硬盘中缓存的数据。即该第一存储设备接收到该删除指示后,将该多个固态硬盘中缓存的多个条带数据和多个校验数据进行删除。After receiving the third storage success message, the metadata server may return a deletion indication to the first storage device, where the deletion indication may be used to instruct the first storage device to delete data cached in the plurality of solid state disks. That is, after receiving the deletion indication, the first storage device deletes the plurality of stripe data and the plurality of verification data buffered in the plurality of solid state disks.

需要说明的是,在读取数据的过程中,存在一种情况,即该第一存储设备将基于该多个条带数据生成的副本数据存储至磁盘中,且该多个固态硬盘中缓 存的数据尚未来得及删除。因此,为了提高读取数据性能,客户端一般可以优先从固态硬盘中读取数据,如果固态硬盘中缓存的数据被删除,则再从磁盘中读取数据。It should be noted that, in the process of reading data, there is a case that the first storage device stores the replica data generated based on the plurality of stripe data on the disk, and the cached in the plurality of solid state disks The data has not yet been deleted. Therefore, in order to improve the performance of reading data, the client can generally read data from the solid state hard disk first, and if the data cached in the solid state hard disk is deleted, the data is read from the disk.

在具体实现中,当客户端侧需要读取数据时,可以向元数据服务器发送读取请求,该读取请求中携带需要读取的数据的相关信息。由于该元数据服务器能够感知该第一存储设备中各个固态硬盘和各个磁盘的存储状态,因此,该元数据服务器接收到该读取请求后,根据该相关信息,可以判断该多个固态硬盘中是否存储有该需要读取的数据。In a specific implementation, when the client side needs to read data, the read request may be sent to the metadata server, where the read request carries related information of the data to be read. The metadata server can sense the storage status of each SSD and each disk in the first storage device. After receiving the read request, the metadata server can determine the plurality of SSDs according to the related information. Whether to store the data that needs to be read.

如果确定该多个固态硬盘中存储有该需要读取的数据,则获取该需要读取的数据在该多个固态硬盘中的具体存储位置信息,并将获取的具体存储位置信息发送给该客户端,以便于该客户端根据该具体存储位置信息,从该多个固态硬盘中读取数据。If it is determined that the data to be read is stored in the plurality of solid state disks, obtaining specific storage location information of the data to be read in the plurality of solid state disks, and transmitting the obtained specific storage location information to the client End, so that the client reads data from the plurality of solid state disks according to the specific storage location information.

否则,如果该多个固态硬盘中不存储有需要读取的数据,则该元数据服务器根据该相关信息,确定该需要读取的数据在磁盘中的存储位置信息,并将确定的存储位置信息发送该客户端,以便于该客户端根据该存储位置信息,从该多个磁盘中读取数据。Otherwise, if the plurality of SSDs do not store data that needs to be read, the metadata server determines, according to the related information, storage location information of the data to be read on the disk, and determines the storage location information. The client is sent so that the client reads data from the plurality of disks based on the storage location information.

另外,需要说明的是,如前文所述,在分级存储的过程中,第一存储设备可能根据数据被访问频次,将一些热点数据从磁盘迁移至固态硬盘中。其中,该热点数据是指经常被使用的数据。In addition, it should be noted that, as described above, in the process of hierarchical storage, the first storage device may migrate some hotspot data from the disk to the solid state hard disk according to the frequency of data access. Among them, the hotspot data refers to data that is often used.

在将热点数据从磁盘迁移至固态硬盘中之前,第一存储设备也可以采用步骤204至步骤205所执行的操作对该热点数据进行上述一系列处理。如此,将该热点数据存储至固态硬盘后,即使固态硬盘出现异常导致该热点数据丢失,第一存储设备也可以找回丢失的热点数据,从而避免了该热点数据丢失导致数据存储系统可能无法正常运行的情况。Before the hotspot data is migrated from the disk to the solid state hard disk, the first storage device may perform the above series of processing on the hotspot data by using the operations performed in steps 204 to 205. In this way, after the hotspot data is stored in the SSD, even if the SSD is abnormal, the hotspot data is lost, and the first storage device can retrieve the lost hotspot data, thereby preventing the data storage system from being abnormal due to the loss of the hotspot data. The situation of operation.

在本申请实施例中,在存储系统中,当第一存储设备接收到客户端发送的在该客户端中写入的数据时,对该数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。In the embodiment of the present application, in the storage system, when the first storage device receives the data written by the client and is written in the client, the data is sequentially subjected to virtualized strip processing and encoding processing, and then obtained. EC stripe data including multiple stripe data and check data. Then, the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.

请参考图8,接下来以上述一系列处理由客户端执行为例进行说明。该图8是根据一示例性实施例示出的一种数据存储方法的流程图,本实施例可以通过图1所示的存储系统来实现,该数据存储方法可以包括如下几个步骤:Please refer to FIG. 8 , and then the above series of processing is performed by the client as an example. FIG. 8 is a flowchart of a data storage method according to an exemplary embodiment. The embodiment may be implemented by using the storage system shown in FIG. 1. The data storage method may include the following steps:

步骤301:客户端向元数据服务器发送存储请求。Step 301: The client sends a storage request to the metadata server.

其具体实现过程可以参见上述图2实施例中的步骤201。For the specific implementation process, refer to step 201 in the foregoing embodiment of FIG. 2.

步骤302:元数据服务器为该客户端分配固态硬盘。Step 302: The metadata server allocates a solid state hard disk to the client.

其具体实现过程可以参见上述图2实施例中的步骤202。For the specific implementation process, refer to step 202 in the foregoing embodiment of FIG. 2.

步骤303:该客户端对数据进行虚拟化条带处理,得到多个条带数据。Step 303: The client performs virtualized strip processing on the data to obtain a plurality of stripe data.

需要说明的是,该客户端对该数据进行虚拟化条带处理的具体实现可以参见上述图2实施例中步骤204所述的第一存储设备对数据进行虚拟化条带处理的具体实现过程,这里不再重复赘述。It should be noted that, for the specific implementation of the virtualized stripe processing of the data by the client, refer to the specific implementation process of the virtualized stripe processing of the data by the first storage device in step 204 in the foregoing embodiment of the present invention. The details are not repeated here.

其中,基于虚拟化条带处理的实现过程,这里可以认为该虚拟化条带处理是指将连续的数据分割成相同大小的数据块。Wherein, based on the implementation process of the virtualized stripe processing, the virtualized stripe processing may be considered to divide the continuous data into data blocks of the same size.

步骤304:该客户端通过删纠码EC算法对该多个条带数据进行编码处理,得到EC条带数据,该EC条带数据包括该多个条带数据和校验数据,该校验数据用于对该多个条带数据进行校验。Step 304: The client performs encoding processing on the plurality of stripe data by deleting the correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data Used to verify the multiple stripe data.

也即是,该客户端基于该多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量,该客户端将该编码向量包括的数据确定为该EC条带数据。That is, the client generates a vector based on the plurality of stripe data, and multiplies the generated vector by a preset generation matrix to obtain a code vector, and the client determines the data included in the code vector as the EC stripe. data.

其具体实现过程可以参见图2实施例中步骤205所述的第一存储设备通过EC算法对该多个条带数据进行编码处理的具体实现,这里不再详细介绍。For a specific implementation process, reference may be made to the specific implementation of the encoding processing of the plurality of stripe data by the first storage device in the step 205 in the embodiment of FIG. 2, which is not described in detail herein.

进一步地,当该多个固态硬盘中出现数据丢失情况时,该第一存储设备从该预设生成矩阵中确定目标行,该目标行中的预设数据与该多个条带数据组成的向量相乘后能够得到丢失的数据。该第一存储设备将该预设生成矩阵中的目标行删除,得到目标生成矩阵,将数据丢失后剩下的EC条带数据组成的向量与该目标生成矩阵的逆矩阵相乘,以对该EC条带数据进行恢复。Further, when a data loss situation occurs in the plurality of solid state disks, the first storage device determines a target row from the preset generation matrix, and the preset data in the target row and the vector of the plurality of stripe data After multiplication, you can get the missing data. The first storage device deletes the target row in the preset generation matrix to obtain a target generation matrix, and multiplies a vector composed of EC strip data remaining after data loss by an inverse matrix of the target generation matrix to EC strip data is restored.

关于对EC条带数据进行恢复的具体实现过程可以参见上述图2实施例的具体介绍,这里不再重复赘述。For a specific implementation process of recovering the EC strip data, refer to the specific description of the foregoing embodiment of FIG. 2, and details are not described herein again.

需要说明的是,由于客户端对写入的数据进行上述一系列处理的具体实现与第一存储设备对客户端发送的数据执行一系列处理的具体实现原理相同。因此,这里不再详细介绍。It should be noted that the specific implementation principle that the client performs the above-mentioned series of processing on the written data is the same as the specific implementation principle in which the first storage device performs a series of processing on the data sent by the client. Therefore, it will not be described in detail here.

步骤305:该客户端将该EC条带数据发送给该第一存储设备,以使该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。Step 305: The client sends the EC stripe data to the first storage device, so that the first storage device caches the plurality of stripe data and the check data included in the EC stripe data to the plurality of Solid state drive.

客户端对该数据进行处理后,可以将处理后得到的该EC条带数据发送给第一存储设备,在具体实现中,该客户端可以基于元数据服务器分配的固态硬盘的地址信息,向该第一存储设备发送处理后得到的EC条带数据。After the data is processed by the client, the EC strip data obtained by the processing may be sent to the first storage device. In a specific implementation, the client may use the address information of the solid state hard disk allocated by the metadata server. The first storage device sends the EC strip data obtained after the processing.

步骤306:该第一存储设备接收该客户端发送的EC条带数据,该EC条带数据包括该多个条带数据和校验数据,该校验数据用于对该多个条带数据进行校验,该多个条带数据由该客户端对数据进行虚拟化条带处理后得到,该数据为该客户端中写入的原始数据。Step 306: The first storage device receives the EC strip data sent by the client, where the EC strip data includes the plurality of strip data and check data, where the check data is used to perform the multiple strip data. Verification, the plurality of stripe data is obtained by the client performing virtualized strip processing on the data, and the data is the original data written in the client.

步骤307:该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。Step 307: The first storage device caches the plurality of stripe data and the check data included in the EC stripe data into the plurality of solid state drives.

其具体实现过程可以参见上述图2实施例中的步骤206。For the specific implementation process, refer to step 206 in the foregoing embodiment of FIG. 2.

另外,在需要说明的是,在实际实现中,第一存储设备将EC条带数据包括的多个条带数据和校验数据缓存至多个固态硬盘中后,在一些条件下,该第一存储设备将该多个固态硬盘缓存的数据存储至磁盘中。在具体实现中可以包括如下两种可能的实现方式:In addition, in the actual implementation, after the first storage device caches the plurality of stripe data and the check data included in the EC stripe data into the plurality of solid state hard disks, the first storage may be performed under some conditions. The device stores the data of the plurality of SSD caches on the disk. The following two possible implementations can be included in the specific implementation:

第一种情况:在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储。The first case: under the preset condition, the first storage device performs data storage by using a plurality of disks included in the first storage device.

在该种情况下,该第一存储设备还包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第一存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(6)-(7)几个步骤:In this case, the first storage device further includes a plurality of disks. In a specific implementation, the specific implementation of the data storage by the first storage device by using multiple disks included in the first storage device may include the following steps (6)-(7):

(6)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。(6) if the data capacity of any of the plurality of solid state drives is up to a preset capacity, or if the data of any of the plurality of SSDs is read during the preset time period If the number of times is less than the preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.

其具体实现过程可以参见上述图2实施例中的步骤(1)。For the specific implementation process, refer to step (1) in the foregoing embodiment of FIG. 2.

(7)该第一存储设备将该副本数据存储至该第一存储设备包括的多个磁盘中。(7) The first storage device stores the copy data in a plurality of disks included in the first storage device.

其具体实现过程可以参见上述图2实施例中的步骤(2)。For the specific implementation process, refer to step (2) in the foregoing embodiment of FIG. 2.

第二种情况:在预设条件下,第一存储设备通过第二存储设备包括的多个 磁盘进行数据存储。The second case: under the preset condition, the first storage device performs data storage through a plurality of disks included in the second storage device.

在该种情况下,该第一存储设备仅包括多个固态硬盘,该存储系统中还包括第二存储设备,该第二存储设备包括多个磁盘。在具体实现中,在预设条件下,第一存储设备通过第二存储设备包括的多个磁盘进行数据存储的具体实现可以包括如下(8)-(10)几个步骤:In this case, the first storage device includes only a plurality of solid state disks, and the storage system further includes a second storage device, where the second storage device includes a plurality of disks. In a specific implementation, the specific implementation of the data storage by the first storage device by using multiple disks included in the second storage device may include the following steps (8)-(10):

(8)如果该多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内该多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则该第一存储设备将该EC条带数据包括的该多个条带数据,按照该多个条带数据的数据属性信息聚合成副本,得到副本数据。(8) If the data capacity of any of the plurality of solid state drives is up to a preset capacity, or if the data of any one of the plurality of SSDs is read in the preset time period If the number of times is less than the preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to the data attribute information of the plurality of stripe data to obtain replica data.

其具体实现过程可以参见上述图2实施例中的步骤(3)。For the specific implementation process, refer to step (3) in the foregoing embodiment of FIG. 2.

(9)该第一存储设备将该副本数据发送给该第二存储设备。(9) The first storage device sends the copy data to the second storage device.

其具体实现过程可以参见上述图2实施例中的步骤(4)。For the specific implementation process, refer to step (4) in the foregoing embodiment of FIG. 2.

(10)该第二存储设备接收该第一存储设备发送的副本数据,并将所接收的副本数据存储至该第二存储设备包括的多个磁盘中。(10) The second storage device receives the copy data sent by the first storage device, and stores the received copy data into a plurality of disks included in the second storage device.

其具体实现过程可以参见上述图2实施例中的步骤(5)。For the specific implementation process, refer to step (5) in the foregoing embodiment of FIG. 2.

步骤308:该第一存储设备删除该多个固态硬盘中缓存的该多个条带数据和该校验数据。Step 308: The first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives.

其具体实现过程可以参见上述图2实施例中的步骤207。For the specific implementation process, refer to step 207 in the foregoing embodiment of FIG. 2.

在本申请实施例中,在存储系统中,由客户端对写入的数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,将该EC条带数据发送给第一存储设备,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。In the embodiment of the present application, in the storage system, after the virtualized stripe processing and the encoding process are sequentially performed on the data written by the client, the EC strip data including the plurality of stripe data and the check data is obtained. Then, the EC strip data is sent to the first storage device, and the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.

图9是根据一示例性实施例示出的一种数据存储装置的结构示意图,该数据存储装置可以由软件、硬件或者两者的结合实现。该数据存储装置部署于图1所示存储系统中的第一存储设备中,所述第一存储设备中包括多个固态硬盘,所述装置包括:FIG. 9 is a schematic structural diagram of a data storage device, which may be implemented by software, hardware, or a combination of both, according to an exemplary embodiment. The data storage device is deployed in a first storage device in the storage system shown in FIG. 1 , where the first storage device includes a plurality of solid state disks, and the device includes:

接收处理模块410,用于接收所述客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中 写入的原始数据;The receiving processing module 410 is configured to receive data sent by the client, perform virtualized strip processing on the data, and obtain a plurality of stripe data, where the data sent by the client is written in the client Raw data;

编码处理模块412,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The encoding processing module 412 is configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and verification data, The verification data is used to verify the plurality of stripe data;

第一存储模块414,用于将所述EC条带数据包括的多个条带数据和校验数据分别缓存至所述多个固态硬盘中。The first storage module 414 is configured to cache the plurality of stripe data and the verification data included in the EC stripe data into the plurality of solid state drives.

可选地,第一存储设备还包括多个磁盘,请参考图10,该装置还包括:Optionally, the first storage device further includes multiple disks. Referring to FIG. 10, the device further includes:

第一聚合模块415,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;The first aggregation module 415 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;

第二存储模块416,将所述副本数据存储至所述第一存储设备包括的多个磁盘中。The second storage module 416 stores the copy data into a plurality of disks included in the first storage device.

可选地,请参考图11,所述装置还包括:Optionally, referring to FIG. 11, the apparatus further includes:

第一删除模块418,用于删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。The first deleting module 418 is configured to delete the plurality of stripe data and the check data buffered in the plurality of solid state disks.

可选地,所述编码处理模块412用于:Optionally, the encoding processing module 412 is configured to:

基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;Generating a vector based on the plurality of stripe data, and multiplying the generated vector by a preset generation matrix to obtain a coding vector;

将所述编码向量包括的数据确定为所述EC条带数据。The data included in the coding vector is determined as the EC strip data.

可选地,请参考图12,所述装置还包括:Optionally, referring to FIG. 12, the apparatus further includes:

确定模块420,用于当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,该目标行中的预设数据与该多个条带数据组成的向量相乘后能够得到丢失的数据;a determining module 420, configured to determine, from the preset generation matrix, a target row, a preset data in the target row, and a vector consisting of the multiple stripe data when a data loss situation occurs in the plurality of solid state drives After multiplication, the lost data can be obtained;

第二删除模块421,用于将该预设生成矩阵中的目标行删除,得到目标生成矩阵;a second deleting module 421, configured to delete the target row in the preset generation matrix to obtain a target generation matrix;

恢复模块422,用于将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。The recovery module 422 is configured to multiply a vector consisting of the remaining EC strip data after data loss and an inverse matrix of the target generation matrix to recover the EC strip data.

可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,请参考图13,所述装置还包括:Optionally, the storage system further includes a second storage device, and the second storage device includes a plurality of disks. Referring to FIG. 13, the device further includes:

第二聚合模块424,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;The second aggregation module 424 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;

发送模块426,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述发送模块发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。a sending module 426, configured to send the replica data to the second storage device; the second storage device receives replica data sent by the sending module, and stores the received replica data to the second storage The device is included in multiple disks.

在本申请实施例中,在存储系统中,当第一存储设备接收到客户端发送的在该客户端中写入的数据时,对该数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。In the embodiment of the present application, in the storage system, when the first storage device receives the data written by the client and is written in the client, the data is sequentially subjected to virtualized strip processing and encoding processing, and then obtained. EC stripe data including multiple stripe data and check data. Then, the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.

图14是根据一示例性实施例示出的一种数据存储装置的结构示意图。该数据存储装置可以由软件、硬件或者两者的结合实现。该数据存储装置部署于图1所示存储系统中的客户端中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,所述装置包括:FIG. 14 is a schematic structural diagram of a data storage device according to an exemplary embodiment. The data storage device can be implemented by software, hardware, or a combination of both. The data storage device is deployed in a client in the storage system shown in FIG. 1. The storage system further includes a first storage device, the first storage device includes a plurality of solid state disks, and the device includes:

条带处理模块510,用于对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;The stripe processing module 510 is configured to perform virtualized stripe processing on the data to obtain a plurality of stripe data, where the data is original data written in the client;

编码处理模块530,用于通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The encoding processing module 530 is configured to perform encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data. The verification data is used to verify the plurality of stripe data;

发送模块540,用于将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。The sending module 540 is configured to send the EC strip data to the first storage device, so that the first storage device uses the plurality of strip data and the school included in the EC strip data. The test data is separately cached into the plurality of solid state drives.

可选地,所述编码处理模块530用于:Optionally, the encoding processing module 530 is configured to:

基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;Generating a vector based on the plurality of stripe data, and multiplying the generated vector by a preset generation matrix to obtain a coding vector;

将所述编码向量包括的数据确定为所述EC条带数据。The data included in the coding vector is determined as the EC strip data.

在本申请实施例中,在存储系统中,由客户端对写入的数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,将该EC条带数据发送给第一存储设备,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至该多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。In the embodiment of the present application, in the storage system, after the virtualized stripe processing and the encoding process are sequentially performed on the data written by the client, the EC strip data including the plurality of stripe data and the check data is obtained. Then, the EC strip data is sent to the first storage device, and the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.

图15是根据一示例性实施例示出的一种数据存储装置的结构示意图。该数据存储装置可以由软件、硬件或者两者的结合实现。该数据存储装置部署于图1所示存储系统中的第一存储设备中,所述存储系统还包括客户端,所述第一存储设备中包括多个固态硬盘,所述装置包括:FIG. 15 is a schematic structural diagram of a data storage device according to an exemplary embodiment. The data storage device can be implemented by software, hardware, or a combination of both. The data storage device is deployed in the first storage device in the storage system shown in FIG. 1. The storage system further includes a client, where the first storage device includes a plurality of solid state disks, and the device includes:

接收模块610,用于接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;The receiving module 610 is configured to receive EC strip data sent by the client, where the EC strip data includes the plurality of strip data and check data, where the check data is used to the multiple strips Carrying data for verification, the plurality of stripe data being obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client;

第一存储模块620,用于将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。The first storage module 620 is configured to cache the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives.

可选地,该第一存储设备还包括多个磁盘,请参考图16,所述装置还包括;Optionally, the first storage device further includes a plurality of disks. Referring to FIG. 16, the device further includes:

第一聚合模块622,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;The first aggregation module 622 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;

第二存储模块624,用于将所述副本数据存储至所述第一存储设备包括的多个磁盘中。The second storage module 624 is configured to store the replica data into a plurality of disks included in the first storage device.

可选地,请参考图17,所述装置还包括:Optionally, referring to FIG. 17, the apparatus further includes:

第一删除模块630,用于删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。The first deleting module 630 is configured to delete the plurality of stripe data and the check data buffered in the plurality of solid state disks.

可选地,请参考图18,所述装置还包括:Optionally, referring to FIG. 18, the apparatus further includes:

确定模块640,用于当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组 成的向量相乘后能够得到丢失的数据;a determining module 640, configured to determine a target row from the preset generation matrix when a data loss situation occurs in the plurality of solid state disks, where preset data in the target row is combined with the plurality of stripe data The vector is multiplied to get the missing data;

第二删除模块642,用于将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;a second deleting module 642, configured to delete the target row in the preset generation matrix to obtain a target generation matrix;

恢复模块650,用于将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。The recovery module 650 is configured to multiply a vector composed of EC strip data remaining after data loss and an inverse matrix of the target generation matrix to recover the EC strip data.

可选地,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,请参考图19,所述装置还包括:Optionally, the storage system further includes a second storage device, and the second storage device includes a plurality of disks. Referring to FIG. 19, the device further includes:

第二聚合模块660,用于如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;The second aggregation module 660 is configured to: if the data capacity of any one of the plurality of solid state disks is up to a preset capacity, or if any of the plurality of SSDs is cached within a preset time period The number of times the data is read is less than the preset number of times, and the plurality of stripe data included in the EC stripe data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data;

发送模块670,用于将所述副本数据发送给所述第二存储设备;所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。a sending module 670, configured to send the copy data to the second storage device; the second storage device receives the copy data sent by the first storage device, and stores the received copy data to the first Two storage devices are included in multiple disks.

在本申请实施例中,在存储系统中,由客户端对写入的数据依次进行虚拟化条带处理以及编码处理后,得到包括多个条带数据和校验数据的EC条带数据。之后,将该EC条带数据发送给第一存储设备,该第一存储设备将该EC条带数据包括的多个条带数据和校验数据分别缓存至多个固态硬盘中。如此,当数据丢失时可以通过EC算法对EC条带数据进行恢复,从而保证了数据存储的完整性。In the embodiment of the present application, in the storage system, after the virtualized stripe processing and the encoding process are sequentially performed on the data written by the client, the EC strip data including the plurality of stripe data and the check data is obtained. Then, the EC strip data is sent to the first storage device, and the first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives. In this way, when the data is lost, the EC stripe data can be recovered by the EC algorithm, thereby ensuring the integrity of the data storage.

需要说明的是:上述实施例提供的数据存储装置在实现数据存储时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的数据存储装置与数据存储方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。It should be noted that, when the data storage device provided by the foregoing embodiment implements data storage, only the division of each functional module described above is illustrated. In an actual application, the function distribution may be completed by different functional modules as needed. The internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the data storage device and the data storage method embodiment provided by the foregoing embodiments are in the same concept, and the specific implementation process is described in detail in the method embodiment, and details are not described herein again.

图20是根据一示例性实施例示出的一种第一存储设备的结构示意图,主要包括有发送器701、接收器702、存储器704、处理器703以及通信总线705。 本领域技术人员可以理解,图20中示出的第一存储设备700的结构并不构成对智能照明设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本申请实施例对此不做限定。FIG. 20 is a schematic structural diagram of a first storage device, which mainly includes a transmitter 701, a receiver 702, a memory 704, a processor 703, and a communication bus 705, according to an exemplary embodiment. It will be understood by those skilled in the art that the structure of the first storage device 700 shown in FIG. 20 does not constitute a limitation on the intelligent lighting device, may include more or less components than those illustrated, or combine some components, or The components of the present application are not limited in this embodiment.

其中,该发送器701可以用于向后续处理模块发送数据,如帧数据等。The transmitter 701 can be configured to send data, such as frame data, to the subsequent processing module.

该存储器704可以用于存储解析的有效数据,并且,该存储器704也可以用于存储用于执行上述数据处理方法的一个或多个运行程序和/或模块。The memory 704 can be used to store parsed valid data, and the memory 704 can also be used to store one or more running programs and/or modules for performing the data processing methods described above.

其中,该处理器703可以是一个通用中央处理器(Central Processing Unit,以下简称CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,以下简称ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。该处理器703可以通过运行或执行存储在存储器704内的软件程序和/或模块,以及调用存储在存储器704内的数据,实现上文图2或图8实施例所提供的方法。The processor 703 may be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more An integrated circuit that controls the execution of the program of the present application. The processor 703 can implement the methods provided by the embodiment of FIG. 2 or FIG. 8 above by running or executing software programs and/or modules stored in the memory 704, as well as invoking data stored in the memory 704.

其中,该通信总线705可包括一通路,在上述处理器703和存储器704之间传送信息。The communication bus 705 can include a path for transferring information between the processor 703 and the memory 704.

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如,包括指令的存储器,上述指令可由第一存储设备的处理器执行以完成上述数据存储方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。In an exemplary embodiment, there is also provided a non-transitory computer readable storage medium comprising instructions, for example, a memory comprising instructions executable by a processor of a first storage device to perform the data storage method described above. For example, the non-transitory computer readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device.

图21是根据一示例性实施例示出的一种客户端的结构示意图,主要包括有发送器801、接收器802、存储器804、处理器803以及通信总线805。本领域技术人员可以理解,图21中示出的客户端800的结构并不构成对智能照明设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,本申请实施例对此不做限定。FIG. 21 is a schematic structural diagram of a client, which mainly includes a transmitter 801, a receiver 802, a memory 804, a processor 803, and a communication bus 805, according to an exemplary embodiment. It will be understood by those skilled in the art that the structure of the client 800 shown in FIG. 21 does not constitute a limitation on the intelligent lighting device, may include more or less components than those illustrated, or combine some components, or different. The component arrangement is not limited in this embodiment of the present application.

其中,该发送器801可以用于向后续处理模块发送数据,如帧数据等。The transmitter 801 can be used to send data, such as frame data, to the subsequent processing module.

该存储器804可以用于存储解析的有效数据,并且,该存储器804也可以用于存储用于执行上述数据处理方法的一个或多个运行程序和/或模块。The memory 804 can be used to store parsed valid data, and the memory 804 can also be used to store one or more running programs and/or modules for performing the data processing methods described above.

其中,该处理器803可以是一个通用中央处理器(Central Processing Unit,以下简称CPU),微处理器,特定应用集成电路(Application-Specific Integrated Circuit,以下简称ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。该处理器803可以通过运行或执行存储在存储器804内的软件程序和/ 或模块,以及调用存储在存储器804内的数据,实现上文图2或图8实施例所提供的方法。The processor 803 can be a general-purpose central processing unit (CPU), a microprocessor, an application-specific integrated circuit (ASIC), or one or more An integrated circuit that controls the execution of the program of the present application. The processor 803 can implement the method provided by the embodiment of FIG. 2 or FIG. 8 above by running or executing software programs and/or modules stored in the memory 804, as well as invoking data stored in the memory 804.

其中,该通信总线805可包括一通路,在上述处理器803和存储器804之间传送信息。The communication bus 805 can include a path for transferring information between the processor 803 and the memory 804.

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如,包括指令的存储器,上述指令可由客户端的处理器执行以完成上述数据存储方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。In an exemplary embodiment, there is also provided a non-transitory computer readable storage medium comprising instructions, for example, a memory comprising instructions executable by a processor of a client to perform the data storage method described above. For example, the non-transitory computer readable storage medium can be a ROM, a random access memory (RAM), a CD-ROM, a magnetic tape, a floppy disk, and an optical data storage device.

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。A person skilled in the art may understand that all or part of the steps of implementing the above embodiments may be completed by hardware, or may be instructed by a program to execute related hardware, and the program may be stored in a computer readable storage medium. The storage medium mentioned may be a read only memory, a magnetic disk or an optical disk or the like.

以上所述仅为本申请实施例的较佳实施例,并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。The above are only the preferred embodiments of the embodiments of the present application, and are not intended to limit the embodiments of the present application. Any modifications, equivalent replacements, improvements, etc., should be made within the spirit and principles of the embodiments of the present application. It is included in the scope of protection of the embodiments of the present application.

Claims (30)

一种数据存储方法,应用于存储系统的第一存储设备中,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:A data storage method is applied to a first storage device of a storage system, where the first storage device includes a plurality of solid state disks, and the method includes: 所述第一存储设备接收客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条带数据,所述客户端发送的数据为所述客户端中写入的原始数据;Receiving, by the first storage device, data sent by the client, and performing virtualized strip processing on the data to obtain a plurality of stripe data, where the data sent by the client is the original data written in the client ; 所述第一存储设备通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The first storage device performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, The verification data is used to verify the plurality of stripe data; 所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。The first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives, respectively. 如权利要求1所述的方法,其特征在于,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:The method of claim 1 wherein said first storage device further comprises a plurality of disks, said first storage device said said plurality of stripe data and said said EC strip data After the verification data is separately cached in the plurality of solid state drives, the method further includes: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to data attribute information of the plurality of stripe data to obtain replica data; 所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。The first storage device stores the copy data into a plurality of disks included in the first storage device. 如权利要求2所述的方法,其特征在于,所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:The method of claim 2, after the storing, by the first storage device, the copy data to the plurality of disks included in the first storage device, further comprising: 所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。The first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives. 如权利要求1所述的方法,其特征在于,所述第一存储设备通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:The method according to claim 1, wherein the first storage device performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC strip data, including: 所述第一存储设备基于所述多个条带数据生成向量,并将生成的向量与预 设生成矩阵相乘,得到编码向量;The first storage device generates a vector based on the plurality of stripe data, and multiplies the generated vector by a preset generation matrix to obtain an encoding vector; 所述第一存储设备将所述编码向量包括的数据确定为所述EC条带数据。The first storage device determines data included in the encoding vector as the EC stripe data. 如权利要求4所述的方法,其特征在于,所述方法还包括:The method of claim 4, wherein the method further comprises: 当所述多个固态硬盘中出现数据丢失情况时,所述第一存储设备从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;When a data loss situation occurs in the plurality of solid state disks, the first storage device determines a target row from the preset generation matrix, and the preset data in the target row is composed of the plurality of stripe data The vector is multiplied to get the missing data; 所述第一存储设备将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;The first storage device deletes the target row in the preset generation matrix to obtain a target generation matrix. 所述第一存储设备将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。The first storage device multiplies a vector composed of EC strip data remaining after data loss with an inverse matrix of the target generation matrix to recover the EC strip data. 如权利要求1所述的方法,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:The method of claim 1, wherein the storage system further comprises a second storage device, and the second storage device comprises a plurality of disks, the first storage device to the EC strip data After the plurality of stripe data and the check data are respectively cached in the plurality of solid state drives, the method further includes: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to data attribute information of the plurality of stripe data to obtain replica data; 所述第一存储设备将所述副本数据发送给所述第二存储设备,以由所述第二存储设备将所述副本数据存储至所述第二存储设备包括的多个磁盘中。The first storage device sends the replica data to the second storage device, to store the replica data by the second storage device into a plurality of disks included in the second storage device. 一种数据存储方法,应用于存储系统的客户端中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:A data storage method is applied to a client of a storage system, the storage system further includes a first storage device, and the first storage device includes a plurality of solid state disks, wherein the method includes: 所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;The client performs virtualized strip processing on the data to obtain a plurality of stripe data, where the data is original data written in the client; 所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, the school The test data is used to verify the plurality of stripe data; 所述客户端将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。Transmitting, by the client, the EC strip data to the first storage device, so that the first storage device uses the plurality of stripe data and the check data included in the EC strip data Cache to the plurality of solid state drives respectively. 如权利要求7所述的方法,其特征在于,所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:The method according to claim 7, wherein the client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC strip data, including: 所述客户端基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;The client generates a vector based on the plurality of stripe data, and multiplies the generated vector by a preset generation matrix to obtain a coding vector; 所述客户端将所述编码向量包括的数据确定为所述EC条带数据。The client determines data included in the coding vector as the EC strip data. 一种数据存储方法,应用于存储系统的第一存储设备中,所述存储系统还包括客户端,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:A data storage method is applied to a first storage device of a storage system, the storage system further includes a client, and the first storage device includes a plurality of solid state disks, wherein the method includes: 所述第一存储设备接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;Receiving, by the first storage device, the EC strip data sent by the client, where the EC strip data includes the plurality of stripe data and check data, where the check data is used for the multiple strips Carrying data for verification, the plurality of stripe data being obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client; 所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。The first storage device caches the plurality of stripe data and the check data included in the EC strip data to the plurality of solid state drives, respectively. 如权利要求9所述的方法,其特征在于,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:The method of claim 9, wherein the first storage device further comprises a plurality of disks, the first storage device to the plurality of stripe data included in the EC strip data and the After the verification data is separately cached in the plurality of solid state drives, the method further includes: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to data attribute information of the plurality of stripe data to obtain replica data; 所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。The first storage device stores the copy data into a plurality of disks included in the first storage device. 如权利要求10所述的方法,其特征在于,所述第一存储设备将所述副 本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:The method of claim 10, after the storing, by the first storage device, the copy data to the plurality of disks included in the first storage device, further comprising: 所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。The first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives. 如权利要求9所述的方法,其特征在于,所述方法还包括:The method of claim 9 wherein the method further comprises: 当所述多个固态硬盘中出现数据丢失情况时,所述第一存储设备从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;When a data loss situation occurs in the plurality of solid state disks, the first storage device determines a target row from the preset generation matrix, and the preset data in the target row is composed of the plurality of stripe data The vector is multiplied to get the missing data; 所述第一存储设备将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;The first storage device deletes the target row in the preset generation matrix to obtain a target generation matrix. 所述第一存储设备将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。The first storage device multiplies a vector composed of EC strip data remaining after data loss with an inverse matrix of the target generation matrix to recover the EC strip data. 如权利要求9所述的方法,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:The method of claim 9, wherein the storage system further comprises a second storage device, and the second storage device comprises a plurality of disks, the first storage device to the EC strip data After the plurality of stripe data and the check data are respectively cached in the plurality of solid state drives, the method further includes: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to data attribute information of the plurality of stripe data to obtain replica data; 所述第一存储设备将所述副本数据发送给所述第二存储设备,以由所述第二存储设备将所述副本数据存储至所述第二存储设备包括的多个磁盘中。The first storage device sends the replica data to the second storage device, to store the replica data by the second storage device into a plurality of disks included in the second storage device. 一种第一存储设备,部署于存储系统中,所述第一存储设备中包括多个固态硬盘,其特征在于,所述第一存储设备包括:A first storage device is deployed in a storage system, where the first storage device includes a plurality of solid state disks, and the first storage device includes: 一个或多个处理器;和One or more processors; and 存储器;Memory 所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或多个处理器执行,所述一个或多个程序包含用于进行以下操作的指令:The memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for: 接收客户端发送的数据,并对所述数据进行虚拟化条带处理,得到多个条 带数据,所述客户端发送的数据为所述客户端中写入的原始数据;Receiving data sent by the client, and performing virtualized strip processing on the data to obtain a plurality of stripe data, where the data sent by the client is the original data written in the client; 通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;Encoding the plurality of stripe data by using a codec EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data is used for Performing verification on the plurality of stripe data; 将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。And storing the plurality of stripe data and the check data included in the EC strip data into the plurality of solid state drives respectively. 如权利要求14所述的第一存储设备,其特征在于,所述第一存储设备还包括多个磁盘,所述一个或多个程序还包含用于进行以下操作的指令:The first storage device of claim 14, wherein the first storage device further comprises a plurality of disks, the one or more programs further comprising instructions for: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the plurality of stripe data included in the EC strip data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data; 将所述副本数据存储至所述第一存储设备包括的多个磁盘中。The copy data is stored in a plurality of disks included in the first storage device. 如权利要求15所述的第一存储设备,其特征在于,所述一个或多个程序还包含用于进行以下操作的指令:The first storage device of claim 15 wherein said one or more programs further comprise instructions for: 删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。And deleting the plurality of stripe data and the check data buffered in the plurality of solid state drives. 如权利要求14所述的第一存储设备,其特征在于,所述一个或多个程序还包含用于进行以下操作的指令:The first storage device of claim 14, wherein the one or more programs further comprise instructions for: 基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;Generating a vector based on the plurality of stripe data, and multiplying the generated vector by a preset generation matrix to obtain a coding vector; 将所述编码向量包括的数据确定为所述EC条带数据。The data included in the coding vector is determined as the EC strip data. 如权利要求17所述的第一存储设备,其特征在于,所述一个或多个程序还包含用于进行以下操作的指令:The first storage device of claim 17 wherein said one or more programs further comprise instructions for: 当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;Determining a target row from the preset generation matrix when a data loss condition occurs in the plurality of solid state disks, wherein the preset data in the target row is multiplied by a vector composed of the plurality of stripe data Get lost data; 将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;Deleting the target row in the preset generation matrix to obtain a target generation matrix; 将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。A vector consisting of the remaining EC strip data after data loss is multiplied by an inverse matrix of the target generation matrix to recover the EC strip data. 如权利要求14所述的第一存储设备,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述一个或多个程序还包含用于进行以下操作的指令:The first storage device according to claim 14, wherein the storage system further comprises a second storage device, and the second storage device comprises a plurality of disks, and the one or more programs further comprise Instructions for doing the following: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the plurality of stripe data included in the EC strip data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data; 将所述副本数据发送给所述第二存储设备,以由所述第二存储设备将所述副本数据存储至所述第二存储设备包括的多个磁盘中。Transmitting the copy data to the second storage device to store the copy data by the second storage device to a plurality of disks included in the second storage device. 一种客户端,部署于存储系统中,所述存储系统还包括第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述客户端包括:A client is deployed in a storage system, and the storage system further includes a first storage device, where the first storage device includes a plurality of solid state disks, wherein the client includes: 一个或多个处理器;和One or more processors; and 存储器;Memory 所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或多个处理器执行,所述一个或多个程序包含用于进行以下操作的指令:The memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for: 对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;Performing virtualized stripe processing on the data to obtain a plurality of stripe data, the data being original data written in the client; 通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;Encoding the plurality of stripe data by using a codec EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, and the check data is used for Performing verification on the plurality of stripe data; 将所述EC条带数据发送给所述第一存储设备,以使所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。Transmitting the EC stripe data to the first storage device, so that the first storage device caches the plurality of stripe data and the check data included in the EC stripe data respectively Said in multiple solid state drives. 如权利要求20所述的客户端,其特征在于,所述一个或多个程序还包含用于进行以下操作的指令:The client of claim 20 wherein said one or more programs further comprise instructions for: 基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘, 得到编码向量;Generating a vector based on the plurality of stripe data, and multiplying the generated vector by a preset generation matrix to obtain an encoding vector; 将所述编码向量包括的数据确定为所述EC条带数据。The data included in the coding vector is determined as the EC strip data. 一种第一存储设备,部署于存储系统中,所述存储系统还包括客户端,所述第一存储设备中包括多个固态硬盘,其特征在于,所述第一存储设备包括:A first storage device is deployed in the storage system, the storage system further includes a client, and the first storage device includes a plurality of solid state disks, wherein the first storage device includes: 一个或多个处理器;和One or more processors; and 存储器;Memory 所述存储器存储有一个或多个程序,所述一个或多个程序被配置成由所述一个或多个处理器执行,所述一个或多个程序包含用于进行以下操作的指令:The memory stores one or more programs, the one or more programs being configured to be executed by the one or more processors, the one or more programs including instructions for: 接收所述客户端发送的EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验,所述多个条带数据由所述客户端对所述数据进行虚拟化条带处理后得到,所述数据为所述客户端中写入的原始数据;Receiving EC strip data sent by the client, the EC strip data includes the plurality of stripe data and check data, and the check data is used to verify the plurality of stripe data, The plurality of stripe data is obtained by the client performing virtualized strip processing on the data, where the data is original data written in the client; 将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。And storing the plurality of stripe data and the check data included in the EC strip data into the plurality of solid state drives respectively. 如权利要求22所述的第一存储设备,其特征在于,所述第一存储设备还包括多个磁盘,所述一个或多个程序还包含用于进行以下操作的指令:The first storage device of claim 22, wherein the first storage device further comprises a plurality of disks, the one or more programs further comprising instructions for: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the plurality of stripe data included in the EC strip data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data; 将所述副本数据存储至所述第一存储设备包括的多个磁盘中。The copy data is stored in a plurality of disks included in the first storage device. 如权利要求22所述的第一存储设备,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述一个或多个程序还包含用于进行以下操作的指令:The first storage device of claim 22, wherein the storage system further comprises a second storage device, and the second storage device comprises a plurality of disks, the one or more programs further comprising Instructions for doing the following: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the plurality of stripe data included in the EC strip data is aggregated into a copy according to the data attribute information of the plurality of stripe data to obtain replica data; 将所述副本数据发送给所述第二存储设备,以由所述第二存储设备将所述副本数据存储至所述第二存储设备包括的多个磁盘中。Transmitting the copy data to the second storage device to store the copy data by the second storage device to a plurality of disks included in the second storage device. 一种存储系统,所述存储系统包括客户端和第一存储设备,所述第一存储设备中包括多个固态硬盘,其特征在于,所述方法包括:A storage system includes a client and a first storage device, and the first storage device includes a plurality of solid state disks, wherein the method includes: 所述客户端对数据进行虚拟化条带处理,得到多个条带数据,所述数据为所述客户端中写入的原始数据;The client performs virtualized strip processing on the data to obtain a plurality of stripe data, where the data is original data written in the client; 所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,所述EC条带数据包括所述多个条带数据和校验数据,所述校验数据用于对所述多个条带数据进行校验;The client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC stripe data, where the EC stripe data includes the plurality of stripe data and check data, the school The test data is used to verify the plurality of stripe data; 所述客户端将所述EC条带数据发送给所述第一存储设备;Sending, by the client, the EC strip data to the first storage device; 所述第一存储设备接收所述客户端发送的EC条带数据,并将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中。Receiving, by the first storage device, the EC strip data sent by the client, and buffering the plurality of strip data and the check data included in the EC strip data to the plurality of solid state drives respectively in. 如权利要求25所述的存储系统,其特征在于,所述客户端通过删纠码EC算法对所述多个条带数据进行编码处理,得到EC条带数据,包括:The storage system according to claim 25, wherein the client performs encoding processing on the plurality of stripe data by using an erasure correction code EC algorithm to obtain EC strip data, including: 所述客户端基于所述多个条带数据生成向量,并将生成的向量与预设生成矩阵相乘,得到编码向量;The client generates a vector based on the plurality of stripe data, and multiplies the generated vector by a preset generation matrix to obtain a coding vector; 所述客户端将所述编码向量包括的数据确定为所述EC条带数据。The client determines data included in the coding vector as the EC strip data. 如权利要求25所述的存储系统,其特征在于,所述第一存储设备还包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:The storage system according to claim 25, wherein said first storage device further comprises a plurality of disks, said first storage device said said plurality of stripe data and said said EC strip data After the verification data is separately cached in the plurality of solid state drives, the method further includes: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to data attribute information of the plurality of stripe data to obtain replica data; 所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中。The first storage device stores the copy data into a plurality of disks included in the first storage device. 如权利要求27所述的存储系统,其特征在于,所述第一存储设备将所述副本数据存储至所述第一存储设备包括的多个磁盘中之后,还包括:The storage system according to claim 27, wherein after the storing, by the first storage device, the copy data to the plurality of disks included in the first storage device, the method further includes: 所述第一存储设备删除所述多个固态硬盘中缓存的所述多个条带数据和所述校验数据。The first storage device deletes the plurality of stripe data and the check data buffered in the plurality of solid state drives. 如权利要求25所述的存储系统,其特征在于,所述第一存储设备还用于:The storage system of claim 25, wherein the first storage device is further configured to: 当所述多个固态硬盘中出现数据丢失情况时,从所述预设生成矩阵中确定目标行,所述目标行中的预设数据与所述多个条带数据组成的向量相乘后能够得到丢失的数据;Determining a target row from the preset generation matrix when a data loss condition occurs in the plurality of solid state disks, wherein the preset data in the target row is multiplied by a vector composed of the plurality of stripe data Get lost data; 将所述预设生成矩阵中的目标行删除,得到目标生成矩阵;Deleting the target row in the preset generation matrix to obtain a target generation matrix; 将数据丢失后剩下的EC条带数据组成的向量与所述目标生成矩阵的逆矩阵相乘,以对所述EC条带数据进行恢复。A vector consisting of the remaining EC strip data after data loss is multiplied by an inverse matrix of the target generation matrix to recover the EC strip data. 如权利要求25所述的存储系统,其特征在于,所述存储系统还包括第二存储设备,且所述第二存储设备中包括多个磁盘,所述第一存储设备将所述EC条带数据包括的所述多个条带数据和所述校验数据分别缓存至所述多个固态硬盘中之后,还包括:The storage system according to claim 25, wherein said storage system further comprises a second storage device, and said second storage device comprises a plurality of disks, said first storage device said said EC strip After the plurality of stripe data and the check data included in the data are respectively cached in the plurality of solid state drives, the method further includes: 如果所述多个固态硬盘中任一固态硬盘缓存的数据容量达到预设容量,或者,如果在预设时间段内所述多个固态硬盘中任一固态硬盘缓存的数据被读取的次数小于预设次数,则所述第一存储设备将所述EC条带数据包括的所述多个条带数据,按照所述多个条带数据的数据属性信息聚合成副本,得到副本数据;If the data capacity of any one of the plurality of SSDs reaches a preset capacity, or if the data of any one of the plurality of SSDs is read less than the preset time period The preset number of times, the first storage device aggregates the plurality of stripe data included in the EC stripe data into a copy according to data attribute information of the plurality of stripe data to obtain replica data; 所述第一存储设备将所述副本数据发送给所述第二存储设备;Transmitting, by the first storage device, the replica data to the second storage device; 所述第二存储设备接收所述第一存储设备发送的副本数据,并将所接收的副本数据存储至所述第二存储设备包括的多个磁盘中。The second storage device receives the copy data sent by the first storage device, and stores the received copy data into a plurality of disks included in the second storage device.
PCT/CN2018/093419 2017-06-29 2018-06-28 Data storage method, storage device, client and system Ceased WO2019001521A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710515890.3 2017-06-29
CN201710515890.3A CN109213420A (en) 2017-06-29 2017-06-29 Date storage method, apparatus and system

Publications (1)

Publication Number Publication Date
WO2019001521A1 true WO2019001521A1 (en) 2019-01-03

Family

ID=64740405

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2018/093419 Ceased WO2019001521A1 (en) 2017-06-29 2018-06-28 Data storage method, storage device, client and system

Country Status (2)

Country Link
CN (1) CN109213420A (en)
WO (1) WO2019001521A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110058820B (en) * 2019-04-23 2022-05-17 武汉汇迪森信息技术有限公司 Data safe writing, deleting and reading method and device based on solid-state disk array
CN112015695A (en) * 2019-05-31 2020-12-01 深圳市茁壮网络股份有限公司 A file caching method, system and caching system
CN111090540B (en) 2019-06-24 2022-06-14 华为技术有限公司 Data processing method and device based on erasure code
CN110347640B (en) * 2019-06-26 2022-02-18 北京三快在线科技有限公司 File storage method and device, storage medium and electronic equipment
CN110515542B (en) * 2019-07-30 2021-08-31 华为技术有限公司 Data storage method, device, computing device, storage system and storage medium
CN113544635B (en) 2019-09-09 2025-03-14 华为云计算技术有限公司 Data processing method and device in storage system and storage system
CN112650441B (en) * 2019-10-11 2022-11-04 杭州海康威视数字技术股份有限公司 Stripe cache allocation method and device, electronic equipment and storage medium
CN111061357B (en) * 2019-12-13 2021-09-03 北京奇艺世纪科技有限公司 Energy saving method and device, electronic equipment and storage medium
CN111399766B (en) * 2020-01-08 2021-10-22 华为技术有限公司 Data storage method, data reading method, device and system in storage system
CN111610936B (en) * 2020-05-25 2023-04-14 广州市百果园信息技术有限公司 Object storage platform, object aggregation method and device and server
CN111880963B (en) * 2020-07-29 2022-06-10 北京浪潮数据技术有限公司 Data reconstruction method, device, equipment and storage medium
CN115543871B (en) * 2022-11-29 2023-03-10 苏州浪潮智能科技有限公司 Data storage method and related equipment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932953A (en) * 2015-06-04 2015-09-23 华为技术有限公司 A data distribution method, data storage method, related device and system
CN105095421A (en) * 2015-07-14 2015-11-25 南京国电南自美卓控制系统有限公司 Distributed storage method for real-time database

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102637147A (en) * 2011-11-14 2012-08-15 天津神舟通用数据技术有限公司 Storage system using solid state disk as computer write cache and corresponding management scheduling method
CN102364474B (en) * 2011-11-17 2014-08-20 中国科学院计算技术研究所 Metadata storage system for cluster file system and metadata management method
CN102521138B (en) * 2011-11-28 2015-11-25 华为技术有限公司 data migration triggering method and device
CN103714014B (en) * 2013-11-18 2016-12-07 华为技术有限公司 Process data cached method and device
CN104951245B (en) * 2014-03-31 2019-05-31 伊姆西公司 Method and apparatus for dynamic memory layering
CN106657356A (en) * 2016-12-29 2017-05-10 郑州云海信息技术有限公司 Data writing method and device for cloud storage system, and cloud storage system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104932953A (en) * 2015-06-04 2015-09-23 华为技术有限公司 A data distribution method, data storage method, related device and system
CN105095421A (en) * 2015-07-14 2015-11-25 南京国电南自美卓控制系统有限公司 Distributed storage method for real-time database

Also Published As

Publication number Publication date
CN109213420A (en) 2019-01-15

Similar Documents

Publication Publication Date Title
WO2019001521A1 (en) Data storage method, storage device, client and system
US11327799B2 (en) Dynamic allocation of worker nodes for distributed replication
US10585746B2 (en) Tracking status and restarting distributed replication
US10761765B2 (en) Distributed object replication architecture
US10324843B1 (en) System and method for cache management
US20190245918A1 (en) Distributed replication of an object
CN103765373B (en) Data storage method, data storage device and storage device
US20110055471A1 (en) Apparatus, system, and method for improved data deduplication
CN108733311B (en) Method and apparatus for managing storage system
WO2019000950A1 (en) Fragment management method and fragment management apparatus
CN104520802B (en) Data sending method, data receiving method and storage device
US8572338B1 (en) Systems and methods for creating space-saving snapshots
WO2019080370A1 (en) Data reading and writing method and apparatus, and storage server
US11347395B2 (en) Cache management system and method
CN107798063A (en) Snapshot processing method and snapshot processing device
EP4170499A1 (en) Data storage method, storage system, storage device, and storage medium
WO2023197937A1 (en) Data processing method and apparatus, storage medium, and computer program product
US10545825B2 (en) Fault-tolerant enterprise object storage system for small objects
CN119739348A (en) Data storage method, device, equipment and storage medium
US11275518B2 (en) System and method for implementing heterogeneous media types with raid
CN105068760A (en) Data storage method, data storage apparatus and storage device
US11645333B1 (en) Garbage collection integrated with physical file verification
US12056373B1 (en) Data tiering system and method
US20210034255A1 (en) System and method for sharing spare storage capacity between a log structured file system and raid
US8281096B1 (en) Systems and methods for creating snapshots

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: 18823704

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: 18823704

Country of ref document: EP

Kind code of ref document: A1