WO2020034729A1 - Data processing method, related device, and computer storage medium - Google Patents

Data processing method, related device, and computer storage medium Download PDF

Info

Publication number
WO2020034729A1
WO2020034729A1 PCT/CN2019/089582 CN2019089582W WO2020034729A1 WO 2020034729 A1 WO2020034729 A1 WO 2020034729A1 CN 2019089582 W CN2019089582 W CN 2019089582W WO 2020034729 A1 WO2020034729 A1 WO 2020034729A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
read
written
information
write
Prior art date
Application number
PCT/CN2019/089582
Other languages
French (fr)
Chinese (zh)
Inventor
饶蓉
魏明昌
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2020034729A1 publication Critical patent/WO2020034729A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers

Definitions

  • the present invention relates to the field of storage technology, and in particular, to a data processing method, a related device, and a computer storage medium.
  • the embodiment of the invention discloses a data processing method, related equipment and a computer storage medium, which reduces the loss of disk performance and the waste of storage resources.
  • an embodiment of the present invention provides a data processing method.
  • the method includes: an object storage device receives a data read IO request sent by a host, the data read IO request includes a data integrity field DIF, and the DIF bearer
  • the attribute information of the data to be read includes, for example, the size of the data to be read, the read granularity of the data to be read, and the read information of the address to be read corresponding to the data to be read.
  • the object storage device may process the data to be read according to the attribute information of the data to be read.
  • the attribute information of the data to be read includes a read granularity of the data to be read, and the read granularity is used to indicate a size of the pre-read data including the data to be read. Accordingly, if the size of the read-ahead data is greater than or equal to the first threshold value, the object storage device may read the read-ahead data including the data to be read, and send the read-ahead data to the client to cache it Memory on the client. It is convenient for the host to read the corresponding data to be read directly from the client's cache the next time the host sends the same data read IO request to save data reading time and improve data processing efficiency.
  • the object storage device may directly read the data to be read and send the data to be read to the host.
  • the attribute information of the data to be read includes the read information of the data to be read corresponding to the address to be read.
  • the read information may include, but is not limited to, a read frequency or a read type.
  • the read information is used to indicate how often data is read from the address to be read in a unit time. Accordingly, when the read information is the first read information, the object storage device writes the data to be read into a non-volatile cache of the object storage device. When the read information is the second read information, the object storage device writes the data to be read to a non-volatile cache of the object storage device, and sets an expiration time in the non-volatile cache to clear the non-volatile memory. The volatile cache stores data that exceeds the expiration time.
  • the frequency indicated by the first read information is greater than the frequency indicated by the second read information.
  • the attribute information of the data to be read includes the read information of the data to be read corresponding to the address to be read.
  • the read information is used to indicate how often data is read from the address to be read in a unit time.
  • the frequency indicated by the read information is greater than or equal to the second threshold, the data to be read is sent to the client for caching in the client's memory. It is convenient to directly read the data to be read from the memory of the client next time, thereby improving the data reading efficiency.
  • the frequency indicated by the read information is less than the second threshold, the data to be read is sent to the client, and the read data is cached in the hard disk of the client.
  • an embodiment of the present invention provides a data processing method.
  • the method includes: the object storage device receives a data write IO request forwarded by a client, and the data write IO request includes a data integrity field DIF, and the DIF It carries attribute information of the data to be written, such as the size of the data to be written, the granularity of the data to be written, and the write information of the address to be written corresponding to the data to be written. Accordingly, the object storage device processes the data to be written according to the attribute information of the data to be written.
  • the attribute information of the data to be written can be reasonably used to perform storage management on the data to be written, so as to solve problems such as disk performance loss and waste of storage resources in the existing distributed storage system.
  • the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written, such as a write frequency or a write type.
  • the write information is used to indicate how often data is written to the address to be written in a unit time. Accordingly, when the write information is the first write information, the object storage device may store the data to be written into a non-volatile cache of the object storage device. When the write information is the second write information, the object storage device may store the data to be written into a hard disk of the object storage device.
  • the frequency indicated by the first write information is greater than the frequency indicated by the second write information.
  • the read-write rate of the non-volatile cache is greater than the read-write rate of the hard disk.
  • the data to be written can be stored in the corresponding cache or hard disk according to the attribute characteristics of the data to be written, which facilitates improving the efficiency of data processing.
  • the attribute information of the data to be written includes a writing granularity of the data to be written, and the writing granularity is used to indicate a storage granularity used when storing the data to be written.
  • the client After the client receives the data write IO request sent by the host, it can allocate corresponding stripe information to the data to be written according to the attribute information of the data to be written.
  • the stripe information includes one or more of the data used to store the data to be written. Stripe units and the physical address of each stripe unit. Each stripe unit is configured to store a small part of the data to be written, and may also be referred to as data to be stored.
  • the client sends a stripe unit used when data is to be written to the corresponding object storage device according to the stripe information, and the stripe unit carries its own physical address and the data to be stored to be stored. Accordingly, the object storage device receives the stripe unit sent by the client. The object storage device writes part of the data to be written (data to be stored) into the hard disk of the object storage device according to the physical address of the stripe unit.
  • the client can configure the corresponding stripe according to the attribute information of the data to be written.
  • the stripe is composed of one or more stripe units, and each stripe unit is mapped to the hard disk in the object storage device.
  • the object storage device writes or stores the data to be written to the hard disk according to the stripe unit. Conducive to improving hard disk performance and hard disk utilization.
  • the client may create a corresponding storage mapping relationship for the data to be written according to the writing granularity of the data to be written, that is, a storage mapping relationship for the data to be written.
  • the object storage device receives the storage mapping relationship of the data to be written sent by the client, and the storage mapping relationship of the data to be written includes the address to be written when the data to be written is stored Mapping to physical addresses.
  • the object storage device may further create a storage mapping relationship of the data to be stored according to a writing granularity of the data to be written, and the storage mapping relationship includes a relationship between a logical address and a physical address when the data to be stored is stored. Mapping relationship, the logical address is related to the address to be written of the data to be written. Specifically, the logical address may be determined and obtained according to an address to be written and a writing granularity of data to be written.
  • an embodiment of the present invention provides a data processing method.
  • the method includes: the host obtains attribute information of data to be operated, and generates a data operation request according to the attribute information of the data to be operated. Further, the host sends a data operation request to the client, where the data operation request includes a data integrity field DIF.
  • the DIF is used to carry attribute information of data to be operated.
  • the host can obtain the attribute information of the data to be operated according to actual needs, and then generate a data operation request and send it to the client or forward it to the object storage device through the client. It is convenient for the client or the object storage device to perform storage management on the operation data according to the attribute information of the data to be operated, so as to implement storage according to the attribute characteristics of the data, reduce the performance loss of the disk, and avoid waste of storage resources.
  • the data operation request may be a data read IO request.
  • the attribute information of the data to be operated may include the read granularity of the data to be read and / or the read information of the read address corresponding to the data to be read, and the read information may specifically be the read frequency or read type .
  • the read granularity is used to indicate the size of the read-ahead data including the data to be read.
  • the read information is used to indicate how often data is read from the address to be read in a unit time.
  • the data operation request may be a data write IO request.
  • the attribute information of the data to be operated includes the writing granularity of the data to be written and / or the writing information of the address to be written corresponding to the data to be written.
  • the writing new may specifically be a writing frequency or a writing type.
  • the write granularity is used to indicate a storage granularity used when data to be written is stored.
  • the write information is used to indicate how often data is written to the address to be written in a unit time.
  • an embodiment of the present invention provides a data processing method.
  • the method includes: a client receives a data write IO request sent by a host, and the data write IO request includes a data integrity field DIF, and the DIF bears pending data.
  • the attribute information of the written data corresponds to the client configures corresponding stripe information for the data to be written according to the attribute information of the data to be written.
  • the stripe information includes at least one stripe unit used for the data to be written and each stripe. The physical address of the unit.
  • the client sends the stripe unit carrying the partial data to be written and the physical address to the corresponding object storage device according to the stripe information.
  • the attribute information of the data to be written includes a writing granularity of the data to be written.
  • the client can configure a stripe whose size of the stripe unit matches the write granularity for the data to be written.
  • the information of the stripe (that is, the stripe information) includes at least one stripe when the data to be written is stored. The unit and the physical address of each stripe unit. Each stripe unit is used to store part of the data to be written. In other words, the client selects the stripe unit with the same write granularity to store the data to be written, which is beneficial to improving the utilization of the disk.
  • the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written, and is used to indicate how often data is written to the address to be written in a unit time. Accordingly, the client can configure the data to be written with stripes that match the frequency indicated by the write information.
  • the writing type may specifically be a writing frequency or a writing type. In other words, the client can store the data to be written in the same write type or in the same write frequency range into the same stripe.
  • an embodiment of the present invention provides a data processing apparatus (specifically, an object storage device), including a communication unit and a processing unit, where:
  • the communication unit is configured to receive a data read IO request, where the data read IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of data to be read;
  • the processing unit is configured to process the data to be read according to attribute information of the data to be read.
  • the attribute information of the data to be read includes a read granularity of the data to be read, and is used to indicate a size of the pre-read data including the data to be read.
  • the processing unit is specifically configured to read pre-read data including the data to be read when the size of the pre-read data is greater than or equal to a first threshold, and send the pre-read data to a client To cache into the memory of the client; or when the size of the preset data is less than a first threshold, read the data to be read and send the data to be read to the host.
  • the attribute information of the data to be read includes read information of a to-be-read address corresponding to the data to be read, and the read information is used to indicate the unit of time to be read The frequency at which data is read from the address.
  • the processing unit is specifically configured to write the data to be read into a non-volatile cache of the object storage device when the read information is first read information; or, when the read information is When the information is the second read information, the data to be read is written to a non-volatile cache of the object storage device, and an expiration period is set in the non-volatile cache of the object storage device To clear data stored in the non-volatile cache with a duration exceeding the expiration duration; wherein the frequency indicated by the first read information is greater than the frequency indicated by the second read information.
  • an embodiment of the present invention provides another data processing apparatus (which may specifically be an object storage device), including a communication unit and a processing unit, where:
  • the communication unit is configured to receive a data write IO request, where the data write IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of data to be written;
  • the processing unit is configured to process the data to be written according to attribute information of the data to be written.
  • the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written, and the write information is used to indicate the unit of time to be written The frequency at which data is written to the incoming address.
  • the processing unit is specifically configured to: when the write information is first write information, the object storage device stores the data to be written into a non-volatile cache of the object storage device; or, when The write information is second write information, and the object storage device stores the data to be written in a hard disk of the object storage device; wherein the frequency indicated by the first write information is greater than The frequency indicated by the second write information is described.
  • the attribute information of the data to be written includes a writing granularity of the data to be written, and is used to indicate a storage granularity used when the data to be written is stored.
  • the client receives the data write IO request, and configures corresponding stripe information for the data to be written according to the attribute information of the data to be written.
  • the stripe information includes the data to be used when the data to be written is stored.
  • the processing unit is specifically configured to store the data to be written into a hard disk of the object storage device according to a physical address of the stripe unit.
  • the processing unit is further configured to create a storage mapping relationship of the data to be written according to a writing granularity of the data to be written, where the storage mapping relationship includes the data to be written The mapping relationship between the address to be written and the physical address during data storage.
  • an embodiment of the present invention provides another data processing device (which may specifically be a host), including a communication unit and a processing unit, where:
  • the processing unit is configured to obtain attribute information of data to be operated
  • the communication unit is configured to send a data operation request to a client, where the data operation request includes a data integrity field DIF, and the DIF is used to carry attribute information of the data to be operated.
  • the attribute information of the data to be operated includes the read granularity of the data to be read and / or the data to be read corresponding to the data to be read Address read information.
  • the read granularity of the data to be read is used to indicate the size of the pre-read data including the data to be read; the read information of the address to be read is used to indicate the unit of time to be read. The frequency at which data is read from the read address.
  • the attribute information of the data to be operated includes a writing granularity of data to be written and / or a data to be written corresponding to the data to be written Address write information.
  • the write granularity of the data to be written is used to indicate the storage granularity used when the data to be written is stored; the write information of the address to be written is used to indicate the address to be written in a unit time. How often data is written.
  • an embodiment of the present invention provides an object storage device, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; a communication interface for receiving and sending data; A memory for storing instructions; a processor for calling instructions in the memory to execute the method described in the first aspect or any possible implementation manner of the first aspect.
  • an embodiment of the present invention provides another object storage device, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; and the communication interface is used to receive and send data.
  • an embodiment of the present invention provides a host, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; a communication interface for receiving and sending data; a memory, For storing instructions; a processor for calling instructions in the memory to execute the method described in the third aspect or any possible implementation manner of the third aspect.
  • an embodiment of the present invention provides a client, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; a communication interface for receiving and sending data;
  • the memory is configured to store instructions; the processor is configured to call the instructions in the memory and execute the method described in the fourth aspect or any possible implementation manner of the fourth aspect.
  • a computer non-transitory storage medium stores program code for data processing.
  • the program code includes instructions for performing the first aspect described above or the method described in any possible implementation of the first aspect.
  • a computer non-transitory storage medium stores program code for data processing.
  • the program code includes instructions for performing the second aspect described above or the method described in any possible implementation of the second aspect.
  • a computer non-transitory storage medium stores program code for data processing.
  • the program code includes instructions for performing the third aspect or the method described in any possible implementation manner of the third aspect.
  • a computer non-transitory storage medium stores program code for data processing.
  • the program code includes instructions for performing the fourth aspect or the method described in any possible implementation of the fourth aspect.
  • the above storage medium may be non-volatile.
  • a chip product is provided to execute the first aspect or the method in any possible implementation manner of the first aspect.
  • a chip product is provided to execute the second aspect or the method in any possible implementation manner of the second aspect.
  • a chip product is provided to execute the third aspect or the method in any possible implementation manner of the third aspect.
  • a chip product is provided to execute the fourth aspect or the method in any possible implementation manner of the fourth aspect.
  • FIG. 1 is a schematic diagram of a network framework of a data processing system according to an embodiment of the present invention.
  • FIG. 2 is a schematic flowchart of a data processing method according to an embodiment of the present invention.
  • FIG. 3 is a schematic diagram of a format of a data operation request according to an embodiment of the present invention.
  • FIG. 4 is a schematic flowchart of another data processing method according to an embodiment of the present invention.
  • FIG. 5 is a schematic flowchart of another data processing method according to an embodiment of the present invention.
  • FIG. 6 is a schematic structural diagram of a data processing apparatus according to an embodiment of the present invention.
  • FIG. 7 is a schematic structural diagram of another data processing device according to an embodiment of the present invention.
  • Logical block address also called logical address or relative address.
  • LBA Physical block address
  • CPU central processing unit
  • a logical address can be converted into an actual effective address (ie, a physical address) in a memory through calculation or conversion in an addressing manner.
  • Stripe is a method of dividing continuous data into data blocks of the same size and distributing each piece of data to different disks in the array. Among them, there are two parameters that affect the band effect: band depth and band size. Stripe depth refers to the number of stripes that can be read or written in parallel at the same time. The stripe size refers to the size of the data block written to each disk. This application will be exemplified below.
  • FIG. 1 is a schematic diagram of a network framework of a data processing system according to an embodiment of the present invention.
  • the data processing system 100 shown in FIG. 1 includes application software 102, a virtual disk interface 104, a client 106, a metadata controller 108 (metadata controller, MDC), and an object-based storage device 110 (OSD). . among them,
  • the application software 102 may send a data read or write input / output (IO) request to the virtual disk according to its actual needs.
  • the data read / write IO request carries the size of the data to be read / written and the data.
  • the virtual disk interface 104 may be an interface provided by a virtual block storage (VBS) management component for accessing a virtual disk.
  • VBS virtual block storage
  • the application software 102 sends a data read / write IO request to the corresponding virtual disk through the virtual disk interface 104 to read or write data from the corresponding disk.
  • the virtual disk interface 104 and the application software 102 are usually deployed on the same physical device (for example, a host or a server).
  • the metadata controller 108 is responsible for managing the object storage devices 110.
  • the number of the object storage devices 110 may be one or more. The figure takes n as an example, and n is a positive integer. In a distributed data storage system, the number of object storage devices 110 is usually multiple.
  • the data processing system 100 can also be divided into two parts.
  • the application software 102 and the virtual disk interface 104 are deployed on the client device.
  • the client 106, the metadata controller 108, and the object storage device 110 are deployed on the data of the cloud service provider.
  • the cloud service provider provides the object storage service to the customer through the client 106, the metadata controller 108, and the object storage device 110.
  • the client accesses the object storage service through the application software 102 and the virtual disk interface 104.
  • the metadata controller 108 may be responsible for maintaining a connection state between the object storage device 110 and the client 106, and the connection state includes an online state and an offline state.
  • the online status indicates that the object storage device 110 and the client 106 can communicate normally, and a communication connection relationship is established.
  • the offline state means that there is no communication connection between the object storage device 110 and the client 106, that is, the client cannot store data to the object storage device in the offline state.
  • the metadata controller 108 may also deploy the object storage device 110 according to a certain deployment strategy, such as a partition deployment strategy, a load balancing deployment strategy, and the like, which are not limited herein.
  • the metadata controller 108 can obtain information about the OSD of each object storage device currently communicating with the client 106, such as the OSD's Internet protocol address (IP), the ID of the OSD, and so on.
  • the metadata controller 108 may send the information of the object storage device 110 to the client 106 in advance, so that the client 106 can calculate the corresponding information according to the LBA logical address in the request after receiving the data read / write IO request
  • the local object storage device 110 is not described in detail here.
  • the client may establish communication between the client 106 and the object storage device 110 according to the OSD information (for example, identification, IP address, etc.). For example, the client 106 forwards data read / write IO requests to the object storage. Equipment, etc.
  • the metadata controller 108 may be deployed on a certain physical device separately, or distributed to one or more physical devices without limitation.
  • the client 106 may be a software module for receiving a data read / write IO request issued by the application software 102 through the virtual disk interface 104. Further, the client 106 may configure a corresponding data strip for the data to be read / written according to the data read / write IO request to write or store the data into the data strip. In other words, the data in this application is stored in a stripe manner.
  • the client 106 may also use a preset algorithm to calculate an error correction code (EC) corresponding to the data.
  • the preset algorithm is customized by a user or a system, such as an EC check code algorithm. How to calculate the EC check code is not described in detail in this application, and how to configure the data stripe will be described in detail later in this application.
  • the client 106 may also send the data strip to be stored, the EC verification code, and the received data read / write IO request together or separately to the corresponding object storage device OSD.
  • the client 106 may newly add these two pieces of information to the data read / write IO request for re-encapsulation, and re-encapsulate the data read / The write IO request is sent to the object storage device, which is not limited in this application.
  • the object storage device 110 may receive a data read / write IO request and read or write corresponding data according to the request.
  • the object storage device 110 When the object storage device 110 receives a data read IO request, it reads data blocks and metadata in the corresponding virtual disk according to the LBA logical address in the request.
  • the metadata here may refer to data used to describe the attributes of the data block, such as one or more of a logical address, a physical address, and a size of the data block.
  • the object storage device 110 may write the data to the corresponding virtual disk according to the LBA logical address in the request. How the object storage device performs corresponding data operations according to the data read / write IO request will be detailed in the following in this application.
  • the application software 102, the virtual disk interface 104, and the client 106 are usually deployed on a physical device.
  • the object storage device 110 is deployed on another physical device.
  • the object storage device 110 may also be deployed on the same physical device as the application software 102, the client 106, and the like.
  • the metadata controller 108 is separately deployed on another physical device. Regarding the deployment of each part in FIG. 1, this application is not limited.
  • the object storage device 110 includes a cache and a disk.
  • the illustration uses one cache and one disk as an example.
  • the disk includes, but is not limited to, a virtual disk or a physical disk.
  • this application uses striping technology to balance the IO load (data) to the disks of each object storage device.
  • the following uses the n object storage devices as examples for data storage related description. That is, each disk of each of the n object storage devices provides a corresponding storage space (strip unit) for storing a small portion of the data.
  • each object storage unit in the n object storage devices may provide a stripe unit to store one data block, and n stripe units may be obtained to correspondingly store n data blocks.
  • the object storage device 1 can provide a stripe unit 1 to store a first data block (data block 1)
  • the object storage device 2 can provide a stripe unit 2 to store a second data block (data block 2).
  • the object storage device n may provide a stripe unit n to store the nth data block (data block n).
  • the stripe used to store the entire data is composed of n stripe units from n object storage devices, that is, one stripe unit provided by each of the n disks. composition.
  • an object storage device when it learns a stripe unit carrying a data block, it can store the data block on the stripe unit according to the physical address of the stripe unit, that is, the data block is stored in the stripe.
  • the physical address of the tape unit is written to or stored on its own disk. For example, taking the object storage device 1 as an example, when it learns that the stripe unit 1 needs to store the data block 1, it can write the data block 1 to the stripe unit 1 according to the physical address of the stripe unit 1, that is, write To its own disk.
  • each of the n object storage devices knows the data block to be stored in its own stripe unit, it can store the corresponding data block according to the physical address of the corresponding stripe unit.
  • the n object storage devices have completed their respective data block storage, the entire data can be stored.
  • the cache in the object storage device is used to temporarily or temporarily store data.
  • a timer may be set in the cache, and when the data stored in the cache exceeds a preset expiration time, the data in the cache may be processed, such as clearing the data in the cache or deleting the data in the cache. Write data to hard disk and so on.
  • FIG. 2 is a schematic flowchart of a data processing method according to an embodiment of the present invention.
  • the data processing method shown in FIG. 2 includes the following implementation steps:
  • Step S202 The host obtains attribute information of the data to be operated, and generates a data operation request according to the attribute information of the data to be operated.
  • Step S204 The host sends a data operation request to the client. Accordingly, the client receives the data operation request and forwards it to the object storage device.
  • the host refers to a physical device running application software.
  • the application software in the host can obtain attribute information of the data to be operated according to actual requirements. Further, the host may generate a data operation request, and encapsulate the attribute information of the data to be operated in a data integrity field (DIF) in the data operation request.
  • the data operation request is further sent to the client for forwarding to the object storage device through the client.
  • DIF data integrity field
  • the data to be operated here may include, but is not limited to, data to be read or data to be written. Accordingly, the attribute information of the data to be operated may specifically refer to the attribute information of the data to be written or the attribute information of the data to be read. The attribute information about the data to be operated is explained in detail below.
  • Step S206 The object storage device obtains a data operation request, where the data operation request includes attribute information of the data to be operated, and the attribute information is used to describe an attribute of the data to be operated.
  • Step S208 The object storage device processes the data to be operated according to the attribute information of the data to be operated.
  • the data operation request may specifically be a data read IO request or a data write IO request.
  • the data to be operated may specifically be data to be read.
  • the data operation request is a data write IO request
  • the data to be operated may specifically be data to be written.
  • the data operation request includes a flag field set by the user or the system, and the flag field is used to indicate attribute information of the data to be operated, such as the size of the data to be operated, the granularity of the data IO, the logical address of the data to be operated, Any one or more of the read information (for example, read frequency or read type) and write information (for example, write frequency or write type) involved in the logical address are described in detail below.
  • FIG. 3 shows a schematic diagram of a format of a data operation request.
  • the data operation request includes a data domain and a data integrity field (DIF).
  • the data field is used to carry data to be transmitted, which may specifically be data to be operated (data to be read or data to be written).
  • the DIF field is used to check the integrity of the data to be transmitted.
  • the DIF field includes a check area, a version area, an application software area, and an address area.
  • the respective sizes of the data field and the DIF field can be customized by the user or the system. For example, several storage methods such as 512 + 8 bytes, 4096 + 8, and 4096 + 64 are used. No restrictions. among them,
  • the check area is used to carry check data, such as cyclic redundancy check (CRC) data.
  • CRC cyclic redundancy check
  • the size of the bytes occupied by the check area can be set by the user or the system, such as 2 bytes.
  • the version area is used to indicate the version number of the DIF.
  • the size occupied by the version area can be set by the user or the system, such as 1 byte.
  • the address area is used to indicate the logical address LBA where the data to be operated corresponds to.
  • the size it occupies can be customized by the user or the system, such as 4 bytes.
  • the application software area is composed of a reserved field and an LBA effective indication field.
  • the size occupied by the application software area can be specifically set by the user or the system. For example, the figure takes 1 byte as an example.
  • the LBA valid indication field is used to indicate whether the LBA logical address carried in the address area is valid. Specifically, when the LBA valid indication field is the first preset character (such as 1), it means that the LBA logical address carried in the address area is valid; when the LBA valid indication field is the second preset character (such as 0), then Indicates that the LBA logical address carried in the address area is invalid.
  • the size occupied by the LBA effective indication field may be specifically set by a user or a system, for example, 1 bit.
  • the reserved field is a field to be defined, and its occupied size can also be customized by the user or the system, such as 7bit.
  • This application redefines the reserved fields, that is, the attribute information of the data to be operated is carried in the reserved fields.
  • the reserved fields include, but are not limited to, any one or more of a data IO granularity field, a data write field, and a data read field.
  • the size and position of each of the reserved fields can be defined according to actual requirements, which is not limited in this application. . among them,
  • Data IO granularity field which means different meanings in different application scenarios.
  • the data IO granularity field may specifically be a write granularity field, which is used to indicate a minimum unit size used when data to be operated is stored. In other words, the minimum unit granularity of the data to be stored is divided during storage.
  • the size and location occupied by the storage granularity field may be specifically set by a user or a system.
  • the storage granularity field occupies 3 bits, and the corresponding writing granularity has the following 8 types: 512byte, 1Kbyte, 4Kbyte, 8Kbyte, 16Kbyte, 32Kbyte, 64Kbyte, 12Kbyte, and so on.
  • the data IO granularity field may specifically be a read granularity field, which is used to indicate the size of the read-ahead data, and the read-ahead data includes the pending operation. data.
  • the pre-read data is data to be read. Exemplarily, suppose that the upper-layer application software needs to read 1M data (that is, the size of the pre-read data is 1M), and the size of the data read IO request sent by the application software each time is 1K, that is, the data issued by each application software The size of the data requested by the read IO request is 1K.
  • the application software needs to issue 1000 data read IO requests.
  • the size of the read-ahead data can be indicated by reading the granularity field, and the read-ahead data can be read in advance by using a data read IO request, saving time and improving the efficiency of data reading.
  • a data write field is used to indicate write information of an address to be written.
  • the address to be written is an address when data to be operated is written, and it may specifically be an LBA logical address.
  • the writing information includes, but is not limited to, a writing type or a writing frequency.
  • the data write field is used to indicate the write type or write frequency of the address to be written.
  • the data write field may be used to reflect a writing frequency of data written in the address to be written in a unit time, that is, a frequency of writing data in the address to be written in a unit time.
  • the device may also obtain the write type of the address to be written according to the write frequency of the address to be written.
  • the corresponding writing type may be considered or determined to be the first writing type, for example, it is quickly overwritten or often overwritten. Wait.
  • the corresponding writing type may be considered or determined to be the second writing type, for example, it is rarely overwritten.
  • the upper and lower limits of the first threshold range and the second threshold range may be specifically set by a user or a system.
  • the lower limit of the first threshold range is greater than or equal to the second threshold range.
  • the size occupied by the data write field may be specifically set by a user or a system according to actual requirements, for example, 2 bits and the like.
  • Data is overwritten when there is multiple data writes to the same address to be written, that is, data written later will overwrite data previously written. Therefore, the writing frequency or type of the address to be written also indicates the writing frequency or type of data overwriting in the address to be written.
  • the data read field is used to indicate the read information of the address to be read.
  • the address to be read is an address when data to be operated is read, and it may specifically be an LBA logical address.
  • the read information includes, but is not limited to, a read type or a read frequency of an address to be read.
  • the data read field may be used to reflect a read frequency of data read occurring at the address to be read in a unit time.
  • the device may also obtain the read type of the address to be read according to the read frequency of the address to be read.
  • the corresponding read type may be considered or determined to be the first read type, such as frequent reads.
  • the corresponding read type may be considered or determined to be the second read type, such as to be read multiple times or sequentially.
  • the corresponding read type may be considered or determined to be the third type, such as rarely read or read only once.
  • the third threshold range, the fourth threshold range, and the fifth threshold range may be specifically set by a user or a system.
  • the lower limit of the third threshold range is greater than or equal to the upper limit of the fourth threshold range, and the lower limit of the fourth threshold range is greater than or equal to the upper limit of the fifth threshold range.
  • the size occupied by the data read field may be specifically set by a user or a system, such as 2 bits and the like.
  • FIG. 4 is a schematic flowchart of another data processing method according to an embodiment of the present invention.
  • the method shown in FIG. 4 includes the following implementation steps:
  • Step S402 The application software obtains attribute information of data to be written.
  • Step S404 The application software sends a data write IO request to the client, where the data write IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of the data to be written. Accordingly, the client receives the data write IO request.
  • application software may send a data write IO request to a client according to actual requirements, and the data write IO request includes attribute information of the data to be written.
  • the attribute information of the data to be written is carried in a DIF field in the data write IO request, and the attribute information of the information to be written may include, but is not limited to, any one or more of the following combinations: the Information such as an address to be written (which may be an LBA logical address) corresponding to the data to be written, a size of the data to be written, writing information of the address to be written, and a data IO granularity.
  • the client receives the data write IO request.
  • Step S406 The client configures corresponding stripe information for the data to be written according to the attribute information of the data to be written.
  • the stripe information includes at least one stripe unit used when the data to be written is stored and the at least one stripe unit. The physical address of each stripe unit in the stripe unit.
  • Step S408 The client sends the at least one stripe unit and the physical address of the stripe unit to each object storage device correspondingly according to the stripe information.
  • Each stripe unit is configured to store a small part of the data to be written.
  • the object storage device receives the stripe unit sent by the client and the physical address of the stripe unit.
  • the stripe unit carries data to be stored, and the data to be stored is part of the data to be written.
  • the stripe unit also carries a physical address of the stripe unit.
  • Step S410 The object storage device processes the data to be stored in the data to be written according to the attribute information of the data to be written.
  • the client may determine whether to configure a corresponding data strip for the data to be written according to the attribute information of the data to be written in the data write IO request to store The data to be written. Specifically, when the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written.
  • the writing information may specifically be a writing frequency or a writing type, which may be used to indicate a frequency or a frequency range in which data is written to the address to be written in a unit time.
  • the writing information is the first writing information
  • it is used to indicate that a frequency of writing data to the address to be written within a unit time is within a first threshold range, or a writing type indicated by the first writing information
  • the client may abandon the corresponding stripe information for the data to be written.
  • the writing information is the second writing information
  • it is used to indicate that the frequency of data writing to the address to be written is within a second threshold range within a unit time, or the writing indicated by the first writing information
  • the input type is rarely overwritten, etc.
  • the client can configure corresponding stripe information for the data to be written, which will be described in detail below.
  • the lower limit of the first threshold range is greater than or equal to the upper limit of the second threshold range.
  • the client may also directly configure the stripe information for the data to be written according to the attribute information of the data to be written in the data write IO request, and download the data. Issued to the corresponding object storage device.
  • the object storage device side again determines whether to store data according to the physical address of the corresponding stripe unit in the stripe information according to the attribute information of the data to be written, which is not limited in this application.
  • the client configures the stripe information for the data to be written according to the attribute information of the data to be written.
  • the client may select a size and the size of the data to be written according to the writing granularity.
  • a granularity-matched stripe unit is written for storing the data to be written.
  • a stripe unit with the same stripe size and the write granularity is selected to form a stripe for storing the data to be written.
  • the client when the client selects a configuration strip for the data to be written, the client may select four strips of 8K size to form a strip that stores the data to be written.
  • the stripe here includes 4 strips of 8K size.
  • 32K of data to be written can also be divided into 4 pieces of data to be stored, and each piece of data to be stored is 8K in size, and is stored in one stripe unit.
  • These four stripe units can come from four object storage devices, which are not discussed here.
  • the writing information may specifically be a writing frequency or a writing type.
  • the client may allocate corresponding stripe information to the data to be written according to the write information, so as to store the data to be written.
  • the stripe unit includes one or more stripe units and a physical address of each stripe unit, and each stripe unit is configured to store a part of data in the data to be written (that is, data to be stored).
  • the client may write or store data to be written in the same frequency range to the same stripe or stripe unit.
  • the same frequency range can be specifically set by the user or the system according to actual needs, such as 10-15 times / minute.
  • the object storage device may store the data to be written of the same write type into the same stripe or stripe unit to implement classified storage of the data.
  • the attribute information of the data to be written includes the writing granularity of the data to be written and the writing information of the address to be written corresponding to the data to be written.
  • the client may configure corresponding stripe information for the data to be written according to the write granularity and write information of the address to be written, and the stripe information includes information for storing the data to be written.
  • One or more stripe units and the respective physical address of each stripe unit. Each stripe unit is used to store part of the data to be written (that is, data to be stored).
  • a stripe unit having the same stripe size as the write granularity is selected, and the stripe unit supports carrying or storing data that matches the write information of the address to be written.
  • the client will comprehensively consider the write type of the data to be written and the write information (write frequency or write type) of the address to be written to configure the corresponding stripe for the data to be written to store the data. Data to be written.
  • the client may also calculate a corresponding EC check code for the data to be written, for example, a preset algorithm is used to calculate an EC check code.
  • the client may also send the calculated EC verification code and the data to be written to the object storage device, so that the object storage device stores the data to be written and the EC verification code together.
  • the write type corresponding to the address to be written in the stripe may be marked as a preset type, For example, is about to be overwritten. It is convenient for the system to recalculate the new EC check code in the background, and combine the data to be written to form a full strip, covering the EC check code obtained in the previous calculation, which is helpful to improve the utilization of disk storage space.
  • the client After the client configures the stripe information for the data to be written, it can correspondingly distribute one or more stripe units in the stripe information to the corresponding object storage device, and the stripe unit can carry the physical address of the stripe unit. And data to be stored, which is part of the data to be written. Regarding the mapping relationship between the stripe unit and the object storage device, reference may be made to the related description in the foregoing embodiment, and details are not described herein again. In other words, after the client knows the stripe unit used to store the data to be stored, it can learn the physical address of the stripe unit, and then can know the object storage device or the hard disk of the object storage device to which the stripe unit corresponds. (Disk), which is not limited or detailed here.
  • the object storage device may subsequently write the data to be stored to the hard disk of the object storage device according to the received stripe unit according to the storage address of the stripe unit.
  • step S410 after receiving the data write IO request sent by the client and the stripe unit carrying the data to be stored and the physical address, the object storage device may perform a write operation on the data to be stored in the data write IO request according to attribute information of the data to be written. Data is stored.
  • the attribute information of the data to be written includes write information (such as a write frequency or a write type) of an address to be written.
  • the first writing information is used to indicate a frequency of data writing to the address to be written.
  • the first write information may be used to indicate that a write frequency of the address to be written is within a first threshold range, or a write type of the address to be written is a first type (for example, often overwritten, Write quickly, etc.).
  • the object storage device may write or store the data to be written into the first non-volatile cache (generally set inside the object storage device).
  • the object storage device may write the data stored in the first non-volatile cache to the non-volatile hard disk of the object storage device, which is convenient for reasonably arranging the data based on the characteristics of the data to be written.
  • the data storage medium is written to improve the efficiency of data reading and writing. Because the writing frequency of the address to be written is high, storing the data to be written in the cache for a period of time and then writing it to the hard disk can make the object storage device receive other New write IO request.
  • the data to be written carried in the new write IO request can overwrite the old data to be written stored in the cache, so that after this period of time, only the latest write IO request for the address to be written is pending.
  • the written data is written to the hard disk. It avoids the inefficiency caused by the data to be written carried by each write IO request for the address to be written, which needs to be written to the hard disk.
  • the second write information is used to indicate that a write frequency of the address to be written is in a second threshold range, or a write type of the address to be written is Two types (such as rarely overwritten). It can be used to indicate how often data is written to the data to be written. Accordingly, the object storage device may directly write or store the data to be written into a non-volatile hard disk of the object storage device. Specifically, the object storage device will write or store the data to be stored in the data to be written to the non-volatile hard disk of the object storage device according to the physical address of the stripe unit.
  • the first threshold range and the second threshold range are preset by the user or the system, and the lower limit value of the first threshold range is greater than or equal to the upper limit value of the second threshold range.
  • the read-write rate of the non-volatile cache is greater than the read-write rate of the non-volatile hard disk.
  • the object storage device can store or write data to be written to different non-volatile memories at different writing frequencies or types.
  • the object storage device may write the data to be written into a non-volatile cache, instead of writing to Disk or hard drive.
  • the object storage device may also separately store the data to be written whose write types are frequently overwritten and rarely overwritten to reduce data access interference.
  • the attribute information of the data to be written includes a writing granularity of the data to be written.
  • the object storage device may construct a storage mapping relationship of the data to be stored according to the writing granularity of the data to be written.
  • the storage mapping relationship includes a mapping relationship between a logical address and a physical address when the data to be stored is stored. The logical address is determined according to the address to be written and the write granularity.
  • the client receives a data write IO request carrying a data to be written address (usually an LBA logical address).
  • a data to be written address usually an LBA logical address
  • the address to be written can be divided according to the write granularity of the data to be written (or the number of stripe units).
  • the object storage device may create a corresponding storage mapping relationship for the data to be stored, that is, a storage mapping relationship for the data to be stored. It includes the mapping relationship between the logical address and the physical address when the data to be stored (striped unit) is stored.
  • the object storage device can obtain the stripe according to the address to be written in the data write IO request and the granularity of the data to be written.
  • the logical address corresponding to the unit is the logical address when the data to be stored in the stripe unit is stored. How to obtain the logical address of the stripe unit is not limited in this application. Exemplarily, it is assumed that the client is configured with 4 stripe units for data to be written, which are stripe unit 1-stripe unit 4 respectively. They are respectively located in the object storage device 1-the object storage device 4. Accordingly, when the object storage device 4 receives the stripe unit 4 sent by the client, it carries its own physical address and data to be stored.
  • the logical address of the stripe unit 4 is determined in combination with the address to be written in the received data write IO request (assuming 0-40), which is 30-40 here.
  • a storage mapping relationship is created for the data to be stored, here is the mapping relationship between the logical address and the physical address of the data to be stored stored by the stripe unit 4.
  • the client can also create a corresponding storage mapping relationship for the data to be written according to the write granularity of the data to be written, that is, the data to be written Storage mapping.
  • the storage mapping relationship includes a mapping relationship between a logical address (that is, an address to be written) and a physical address when the data to be written is stored.
  • the data write IO request includes the LBA logical address of the data to be written, but the logical address is not related or associated with the physical address of the stripe unit where the data to be written is actually stored.
  • the system cannot determine the physical address where the data is actually stored according to the logical address of the data to be written, and thus cannot query the data to be written. Therefore, the object storage device also needs to establish and save the storage mapping relationship of the data to be written.
  • the storage mapping relationship is specifically divided or customized according to the writing granularity, and the logical address and physical address of the data to be written are stored. The address is obtained by association binding.
  • the request includes the LBA logical address of the data to be written is 0-200, and the The write granularity of the data to be written is 8K.
  • the stripe configured by the client for the combination of data to be written includes 4 stripe units, each with a physical address of 0X00-0X04. Accordingly, the object storage device creates a storage mapping relationship table shown in Table 1 below to reflect the storage mapping relationship of the data to be written.
  • the stripe to be written into the data storage is composed of 4 stripe units, and the size of each stripe unit is 8K.
  • Each stripe unit has its own logical address and physical address.
  • the data read IO request includes a logical address (for example, 0-50) of the data to be read, and the object storage device may store the storage mapping relationship according to the above table 1. Table, find the physical address corresponding to the logical address (here, the physical address 0X01 of the stripe unit 1), and then read the data of the stripe unit 1 from 0X01 is the data to be read.
  • the client can also send the storage mapping relationship of the data to be written to each object storage device, so that the object storage device can learn the mapping relationship between the logical address and the physical address of the stripe unit of the data storage. .
  • the object storage device After the object storage device receives the logical address of the data to be read carried in the data read IO request, it obtains the data to be read from the corresponding physical address according to the logical address.
  • the storage performance of the memory can be improved and the utilization rate of the memory can be improved.
  • FIG. 5 is a schematic flowchart of another data processing method according to an embodiment of the present invention.
  • the method shown in FIG. 5 includes the following implementation steps:
  • Step S502 The application software (specifically, a host computer running the application software) obtains attribute information of the data to be read.
  • Step S504 The application software sends a data read IO request to the client, where the data read IO request includes a DIF field, and the DIF is used to carry attribute information of the data to be read. Accordingly, the client reads the data read IO request.
  • the data read IO request For the data read IO request, reference may be made to the related description of the data write IO request, and details are not described herein again.
  • Step S506 The client sends a data read IO request to the object storage device. Accordingly, the object storage device receives the data read IO request.
  • the client receives the data read IO request, if the attribute information of the data to be read in the data read IO request includes the size of the read-ahead data, when the size of the read-ahead data is greater than the first threshold, The data read IO request is issued to the object storage device in advance, so that the read-ahead data can be read and obtained more quickly.
  • the client can allocate more transmission resources to the data read IO request to increase the delivery rate of the data read IO request, thereby extracting and sending the data read IO request to the object storage device.
  • the data read IO request is sent to the target storage device at a normal delivery rate.
  • the pre-read data includes the data to be read, which can be understood as the total size of the data that the application software needs to read in a period of time. Understandably, due to the performance of the application software, there is a limit on the size of the data read IO request sent by the application software each time. When the read-ahead data is large, the application software can issue data read IO requests multiple times to complete the read of the read-ahead data of the corresponding size. For example, the size of the read-ahead data is 1M, and the size of the data read IO request is 1K (that is, the size of the data to be read in the data read IO request is 1K). Read data read.
  • Step S508 The object storage device reads the data to be read, and processes the data to be read according to attribute information of the data to be read.
  • Step S508 includes the following specific implementations:
  • the attribute information of the data to be read includes the size of the pre-read data including the data to be read. If the size of the read-ahead data is greater than the first threshold, the object storage device may first read the read-ahead data, then send the read-ahead data to the client, and cache it to the client side. It is convenient for subsequent application software to issue the same data read IO request, and directly read the corresponding to-be-read data in the pre-read data from the client, saving data reading time.
  • the data read IO request includes the LBA logical address of the read-ahead data
  • the object storage device can obtain the physical address corresponding to the logical address of the read-ahead data from the storage mapping relationship stored by itself according to the logical address of the read-ahead data. The address is then read according to the physical address of the read-ahead data to obtain the read-ahead data.
  • the object storage device may send the read-ahead data to the client.
  • the client can write the read-ahead data into the memory, or the client can store the read-ahead data according to the attribute information of the data to be read in the data read IO request. For details, refer to the following details.
  • the object storage device may read the data to be read, and then store the data to be read according to attribute information of the data to be read.
  • the data to be read can also be sent to other object storage devices, so that other object storage devices can store the corresponding data according to the attribute information of the data to be read.
  • the data to be read is not limited in this application. In this case, the data to be read need not be stored in the client's memory.
  • the data read IO request includes the LBA logical address of the data to be read.
  • the object storage device obtains the physical address corresponding to the logical address of the data to be read from the stored storage mapping relationship according to the logical address of the data to be read. Then, the data to be read is obtained by reading from the physical address. Further, the data to be read is sent to an upper-layer application software (that is, a host where the application software is deployed).
  • the object storage device may The data to be read is processed.
  • the attribute information of the data to be read includes read information of an address to be read corresponding to the data to be read, and the read information includes, but is not limited to, a read type or a read frequency.
  • the object storage device may send the data to be read to the client for caching. Into the client's memory. It is convenient to directly read the data to be read from the memory of the client next time, and improve the data reading rate. Accordingly, when the frequency is less than the second threshold, the object storage device may store the data to be read into a hard disk of the object storage device. Optionally, the object storage device may also send the data to be read to the client for storage on the client's hard disk, etc., which is not limited in this application.
  • the first read information is used to indicate that a read frequency of an address to be read is within a third threshold range, or indicates a read type of the address to be read The third type (for example, read often).
  • the object storage device may write the data to be read into the second non-volatile cache of the object storage device, so as to facilitate reading the cached to-be-read directly from the second non-volatile cache next time. Get the data.
  • the second read information is used to indicate that the read frequency of the address to be read corresponding to the data to be read is in a fourth threshold range, or to indicate the read of the address to be read
  • the fetch type is the fourth type (for example, multiple reads are about to be read).
  • the object storage device may store the data to be read into a third non-volatile cache of the object storage device.
  • the object storage device may further set a corresponding expiration period in the third non-volatile cache, which is convenient for clearing data in the third non-volatile cache that has a storage period exceeding the expiration period.
  • the expiration period may be specifically set by a user or a system, for example, one day.
  • the object storage device may write or store the data to be read into a hard disk of the object storage device, and / or the object storage device may clear the data stored in the preset storage address.
  • the object storage device may determine, according to the data write IO request, a preset storage address (or a non-volatile memory) where the data to be cleared is indicated, and the preset storage address may be an LBA logical address.
  • the object storage device may clear the data corresponding to the preset storage address to release the corresponding data stored in the non-volatile memory; or directly release all the data stored in the non-volatile memory.
  • the third threshold range, the fourth threshold range, and the fifth threshold range can be customized by the user or the system according to actual needs.
  • the lower limit of the third threshold range is greater than or equal to the upper limit of the fourth threshold range.
  • the upper limit of the fourth threshold range is greater than or equal to the lower limit of the fifth threshold range.
  • the read-write rate of the non-volatile cache is greater than the read-write rate of the non-volatile hard disk.
  • the first non-volatile cache and the second non-volatile cache involved in this application may be the same cache or different caches deployed in the object storage device, and may be specifically determined according to actual needs, and are not limited.
  • the object storage device can store or write data to be read corresponding to different read frequencies or read types of addresses to be read into different non-volatile memories.
  • the object storage device may write the data to be read into the cache.
  • the object storage may write the data to be read into the same memory (for example, memory, cache, or disk).
  • an overdue elimination duration (that is, an expiration duration) may be set in the memory to limit the storage duration of the data stored in the memory.
  • the object storage device may directly write the data to be read to a disk without caching the data to be read.
  • the read type of the address to be read corresponding to the data to be read is a type used to indicate the release of the cache
  • the object storage device may obtain a preset storage address (such as a logical address) of the data to be cleared from the data write IO request. ) To clear the data stored in the preset storage address to release the cache and so on.
  • the storage performance of the storage system can be improved and the working efficiency of the storage system can be improved.
  • FIG. 6 is a schematic structural diagram of a data processing apparatus according to an embodiment of the present invention.
  • the apparatus 600 shown in FIG. 6 includes a communication module 602 and a processing module 604. among them,
  • the data processing apparatus 600 is a host.
  • the processing module 604 may be used to control and manage the actions of the data processing apparatus 600.
  • the processing module 604 is used to support the host to perform step S202 in FIG. 2, step S402 in FIG. 4, step S502 in FIG. 5, and / or other steps for performing the techniques described herein.
  • the communication module 602 is used to support the communication between the data processing device 600 and other devices.
  • the communication module 602 is used by the host to perform step S204 in FIG. 2, step S404 in FIG. 4, step S504 in FIG. 5, and / or to perform the text Other steps of the described technique.
  • the data processing apparatus 600 is an object storage device.
  • the processing module 604 may be used to control and manage the actions of the data processing apparatus 600.
  • the processing module 604 is used to support the object storage device to perform steps S206 and S208 in FIG. 2, step S410 in FIG. 4, step S508 in FIG. 5, and / or other steps for performing the technology described herein.
  • the communication module 602 is configured to support the communication between the data processing apparatus 600 and other devices.
  • the communication module 602 is configured to receive the data read IO request or data write IO request sent by the client from the object storage device, and / or perform the operations described herein. Other steps of the technique.
  • the data processing apparatus 600 is a client.
  • the processing module 604 may be used to control and manage the actions of the data processing apparatus 600.
  • the processing module 604 is configured to support the client to perform step S406 in FIG. 4 and / or to perform other steps of the technology described herein.
  • the communication module 602 is configured to support communication between the data processing apparatus 600 and other devices.
  • the communication module 602 is configured to perform step S408 in FIG. 4, step S506 in FIG. 5, and / or other steps for performing the techniques described herein. .
  • the data processing apparatus 600 may further include a storage module 606 for storing program code and data of the data processing apparatus 600.
  • the processing module 604 may be a processor or a controller, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), and an application-specific integrated circuit (Application-Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logical blocks, modules, and circuits described in connection with the present disclosure.
  • the processor may also be a combination that implements computing functions, such as a combination including one or more microprocessors, a combination of a DSP and a microprocessor, and so on.
  • the communication module 602 may be a communication interface, a transceiver, a transceiver circuit, etc., where the communication interface is collectively referred to and may include one or more interfaces, such as an interface between a communication module and a processing module, an object storage device, and other devices such as a host Or client).
  • the storage module 606 may be a memory, or other services or modules for providing storage functions.
  • the processing module 604 is a processor
  • the communication module 602 is a communication interface
  • the storage module 606 is a memory
  • the data processing apparatus involved in this embodiment of the present invention may be a data processing device shown in FIG. 7.
  • the processing module 604, the communication module 602, and the storage module 606 may also be implemented by software.
  • the data processing device 700 includes one or more processors 701, a communication interface 701, and a memory 703.
  • the data processing device 700 may further include a bus 704.
  • the communication interface 703, the processor 702, and the memory 701 can be connected to each other through a bus 704.
  • the bus 704 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (Abbreviated Architecture). EISA) bus and so on.
  • the bus 704 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is used in FIG. 7, but it does not mean that there is only one bus or one type of bus. among them:
  • the processor 701 may be composed of one or more general-purpose processors, such as a central processing unit (Central Processing Unit).
  • the processor 701 may be configured to run a program of a processing function in a related program code. That is, the processor 701 executes the program code to implement the functions of the processing module.
  • the processing module For details about the processing module, refer to related descriptions in the foregoing embodiments.
  • the processor 701 of the host is configured to run related program codes to implement the functions of the processing modules described in this application. Or to implement step S202 in FIG. 2, step S402 in FIG. 4, step S502 in FIG. 5, and / or other steps for implementing the technology described herein, which are not limited in this application.
  • the processor 701 of the object storage device is configured to run related program code, so as to implement the functions of the foregoing processing module in this application.
  • steps S206 and S208 in FIG. 2, step S410 in FIG. 4, step S508 in FIG. 5, and / or other steps for implementing the technology described herein, etc. are not limited in this application.
  • the processor 701 of the client is configured to run related program code to implement the functions of the foregoing processing module in this application.
  • step S406 in FIG. 4 of the present application, and / or other steps for implementing the technology described herein, etc. are not limited in this application.
  • the communication interface 602 may be a wired interface (such as an Ethernet interface) or a wireless interface (such as a cellular network interface or using a wireless local area network interface) for communicating with other modules / devices.
  • the communication interface 602 in the embodiment of the present application may be specifically configured to obtain attribute information of data to be operated, such as attribute information of data to be read or data to be written.
  • the memory 603 may include volatile memory (Volatile Memory), such as Random Access Memory (RAM); the memory may also include non-volatile memory (Non-Volatile Memory), such as Read-Only Memory (ROM), flash memory (Flash), hard disk (HDD), or solid-state drive (SSD); memory 603 may also include a combination of the above types of memory.
  • volatile memory such as Random Access Memory (RAM)
  • non-Volatile Memory such as Read-Only Memory (ROM), flash memory (Flash), hard disk (HDD), or solid-state drive (SSD)
  • ROM Read-Only Memory
  • flash flash memory
  • HDD hard disk
  • SSD solid-state drive
  • memory 603 may also include a combination of the above types of memory.
  • the memory 603 may be configured to store a set of program code, so that the processor 601 calls the program code stored in the memory 603 to implement the functions of the communication module and / or the processing module involved in the embodiment of the present invention.
  • FIG. 7 is only one possible implementation manner of the embodiment of the present application.
  • the data processing device may further include more or fewer components, which is not limited herein.
  • the data processing device may further include more or fewer components, which is not limited herein.
  • An embodiment of the present invention also provides a computer non-transitory storage medium.
  • the computer non-transitory storage medium has instructions stored therein.
  • An embodiment of the present invention also provides a computer program product.
  • the computer program product runs on a processor, the method flow shown in any one of the embodiments in FIG. 2 to FIG. 5 is implemented.
  • the steps of the method or algorithm described in connection with the disclosure of the embodiments of the present invention may be implemented in a hardware manner, or may be implemented in a manner that a processor executes software instructions.
  • Software instructions can be composed of corresponding software modules.
  • Software modules can be stored in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), erasable programmable read-only memory (ROM Erasable (Programmable ROM, EPROM), electrically erasable programmable read-only memory (EPROM), registers, hard disks, removable hard disks, read-only optical disks (CD-ROMs), or any other form of storage medium known in the art.
  • An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium.
  • the storage medium may also be an integral part of the processor.
  • the processor and the storage medium may reside in an ASIC.
  • the ASIC may reside in a computing device.
  • the processor and the storage medium may also exist as discrete components in a computing device.
  • the program may be stored in a computer-readable storage medium.
  • the foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disc.

Abstract

Disclosed is a data processing method, comprising: an object storage device receiving a data read or write IO request, wherein the data read or write IO request comprises a data integrity field (DIF), the DIF is used for bearing attribute information of data to be operated, and specifically, the attribute information may be attribute information of data to be read or attribute information of data to be written; furthermore, the object storage device processing the data to be operated according to the attribute information of the data to be operated. By using the embodiments of the present invention, the performance of a disk can be improved, and the waste of storage resources can be avoided.

Description

数据处理方法、相关设备及计算机存储介质Data processing method, related equipment and computer storage medium 技术领域Technical field
本发明涉及存储技术领域,尤其涉及数据处理方法、相关设备及计算机存储介质。The present invention relates to the field of storage technology, and in particular, to a data processing method, a related device, and a computer storage medium.
背景技术Background technique
随着互联网的发展和进步,全球的数据量每天以极快的速度增长。面对如此庞大的数据,对数据存储系统的要求显得尤为重要了。目前,为满足海量数据的存储需求,通常采用分布式存储系统来进行数据的存储。With the development and progress of the Internet, the amount of global data is growing at an extremely fast rate every day. Faced with such a huge amount of data, the requirements for data storage systems are particularly important. At present, in order to meet the storage requirements of massive data, distributed storage systems are usually used for data storage.
然而在实践中发现,目前的分布式存储系统对数据采用统一的存储策略以及存储布局进行存储,这样将带来磁盘性能的损失和存储资源的浪费。However, in practice, it is found that the current distributed storage system uses a unified storage strategy and storage layout for data storage, which will cause loss of disk performance and waste of storage resources.
发明内容Summary of the Invention
本发明实施例公开了数据处理方法、相关设备及计算机存储介质,降低了磁盘性能损失和存储资源的浪费。The embodiment of the invention discloses a data processing method, related equipment and a computer storage medium, which reduces the loss of disk performance and the waste of storage resources.
第一方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:对象存储设备接收主机发送的数据读IO请求,该数据读IO请求中包括数据完整性域DIF,该DIF承载有待读取数据的属性信息,例如待读取数据的大小、待读取数据的读取粒度、待读取数据对应的待读取地址的读取信息等。相应地,对象存储设备可根据该待读取数据的属性信息,对待读取数据进行处理。According to a first aspect, an embodiment of the present invention provides a data processing method. The method includes: an object storage device receives a data read IO request sent by a host, the data read IO request includes a data integrity field DIF, and the DIF bearer The attribute information of the data to be read includes, for example, the size of the data to be read, the read granularity of the data to be read, and the read information of the address to be read corresponding to the data to be read. Accordingly, the object storage device may process the data to be read according to the attribute information of the data to be read.
通过实施本发明实施例,能够依据待读取数据的属性信息对待读取数据进行存储管理,利用数据特征进行个性化存储,以避免磁盘性能较低以及存储资源浪费等问题。By implementing the embodiments of the present invention, it is possible to perform storage management on the read data according to the attribute information of the data to be read, and to use the data characteristics for personalized storage to avoid problems such as low disk performance and waste of storage resources.
在一些可能的实施方式中,待读取数据的属性信息包括待读取数据的读取粒度,该读取粒度用于指示包括待读取数据在内的预读数据的大小。相应地,如果预读数据的大小大于或等于第一阈值时,对象存储设备可读取包括待读取数据在内的预读数据,并将该预读数据发送给客户端,以将其缓存在客户端的内存。便于下次主机发送相同的数据读IO请求时,直接从客户端的缓存中读取相应地待读取数据,以节省数据读取时间,提升数据处理效率。In some possible implementation manners, the attribute information of the data to be read includes a read granularity of the data to be read, and the read granularity is used to indicate a size of the pre-read data including the data to be read. Accordingly, if the size of the read-ahead data is greater than or equal to the first threshold value, the object storage device may read the read-ahead data including the data to be read, and send the read-ahead data to the client to cache it Memory on the client. It is convenient for the host to read the corresponding data to be read directly from the client's cache the next time the host sends the same data read IO request to save data reading time and improve data processing efficiency.
如果预读数据的大小小于第一阈值,对象存储设备可直接读取该待读取数据,并将该待读取数据发送给主机。If the size of the read-ahead data is less than the first threshold, the object storage device may directly read the data to be read and send the data to be read to the host.
通过实施本发明实施例,能够根据预读数据的大小来决定是否提取获得预读数据,便于下次直接从客户端的内存中读取数据,从而节省数据读取时间,提高数据处理效率。By implementing the embodiments of the present invention, it is possible to decide whether to extract and obtain the pre-read data according to the size of the pre-read data, which is convenient for reading data directly from the memory of the client next time, thereby saving data reading time and improving data processing efficiency.
在一些可能的实施例中,待读取数据的属性信息包括待读取数据对应所在待读取地址的读取信息。该读取信息可包括但不限于读取频率或读取类型等。该读取信息用于指示单位时间内待读取地址发生数据读取的频率。相应地,当读取信息为第一读取信息时,对象存储设备将待读取数据写到对象存储设备的非易失性缓存中。当读取信息为第二读取信息时,对象存储设备将待读取数据写到对象存储设备的非易失性缓存 中,并在该非易失性缓存中设置过期时长,以清除该非易失性缓存中存储时长超过过期时长的数据。其中,第一读取信息所指示的频率大于第二读取信息所指示的频率。In some possible embodiments, the attribute information of the data to be read includes the read information of the data to be read corresponding to the address to be read. The read information may include, but is not limited to, a read frequency or a read type. The read information is used to indicate how often data is read from the address to be read in a unit time. Accordingly, when the read information is the first read information, the object storage device writes the data to be read into a non-volatile cache of the object storage device. When the read information is the second read information, the object storage device writes the data to be read to a non-volatile cache of the object storage device, and sets an expiration time in the non-volatile cache to clear the non-volatile memory. The volatile cache stores data that exceeds the expiration time. The frequency indicated by the first read information is greater than the frequency indicated by the second read information.
在一些可能的实施例中,待读取数据的属性信息包括待读取数据对应所在待读取地址的读取信息。该读取信息用于指示单位时间内待读取地址发生数据读取的频率。当该读取信息所指示的频率大于或等于第二阈值时,将待读取数据发送给客户端,以缓存到客户端的内存中。便于下次直接从客户端的内存中直接读取待读取数据,从而提升数据读取效率。相应地,当读取信息所指示的频率小于第二阈值时,将待读取数据发送给客户端,并将该读取数据缓存到客户端的硬盘中。In some possible embodiments, the attribute information of the data to be read includes the read information of the data to be read corresponding to the address to be read. The read information is used to indicate how often data is read from the address to be read in a unit time. When the frequency indicated by the read information is greater than or equal to the second threshold, the data to be read is sent to the client for caching in the client's memory. It is convenient to directly read the data to be read from the memory of the client next time, thereby improving the data reading efficiency. Correspondingly, when the frequency indicated by the read information is less than the second threshold, the data to be read is sent to the client, and the read data is cached in the hard disk of the client.
第二方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:对象存储设备接收客户端转发的数据写IO请求,该数据写IO请求中包括数据完整性域DIF,该DIF承载有待写入数据的属性信息,例如待写入数据的大小、待写入数据的写入粒度、待写入数据对应的待写入地址的写入信息等。相应地,对象存储设备根据待写入数据的属性信息,对待写入数据进行处理。通过实施本发明实施例,能够合理利用待写入数据的属性信息对待写入数据进行存储管理,以解决现有分布式存储系统中存在的磁盘性能损失和存储资源浪费等问题。In a second aspect, an embodiment of the present invention provides a data processing method. The method includes: the object storage device receives a data write IO request forwarded by a client, and the data write IO request includes a data integrity field DIF, and the DIF It carries attribute information of the data to be written, such as the size of the data to be written, the granularity of the data to be written, and the write information of the address to be written corresponding to the data to be written. Accordingly, the object storage device processes the data to be written according to the attribute information of the data to be written. By implementing the embodiments of the present invention, the attribute information of the data to be written can be reasonably used to perform storage management on the data to be written, so as to solve problems such as disk performance loss and waste of storage resources in the existing distributed storage system.
在一些可能的实施方式中,待写入数据的属性信息包括待写入数据对应的待写入地址的写入信息,例如写入频率或写入类型等。该写入信息用于指示单位时间内待写入地址发生数据写入的频率。相应地,当写入信息为第一写入信息时,对象存储设备可将待写入数据存储到对象存储设备的非易失性缓存中。当写入信息为第二写入信息时,对象存储设备可将待写入数据存储到对象存储设备的硬盘中。其中,第一写入信息所指示的频率大于第二写入信息所指示的频率。非易失性缓存的读写速率大于硬盘的读写速率。In some possible implementation manners, the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written, such as a write frequency or a write type. The write information is used to indicate how often data is written to the address to be written in a unit time. Accordingly, when the write information is the first write information, the object storage device may store the data to be written into a non-volatile cache of the object storage device. When the write information is the second write information, the object storage device may store the data to be written into a hard disk of the object storage device. The frequency indicated by the first write information is greater than the frequency indicated by the second write information. The read-write rate of the non-volatile cache is greater than the read-write rate of the hard disk.
通过实施上述步骤,能够根据待写入数据的属性特征将待写入数据存储到相应地缓存或硬盘中,便于提升数据处理的高效性。By implementing the above steps, the data to be written can be stored in the corresponding cache or hard disk according to the attribute characteristics of the data to be written, which facilitates improving the efficiency of data processing.
在一些可能的实施方式中,待写入数据的属性信息包括待写入数据的写入粒度,该写入粒度用于指示待写入数据存储时采用的存储粒度。客户端接收主机发送的数据写IO请求后,可根据待写入数据的属性信息,为待写入数据分配对应的条带信息,该条带信息包括待写入数据存储时使用的一个或多个条带单元以及每个条带单元的物理地址。其中,每个条带单元用于存储所述待写入数据中的一小部分数据,也可称为待存储数据。进一步地,客户端根据条带信息,将待写入数据存储时使用的条带单元发送给对应的对象存储设备,该条带单元携带有自身的物理地址以及所需存储的待存储数据。相应地,对象存储设备接收客户端发送的条带单元。对象存储设备根据该条带单元的物理地址,将待写入数据中的部分数据(待存储数据)写入到对象存储设备的硬盘中。In some possible implementation manners, the attribute information of the data to be written includes a writing granularity of the data to be written, and the writing granularity is used to indicate a storage granularity used when storing the data to be written. After the client receives the data write IO request sent by the host, it can allocate corresponding stripe information to the data to be written according to the attribute information of the data to be written. The stripe information includes one or more of the data used to store the data to be written. Stripe units and the physical address of each stripe unit. Each stripe unit is configured to store a small part of the data to be written, and may also be referred to as data to be stored. Further, the client sends a stripe unit used when data is to be written to the corresponding object storage device according to the stripe information, and the stripe unit carries its own physical address and the data to be stored to be stored. Accordingly, the object storage device receives the stripe unit sent by the client. The object storage device writes part of the data to be written (data to be stored) into the hard disk of the object storage device according to the physical address of the stripe unit.
通过实施上述步骤,客户端可根据待写入数据的属性信息为其配置相应地条带,该条带由一个或多个条带单元组成,每个条带单元与对象存储设备中的硬盘映射。相应地,对象存储设备接收条带单元后,按照条带单元来将该待写入数据写到或存储到硬盘中。有利于提高硬盘性能以及硬盘的利用率。By implementing the above steps, the client can configure the corresponding stripe according to the attribute information of the data to be written. The stripe is composed of one or more stripe units, and each stripe unit is mapped to the hard disk in the object storage device. . Correspondingly, after receiving the stripe unit, the object storage device writes or stores the data to be written to the hard disk according to the stripe unit. Conducive to improving hard disk performance and hard disk utilization.
在一些可能的实施方式中,客户端在配置条带信息后,可根据待写入数据的写入 粒度,为待写入数据创建相应地存储映射关系,即待写入数据的存储映射关系。相应地,对象存储设备接收所述客户端发送的所述待写入数据的存储映射关系,所述待写入数据的存储映射关系包括所述待写入数据存储时的所述待写入地址和物理地址之间的映射关系。In some possible implementation manners, after configuring the stripe information, the client may create a corresponding storage mapping relationship for the data to be written according to the writing granularity of the data to be written, that is, a storage mapping relationship for the data to be written. Correspondingly, the object storage device receives the storage mapping relationship of the data to be written sent by the client, and the storage mapping relationship of the data to be written includes the address to be written when the data to be written is stored Mapping to physical addresses.
在一些可能的实施方式中,对象存储设备还可根据待写入数据的写入粒度,创建待存储数据的存储映射关系,该存储映射关系包括待存储数据存储时的逻辑地址和物理地址之间的映射关系,该逻辑地址与待写入数据的待写入地址相关。具体的,该逻辑地址可为根据待写入地址和待写入数据的写入粒度确定获得。In some possible implementation manners, the object storage device may further create a storage mapping relationship of the data to be stored according to a writing granularity of the data to be written, and the storage mapping relationship includes a relationship between a logical address and a physical address when the data to be stored is stored. Mapping relationship, the logical address is related to the address to be written of the data to be written. Specifically, the logical address may be determined and obtained according to an address to be written and a writing granularity of data to be written.
第三方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:主机获取待操作数据的属性信息,根据待操作数据的属性信息生成数据操作请求。进一步地,主机向客户端发送数据操作请求,该数据操作请求包括数据完整性域DIF。该DIF用于承载待操作数据的属性信息。According to a third aspect, an embodiment of the present invention provides a data processing method. The method includes: the host obtains attribute information of data to be operated, and generates a data operation request according to the attribute information of the data to be operated. Further, the host sends a data operation request to the client, where the data operation request includes a data integrity field DIF. The DIF is used to carry attribute information of data to be operated.
通过实施本发明实施例,主机可根据实际需求获得待操作数据的属性信息,进而生成数据操作请求以下发给客户端或通过客户端转发给对象存储设备。便于客户端或对象存储设备根据该待操作数据的属性信息对待操作数据进行存储管理,以实现依据数据的属性特征进行存储,减少磁盘的性能损失、避免存储资源的浪费等。By implementing the embodiments of the present invention, the host can obtain the attribute information of the data to be operated according to actual needs, and then generate a data operation request and send it to the client or forward it to the object storage device through the client. It is convenient for the client or the object storage device to perform storage management on the operation data according to the attribute information of the data to be operated, so as to implement storage according to the attribute characteristics of the data, reduce the performance loss of the disk, and avoid waste of storage resources.
在一些可能的实施方式中,数据操作请求可为数据读IO请求。相应地,待操作数据的属性信息可包括待读取数据的读取粒度和/或待读取数据对应的读取地址的读取信息,该读取信息具体可为读取频率或读取类型。其中,该读取粒度用于指示包括待读取数据在内的预读数据的大小。该读取信息用于指示单位时间内待读取地址发生数据读取的频率。In some possible implementations, the data operation request may be a data read IO request. Accordingly, the attribute information of the data to be operated may include the read granularity of the data to be read and / or the read information of the read address corresponding to the data to be read, and the read information may specifically be the read frequency or read type . The read granularity is used to indicate the size of the read-ahead data including the data to be read. The read information is used to indicate how often data is read from the address to be read in a unit time.
在一些可能的实施方式中,数据操作请求可为数据写IO请求。相应地,待操作数据的属性信息包括待写入数据的写入粒度和/或待写入数据对应的待写入地址的写入信息,该写入新具体可为写入频率或写入类型。其中,该写入粒度用于指示待写入数据存储时采用的存储粒度。写入信息用于指示单位时间内待写入地址发生数据写入的频率。In some possible implementations, the data operation request may be a data write IO request. Correspondingly, the attribute information of the data to be operated includes the writing granularity of the data to be written and / or the writing information of the address to be written corresponding to the data to be written. The writing new may specifically be a writing frequency or a writing type. . The write granularity is used to indicate a storage granularity used when data to be written is stored. The write information is used to indicate how often data is written to the address to be written in a unit time.
第四方面,本发明实施例公开提供了一种数据处理方法,所述方法包括:客户端接收主机发送的数据写IO请求,该数据写IO请求中包括数据完整性域DIF,DIF中承载有待写入数据的属性信息。相应地,客户端根据待写入数据的属性信息,为待写入数据配置对应的条带信息,所述条带信息包括待写入数据存储时使用的至少一个条带单元以及每个条带单元的物理地址。客户端根据条带信息,将携带有待写入数据的部分数据以及物理地址的条带单元发送给对应的对象存储设备。According to a fourth aspect, an embodiment of the present invention provides a data processing method. The method includes: a client receives a data write IO request sent by a host, and the data write IO request includes a data integrity field DIF, and the DIF bears pending data. The attribute information of the written data. Correspondingly, the client configures corresponding stripe information for the data to be written according to the attribute information of the data to be written. The stripe information includes at least one stripe unit used for the data to be written and each stripe. The physical address of the unit. The client sends the stripe unit carrying the partial data to be written and the physical address to the corresponding object storage device according to the stripe information.
在一些可能的实施例中,待写入数据的属性信息包括待写入数据的写入粒度。相应地,客户端可为待写入数据配置条带单元的大小与该写入粒度匹配的条带,该条带的信息(即条带信息)包括待写入数据存储时的至少一个条带单元以及每个条带单元各自的物理地址。每个条带单元用于存储待写入数据中的部分数据。换句话说,客户端选取条带单元与写入粒度相同的条带,以存储待写入数据,有利于提升磁盘的利用率。In some possible embodiments, the attribute information of the data to be written includes a writing granularity of the data to be written. Correspondingly, the client can configure a stripe whose size of the stripe unit matches the write granularity for the data to be written. The information of the stripe (that is, the stripe information) includes at least one stripe when the data to be written is stored. The unit and the physical address of each stripe unit. Each stripe unit is used to store part of the data to be written. In other words, the client selects the stripe unit with the same write granularity to store the data to be written, which is beneficial to improving the utilization of the disk.
在一些可能的实施方式中,待写入数据的属性信息包括待写入数据对应的待写入 地址的写入信息,用于指示单位时间内待写入地址发生数据写入的频率。相应地,客户端可为待写入数据配置与该写入信息所指示的频率相匹配的条带。该写入类型具体可为写入频率或写入类型。换句话说,客户端可将同一写入类型或者位于同一写入频率范围的待写入数据存储到同一条带中。In some possible implementation manners, the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written, and is used to indicate how often data is written to the address to be written in a unit time. Accordingly, the client can configure the data to be written with stripes that match the frequency indicated by the write information. The writing type may specifically be a writing frequency or a writing type. In other words, the client can store the data to be written in the same write type or in the same write frequency range into the same stripe.
第五方面,本发明实施例提供了一种数据处理装置(具体可为对象存储设备),包括通信单元和处理单元,其中:In a fifth aspect, an embodiment of the present invention provides a data processing apparatus (specifically, an object storage device), including a communication unit and a processing unit, where:
所述通信单元,用于接收数据读IO请求,所述数据读IO请求包括数据完整性域DIF,所述DIF用于承载待读取数据的属性信息;The communication unit is configured to receive a data read IO request, where the data read IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of data to be read;
所述处理单元,用于根据所述待读取数据的属性信息,对所述待读取数据进行处理。The processing unit is configured to process the data to be read according to attribute information of the data to be read.
在一些可能的实施方式中,所述待读取数据的属性信息包括待读取数据的读取粒度,用于指示包括所述待读取数据在内的预读数据的大小。所述处理单元具体用于在所述预读数据的大小大于或等于第一阈值时,读取包括所述待读取数据在内的预读数据,并将所述预读数据发送给客户端,以缓存到所述客户端的内存中;或者,在所述预设数据的大小小于第一阈值时,读取所述待读取数据,并将所述待读取数据发送至主机。In some possible implementation manners, the attribute information of the data to be read includes a read granularity of the data to be read, and is used to indicate a size of the pre-read data including the data to be read. The processing unit is specifically configured to read pre-read data including the data to be read when the size of the pre-read data is greater than or equal to a first threshold, and send the pre-read data to a client To cache into the memory of the client; or when the size of the preset data is less than a first threshold, read the data to be read and send the data to be read to the host.
在一些可能的实施方式中,所述待读取数据的属性信息包括所述待读取数据对应的待读取地址的读取信息,所述读取信息用于指示单位时间内所述待读取地址发生数据读取的频率。所述处理单元具体用于当所述读取信息为第一读取信息时,将所述待读取数据写到所述对象存储设备的非易失性缓存中;或者,当所述读取信息为第二读取信息时,将所述待读取数据写到所述对象存储设备的非易失性缓存中,并在所述所述对象存储设备的非易失性缓存中设置过期时长,以清除所述非易失性缓存中存储时长超过所述过期时长的数据;其中,所述第一读取信息所指示的频率大于所述第二读取信息所指示的频率。In some possible implementation manners, the attribute information of the data to be read includes read information of a to-be-read address corresponding to the data to be read, and the read information is used to indicate the unit of time to be read The frequency at which data is read from the address. The processing unit is specifically configured to write the data to be read into a non-volatile cache of the object storage device when the read information is first read information; or, when the read information is When the information is the second read information, the data to be read is written to a non-volatile cache of the object storage device, and an expiration period is set in the non-volatile cache of the object storage device To clear data stored in the non-volatile cache with a duration exceeding the expiration duration; wherein the frequency indicated by the first read information is greater than the frequency indicated by the second read information.
关于本发明实施例中未示出或未描述的内容,可参见前述第一方面所述实施例中的相关阐述,这里不做赘述。For the content that is not shown or described in the embodiment of the present invention, reference may be made to the related description in the embodiment described in the first aspect, and details are not described herein.
第六方面,本发明实施例提供了另一种数据处理装置(具体可为对象存储设备),包括通信单元和处理单元,其中:According to a sixth aspect, an embodiment of the present invention provides another data processing apparatus (which may specifically be an object storage device), including a communication unit and a processing unit, where:
所述通信单元,用于接收数据写IO请求,所述数据写IO请求包括数据完整性域DIF,所述DIF用于承载待写入数据的属性信息;The communication unit is configured to receive a data write IO request, where the data write IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of data to be written;
所述处理单元,用于根据所述待写入数据的属性信息,对所述待写入数据进行处理。The processing unit is configured to process the data to be written according to attribute information of the data to be written.
在一些可能的实施方式中,所述待写入数据的属性信息包括所述待写入数据对应的待写入地址的写入信息,所述写入信息用于指示单位时间内所述待写入地址发生数据写入的频率。所述处理单元具体用于当所述写入信息为第一写入信息,所述对象存储设备将所述待写入数据存储到所述对象存储设备的非易失性缓存中;或者,当所述写入信息为第二写入信息,所述对象存储设备将所述待写入数据存储到所述对象存储设备的硬盘中;其中,所述第一写入信息所指示的频率大于所述第二写入信息所指示的频率。In some possible implementation manners, the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written, and the write information is used to indicate the unit of time to be written The frequency at which data is written to the incoming address. The processing unit is specifically configured to: when the write information is first write information, the object storage device stores the data to be written into a non-volatile cache of the object storage device; or, when The write information is second write information, and the object storage device stores the data to be written in a hard disk of the object storage device; wherein the frequency indicated by the first write information is greater than The frequency indicated by the second write information is described.
在一些可能的实施方式中,所述待写入数据的属性信息包括待写入数据的写入粒度,用于指示所述待写入数据存储时采用的存储粒度。客户端接收所述数据写IO请求,根据所述待写入数据的属性信息,为所述待写入数据配置对应的条带信息,所述条带信息包括所述待写入数据存储时使用的条带单元以及所述条带单元的物理地址;所述客户端根据所述条带信息,将携带有所述待写入数据以及所述物理地址在内的条带单元发送给所述通信单元;所述通信单元接收所述客户端发送的所述携带有所述待写入数据以及所述物理地址在内的条带单元。相应地,所述处理单元具体用于按照所述条带单元的物理地址,将所述待写入数据存储到所述对象存储设备的硬盘中。In some possible implementation manners, the attribute information of the data to be written includes a writing granularity of the data to be written, and is used to indicate a storage granularity used when the data to be written is stored. The client receives the data write IO request, and configures corresponding stripe information for the data to be written according to the attribute information of the data to be written. The stripe information includes the data to be used when the data to be written is stored. The stripe unit and the physical address of the stripe unit; the client sends the stripe unit carrying the data to be written and the physical address to the communication according to the stripe information A unit; the communication unit receives the stripe unit carrying the data to be written and the physical address sent by the client. Accordingly, the processing unit is specifically configured to store the data to be written into a hard disk of the object storage device according to a physical address of the stripe unit.
在一些可能的实施方式中,所述处理单元还用于根据所述待写入数据的写入粒度,创建所述待写入数据的存储映射关系,所述存储映射关系包括所述待写入数据存储时的所述待写入地址和所述物理地址之间的映射关系。In some possible implementation manners, the processing unit is further configured to create a storage mapping relationship of the data to be written according to a writing granularity of the data to be written, where the storage mapping relationship includes the data to be written The mapping relationship between the address to be written and the physical address during data storage.
关于本发明实施例中未示出或未描述的内容,可参见前述第二方面所述实施例中的相关阐述,这里不做赘述。Regarding the content that is not shown or described in the embodiment of the present invention, reference may be made to the related description in the embodiment described in the second aspect, and details are not described herein.
第七方面,本发明实施例提供了另一种数据处理装置(具体可为主机),包括通信单元和处理单元,其中:In a seventh aspect, an embodiment of the present invention provides another data processing device (which may specifically be a host), including a communication unit and a processing unit, where:
所述处理单元,用于获取待操作数据的属性信息;The processing unit is configured to obtain attribute information of data to be operated;
所述通信单元,用于向客户端发送数据操作请求,所述数据操作请求包括数据完整性域DIF,所述DIF用于承载所述待操作数据的属性信息。The communication unit is configured to send a data operation request to a client, where the data operation request includes a data integrity field DIF, and the DIF is used to carry attribute information of the data to be operated.
在一些可能的实施方式中,在所述数据操作请求为数据读IO请求时,所述待操作数据的属性信息包括待读取数据的读取粒度和/或待读取数据对应的待读取地址的读取信息。其中,所述待读取数据的读取粒度用于指示包括所述待读取数据在内的预读数据的大小;所述待读取地址的读取信息用于指示单位时间内所述待读取地址发生数据读取的频率。In some possible implementation manners, when the data operation request is a data read IO request, the attribute information of the data to be operated includes the read granularity of the data to be read and / or the data to be read corresponding to the data to be read Address read information. The read granularity of the data to be read is used to indicate the size of the pre-read data including the data to be read; the read information of the address to be read is used to indicate the unit of time to be read. The frequency at which data is read from the read address.
在一些可能的实施方式中,在所述数据操作请求为数据写IO请求时,所述待操作数据的属性信息包括待写入数据的写入粒度和/或待写入数据对应的待写入地址的写入信息。其中,所述待写入数据的写入粒度用于指示所述待写入数据存储时采用的存储粒度;所述待写入地址的写入信息用于指示单位时间内所述待写入地址发生数据写入的频率。In some possible implementation manners, when the data operation request is a data write IO request, the attribute information of the data to be operated includes a writing granularity of data to be written and / or a data to be written corresponding to the data to be written Address write information. The write granularity of the data to be written is used to indicate the storage granularity used when the data to be written is stored; the write information of the address to be written is used to indicate the address to be written in a unit time. How often data is written.
关于本发明实施例中未示出或未描述的内容,可参见前述第三方面所述实施例中的相关阐述,这里不做赘述。For the content that is not shown or described in the embodiment of the present invention, reference may be made to related descriptions in the embodiment described in the third aspect, and details are not described herein.
第八方面,本发明实施例提供了一种对象存储设备,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法。第九方面,本发明实施例提供了又一种对象存储设备,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第二方面或第二方面的任意可能的实施方式中所描述的方法。In an eighth aspect, an embodiment of the present invention provides an object storage device, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; a communication interface for receiving and sending data; A memory for storing instructions; a processor for calling instructions in the memory to execute the method described in the first aspect or any possible implementation manner of the first aspect. In a ninth aspect, an embodiment of the present invention provides another object storage device, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; and the communication interface is used to receive and send data. A memory for storing instructions; a processor for calling instructions in the memory to execute the method described in the second aspect or any possible implementation manner of the second aspect.
第十方面,本发明实施例提供了一种主机,包括:处理器,存储器,通信接口和 总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第三方面或第三方面的任意可能的实施方式中所描述的方法。第十一方面,本发明实施例提供了一种客户端,包括:处理器,存储器,通信接口和总线;处理器、通信接口、存储器通过总线相互通信;通信接口,用于接收和发送数据;存储器,用于存储指令;处理器,用于调用存储器中的指令,执行上述第四方面或第四方面的任意可能的实施方式中所描述的方法。According to a tenth aspect, an embodiment of the present invention provides a host, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; a communication interface for receiving and sending data; a memory, For storing instructions; a processor for calling instructions in the memory to execute the method described in the third aspect or any possible implementation manner of the third aspect. According to an eleventh aspect, an embodiment of the present invention provides a client, including: a processor, a memory, a communication interface, and a bus; the processor, the communication interface, and the memory communicate with each other through the bus; a communication interface for receiving and sending data; The memory is configured to store instructions; the processor is configured to call the instructions in the memory and execute the method described in the fourth aspect or any possible implementation manner of the fourth aspect.
第十二方面,提供了一种计算机非瞬态(non-transitory)存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第一方面或第一方面的任意可能的实施方式中所描述的方法的指令。In a twelfth aspect, a computer non-transitory storage medium is provided. The computer non-transitory storage medium stores program code for data processing. The program code includes instructions for performing the first aspect described above or the method described in any possible implementation of the first aspect.
第十三方面,提供了一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第二方面或第二方面的任意可能的实施方式中所描述的方法的指令。In a thirteenth aspect, a computer non-transitory storage medium is provided, where the computer non-transitory storage medium stores program code for data processing. The program code includes instructions for performing the second aspect described above or the method described in any possible implementation of the second aspect.
第十四方面,提供了一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第三方面或第三方面的任意可能的实施方式中所描述的方法的指令。In a fourteenth aspect, a computer non-transitory storage medium is provided, where the computer non-transitory storage medium stores program code for data processing. The program code includes instructions for performing the third aspect or the method described in any possible implementation manner of the third aspect.
第十五方面,提供了一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储了用于数据处理的程序代码。所述程序代码包括用于执行上述第四方面或第四方面的任意可能的实施方式中所描述的方法的指令。In a fifteenth aspect, a computer non-transitory storage medium is provided, where the computer non-transitory storage medium stores program code for data processing. The program code includes instructions for performing the fourth aspect or the method described in any possible implementation of the fourth aspect.
以上存储介质可以为非易失性的。The above storage medium may be non-volatile.
第十六方面,提供了一种芯片产品,以执行上述第一方面或第一方面的任意可能的实施方式中的方法。In a sixteenth aspect, a chip product is provided to execute the first aspect or the method in any possible implementation manner of the first aspect.
第十七方面,提供了一种芯片产品,以执行上述第二方面或第二方面的任意可能的实施方式中的方法。In a seventeenth aspect, a chip product is provided to execute the second aspect or the method in any possible implementation manner of the second aspect.
第十八方面,提供了一种芯片产品,以执行上述第三方面或第三方面的任意可能的实施方式中的方法。In an eighteenth aspect, a chip product is provided to execute the third aspect or the method in any possible implementation manner of the third aspect.
第十九方面,提供了一种芯片产品,以执行上述第四方面或第四方面的任意可能的实施方式中的方法。In a nineteenth aspect, a chip product is provided to execute the fourth aspect or the method in any possible implementation manner of the fourth aspect.
通过实施本发明实施例,能够解决现有分布式存储系统中存在的资源浪费和性能损失的问题。By implementing the embodiments of the present invention, the problems of resource waste and performance loss in the existing distributed storage system can be solved.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。In order to explain the technical solutions in the embodiments of the present invention or the prior art more clearly, the drawings used in the embodiments or the description of the prior art will be briefly introduced below.
图1是本发明实施例提供的一种数据处理系统的网络框架示意图。FIG. 1 is a schematic diagram of a network framework of a data processing system according to an embodiment of the present invention.
图2是本发明实施例提供的一种数据处理方法的流程示意图。FIG. 2 is a schematic flowchart of a data processing method according to an embodiment of the present invention.
图3是本发明实施例提供的一种数据操作请求的格式示意图。FIG. 3 is a schematic diagram of a format of a data operation request according to an embodiment of the present invention.
图4是本发明实施例提供的另一种数据处理方法的流程示意图。FIG. 4 is a schematic flowchart of another data processing method according to an embodiment of the present invention.
图5是本发明实施例提供的另一种数据处理方法的流程示意图。FIG. 5 is a schematic flowchart of another data processing method according to an embodiment of the present invention.
图6是本发明实施例提供的一种数据处理装置的结构示意图。FIG. 6 is a schematic structural diagram of a data processing apparatus according to an embodiment of the present invention.
图7是本发明实施例提供的另一种数据处理设备的结构示意图。FIG. 7 is a schematic structural diagram of another data processing device according to an embodiment of the present invention.
具体实施方式detailed description
下面将结合本发明的附图,对本发明实施例中的技术方案进行详细描述。The technical solutions in the embodiments of the present invention will be described in detail below with reference to the accompanying drawings of the present invention.
首先,介绍本申请涉及的一些技术术语。First, some technical terms related to this application are introduced.
逻辑块地址(logical block address,LBA),也名逻辑地址或相对地址。是指存储在磁盘或磁带上的数据块所具有的用于检索或重写的地址。也可指在具有地址变换功能的计算设备中,访问指令给出的地址(或操作数)叫逻辑地址。Logical block address (LBA), also called logical address or relative address. The address that a block of data stored on disk or tape has for retrieval or rewriting. It can also mean that in a computing device with an address conversion function, the address (or operand) given by the access instruction is called a logical address.
物理块地址(physical block address,LBA),也名物理地址。是指中央处理器(central processing unit,CPU)地址总线传来用于寻址的地址。其中,物理地址通常是映射到内存或存储器上的。在具有地址变换功能的计算设备中,通过寻址方式的计算或变换可将逻辑地址转换为存储器中的实际有效地址(即物理地址)。Physical block address (LBA), also known as physical address. Refers to the address from the central processing unit (CPU) address bus for addressing. Among them, the physical address is usually mapped to memory or storage. In a computing device having an address conversion function, a logical address can be converted into an actual effective address (ie, a physical address) in a memory through calculation or conversion in an addressing manner.
条带(stripe),是把连续的数据分割成相同大小的数据块,把每段数据分布写入阵列中的不同磁盘上的方法。其中,影响条带效果的参数有两个:条带深度和条带大小。条带深度是指同时可以并行读或写的条带数量。条带大小(stripe size)是指写到每个磁盘上的数据块的大小。本申请下文将举例说明。Stripe is a method of dividing continuous data into data blocks of the same size and distributing each piece of data to different disks in the array. Among them, there are two parameters that affect the band effect: band depth and band size. Stripe depth refers to the number of stripes that can be read or written in parallel at the same time. The stripe size refers to the size of the data block written to each disk. This application will be exemplified below.
为解决现有数据存储方案中存在的性能损失以及资源浪费等问题,本申请提出一种数据处理的方法、所述方法适用的网络框架以及相关设备。首先,参见图1是本发明实施例提供的一种数据处理系统的网络框架示意图。如图1所示的数据处理系统100包括应用软件102、虚拟磁盘接口104、客户端106、元数据控制器108(meta data controller,MDC)以及对象存储设备110(object-based storage device,OSD)。其中,In order to solve the problems of performance loss and resource waste in the existing data storage solutions, this application proposes a data processing method, a network framework to which the method is applicable, and related equipment. First, FIG. 1 is a schematic diagram of a network framework of a data processing system according to an embodiment of the present invention. The data processing system 100 shown in FIG. 1 includes application software 102, a virtual disk interface 104, a client 106, a metadata controller 108 (metadata controller, MDC), and an object-based storage device 110 (OSD). . among them,
应用软件102根据自身的实际需求可向虚拟磁盘下发数据读或写输入输出(input output,IO)请求,该数据读/写IO请求中携带有待读取/写入的数据的大小以及该数据存储的逻辑块地址(logical block address,LBA),下文简称逻辑地址等信息。The application software 102 may send a data read or write input / output (IO) request to the virtual disk according to its actual needs. The data read / write IO request carries the size of the data to be read / written and the data. Stored logical block address (logical block address, LBA), hereinafter referred to as logical address and other information.
虚拟磁盘接口104可为虚拟块存储(virtual blcok storage,VBS)管理组件提供的接口,用于访问虚拟磁盘。具体的,应用软件102通过虚拟磁盘接口104向相应虚拟磁盘发送数据读/写IO请求,以从相应地磁盘中读取或写入数据。在实际应用中,所述虚拟磁盘接口104和所述应用软件102通常部署在同一物理设备(例如主机或服务器等)上。元数据控制器108负责管理对象存储设备110,该对象存储设备110的数量可以是一个或多个,图示以n个为例示出,n为正整数。在分布式数据存储系统中,对象存储设备110的数量通常是多个。The virtual disk interface 104 may be an interface provided by a virtual block storage (VBS) management component for accessing a virtual disk. Specifically, the application software 102 sends a data read / write IO request to the corresponding virtual disk through the virtual disk interface 104 to read or write data from the corresponding disk. In practical applications, the virtual disk interface 104 and the application software 102 are usually deployed on the same physical device (for example, a host or a server). The metadata controller 108 is responsible for managing the object storage devices 110. The number of the object storage devices 110 may be one or more. The figure takes n as an example, and n is a positive integer. In a distributed data storage system, the number of object storage devices 110 is usually multiple.
数据处理系统100也可以分为两个部分部署,应用软件102和虚拟磁盘接口104部署在客户端的设备上,客户端106、元数据控制器108、对象存储设备110部署在云服务提供商的数据中心内。云服务提供商通过客户端106、元数据控制器108、对象存储设备110向客户提供对象存储服务。客户通过应用软件102和虚拟磁盘接口104对对象存储服务进行访问。The data processing system 100 can also be divided into two parts. The application software 102 and the virtual disk interface 104 are deployed on the client device. The client 106, the metadata controller 108, and the object storage device 110 are deployed on the data of the cloud service provider. In the center. The cloud service provider provides the object storage service to the customer through the client 106, the metadata controller 108, and the object storage device 110. The client accesses the object storage service through the application software 102 and the virtual disk interface 104.
具体的,元数据控制器108可负责维护对象存储设备110与客户端106之间的连 接状态,该连接状态包括在线状态和离线状态。所述在线状态指对象存储设备110与客户端106之间能够正常通信,建立有通信连接关系。所述离线状态指对象存储设备110与客户端106之间无通信连接,即客户端无法将数据存储到离线状态的对象存储设备中。可选地,元数据控制器108还可根据一定的部署策略来部署对象存储设备110,例如分区部署策略、均衡负载部署策略等等,这里不做限定。相应地,元数据控制器108可获知当前与客户端106通信的每个对象存储设备OSD的信息,例如OSD的网络协议地址(internet protocol address,IP)、OSD的标识等等。可选地,元数据控制器108可将对象存储设备110的信息预先发送给客户端106,便于客户端106接收到数据读/写IO请求后,能依据该请求中的LBA逻辑地址计算出相应地对象存储设备110,这里不做详述。进一步地,客户端可依据该OSD的信息(例如标识、IP地址等)建立客户端106与该对象存储设备110之间的通信,例如客户端106将数据读/写IO请求转发给该对象存储设备等。Specifically, the metadata controller 108 may be responsible for maintaining a connection state between the object storage device 110 and the client 106, and the connection state includes an online state and an offline state. The online status indicates that the object storage device 110 and the client 106 can communicate normally, and a communication connection relationship is established. The offline state means that there is no communication connection between the object storage device 110 and the client 106, that is, the client cannot store data to the object storage device in the offline state. Optionally, the metadata controller 108 may also deploy the object storage device 110 according to a certain deployment strategy, such as a partition deployment strategy, a load balancing deployment strategy, and the like, which are not limited herein. Correspondingly, the metadata controller 108 can obtain information about the OSD of each object storage device currently communicating with the client 106, such as the OSD's Internet protocol address (IP), the ID of the OSD, and so on. Optionally, the metadata controller 108 may send the information of the object storage device 110 to the client 106 in advance, so that the client 106 can calculate the corresponding information according to the LBA logical address in the request after receiving the data read / write IO request The local object storage device 110 is not described in detail here. Further, the client may establish communication between the client 106 and the object storage device 110 according to the OSD information (for example, identification, IP address, etc.). For example, the client 106 forwards data read / write IO requests to the object storage. Equipment, etc.
在实际应用中,元数据控制器108可单独部署到某个物理设备上,或者采用分布式部署到一个或多个物理设备上,并不做限定。In practical applications, the metadata controller 108 may be deployed on a certain physical device separately, or distributed to one or more physical devices without limitation.
客户端106可为软件模块,用于接收应用软件102通过虚拟磁盘接口104下发的数据读/写IO请求。进一步地,客户端106可根据该数据读/写IO请求为待读取/写入的数据配置相应地数据条带,以将该数据写入或存储到数据条带中。换句话说,本申请中数据采用条带的方式进行存储。可选地,客户端106还可采用预设算法计算该数据对应的纠错校验码(erasure code,EC)。所述预设算法为用户或系统自定义设置的,例如EC校验码算法等。关于如何计算EC校验码本申请这里不做详述,如何配置数据条带具体在本申请下文进行详述。The client 106 may be a software module for receiving a data read / write IO request issued by the application software 102 through the virtual disk interface 104. Further, the client 106 may configure a corresponding data strip for the data to be read / written according to the data read / write IO request to write or store the data into the data strip. In other words, the data in this application is stored in a stripe manner. Optionally, the client 106 may also use a preset algorithm to calculate an error correction code (EC) corresponding to the data. The preset algorithm is customized by a user or a system, such as an EC check code algorithm. How to calculate the EC check code is not described in detail in this application, and how to configure the data stripe will be described in detail later in this application.
可选地,客户端106还可将数据待存储的数据条带、EC校验码以及接收到的数据读/写IO请求一起或分别发送给相应地对象存储设备OSD。示例性地,客户端106获得数据待存储的数据条带以及EC校验码后,可将这两个信息新加入数据读/写IO请求中进行重新封装,并将重新封装后的数据读/写IO请求发送给对象存储设备,本申请不做限定。Optionally, the client 106 may also send the data strip to be stored, the EC verification code, and the received data read / write IO request together or separately to the corresponding object storage device OSD. Exemplarily, after the client 106 obtains the data stripe to be stored and the EC verification code, the client 106 may newly add these two pieces of information to the data read / write IO request for re-encapsulation, and re-encapsulate the data read / The write IO request is sent to the object storage device, which is not limited in this application.
相应地,对象存储设备110可接收数据读/写IO请求,并根据该请求进行相应数据的读取或写入。当对象存储设备110接收到数据读IO请求时,根据该请求中的LBA逻辑地址读取相应虚拟磁盘中的数据块以及元数据等。这里的元数据可指用于描述数据块的属性的数据,例如数据块存储的逻辑地址、物理地址、数据块的大小中的一个或者多个。相应地,当对象存储设备110接收到数据写IO请求后,可根据该请求中的LBA逻辑地址将数据写到相应地虚拟磁盘中。关于对象存储设备如何依据数据读/写IO请求进行相应地数据操作,具体在本申请下文进行详述。Accordingly, the object storage device 110 may receive a data read / write IO request and read or write corresponding data according to the request. When the object storage device 110 receives a data read IO request, it reads data blocks and metadata in the corresponding virtual disk according to the LBA logical address in the request. The metadata here may refer to data used to describe the attributes of the data block, such as one or more of a logical address, a physical address, and a size of the data block. Correspondingly, after receiving the data write IO request, the object storage device 110 may write the data to the corresponding virtual disk according to the LBA logical address in the request. How the object storage device performs corresponding data operations according to the data read / write IO request will be detailed in the following in this application.
在实际应用中,应用软件102、虚拟磁盘接口104以及客户端106通常部署到一个物理设备上。对象存储设备110部署到另外的物理设备上。可选地,对象存储设备110也可和应用软件102以及客户端106等部署到同一物理设备上。元数据控制器108被单独部署到另外的物理设备上。关于图1中各部分的部署,本申请不做限定。In practical applications, the application software 102, the virtual disk interface 104, and the client 106 are usually deployed on a physical device. The object storage device 110 is deployed on another physical device. Optionally, the object storage device 110 may also be deployed on the same physical device as the application software 102, the client 106, and the like. The metadata controller 108 is separately deployed on another physical device. Regarding the deployment of each part in FIG. 1, this application is not limited.
在可选实施例中,对象存储设备110中包括有缓存以及磁盘。关于缓存和磁盘的数量不做限定,图示以1个缓存和1个磁盘为例。所述磁盘包括但不限于虚拟磁盘或 物理磁盘等。为避免多个进程访问同一磁盘,导致发生磁盘冲突的问题,本申请采用条带技术将IO负载(数据)均衡到各对象存储设备的磁盘中。下面以n个对象存储设备为例进行数据存储的相关说明。即是,n个对象存储设备各自的磁盘都提供相应地存储空间(条带单元)用于存储该数据中的一小部分。如图所示,可将数据分为n份,得到n个数据块,每个数据块包括数据中的一小部分数据。相应地,n个对象存储设备中每个对象存储单元可提供一个条带单元来存储一份数据块,即可获得n个条带单元,以对应存储n个数据块。如图所示,对象存储设备1可提供条带单元1来存储第一个数据块(数据块1),对象存储设备2可提供条带单元2来存储第二个数据块(数据块2)。依次类推,对象存储设备n可提供条带单元n来存储第n个数据块(数据块n)。换句话说,这里用于存储整份数据的条带由n个条带单元组成,该n个条带单元来自n个对象存储设备,即由n个磁盘中每个磁盘提供的一个条带单元组成。In an alternative embodiment, the object storage device 110 includes a cache and a disk. There are no restrictions on the number of caches and disks. The illustration uses one cache and one disk as an example. The disk includes, but is not limited to, a virtual disk or a physical disk. In order to avoid the problem that multiple processes access the same disk and cause disk conflicts, this application uses striping technology to balance the IO load (data) to the disks of each object storage device. The following uses the n object storage devices as examples for data storage related description. That is, each disk of each of the n object storage devices provides a corresponding storage space (strip unit) for storing a small portion of the data. As shown in the figure, the data can be divided into n parts to obtain n data blocks, each data block includes a small part of the data. Correspondingly, each object storage unit in the n object storage devices may provide a stripe unit to store one data block, and n stripe units may be obtained to correspondingly store n data blocks. As shown in the figure, the object storage device 1 can provide a stripe unit 1 to store a first data block (data block 1), and the object storage device 2 can provide a stripe unit 2 to store a second data block (data block 2). . By analogy, the object storage device n may provide a stripe unit n to store the nth data block (data block n). In other words, the stripe used to store the entire data here is composed of n stripe units from n object storage devices, that is, one stripe unit provided by each of the n disks. composition.
相应地,当某个对象存储设备获知到携带数据块的条带单元后,可根据该条带单元的物理地址,将该数据块存储到该条带单元上,即是将该数据块按照条带单元的物理地址写到或存储到自身的磁盘中。例如,以对象存储设备1为例,当其获知其上条带单元1需存储数据块1后,可根据条带单元1的物理地址,将数据块1写到条带单元1,即是写到自身的磁盘中。Correspondingly, when an object storage device learns a stripe unit carrying a data block, it can store the data block on the stripe unit according to the physical address of the stripe unit, that is, the data block is stored in the stripe. The physical address of the tape unit is written to or stored on its own disk. For example, taking the object storage device 1 as an example, when it learns that the stripe unit 1 needs to store the data block 1, it can write the data block 1 to the stripe unit 1 according to the physical address of the stripe unit 1, that is, write To its own disk.
同样地,当n个对象存储设备各自获知到自身条带单元需存储的数据块后,可按照对应条带单元的物理地址来存储相应地数据块。当n个对象存储设备均完成各自的数据块存储时,即可完成整份数据的存储。Similarly, when each of the n object storage devices knows the data block to be stored in its own stripe unit, it can store the corresponding data block according to the physical address of the corresponding stripe unit. When the n object storage devices have completed their respective data block storage, the entire data can be stored.
其中,对象存储设备中的缓存用于临时或短暂性存放数据。可选地,该缓存中还可设置定时器,当该缓存中存储的数据超过预设过期时长后,可对该缓存中的数据进行处理,例如清除该缓存中的数据或者将该缓存中的数据写到硬盘中等等。The cache in the object storage device is used to temporarily or temporarily store data. Optionally, a timer may be set in the cache, and when the data stored in the cache exceeds a preset expiration time, the data in the cache may be processed, such as clearing the data in the cache or deleting the data in the cache. Write data to hard disk and so on.
接着,请参见图2是本发明实施例提供的一种数据处理方法的流程示意图。如图2所示的数据处理方法包括如下实施步骤:Next, please refer to FIG. 2, which is a schematic flowchart of a data processing method according to an embodiment of the present invention. The data processing method shown in FIG. 2 includes the following implementation steps:
步骤S202、主机获取待操作数据的属性信息,根据待操作数据的属性信息生成数据操作请求。Step S202: The host obtains attribute information of the data to be operated, and generates a data operation request according to the attribute information of the data to be operated.
步骤S204、主机向客户端发送数据操作请求。相应地,客户端接收该数据操作请求,并将其转发给对象存储设备。Step S204: The host sends a data operation request to the client. Accordingly, the client receives the data operation request and forwards it to the object storage device.
本申请中,主机是指运行有应用软件的物理设备。具体的,主机中的应用软件根据实际需求可获得待操作数据的属性信息。进一步地,主机可生成数据操作请求,并将该待操作数据的属性信息封装到数据操作请求中的数据完整性域(date inyegrity field,DIF)中。进而将数据操作请求发送给客户端,以通过客户端转发给对象存储设备。In this application, the host refers to a physical device running application software. Specifically, the application software in the host can obtain attribute information of the data to be operated according to actual requirements. Further, the host may generate a data operation request, and encapsulate the attribute information of the data to be operated in a data integrity field (DIF) in the data operation request. The data operation request is further sent to the client for forwarding to the object storage device through the client.
其中,这里的待操作数据可包括但不限于待读取数据或者待写入数据等。相应地,待操作数据的属性信息具体可指待写入数据的属性信息、或待读取数据的属性信息等。关于待操作数据的属性信息具体在下文阐述。The data to be operated here may include, but is not limited to, data to be read or data to be written. Accordingly, the attribute information of the data to be operated may specifically refer to the attribute information of the data to be written or the attribute information of the data to be read. The attribute information about the data to be operated is explained in detail below.
步骤S206、对象存储设备获取数据操作请求,所述数据操作请求包括待操作数据的属性信息,所述属性信息用于描述所述待操作数据的属性。Step S206: The object storage device obtains a data operation request, where the data operation request includes attribute information of the data to be operated, and the attribute information is used to describe an attribute of the data to be operated.
步骤S208、所述对象存储设备根据所述待操作数据的属性信息,对所述待操作数 据进行处理。Step S208: The object storage device processes the data to be operated according to the attribute information of the data to be operated.
本申请中,所述数据操作请求具体可为数据读IO请求或者数据写IO请求。当所述数据操作请求为数据读IO请求时,所述待操作数据具体可为待读取数据。当所述数据操作请求为数据写IO请求时,所述待操作数据具体可为待写入数据。In this application, the data operation request may specifically be a data read IO request or a data write IO request. When the data operation request is a data read IO request, the data to be operated may specifically be data to be read. When the data operation request is a data write IO request, the data to be operated may specifically be data to be written.
所述数据操作请求中包括用户或系统自定义设置的标志字段,该标志字段用于指示所述待操作数据的属性信息,例如待操作数据的大小、数据IO粒度、待操作数据的逻辑地址、该逻辑地址涉及的读取信息(例如读取频率或者读取类型)以及写入信息(例如写入频率或写入类型)中的任意一个或多个,具体在下文进行详述。The data operation request includes a flag field set by the user or the system, and the flag field is used to indicate attribute information of the data to be operated, such as the size of the data to be operated, the granularity of the data IO, the logical address of the data to be operated, Any one or more of the read information (for example, read frequency or read type) and write information (for example, write frequency or write type) involved in the logical address are described in detail below.
具体的,如图3示出一种数据操作请求的格式示意图。所述数据操作请求包括数据域和数据完整性域(date inyegrity field,DIF)。其中,所述数据域用于承载待传输的数据,这里具体可为待操作数据(待读取数据或待写入数据)。DIF域用于检测待传输的数据的完整性,如图所示DIF域包括校验区、版本区、应用软件区以及地址区。所述数据域和所述DIF域各自的大小具体可为用户或系统自定义设置的,例如采用512+8字节(bytes)、4096+8以及4096+64等几种存储方式等,本申请不做限定。其中,Specifically, FIG. 3 shows a schematic diagram of a format of a data operation request. The data operation request includes a data domain and a data integrity field (DIF). The data field is used to carry data to be transmitted, which may specifically be data to be operated (data to be read or data to be written). The DIF field is used to check the integrity of the data to be transmitted. As shown in the figure, the DIF field includes a check area, a version area, an application software area, and an address area. The respective sizes of the data field and the DIF field can be customized by the user or the system. For example, several storage methods such as 512 + 8 bytes, 4096 + 8, and 4096 + 64 are used. No restrictions. among them,
校验区用于承载校验数据,例如循环冗余校验(cyclic redundancy check,CRC)数据等。校验区占用的字节大小可为用户或系统自定义设置的,例如2个字节。The check area is used to carry check data, such as cyclic redundancy check (CRC) data. The size of the bytes occupied by the check area can be set by the user or the system, such as 2 bytes.
版本区用于指示DIF的版本号,版本区占用的大小可为用户或系统自定义设置的,例如1个字节。The version area is used to indicate the version number of the DIF. The size occupied by the version area can be set by the user or the system, such as 1 byte.
地址区用于指示待操作数据对应所在的逻辑地址LBA。其占用的大小具体可为用户或系统自定义设置的,例如4个字节。The address area is used to indicate the logical address LBA where the data to be operated corresponds to. The size it occupies can be customized by the user or the system, such as 4 bytes.
应用软件区由保留字段以及LBA有效指示字段组成,所述应用软件区占用的大小具体可为用户或系统自定义设置的,例如图示以1个字节为例示出。LBA有效指示字段用于指示地址区承载的LBA逻辑地址是否有效。具体的,当LBA有效指示字段为第一预设字符(如1)时,则表示地址区中承载的LBA逻辑地址有效;当LBA有效指示字段为第二预设字符(如0)时,则表示地址区中承载的LBA逻辑地址无效。所述LBA有效指示字段占用的大小具体可为用户或系统自定义设置的,例如1个比特(bit)。The application software area is composed of a reserved field and an LBA effective indication field. The size occupied by the application software area can be specifically set by the user or the system. For example, the figure takes 1 byte as an example. The LBA valid indication field is used to indicate whether the LBA logical address carried in the address area is valid. Specifically, when the LBA valid indication field is the first preset character (such as 1), it means that the LBA logical address carried in the address area is valid; when the LBA valid indication field is the second preset character (such as 0), then Indicates that the LBA logical address carried in the address area is invalid. The size occupied by the LBA effective indication field may be specifically set by a user or a system, for example, 1 bit.
保留字段为待定义的字段,其占用的大小同样可为用户或系统自定义设置的,例如7bit等。本申请重新对保留字段进行定义,即将待操作数据的属性信息携带于保留字段中。具体的,所述保留字段包括但不限于数据IO粒度字段、数据写字段以及数据读字段中的任意一个或多个,其各自占用的大小以及位置可根据实际需求进行定义,本申请不做限定。其中,The reserved field is a field to be defined, and its occupied size can also be customized by the user or the system, such as 7bit. This application redefines the reserved fields, that is, the attribute information of the data to be operated is carried in the reserved fields. Specifically, the reserved fields include, but are not limited to, any one or more of a data IO granularity field, a data write field, and a data read field. The size and position of each of the reserved fields can be defined according to actual requirements, which is not limited in this application. . among them,
数据IO粒度字段,在不同的应用场景中该字段所表示的含义有所不同。具体的,在写数据应用场景中(即所述数据操作请求为数据写IO请求),数据IO粒度字段具体可为写入粒度字段,用于表示待操作数据被存储时采用的最小单位大小。换句话说,待存储数据在存储时被划分的最小单位粒度。所述存储粒度字段占用的大小以及位置具体可为用户或系统自定义设置的。示例性地,存储粒度字段占用3bit,其对应表示的写粒度有以下8种:512byte、1Kbyte、4Kbyte、8Kbyte、16Kbyte、32Kbyte、64Kbyte以及12Kbyte等。Data IO granularity field, which means different meanings in different application scenarios. Specifically, in a data write application scenario (that is, the data operation request is a data write IO request), the data IO granularity field may specifically be a write granularity field, which is used to indicate a minimum unit size used when data to be operated is stored. In other words, the minimum unit granularity of the data to be stored is divided during storage. The size and location occupied by the storage granularity field may be specifically set by a user or a system. Exemplarily, the storage granularity field occupies 3 bits, and the corresponding writing granularity has the following 8 types: 512byte, 1Kbyte, 4Kbyte, 8Kbyte, 16Kbyte, 32Kbyte, 64Kbyte, 12Kbyte, and so on.
在读数据应用场景中(即所述数据操作请求为数据读IO请求),数据IO粒度字段具体可为读取粒度字段,用于表示预读数据的大小,所述预读数据包括所述待操作数据。所述预读数据为即将读取的数据。示例性地,假设上层应用软件需读取1M的数据(即预读数据的大小为1M),每次应用软件支持发送的数据读IO请求的大小为1K,即每次应用软件下发的数据读IO请求所请求读取的数据的大小为1K。相应地,为完成1M数据的读取,应用软件需下发1000次数据读IO请求。然而本申请,可通过读取粒度字段来指示预读数据的大小,采用一次数据读IO请求即可完成预读数据的提前读取,节省时间,提升数据读取的高效性。In a data read application scenario (that is, the data operation request is a data read IO request), the data IO granularity field may specifically be a read granularity field, which is used to indicate the size of the read-ahead data, and the read-ahead data includes the pending operation. data. The pre-read data is data to be read. Exemplarily, suppose that the upper-layer application software needs to read 1M data (that is, the size of the pre-read data is 1M), and the size of the data read IO request sent by the application software each time is 1K, that is, the data issued by each application software The size of the data requested by the read IO request is 1K. Correspondingly, in order to complete the reading of 1M data, the application software needs to issue 1000 data read IO requests. However, in this application, the size of the read-ahead data can be indicated by reading the granularity field, and the read-ahead data can be read in advance by using a data read IO request, saving time and improving the efficiency of data reading.
数据写字段,用于表示待写入地址的写入信息,该待写入地址为待操作数据被写入时的地址,其具体可为LBA逻辑地址。所述写入信息包括但不限于写入类型或写入频率等。换句话说,数据写字段用于指示该待写入地址的写入类型或写入频率。具体的,所述数据写字段可用于反映单位时间内在所述待写入地址中写入数据的写入频率,即单位时间内待写入地址中发生数据写入的频率。A data write field is used to indicate write information of an address to be written. The address to be written is an address when data to be operated is written, and it may specifically be an LBA logical address. The writing information includes, but is not limited to, a writing type or a writing frequency. In other words, the data write field is used to indicate the write type or write frequency of the address to be written. Specifically, the data write field may be used to reflect a writing frequency of data written in the address to be written in a unit time, that is, a frequency of writing data in the address to be written in a unit time.
可选地,本申请中设备(具体可为客户端或对象存储设备)还可根据所述待写入地址的写入频率来获得该待写入地址的写入类型。示例性地,当所述待写入地址的写入频率位于第一阈值范围时,可认为或确定其对应的写入类型为第一写入类型,例如很快被覆盖写或经常被覆盖写等。当待写入地址的写入频率位于第二阈值范围时,可认为或确定其对应的写入类型为第二写入类型,例如很少被覆盖写等。所述第一阈值范围和所述第二阈值范围各自的上限值和下限值具体可为用户或系统自定义设置的,所述第一阈值范围的下限值大于或等于第二阈值范围的上限值。Optionally, the device (specifically, the client or the object storage device) in this application may also obtain the write type of the address to be written according to the write frequency of the address to be written. Exemplarily, when the writing frequency of the address to be written is in the first threshold range, the corresponding writing type may be considered or determined to be the first writing type, for example, it is quickly overwritten or often overwritten. Wait. When the writing frequency of the address to be written is in the second threshold range, the corresponding writing type may be considered or determined to be the second writing type, for example, it is rarely overwritten. The upper and lower limits of the first threshold range and the second threshold range may be specifically set by a user or a system. The lower limit of the first threshold range is greater than or equal to the second threshold range. The upper limit.
所述数据写字段占用的大小具体可为用户或系统根据实际需求进行设置的,例如2bit等等。同一待写入地址存在多次数据写入时会发生数据被覆盖的情况,即后写入的数据会覆盖前一次写入的数据。因此,待写入地址的写入频率或类型,也表示待写入地址发生数据覆盖写入的写入频率或类型。The size occupied by the data write field may be specifically set by a user or a system according to actual requirements, for example, 2 bits and the like. Data is overwritten when there is multiple data writes to the same address to be written, that is, data written later will overwrite data previously written. Therefore, the writing frequency or type of the address to be written also indicates the writing frequency or type of data overwriting in the address to be written.
数据读字段,用于表示待读取地址的读取信息。所述待读取地址为待操作数据读取时的地址,其具体可为LBA逻辑地址。所述读取信息包括但不限于待读取地址的读取类型或读取频率。具体的,所述数据读字段可用于反映单位时间内所述待读取地址发生数据读取的读取频率。The data read field is used to indicate the read information of the address to be read. The address to be read is an address when data to be operated is read, and it may specifically be an LBA logical address. The read information includes, but is not limited to, a read type or a read frequency of an address to be read. Specifically, the data read field may be used to reflect a read frequency of data read occurring at the address to be read in a unit time.
可选地,本申请设备(具体可为客户端或对象存储设备)还可根据所述待读取地址的读取频率来获得该待读取地址的读取类型。示例性地,当所述待读取地址的读取频率位于第三阈值范围时,可认为或确定其对应的读取类型为第一读取类型,例如经常读。当所述待读取地址的读取频率位于第四阈值范围时,可认为或确定其对应的读取类型为第二读取类型,例如即将读取多次或顺序读等。当所述待读取地址的读取频率位于第五阈值范围时,可认为或确定其对应的读取类型为第三类型,例如很少读或只读一次等。所述第三阈值范围、所述第四阈值范围以及所述第五阈值范围具体可为用户或系统自定义设置的。其中,所述第三阈值范围的下限值大于或等于所述第四阈值范围的上限值,所述第四阈值范围的下限值大于或等于所述第五阈值范围的上限值。Optionally, the device (specifically, a client or an object storage device) of the present application may also obtain the read type of the address to be read according to the read frequency of the address to be read. Exemplarily, when the read frequency of the address to be read is within a third threshold range, the corresponding read type may be considered or determined to be the first read type, such as frequent reads. When the read frequency of the address to be read is within the fourth threshold range, the corresponding read type may be considered or determined to be the second read type, such as to be read multiple times or sequentially. When the read frequency of the address to be read is in the fifth threshold range, the corresponding read type may be considered or determined to be the third type, such as rarely read or read only once. The third threshold range, the fourth threshold range, and the fifth threshold range may be specifically set by a user or a system. The lower limit of the third threshold range is greater than or equal to the upper limit of the fourth threshold range, and the lower limit of the fourth threshold range is greater than or equal to the upper limit of the fifth threshold range.
所述数据读字段占用的大小具体可为用户或系统自定义设置的,例如2bit等等。The size occupied by the data read field may be specifically set by a user or a system, such as 2 bits and the like.
下面结合本申请适用的两种应用场景,阐述本发明提出的数据存储方法涉及的相关实施例。首先,在写数据的应用场景中,参见图4是本发明实施例提出的另一种数据处理方法的流程示意图。请参见图4所示的方法包括如下实施步骤:The following describes related embodiments related to the data storage method provided by the present invention in combination with two application scenarios applicable to the present application. First, in an application scenario of writing data, referring to FIG. 4 is a schematic flowchart of another data processing method according to an embodiment of the present invention. The method shown in FIG. 4 includes the following implementation steps:
步骤S402、应用软件获取待写入数据的属性信息。Step S402: The application software obtains attribute information of data to be written.
步骤S404、应用软件向客户端发送数据写IO请求,所述数据写IO请求包括数据完整性域DIF,该DIF用于承载所述待写入数据的属性信息。相应地,客户端接收该数据写IO请求。Step S404: The application software sends a data write IO request to the client, where the data write IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of the data to be written. Accordingly, the client receives the data write IO request.
本申请中,应用软件(具体可为运行有应用软件的主机)可根据实际需求向客户端下发数据写IO请求,所述数据写IO请求中包括所述待写入数据的属性信息。具体的,所述待写入数据的属性信息承载于数据写IO请求中的DIF字段,所述待写入信息的属性信息可包括但不限于以下中的任一个或多个的组合:所述待写入数据对应的待写入地址(具体可为LBA逻辑地址)、所述待写入数据的大小以及所述待写入地址的写入信息、数据IO粒度等信息。相应地,客户端接收所述数据写IO请求。In this application, application software (specifically, a host computer running the application software) may send a data write IO request to a client according to actual requirements, and the data write IO request includes attribute information of the data to be written. Specifically, the attribute information of the data to be written is carried in a DIF field in the data write IO request, and the attribute information of the information to be written may include, but is not limited to, any one or more of the following combinations: the Information such as an address to be written (which may be an LBA logical address) corresponding to the data to be written, a size of the data to be written, writing information of the address to be written, and a data IO granularity. Accordingly, the client receives the data write IO request.
步骤S406、客户端根据待写入数据的属性信息,为待写入数据配置相应地条带信息,该条带信息包括待写入数据存储时使用的至少一个条带单元以及所述至少一个条带单元中每个条带单元的物理地址。Step S406: The client configures corresponding stripe information for the data to be written according to the attribute information of the data to be written. The stripe information includes at least one stripe unit used when the data to be written is stored and the at least one stripe unit. The physical address of each stripe unit in the stripe unit.
步骤S408、客户端根据所述条带信息,将所述至少一个条带单元以及该条带单元的物理地址对应发送给各个对象存储设备。其中,每个条带单元用于存储所述待写入数据中的一小部分数据。相应地,对象存储设备接收客户端发送的条带单元以及该条带单元的物理地址,该条带单元携带有待存储数据,待存储数据为所述待写入数据中的部分数据。可选地,该条带单元还携带有该条带单元的物理地址。Step S408: The client sends the at least one stripe unit and the physical address of the stripe unit to each object storage device correspondingly according to the stripe information. Each stripe unit is configured to store a small part of the data to be written. Correspondingly, the object storage device receives the stripe unit sent by the client and the physical address of the stripe unit. The stripe unit carries data to be stored, and the data to be stored is part of the data to be written. Optionally, the stripe unit also carries a physical address of the stripe unit.
步骤S410、所述对象存储设备根据所述待写入数据的属性信息,对所述待写入数据中的待存储数据进行处理。Step S410: The object storage device processes the data to be stored in the data to be written according to the attribute information of the data to be written.
步骤S406中,客户端接收数据写IO请求后,可根据所述数据写IO请求中所述待写入数据的属性信息,决定是否为所述待写入数据配置相应地数据条带,以存储所述待写入数据。具体的,当所述待写入数据的属性信息包括待写入数据对应的待写入地址的写入信息。所述写入信息具体可为写入频率或写入类型,其可用于指示单位时间内所述待写入地址发生数据写入的频率或频率范围。当所述写入信息为第一写入信息,用于指示单位时间内所述待写入地址发生数据写入的频率处于第一阈值范围,或者所述第一写入信息指示的写入类型为很快被覆盖写或经常被覆盖写等,客户端可放弃为待写入数据配置相应地条带信息。反之,当所述写入信息为第二写入信息,用于指示单位时间内所述待写入地址发生数据写入的频率处于第二阈值范围,或者所述第一写入信息指示的写入类型为很少被覆盖写等,客户端可为待写入数据配置相应地条带信息,具体在下文进行详述。其中,第一阈值范围的下限值大于或等于第二阈值范围的上限值。In step S406, after receiving the data write IO request, the client may determine whether to configure a corresponding data strip for the data to be written according to the attribute information of the data to be written in the data write IO request to store The data to be written. Specifically, when the attribute information of the data to be written includes write information of an address to be written corresponding to the data to be written. The writing information may specifically be a writing frequency or a writing type, which may be used to indicate a frequency or a frequency range in which data is written to the address to be written in a unit time. When the writing information is the first writing information, it is used to indicate that a frequency of writing data to the address to be written within a unit time is within a first threshold range, or a writing type indicated by the first writing information In order to be quickly overwritten or frequently overwritten, etc., the client may abandon the corresponding stripe information for the data to be written. Conversely, when the writing information is the second writing information, it is used to indicate that the frequency of data writing to the address to be written is within a second threshold range within a unit time, or the writing indicated by the first writing information The input type is rarely overwritten, etc. The client can configure corresponding stripe information for the data to be written, which will be described in detail below. The lower limit of the first threshold range is greater than or equal to the upper limit of the second threshold range.
可选地,客户端接收数据写IO请求后,也可直接根据所述数据写IO请求中所述待写入数据的属性信息,为所述待写入数据配置相应地条带信息,并下发给相应地对象存储设备。在对象存储设备侧再次根据待写入数据的属性信息,决定是否按照该条带信息中相应地条带单元的物理地址来存储数据,本申请不做限定。Optionally, after receiving the data write IO request, the client may also directly configure the stripe information for the data to be written according to the attribute information of the data to be written in the data write IO request, and download the data. Issued to the corresponding object storage device. The object storage device side again determines whether to store data according to the physical address of the corresponding stripe unit in the stripe information according to the attribute information of the data to be written, which is not limited in this application.
客户端根据待写入数据的属性信息为待写入数据配置对应的条带信息,其具体存在以下几种实施方式:The client configures the stripe information for the data to be written according to the attribute information of the data to be written. The following specific implementations exist:
第一种,当所述待写入数据的属性信息包括所述待写入数据的写入粒度时,客户端可根据所述写入粒度,为所述待写入数据选择出大小与所述写入粒度匹配的条带单元,以用于存储所述待写入数据。具体的,为减少数据存储量,通常选择条带大小和所述写入粒度相同的条带单元,以组成用于存储所述待写入数据的条带。在获得所述条带中的每个条带单元后,即可获得每个条带单元各自对应的物理地址,所述条带单元与所述条带单元对应所在的物理地址一一对应。First, when the attribute information of the data to be written includes the writing granularity of the data to be written, the client may select a size and the size of the data to be written according to the writing granularity. A granularity-matched stripe unit is written for storing the data to be written. Specifically, in order to reduce the data storage amount, generally, a stripe unit with the same stripe size and the write granularity is selected to form a stripe for storing the data to be written. After each stripe unit in the stripe is obtained, a physical address corresponding to each stripe unit can be obtained, and the stripe unit corresponds to the physical address where the stripe unit corresponds.
举例来说,假设数据写IO请求的大小为32K,写入粒度为8K。相应地,客户端在为待写入数据选择配置条带时,可选用4个8K大小的条带,以组合形成存储该待写入数据的条带。换句话说,这里的条带包括4个8K大小的条带。相应地,在数据存储时,32K的待写入数据同样可被分为4份待存储数据,每份待存储数据的大小为8K,用一个条带单元存储。这4个条带单元可分别来自4个对象存储设备,这里不做论述。For example, suppose the data write IO request size is 32K and the write granularity is 8K. Correspondingly, when the client selects a configuration strip for the data to be written, the client may select four strips of 8K size to form a strip that stores the data to be written. In other words, the stripe here includes 4 strips of 8K size. Correspondingly, during data storage, 32K of data to be written can also be divided into 4 pieces of data to be stored, and each piece of data to be stored is 8K in size, and is stored in one stripe unit. These four stripe units can come from four object storage devices, which are not discussed here.
第二种,当所述待写入数据的属性信息包括所述待写入数据对应所在待写入地址的写入信息时,所述写入信息具体可为写入频率或写入类型。相应地,客户端可根据所述写入信息,为所述待写入数据分配相应地条带信息,用以存储所述待写入数据。所述条带单元包括一个或多个条带单元以及每个条带单元的物理地址,每个条带单元用于存储待写入数据中的部分数据(即待存储数据)。Secondly, when the attribute information of the data to be written includes writing information of the address to be written corresponding to the data to be written, the writing information may specifically be a writing frequency or a writing type. Correspondingly, the client may allocate corresponding stripe information to the data to be written according to the write information, so as to store the data to be written. The stripe unit includes one or more stripe units and a physical address of each stripe unit, and each stripe unit is configured to store a part of data in the data to be written (that is, data to be stored).
具体的,当所述写入信息为写入频率时,客户端可将位于同一频率范围的待写入数据写到或存储到相同的条带或条带单元中。所述同一频率范围具体可为用户或系统根据实际需求自定义设置的,例如10-15次/分钟等。当所述写入信息为写入类型时,对象存储设备可将同一写入类型的待写入数据存储到相同的条带或条带单元中,以实现数据的分类存储。Specifically, when the writing information is a writing frequency, the client may write or store data to be written in the same frequency range to the same stripe or stripe unit. The same frequency range can be specifically set by the user or the system according to actual needs, such as 10-15 times / minute. When the write information is a write type, the object storage device may store the data to be written of the same write type into the same stripe or stripe unit to implement classified storage of the data.
第三种,所述待写入数据的属性信息包括所述待写入数据的写入粒度以及所述待写入数据对应所在待写入地址的写入信息。相应地,客户端可根据所述写入粒度以及待写入地址的写入信息,来为所述待写入数据配置相应地条带信息,该条带信息包括用于存储待写入数据的一个或多个条带单元以及每个条带单元各自的物理地址。每个条带单元用于存储待写入数据中的部分数据(即待存储数据)。示例性地,选取条带大小与所述写入粒度相同的条带单元,且所述条带单元支持承载或存储和所述待写入地址的写入信息匹配的数据。换句话说,客户端将综合考虑待写入数据的写入类型以及待写入地址的写入信息(写入频率或写入类型)来为待写入数据配置相应地条带,以存储该待写入数据。Third, the attribute information of the data to be written includes the writing granularity of the data to be written and the writing information of the address to be written corresponding to the data to be written. Correspondingly, the client may configure corresponding stripe information for the data to be written according to the write granularity and write information of the address to be written, and the stripe information includes information for storing the data to be written. One or more stripe units and the respective physical address of each stripe unit. Each stripe unit is used to store part of the data to be written (that is, data to be stored). Exemplarily, a stripe unit having the same stripe size as the write granularity is selected, and the stripe unit supports carrying or storing data that matches the write information of the address to be written. In other words, the client will comprehensively consider the write type of the data to be written and the write information (write frequency or write type) of the address to be written to configure the corresponding stripe for the data to be written to store the data. Data to be written.
在可选实施例中,客户端接收数据读IO请求后,还可为待写入数据计算相应的EC校验码,例如采用预设算法计算获得EC校验码等。相应地,客户端还可将计算获得的EC校验码以及待写入数据一起发送给对象存储设备,便于对象存储设备将所述待写入数据和所述EC校验码进行一起存储。In an optional embodiment, after receiving the data read IO request, the client may also calculate a corresponding EC check code for the data to be written, for example, a preset algorithm is used to calculate an EC check code. Correspondingly, the client may also send the calculated EC verification code and the data to be written to the object storage device, so that the object storage device stores the data to be written and the EC verification code together.
可选地,本申请在采用条带方式存储数据的过程中,对于不是满条带的EC校验码而言,可将该条带对应待写入地址的写入类型标记为预设类型,例如即将被覆盖写。便于系统后台重新计算新的EC校验码,结合待写入数据以组成满条带,覆盖原来计算 获得的EC校验码,这样有利于提高磁盘存储空间的利用率。Optionally, in the process of storing data in a stripe manner in this application, for an EC check code that is not full stripe, the write type corresponding to the address to be written in the stripe may be marked as a preset type, For example, is about to be overwritten. It is convenient for the system to recalculate the new EC check code in the background, and combine the data to be written to form a full strip, covering the EC check code obtained in the previous calculation, which is helpful to improve the utilization of disk storage space.
客户端为待写入数据配置条带信息后,可将条带信息中的一个或多个条带单元对应分发给相应地对象存储设备,该条带单元可携带有该条带单元的物理地址以及所需存储的待存储数据,该待存储数据为待写入数据中的部分数据。关于条带单元和对象存储设备之间的映射关系,具体可参见前述实施例中的相关阐述,这里不再赘述。换句话说,客户端获知到用于存储待存储数据的条带单元后,即可获知该条带单元的物理地址,进而可获知该条带单元对应所在的对象存储设备或对象存储设备的硬盘(磁盘),这里不做限定和详述。After the client configures the stripe information for the data to be written, it can correspondingly distribute one or more stripe units in the stripe information to the corresponding object storage device, and the stripe unit can carry the physical address of the stripe unit. And data to be stored, which is part of the data to be written. Regarding the mapping relationship between the stripe unit and the object storage device, reference may be made to the related description in the foregoing embodiment, and details are not described herein again. In other words, after the client knows the stripe unit used to store the data to be stored, it can learn the physical address of the stripe unit, and then can know the object storage device or the hard disk of the object storage device to which the stripe unit corresponds. (Disk), which is not limited or detailed here.
相应地,对象存储设备后续可根据接收的条带单元,按照该条带单元的存储地址将待存储数据写到对象存储设备的硬盘中。Accordingly, the object storage device may subsequently write the data to be stored to the hard disk of the object storage device according to the received stripe unit according to the storage address of the stripe unit.
步骤S410中,对象存储设备接收客户端发送的数据写IO请求以及携带待存储数据以及物理地址的条带单元后,可根据数据写IO请求中待写入数据的属性信息,对所述待存储数据进行存储。In step S410, after receiving the data write IO request sent by the client and the stripe unit carrying the data to be stored and the physical address, the object storage device may perform a write operation on the data to be stored in the data write IO request according to attribute information of the data to be written. Data is stored.
具体的,所述待写入数据的属性信息包括待写入地址的写入信息(例如写入频率或写入类型)。当所述写入信息为第一写入信息,该第一写入信息用于指示待写入地址发生数据写入的频率。具体的,该第一写入信息可用于指示所述待写入地址的写入频率位于第一阈值范围,或者该待写入地址的写入类型为第一类型(例如经常被覆盖写、很快被覆盖写等)。则相应地,对象存储设备可将所述待写入数据写入或存储到第一非易失性缓存中(一般设置与对象存储设备内部)。可选地,在经过一段时间后,对象存储设备可将第一非易失性缓存中存储的数据写到对象存储设备的非易失性硬盘中,便于基于待写入数据的特征合理安排待写入数据的存储介质,提升数据读写的效率。由于待写入地址的写入频率较高,将待写入数据存储在缓存一段时间后再写到硬盘中可以使得如果该段时间内,对象存储设备接收到其他的针对该待写入地址的新写IO请求,新写IO请求携带的待写入数据可以覆盖缓存内存储的旧的待写入数据,使得该段时间结束后,只有针对该待写入地址的最新的写IO请求的待写入数据才会被写入硬盘。避免了针对该待写入地址的每一个写IO请求携带的待写入数据都需要被写入硬盘造成的效率低下。Specifically, the attribute information of the data to be written includes write information (such as a write frequency or a write type) of an address to be written. When the writing information is first writing information, the first writing information is used to indicate a frequency of data writing to the address to be written. Specifically, the first write information may be used to indicate that a write frequency of the address to be written is within a first threshold range, or a write type of the address to be written is a first type (for example, often overwritten, Write quickly, etc.). Correspondingly, the object storage device may write or store the data to be written into the first non-volatile cache (generally set inside the object storage device). Optionally, after a period of time, the object storage device may write the data stored in the first non-volatile cache to the non-volatile hard disk of the object storage device, which is convenient for reasonably arranging the data based on the characteristics of the data to be written. The data storage medium is written to improve the efficiency of data reading and writing. Because the writing frequency of the address to be written is high, storing the data to be written in the cache for a period of time and then writing it to the hard disk can make the object storage device receive other New write IO request. The data to be written carried in the new write IO request can overwrite the old data to be written stored in the cache, so that after this period of time, only the latest write IO request for the address to be written is pending. The written data is written to the hard disk. It avoids the inefficiency caused by the data to be written carried by each write IO request for the address to be written, which needs to be written to the hard disk.
当所述写入信息为第二写入信息,该第二写入信息用于指示所述待写入地址的写入频率位于第二阈值范围,或者该待写入地址的写入类型为第二类型(如很少被覆盖写)。其均可用于指示待写入数据发生数据写入的频率。相应地,对象存储设备可将所述待写入数据直接写入或存储到对象存储设备的非易失性硬盘中。具体的,对象存储设备将按照所述条带单元的物理地址,将所述待写入数据中的待存储数据写到或存储到对象存储设备的非易失性硬盘中。When the write information is second write information, the second write information is used to indicate that a write frequency of the address to be written is in a second threshold range, or a write type of the address to be written is Two types (such as rarely overwritten). It can be used to indicate how often data is written to the data to be written. Accordingly, the object storage device may directly write or store the data to be written into a non-volatile hard disk of the object storage device. Specifically, the object storage device will write or store the data to be stored in the data to be written to the non-volatile hard disk of the object storage device according to the physical address of the stripe unit.
其中,第一阈值范围和第二阈值范围为用户或系统预先设置的,第一阈值范围的下限值大于或等于第二阈值范围的上限值。非易失性缓存的读写速率大于非易失性硬盘的读写速率。The first threshold range and the second threshold range are preset by the user or the system, and the lower limit value of the first threshold range is greater than or equal to the upper limit value of the second threshold range. The read-write rate of the non-volatile cache is greater than the read-write rate of the non-volatile hard disk.
换句话说,对象存储设备可将不同写入频率或写入类型的待写入数据存储或写入到不同的非易失性存储器中。示例性地,若所述待写入数据对应的待写入地址的写入类型为很快被覆盖写,则对象存储设备可将待写入数据写到非易失性缓存中,并非写 到磁盘或硬盘中。可选地,对象存储设备还可将写入类型为经常被覆盖写和很少被覆盖写的待写入数据进行分开存储,以减少数据访问干扰。In other words, the object storage device can store or write data to be written to different non-volatile memories at different writing frequencies or types. Exemplarily, if the write type of the address to be written corresponding to the data to be written is overwritten soon, the object storage device may write the data to be written into a non-volatile cache, instead of writing to Disk or hard drive. Optionally, the object storage device may also separately store the data to be written whose write types are frequently overwritten and rarely overwritten to reduce data access interference.
在可选实施例中,所述待写入数据的属性信息包括所述待写入数据的写入粒度。在对象存储设备接收数据写IO请求以及携带待存储数据的条带单元后,对象存储设备可根据待写入数据的写入粒度,构建所述待存储数据的存储映射关系。该存储映射关系包括所述待存储数据存储时的逻辑地址和物理地址之间的映射关系。该逻辑地址是根据待写入地址和写入粒度确定的。In an optional embodiment, the attribute information of the data to be written includes a writing granularity of the data to be written. After the object storage device receives the data write IO request and the stripe unit carrying the data to be stored, the object storage device may construct a storage mapping relationship of the data to be stored according to the writing granularity of the data to be written. The storage mapping relationship includes a mapping relationship between a logical address and a physical address when the data to be stored is stored. The logical address is determined according to the address to be written and the write granularity.
具体的,客户端接收数据写IO请求中携带有待写入数据的待写入地址(通常为LBA逻辑地址)。相应地,在客户端为待写入数据配置条带信息(一个或多个条带单元)后,可根据待写入数据的写入粒度(或条带单元的数量)对待写入地址进行划分,以获得每个条带单元各自对应的逻辑地址。进一步地,将每个条带单元的逻辑地址、物理地址以及该条带单元所需存储的待存储数据发送给相应地对象存储设备。相应地,对象存储设备接收上述信息后,可为待存储数据创建相应地存储映射关系,即待存储数据的存储映射关系。其包括有该待存储数据存储时(条带单元)的逻辑地址和物理地址之间的映射关系。Specifically, the client receives a data write IO request carrying a data to be written address (usually an LBA logical address). Correspondingly, after the client configures stripe information (one or more stripe units) for the data to be written, the address to be written can be divided according to the write granularity of the data to be written (or the number of stripe units). To obtain the logical address corresponding to each stripe unit. Further, the logical address, the physical address of each stripe unit, and the data to be stored that needs to be stored in the stripe unit are sent to the corresponding object storage device. Accordingly, after receiving the foregoing information, the object storage device may create a corresponding storage mapping relationship for the data to be stored, that is, a storage mapping relationship for the data to be stored. It includes the mapping relationship between the logical address and the physical address when the data to be stored (striped unit) is stored.
或者,客户端将条带单元以及数据写IO请求对应发送给对象存储设备后,对象存储设备可根据数据写IO请求中的待写入地址以及待写入数据的写入粒度,获得该条带单元对应的逻辑地址,即是该条带单元中待存储数据存储时的逻辑地址。关于如何获得条带单元的逻辑地址,本申请不做限定。示例性地,假设客户端为待写入数据配置了4个条带单元,分别为条带单元1-条带单元4。其分别位于对象存储设备1-对象存储设备4。相应地,当对象存储设备4接收到客户端发送的条带单元4,其携带有自身的物理地址以及待存储数据。进一步地,再结合接收的数据写IO请求中的待写入地址(假设为0-40),确定条带单元4的逻辑地址,这里即为30-40。最后,为待存储数据创建存储映射关系,这里即为条带单元4存储的待存储数据的逻辑地址和物理地址之间的映射关系。Alternatively, after the client sends the stripe unit and the data write IO request to the object storage device, the object storage device can obtain the stripe according to the address to be written in the data write IO request and the granularity of the data to be written. The logical address corresponding to the unit is the logical address when the data to be stored in the stripe unit is stored. How to obtain the logical address of the stripe unit is not limited in this application. Exemplarily, it is assumed that the client is configured with 4 stripe units for data to be written, which are stripe unit 1-stripe unit 4 respectively. They are respectively located in the object storage device 1-the object storage device 4. Accordingly, when the object storage device 4 receives the stripe unit 4 sent by the client, it carries its own physical address and data to be stored. Further, the logical address of the stripe unit 4 is determined in combination with the address to be written in the received data write IO request (assuming 0-40), which is 30-40 here. Finally, a storage mapping relationship is created for the data to be stored, here is the mapping relationship between the logical address and the physical address of the data to be stored stored by the stripe unit 4.
在可选实施例中,客户端在为待写入数据配置条带信息后,还可根据待写入数据的写入粒度,为待写入数据创建相应地存储映射关系,即待写入数据的存储映射关系。该存储映射关系包括所述待写入数据存储时的逻辑地址(即待写入地址)和物理地址之间的映射关系。In an optional embodiment, after configuring the stripe information for the data to be written, the client can also create a corresponding storage mapping relationship for the data to be written according to the write granularity of the data to be written, that is, the data to be written Storage mapping. The storage mapping relationship includes a mapping relationship between a logical address (that is, an address to be written) and a physical address when the data to be written is stored.
具体的,数据写IO请求中包括有待写入数据的LBA逻辑地址,但该逻辑地址与待写入数据实际存储时所在的条带单元的物理地址并无联系或关联关系。相应地,在待写入数据被存储后,系统无法依据待写入数据的逻辑地址确定其实际存储所在的物理地址,进而无法查询到待写入数据。因此,对象存储设备还需建立并保存所述待写入数据的存储映射关系,该存储映射关系具体是根据写入粒度来划分或定制的,将待写入数据被存储时的逻辑地址和物理地址进行关联绑定而获得。Specifically, the data write IO request includes the LBA logical address of the data to be written, but the logical address is not related or associated with the physical address of the stripe unit where the data to be written is actually stored. Correspondingly, after the data to be written is stored, the system cannot determine the physical address where the data is actually stored according to the logical address of the data to be written, and thus cannot query the data to be written. Therefore, the object storage device also needs to establish and save the storage mapping relationship of the data to be written. The storage mapping relationship is specifically divided or customized according to the writing granularity, and the logical address and physical address of the data to be written are stored. The address is obtained by association binding.
举例来说,假设数据写IO请求的大小(具体为该数据写IO请求中待写入数据的大小)为32K byte,该请求中包括有待写入数据的LBA逻辑地址为0-200,且该待写入数据的写入粒度为8K。客户端为待写入数据组合配置的条带包括4个条带单元,各自的物理地址分别为0X00-0X04。相应地,对象存储设备创建如下表1所示的存储映 射关系表,用于反映待写入数据的存储映射关系。For example, suppose the size of the data write IO request (specifically the size of the data to be written in the data write IO request) is 32Kbytes, the request includes the LBA logical address of the data to be written is 0-200, and the The write granularity of the data to be written is 8K. The stripe configured by the client for the combination of data to be written includes 4 stripe units, each with a physical address of 0X00-0X04. Accordingly, the object storage device creates a storage mapping relationship table shown in Table 1 below to reflect the storage mapping relationship of the data to be written.
表1Table 1
Figure PCTCN2019089582-appb-000001
Figure PCTCN2019089582-appb-000001
由上表1可知,待写入数据存储时的条带由4个条带单元组成,每个条带单元的大小为8K。每个条带单元都有各自对应的逻辑地址和物理地址。相应地,对象存储设备在接收到数据读IO请求后,该数据读IO请求中包括待读取数据的逻辑地址(例如0-50),则对象存储设备可根据上述表1记录的存储映射关系表,查找到该逻辑地址对应的物理地址(这里即条带单元1的物理地址0X01),进而从0X01处读取条带单元1的数据即为待读取数据。As can be seen from Table 1 above, the stripe to be written into the data storage is composed of 4 stripe units, and the size of each stripe unit is 8K. Each stripe unit has its own logical address and physical address. Correspondingly, after the object storage device receives the data read IO request, the data read IO request includes a logical address (for example, 0-50) of the data to be read, and the object storage device may store the storage mapping relationship according to the above table 1. Table, find the physical address corresponding to the logical address (here, the physical address 0X01 of the stripe unit 1), and then read the data of the stripe unit 1 from 0X01 is the data to be read.
在可选实施例中,客户端还可将该待写入数据的存储映射关系发送给各个对象存储设备,便于对象存储设备获知数据存储的条带单元的逻辑地址和物理地址之间的映射关系。在对象存储设备接收到数据读IO请求中携带的待读取数据的逻辑地址后,根据该逻辑地址从相应物理地址处获得待读取数据。In an optional embodiment, the client can also send the storage mapping relationship of the data to be written to each object storage device, so that the object storage device can learn the mapping relationship between the logical address and the physical address of the stripe unit of the data storage. . After the object storage device receives the logical address of the data to be read carried in the data read IO request, it obtains the data to be read from the corresponding physical address according to the logical address.
通过实施本发明实施例,通过重新对DIF域的字段进行定义,优化数据的存储布局,相比于现有技术而言能够提升存储器的存储性能,提高存储器的利用率。By implementing the embodiments of the present invention, by redefining the fields in the DIF domain and optimizing the storage layout of data, compared with the prior art, the storage performance of the memory can be improved and the utilization rate of the memory can be improved.
其次,在读数据的应用场景,请参见图5是本发明实施例提供的另一种数据处理方法的流程示意图。请参见图5所示的方法包括如下实施步骤:Secondly, in an application scenario of reading data, please refer to FIG. 5, which is a schematic flowchart of another data processing method according to an embodiment of the present invention. The method shown in FIG. 5 includes the following implementation steps:
步骤S502、应用软件(具体可为运行有应用软件的主机)获取待读取数据的属性信息。Step S502: The application software (specifically, a host computer running the application software) obtains attribute information of the data to be read.
步骤S504、应用软件向客户端发送数据读IO请求,所述数据读IO请求包括DIF域,该DIF用于承载待读取数据的属性信息。相应地,客户端读取该数据读IO请求。关于所述数据读IO请求可对应参照前述所述数据写IO请求的相关描述,这里不再赘述。Step S504: The application software sends a data read IO request to the client, where the data read IO request includes a DIF field, and the DIF is used to carry attribute information of the data to be read. Accordingly, the client reads the data read IO request. For the data read IO request, reference may be made to the related description of the data write IO request, and details are not described herein again.
步骤S506、客户端将数据读IO请求发送给对象存储设备。相应地,对象存储设备接收该数据读IO请求。Step S506: The client sends a data read IO request to the object storage device. Accordingly, the object storage device receives the data read IO request.
本申请中,客户端在接收到数据读IO请求后,如果数据读IO请求中待读取数据的属性信息包括预读数据的大小,当该预读数据的大小大于第一阈值时,可将数据读IO请求提前下发给对象存储设备,便于更快地读取获得该预读数据。这里提前下发的具体实施方式有多种,本申请不做限定。例如,客户端可为数据读IO请求分配更多的传输资源,以提升数据读IO请求的下发速率,从而将数据读IO请求提取下发给对象存储设备等。当该预读数据的大小小于或等于第一阈值时,按照正常下发速率将数据读IO请求下发给对象存储设备。In this application, after the client receives the data read IO request, if the attribute information of the data to be read in the data read IO request includes the size of the read-ahead data, when the size of the read-ahead data is greater than the first threshold, The data read IO request is issued to the object storage device in advance, so that the read-ahead data can be read and obtained more quickly. There are various specific implementation modes issued in advance here, which are not limited in this application. For example, the client can allocate more transmission resources to the data read IO request to increase the delivery rate of the data read IO request, thereby extracting and sending the data read IO request to the object storage device. When the size of the read-ahead data is less than or equal to the first threshold, the data read IO request is sent to the target storage device at a normal delivery rate.
其中,所述预读数据包括所述待读取数据,可理解为应用软件一段时间内需要读取数据的总大小。可理解的,受限于应用软件自身的性能,应用软件每次发送的数据读IO请求的大小存在限制。当预读数据较大时,应用软件可通过多次下发数据读IO 请求以完成相应大小的预读数据的读取。例如,预读数据的大小为1M,数据读IO请求的大小为1K(即数据读IO请求中请求待读取数据的大小为1K),则应用软件可通过1000个数据读IO请求来完成预读数据的读取。The pre-read data includes the data to be read, which can be understood as the total size of the data that the application software needs to read in a period of time. Understandably, due to the performance of the application software, there is a limit on the size of the data read IO request sent by the application software each time. When the read-ahead data is large, the application software can issue data read IO requests multiple times to complete the read of the read-ahead data of the corresponding size. For example, the size of the read-ahead data is 1M, and the size of the data read IO request is 1K (that is, the size of the data to be read in the data read IO request is 1K). Read data read.
步骤S508、对象存储设备读取所述待读取数据,并根据所述待读取数据的属性信息,对所述待读取数据进行处理。Step S508: The object storage device reads the data to be read, and processes the data to be read according to attribute information of the data to be read.
步骤S508具体存在以下几种实施方式:第一种,所述待读取数据的属性信息包括所述待读取数据在内的预读数据的大小。如果所述预读数据的大小大于第一阈值时,则所述对象存储设备可先读取所述预读数据,然后将该预读数据发送给客户端,并将其缓存到客户端侧。便于后续应用软件下发相同数据读IO请求时,直接从客户端中读取该预读数据中相应的待读取数据,节省数据读取时间。Step S508 includes the following specific implementations: In the first type, the attribute information of the data to be read includes the size of the pre-read data including the data to be read. If the size of the read-ahead data is greater than the first threshold, the object storage device may first read the read-ahead data, then send the read-ahead data to the client, and cache it to the client side. It is convenient for subsequent application software to issue the same data read IO request, and directly read the corresponding to-be-read data in the pre-read data from the client, saving data reading time.
具体的,数据读IO请求中包括有预读数据的LBA逻辑地址,对象存储设备可根据该预读数据的逻辑地址从自身存储的存储映射关系中获得该预读数据的逻辑地址对应所在的物理地址,然后根据该预读数据的物理地址读取获得该预读数据。进一步地,对象存储设备可将该预读数据发送给客户端。相应地,客户端可将该预读数据写到内存中,或者客户端可根据数据读IO请求中待读取数据的属性信息来对预读数据进行存储,具体参见下文进行详述。Specifically, the data read IO request includes the LBA logical address of the read-ahead data, and the object storage device can obtain the physical address corresponding to the logical address of the read-ahead data from the storage mapping relationship stored by itself according to the logical address of the read-ahead data. The address is then read according to the physical address of the read-ahead data to obtain the read-ahead data. Further, the object storage device may send the read-ahead data to the client. Correspondingly, the client can write the read-ahead data into the memory, or the client can store the read-ahead data according to the attribute information of the data to be read in the data read IO request. For details, refer to the following details.
如果所述预读数据的大小小于或等于第一阈值时,对象存储设备可读取所述待读取数据,然后根据该待读取数据的属性信息对该待读取数据进行存储。可选的,对象存储设备读取所述待读取数据后,还可将该待读取数据发送给其他对象存储设备,便于其他对象存储设备根据该待读取数据的属性信息来对应存储该待读取数据,本申请不做限定。此种情况下,待读取数据可以不必存储于客户端的内存中。If the size of the pre-read data is less than or equal to the first threshold, the object storage device may read the data to be read, and then store the data to be read according to attribute information of the data to be read. Optionally, after the object storage device reads the data to be read, the data to be read can also be sent to other object storage devices, so that other object storage devices can store the corresponding data according to the attribute information of the data to be read. The data to be read is not limited in this application. In this case, the data to be read need not be stored in the client's memory.
具体的,预读数据的大小小于或等于第一阈值时,数据读IO请求中包括该待读取数据的LBA逻辑地址。相应地,对象存储设备依据该待读取数据的逻辑地址,从保存的存储映射关系中获得该待读取数据的逻辑地址所对应的物理地址。然后,从该物理地址处读取获得所述待读取数据。进一步地,将该待读取数据发给上层应用软件(即部署有应用软件的主机)。Specifically, when the size of the read-ahead data is less than or equal to the first threshold, the data read IO request includes the LBA logical address of the data to be read. Correspondingly, the object storage device obtains the physical address corresponding to the logical address of the data to be read from the stored storage mapping relationship according to the logical address of the data to be read. Then, the data to be read is obtained by reading from the physical address. Further, the data to be read is sent to an upper-layer application software (that is, a host where the application software is deployed).
第二种,当所述待读取数据的属性信息包括所述待读取数据对应所在的待读取地址的读取信息时,对象存储设备可根据该待读取数据的属性信息对所述待读取数据进行处理。Secondly, when the attribute information of the data to be read includes the read information of the address to be read corresponding to the data to be read, the object storage device may The data to be read is processed.
具体的,所述待读取数据的属性信息包括所述待读取数据对应的待读取地址的读取信息,所述读取信息包括但不限于读取类型或者读取频率。当所述读取信息用于指示单位时间内待读取地址发生数据读取的频率,当该频率大于或等于第二阈值时,对象存储设备可将待读取数据发送给客户端,以缓存到客户端的内存中。便于下次直接从客户端的内存中读取该待读取数据,提升数据读取速率。相应地,当该频率小于第二阈值时,对象存储设备可将待读取数据存储到对象存储设备的硬盘中。可选地,对象存储设备也可将待读取数据发送给客户端,以存储到客户端的硬盘中等,本申请不做限定。Specifically, the attribute information of the data to be read includes read information of an address to be read corresponding to the data to be read, and the read information includes, but is not limited to, a read type or a read frequency. When the read information is used to indicate the frequency of data reading at the address to be read in a unit time, when the frequency is greater than or equal to the second threshold, the object storage device may send the data to be read to the client for caching. Into the client's memory. It is convenient to directly read the data to be read from the memory of the client next time, and improve the data reading rate. Accordingly, when the frequency is less than the second threshold, the object storage device may store the data to be read into a hard disk of the object storage device. Optionally, the object storage device may also send the data to be read to the client for storage on the client's hard disk, etc., which is not limited in this application.
可选地,当所述读取信息为第一读取信息,该第一读取信息用于指示待读取地址的读取频率位于第三阈值范围,或者指示待读取地址的读取类型为第三类型(例如经 常读)。则相应地,对象存储设备可将所述待读取数据写到对象存储设备的第二非易失性缓存中,便于下次直接从第二非易失性缓存中读取其缓存的待读取数据。Optionally, when the read information is first read information, the first read information is used to indicate that a read frequency of an address to be read is within a third threshold range, or indicates a read type of the address to be read The third type (for example, read often). Correspondingly, the object storage device may write the data to be read into the second non-volatile cache of the object storage device, so as to facilitate reading the cached to-be-read directly from the second non-volatile cache next time. Get the data.
当所述读取信息为第二读取信息,该第二读取信息用于指示待读取数据对应的待读取地址的读取频率位于第四阈值范围,或者指示待读取地址的读取类型为第四类型(例如即将多次读等)。则相应地,对象存储设备可将待读取数据存储到对象存储设备的第三非易失性缓存中。可选地,对象存储设备还可在第三非易失性缓存中设置相应地过期时长,便于清除第三非易失性缓存中存储时长超过过期时长的数据。所述过期时长具体可为用户或系统自定义设置的,例如1天等。When the read information is second read information, the second read information is used to indicate that the read frequency of the address to be read corresponding to the data to be read is in a fourth threshold range, or to indicate the read of the address to be read The fetch type is the fourth type (for example, multiple reads are about to be read). Accordingly, the object storage device may store the data to be read into a third non-volatile cache of the object storage device. Optionally, the object storage device may further set a corresponding expiration period in the third non-volatile cache, which is convenient for clearing data in the third non-volatile cache that has a storage period exceeding the expiration period. The expiration period may be specifically set by a user or a system, for example, one day.
当所述读取信息为第三读取信息,该第三读取信息用于指示待读取数据对应的待读取地址的读取频率位于第五阈值范围,或者指示待读取地址的读取类型为第五类型(例如很少读或只读依次等)。则相应地,对象存储设备可将待读取数据写入或存储到对象存储设备的硬盘中,和/或,对象存储设备可清除预设存储地址所对应存储的数据。具体的,对象存储设备可根据数据写IO请求确定出其所指示待清除数据所在的预设存储地址(或者非易失性存储器),该预设存储地址可为LBA逻辑地址。相应地,对象存储设备可清除该预设存储地址对应存储的数据,以释放非易失性存储器中对应存储的数据;或者直接释放该非易失性存储器中存储的所有数据。When the read information is third read information, the third read information is used to indicate that the read frequency of the address to be read corresponding to the data to be read is within a fifth threshold range, or to indicate the read of the address to be read The fetch type is the fifth type (for example, rarely read or read only, etc.). Accordingly, the object storage device may write or store the data to be read into a hard disk of the object storage device, and / or the object storage device may clear the data stored in the preset storage address. Specifically, the object storage device may determine, according to the data write IO request, a preset storage address (or a non-volatile memory) where the data to be cleared is indicated, and the preset storage address may be an LBA logical address. Correspondingly, the object storage device may clear the data corresponding to the preset storage address to release the corresponding data stored in the non-volatile memory; or directly release all the data stored in the non-volatile memory.
其中,第三阈值范围、第四阈值范围以及第五阈值范围均可为用户或系统根据实际需求自定义设置的,第三阈值范围的下限值大于或等于第四阈值范围的上限值,第四阈值范围的上限值大于或等于第五阈值范围的下限值。非易失性缓存的读写速率大于非易失性硬盘的读写速率。本申请涉及的第一非易失性缓存和第二非易失性缓存可为对象存储设备中部署的同一缓存或者不同缓存,具体可根据实际需求而定,并不做限定。The third threshold range, the fourth threshold range, and the fifth threshold range can be customized by the user or the system according to actual needs. The lower limit of the third threshold range is greater than or equal to the upper limit of the fourth threshold range. The upper limit of the fourth threshold range is greater than or equal to the lower limit of the fifth threshold range. The read-write rate of the non-volatile cache is greater than the read-write rate of the non-volatile hard disk. The first non-volatile cache and the second non-volatile cache involved in this application may be the same cache or different caches deployed in the object storage device, and may be specifically determined according to actual needs, and are not limited.
换句话说,对象存储设备可将不同读取频率或读取类型的待读取地址所对应的待读取数据存储或写入到不同的非易失性存储器中。示例性地,当待读取数据对应的待读取地址的读取类型为经常读,则对象存储设备可将待读取数据写到缓存中。当所述待读取数据对应的待读取地址的读取类型为即将读多次(顺序读),则对象存储可将待读取数据写到同一存储器(例如内存、缓存或磁盘)中,以提高数据读取的性能和效率。可选地,还可在存储器中设置超期淘汰时长(即过期时长),以限制在存储器中存储数据的存储时长。当所述待读取数据的读取类型为读一次,则对象存储设备可不对所述待读取数据进行缓存,直接将所述待读取数据写到磁盘中。当所述待读取数据对应的待读取地址的读取类型为用于指示释放缓存的类型,则对象存储设备可从数据写IO请求中获得待清除数据的预设存储地址(如逻辑地址),清除该预设存储地址所对应存储的数据,以释放缓存等等。In other words, the object storage device can store or write data to be read corresponding to different read frequencies or read types of addresses to be read into different non-volatile memories. Exemplarily, when the read type of the address to be read corresponding to the data to be read is frequent read, the object storage device may write the data to be read into the cache. When the read type of the address to be read corresponding to the data to be read is to be read multiple times (sequential read), the object storage may write the data to be read into the same memory (for example, memory, cache, or disk). To improve the performance and efficiency of data reading. Optionally, an overdue elimination duration (that is, an expiration duration) may be set in the memory to limit the storage duration of the data stored in the memory. When the read type of the data to be read is read once, the object storage device may directly write the data to be read to a disk without caching the data to be read. When the read type of the address to be read corresponding to the data to be read is a type used to indicate the release of the cache, the object storage device may obtain a preset storage address (such as a logical address) of the data to be cleared from the data write IO request. ) To clear the data stored in the preset storage address to release the cache and so on.
通过实施本发明实施例,通过重新对DIF域的字段进行定义,优化数据的存储布局,相比于现有技术而言能够提升存储系统的存储性能,提高存储系统的工作效率。By implementing the embodiments of the present invention, by redefining the fields of the DIF domain and optimizing the storage layout of the data, compared with the prior art, the storage performance of the storage system can be improved and the working efficiency of the storage system can be improved.
请参见图6是本发明实施例提供的一种数据处理装置的结构示意图。如图6所示的装置600包括通信模块602和处理模块604。其中,Please refer to FIG. 6, which is a schematic structural diagram of a data processing apparatus according to an embodiment of the present invention. The apparatus 600 shown in FIG. 6 includes a communication module 602 and a processing module 604. among them,
在一种可能的实施方式中,数据处理装置600为主机。具体的,处理模块604可用于对数据处理装置600的动作进行控制管理。示例性地,处理模块604用于支持主 机执行图2中步骤S202,图4中步骤S402,图5中步骤S502,和/或用于执行本文所描述的技术的其它步骤。通信模块602用于支持数据处理装置600与其它设备的通信,例如,通信模块602用于主机执行图2中步骤S204、图4中步骤S404,图5中步骤S504,和/或用于执行本文所描述的技术的其它步骤。In a possible implementation manner, the data processing apparatus 600 is a host. Specifically, the processing module 604 may be used to control and manage the actions of the data processing apparatus 600. Exemplarily, the processing module 604 is used to support the host to perform step S202 in FIG. 2, step S402 in FIG. 4, step S502 in FIG. 5, and / or other steps for performing the techniques described herein. The communication module 602 is used to support the communication between the data processing device 600 and other devices. For example, the communication module 602 is used by the host to perform step S204 in FIG. 2, step S404 in FIG. 4, step S504 in FIG. 5, and / or to perform the text Other steps of the described technique.
在另一种可能的实施方式中,数据处理装置600为对象存储设备。具体的,处理模块604可用于对数据处理装置600的动作进行控制管理。示例性地,处理模块604用于支持对象存储设备执行图2中步骤S206和S208,图4中步骤S410,图5中步骤S508,和/或用于执行本文所描述的技术的其它步骤。通信模块602用于支持数据处理装置600与其它设备的通信,例如,通信模块602用于对象存储设备接收客户端发送的数据读IO请求或数据写IO请求,和/或用于执行本文所描述的技术的其它步骤。In another possible implementation manner, the data processing apparatus 600 is an object storage device. Specifically, the processing module 604 may be used to control and manage the actions of the data processing apparatus 600. Exemplarily, the processing module 604 is used to support the object storage device to perform steps S206 and S208 in FIG. 2, step S410 in FIG. 4, step S508 in FIG. 5, and / or other steps for performing the technology described herein. The communication module 602 is configured to support the communication between the data processing apparatus 600 and other devices. For example, the communication module 602 is configured to receive the data read IO request or data write IO request sent by the client from the object storage device, and / or perform the operations described herein. Other steps of the technique.
在另一种可能的实施方式中,数据处理装置600为客户端。具体的,处理模块604可用于对数据处理装置600的动作进行控制管理。示例性地,处理模块604用于支持客户端执行图4中步骤S406,和/或用于执行本文所描述的技术的其它步骤。通信模块602用于支持数据处理装置600与其它设备的通信,例如,通信模块602用于执行图4中步骤S408,图5中步骤S506,和/或用于执行本文所描述的技术的其它步骤。In another possible implementation manner, the data processing apparatus 600 is a client. Specifically, the processing module 604 may be used to control and manage the actions of the data processing apparatus 600. Exemplarily, the processing module 604 is configured to support the client to perform step S406 in FIG. 4 and / or to perform other steps of the technology described herein. The communication module 602 is configured to support communication between the data processing apparatus 600 and other devices. For example, the communication module 602 is configured to perform step S408 in FIG. 4, step S506 in FIG. 5, and / or other steps for performing the techniques described herein. .
可选地,数据处理装置600还可以包括存储模块606,用于存储数据处理装置600的程序代码和数据。Optionally, the data processing apparatus 600 may further include a storage module 606 for storing program code and data of the data processing apparatus 600.
其中,处理模块604可以是处理器或控制器,例如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块602可以是通信接口、收发器、收发电路等,其中,通信接口是统称,可以包括一个或多个接口,例如通信模块与处理模块之间的接口、对象存储设备与其他设备(如主机或客户端)之间的接口等。存储模块606可以是存储器,或者其他用于提供存储功能的服务或模块。The processing module 604 may be a processor or a controller, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), and an application-specific integrated circuit (Application-Specific Integrated Circuit (ASIC), Field Programmable Gate Array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logical blocks, modules, and circuits described in connection with the present disclosure. The processor may also be a combination that implements computing functions, such as a combination including one or more microprocessors, a combination of a DSP and a microprocessor, and so on. The communication module 602 may be a communication interface, a transceiver, a transceiver circuit, etc., where the communication interface is collectively referred to and may include one or more interfaces, such as an interface between a communication module and a processing module, an object storage device, and other devices such as a host Or client). The storage module 606 may be a memory, or other services or modules for providing storage functions.
当处理模块604为处理器,通信模块602为通信接口,存储模块606为存储器时,本发明实施例所涉及数据处理装置可以为图7所示的数据处理设备。处理模块604、通信模块602、存储模块606也可以通过软件实现。When the processing module 604 is a processor, the communication module 602 is a communication interface, and the storage module 606 is a memory, the data processing apparatus involved in this embodiment of the present invention may be a data processing device shown in FIG. 7. The processing module 604, the communication module 602, and the storage module 606 may also be implemented by software.
请参见图7所示,该数据处理设备700包括一个或多个处理器701、通信接口701、存储器703。可选地,数据处理设备700还可以包括总线704。其中,通信接口703、处理器702以及存储器701可以通过总线704相互连接;总线704可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。所述总线704可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。其中:Referring to FIG. 7, the data processing device 700 includes one or more processors 701, a communication interface 701, and a memory 703. Optionally, the data processing device 700 may further include a bus 704. The communication interface 703, the processor 702, and the memory 701 can be connected to each other through a bus 704. The bus 704 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (Abbreviated Architecture). EISA) bus and so on. The bus 704 can be divided into an address bus, a data bus, a control bus, and the like. For ease of representation, only one thick line is used in FIG. 7, but it does not mean that there is only one bus or one type of bus. among them:
处理器701可以由一个或者多个通用处理器构成,例如中央处理器(Central  Processing Unit,CPU)。处理器701可用于运行相关的程序代码中处理功能的程序。也就是说,处理器701执行程序代码可以实现处理模块的功能。其中,关于处理模块具体可参见前述实施例中的相关阐述。The processor 701 may be composed of one or more general-purpose processors, such as a central processing unit (Central Processing Unit). The processor 701 may be configured to run a program of a processing function in a related program code. That is, the processor 701 executes the program code to implement the functions of the processing module. For details about the processing module, refer to related descriptions in the foregoing embodiments.
在一种可能的实施方式中,当所述数据处理设备700为主机时,主机的处理器701用于运行相关的程序代码,以实现本申请上述处理模块的功能。或者实现本申请上述图2中步骤S202,图4中步骤S402,图5中步骤S502,和/或用于执行本文所描述的技术的其它步骤等,本申请不做限定。In a possible implementation manner, when the data processing device 700 is a host, the processor 701 of the host is configured to run related program codes to implement the functions of the processing modules described in this application. Or to implement step S202 in FIG. 2, step S402 in FIG. 4, step S502 in FIG. 5, and / or other steps for implementing the technology described herein, which are not limited in this application.
在另一种可能的实施方式中,当所述数据处理设备700为对象存储设备时,对象存储设备的处理器701用于运行相关的程序代码,以实现本申请上述处理模块的功能。或者实现本申请上述图2中步骤S206和S208,图4中步骤S410,图5中步骤S508,和/或用于执行本文所描述的技术的其它步骤等,本申请不做限定。In another possible implementation manner, when the data processing device 700 is an object storage device, the processor 701 of the object storage device is configured to run related program code, so as to implement the functions of the foregoing processing module in this application. Alternatively, steps S206 and S208 in FIG. 2, step S410 in FIG. 4, step S508 in FIG. 5, and / or other steps for implementing the technology described herein, etc., are not limited in this application.
在另一种可能的实施方式中,当所述数据处理设备700为客户端时,客户端的处理器701用于运行相关的程序代码,以实现本申请上述处理模块的功能。或者实现本申请上述图4中步骤S406,和/或用于执行本文所描述的技术的其它步骤等,本申请不做限定。通信接口602可以为有线接口(例如以太网接口)或无线接口(例如蜂窝网络接口或使用无线局域网接口),用于与其他模块/设备进行通信。例如,本申请实施例中通信接口602具体可用于获取待操作数据的属性信息,例如待读取数据或者待写入数据的属性信息等。In another possible implementation manner, when the data processing device 700 is a client, the processor 701 of the client is configured to run related program code to implement the functions of the foregoing processing module in this application. Alternatively, step S406 in FIG. 4 of the present application, and / or other steps for implementing the technology described herein, etc. are not limited in this application. The communication interface 602 may be a wired interface (such as an Ethernet interface) or a wireless interface (such as a cellular network interface or using a wireless local area network interface) for communicating with other modules / devices. For example, the communication interface 602 in the embodiment of the present application may be specifically configured to obtain attribute information of data to be operated, such as attribute information of data to be read or data to be written.
存储器603可以包括易失性存储器(Volatile Memory),例如随机存取存储器(Random Access Memory,RAM);存储器也可以包括非易失性存储器(Non-Volatile Memory),例如只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);存储器603还可以包括上述种类的存储器的组合。存储器603可用于存储一组程序代码,以便于处理器601调用存储器603中存储的程序代码以实现本发明实施例中涉及的通信模块和/或处理模块的功能。The memory 603 may include volatile memory (Volatile Memory), such as Random Access Memory (RAM); the memory may also include non-volatile memory (Non-Volatile Memory), such as Read-Only Memory (ROM), flash memory (Flash), hard disk (HDD), or solid-state drive (SSD); memory 603 may also include a combination of the above types of memory. The memory 603 may be configured to store a set of program code, so that the processor 601 calls the program code stored in the memory 603 to implement the functions of the communication module and / or the processing module involved in the embodiment of the present invention.
需要说明的,图7仅仅是本申请实施例的一种可能的实现方式,实际应用中,数据处理设备还可以包括更多或更少的部件,这里不作限制。关于本申请实施例中未示出或未描述的内容,可参见前述图2-图5任一实施例中的相关阐述,这里不再赘述。It should be noted that FIG. 7 is only one possible implementation manner of the embodiment of the present application. In practical applications, the data processing device may further include more or fewer components, which is not limited herein. For the content that is not shown or described in the embodiments of the present application, reference may be made to related descriptions in any one of the foregoing embodiments in FIGS. 2 to 5, and details are not described herein again.
本发明实施例还提供一种计算机非瞬态存储介质,所述计算机非瞬态存储介质中存储有指令,当其在处理器上运行时,图2-图5中任一实施例中所示的方法流程得以实现。An embodiment of the present invention also provides a computer non-transitory storage medium. The computer non-transitory storage medium has instructions stored therein. When the computer non-transitory storage medium runs an instruction, it is shown in any one of the embodiments in FIGS. The method flow is realized.
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在处理器上运行时,图2-图5中任一实施例中所示的方法流程得以实现。An embodiment of the present invention also provides a computer program product. When the computer program product runs on a processor, the method flow shown in any one of the embodiments in FIG. 2 to FIG. 5 is implemented.
结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。 一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于计算设备中。当然,处理器和存储介质也可以作为分立组件存在于计算设备中。The steps of the method or algorithm described in connection with the disclosure of the embodiments of the present invention may be implemented in a hardware manner, or may be implemented in a manner that a processor executes software instructions. Software instructions can be composed of corresponding software modules. Software modules can be stored in Random Access Memory (RAM), flash memory, Read Only Memory (ROM), erasable programmable read-only memory (ROM Erasable (Programmable ROM, EPROM), electrically erasable programmable read-only memory (EPROM), registers, hard disks, removable hard disks, read-only optical disks (CD-ROMs), or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. Of course, the storage medium may also be an integral part of the processor. The processor and the storage medium may reside in an ASIC. In addition, the ASIC may reside in a computing device. Of course, the processor and the storage medium may also exist as discrete components in a computing device.
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。A person of ordinary skill in the art may understand that all or part of the processes in the method of the foregoing embodiment may be implemented by using a computer program to instruct related hardware. The program may be stored in a computer-readable storage medium. When executed, the processes of the embodiments of the methods described above may be included. The foregoing storage medium includes various media that can store program codes, such as a ROM, a RAM, a magnetic disk, or an optical disc.

Claims (19)

  1. 一种数据处理方法,其特征在于,所述方法包括:A data processing method, characterized in that the method includes:
    对象存储设备接收数据读IO请求,所述数据读IO请求包括数据完整性域DIF,所述DIF用于承载待读取数据的属性信息;The object storage device receives a data read IO request, where the data read IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of the data to be read;
    根据所述待读取数据的属性信息,对所述待读取数据进行处理。And processing the data to be read according to the attribute information of the data to be read.
  2. 根据权利要求1所述的方法,其特征在于,所述待读取数据的属性信息包括待读取数据的读取粒度,用于指示包括所述待读取数据在内的预读数据的大小;The method according to claim 1, wherein the attribute information of the data to be read includes a read granularity of the data to be read, and is used to indicate a size of the pre-read data including the data to be read ;
    所述根据所述待读取数据的属性信息,对所述待读取数据进行处理包括:The processing the data to be read according to attribute information of the data to be read includes:
    在所述预读数据的大小大于或等于第一阈值时,读取包括所述待读取数据在内的预读数据,并将所述预读数据发送给客户端,以缓存到所述客户端的内存中;或者,When the size of the read-ahead data is greater than or equal to a first threshold, read the read-ahead data including the data to be read, and send the read-ahead data to the client for caching to the client Local memory; or,
    在所述预设数据的大小小于第一阈值时,读取所述待读取数据,并将所述待读取数据发送至主机。When the size of the preset data is less than the first threshold, the data to be read is read, and the data to be read is sent to the host.
  3. 根据权利要求1或2所述的方法,其特征在于,所述待读取数据的属性信息包括所述待读取数据对应的待读取地址的读取信息,所述读取信息用于指示单位时间内所述待读取地址发生数据读取的频率,The method according to claim 1 or 2, wherein the attribute information of the data to be read includes read information of an address to be read corresponding to the data to be read, and the read information is used to indicate The frequency of data reading at the address to be read in a unit time,
    所述根据所述待读取数据的属性信息,对所述待读取数据进行处理包括:The processing the data to be read according to attribute information of the data to be read includes:
    当所述读取信息为第一读取信息时,将所述待读取数据写到所述对象存储设备的缓存中;或者,When the read information is the first read information, write the data to be read into a cache of the object storage device; or,
    当所述读取信息为第二读取信息时,将所述待读取数据写到所述对象存储设备的缓存中,并在所述所述对象存储设备的缓存中设置过期时长,以清除所述缓存中存储时长超过所述过期时长的数据;When the read information is the second read information, write the data to be read into a cache of the object storage device, and set an expiration period in the cache of the object storage device to clear Data stored in the cache with a duration exceeding the expiration duration;
    其中,所述第一读取信息所指示的频率大于所述第二读取信息所指示的频率。The frequency indicated by the first read information is greater than the frequency indicated by the second read information.
  4. 一种数据处理方法,其特征在于,所述方法包括:A data processing method, characterized in that the method includes:
    对象存储设备接收数据写IO请求,所述数据写IO请求包括数据完整性域DIF,所述DIF用于承载待写入数据的属性信息;The object storage device receives a data write IO request, where the data write IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of data to be written;
    根据所述待写入数据的属性信息,对所述待写入数据进行处理。And processing the data to be written according to the attribute information of the data to be written.
  5. 根据权利要求4所述的方法,其特征在于,所述待写入数据的属性信息包括所述待写入数据对应的待写入地址的写入信息,所述写入信息用于指示单位时间内所述待写入地址发生数据写入的频率,The method according to claim 4, wherein the attribute information of the data to be written comprises write information of an address to be written corresponding to the data to be written, and the write information is used to indicate a unit time The frequency of data writing to the address to be written,
    所述根据所述待写入数据的属性信息,对所述待写入数据进行处理包括:The processing the data to be written according to the attribute information of the data to be written includes:
    当所述写入信息为第一写入信息,所述对象存储设备将所述待写入数据存储到所述对象存储设备的缓存中;或者,When the write information is the first write information, the object storage device stores the data to be written into a cache of the object storage device; or,
    当所述写入信息为第二写入信息,所述对象存储设备将所述待写入数据存储到所述对象存储设备的硬盘中;When the write information is the second write information, the object storage device stores the data to be written in a hard disk of the object storage device;
    其中,所述第一写入信息所指示的频率大于所述第二写入信息所指示的频率。The frequency indicated by the first write information is greater than the frequency indicated by the second write information.
  6. 根据权利要求4或5所述的方法,其特征在于,所述待写入数据的属性信息包括待写入数据的写入粒度,用于指示所述待写入数据存储时采用的存储粒度;所述方法还包括:The method according to claim 4 or 5, wherein the attribute information of the data to be written includes a writing granularity of the data to be written, and is used to indicate a storage granularity used when the data to be written is stored; The method further includes:
    客户端接收所述数据写IO请求,根据所述待写入数据的属性信息,为所述待写入 数据配置对应的条带信息,所述条带信息包括所述待写入数据存储时使用的条带单元以及所述条带单元的物理地址;The client receives the data write IO request, and configures corresponding stripe information for the data to be written according to the attribute information of the data to be written. The stripe information includes the data to be used when the data to be written is stored. The stripe unit and the physical address of the stripe unit;
    所述客户端根据所述条带信息,将携带有待存储数据以及所述物理地址在内的条带单元发送给所述对象存储设备,所述待存储数据为所述待写入数据中的数据;The client sends a stripe unit carrying data to be stored and the physical address to the object storage device according to the stripe information, and the data to be stored is data in the data to be written ;
    所述对象存储设备接收所述客户端发送的所述携带有所述待存储数据以及所述物理地址在内的条带单元;Receiving, by the object storage device, the stripe unit carrying the data to be stored and the physical address sent by the client;
    所述根据所述待写入数据的属性信息,对所述待写入数据进行处理包括:The processing the data to be written according to the attribute information of the data to be written includes:
    所述对象存储设备按照所述条带单元的物理地址,将所述待存储数据存储到所述对象存储设备的硬盘中。The object storage device stores the data to be stored in a hard disk of the object storage device according to a physical address of the stripe unit.
  7. 根据权利要求6所述的方法,其特征在于,所述方法还包括:所述对象存储设备根据所述待写入数据的写入粒度,创建所述待存储数据的存储映射关系,所述存储映射关系包括所述待存储数据存储时的逻辑地址和所述物理地址之间的映射关系,所述逻辑地址与所述待写入地址关联。The method according to claim 6, further comprising: the object storage device creating a storage mapping relationship of the data to be stored according to a write granularity of the data to be written, the storage The mapping relationship includes a mapping relationship between a logical address and the physical address when the data to be stored is stored, and the logical address is associated with the address to be written.
  8. 一种数据处理方法,其特征在于,所述方法包括:A data processing method, characterized in that the method includes:
    主机获取待操作数据的属性信息,根据所述待操作数据的属性信息生成数据操作请求;The host acquires attribute information of the data to be operated, and generates a data operation request according to the attribute information of the data to be operated;
    向客户端发送所述数据操作请求,所述数据操作请求包括数据完整性域DIF,所述DIF用于承载所述待操作数据的属性信息。Sending the data operation request to a client, where the data operation request includes a data integrity field DIF, and the DIF is used to carry attribute information of the data to be operated.
  9. 根据权利要求8所述的方法,其特征在于,在所述数据操作请求为数据读IO请求时,所述待操作数据的属性信息包括待读取数据的读取粒度和/或待读取数据对应的待读取地址的读取信息;The method according to claim 8, characterized in that, when the data operation request is a data read IO request, the attribute information of the data to be operated includes the read granularity of the data to be read and / or the data to be read Read information of the corresponding address to be read;
    所述待读取数据的读取粒度用于指示包括所述待读取数据在内的预读数据的大小;The read granularity of the data to be read is used to indicate the size of the pre-read data including the data to be read;
    所述待读取地址的读取信息用于指示单位时间内所述待读取地址发生数据读取的频率。The read information of the address to be read is used to indicate how often data is read from the address to be read in a unit time.
  10. 根据权利要求8所述的方法,其特征在于,在所述数据操作请求为数据写IO请求时,所述待操作数据的属性信息包括待写入数据的写入粒度和/或待写入数据对应的待写入地址的写入信息;The method according to claim 8, characterized in that when the data operation request is a data write IO request, the attribute information of the data to be operated includes a write granularity of data to be written and / or data to be written Write information of the corresponding address to be written;
    所述待写入数据的写入粒度用于指示所述待写入数据存储时采用的存储粒度;The write granularity of the data to be written is used to indicate a storage granularity used when the data to be written is stored;
    所述待写入地址的写入信息用于指示单位时间内所述待写入地址发生数据写入的频率。The writing information of the address to be written is used to indicate a frequency of data writing to the address to be written in a unit time.
  11. 一种数据处理装置,其特征在于,包括通信模块以及处理模块;其中,A data processing device, comprising a communication module and a processing module; wherein,
    所述通信模块,用于接收数据读IO请求,所述数据读IO请求包括数据完整性域DIF,所述DIF用于承载待读取数据的属性信息;The communication module is configured to receive a data read IO request, where the data read IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of data to be read;
    所述处理模块,用于根据所述待读取数据的属性信息,对所述待读取数据进行处理。The processing module is configured to process the data to be read according to attribute information of the data to be read.
  12. 一种数据处理装置,其特征在于,包括通信模块以及处理模块;其中,A data processing device, comprising a communication module and a processing module; wherein,
    所述通信模块,用于接收数据写IO请求,所述数据写IO请求包括数据完整性域DIF,所述DIF用于承载待写入数据的属性信息;The communication module is configured to receive a data write IO request, where the data write IO request includes a data integrity field DIF, and the DIF is used to carry attribute information of data to be written;
    所述处理模块,用于根据所述待写入数据的属性信息,对所述待写入数据进行处 理。The processing module is configured to process the data to be written according to attribute information of the data to be written.
  13. 一种数据处理装置,其特征在于,包括通信单元以及处理单元;其中,A data processing device, comprising a communication unit and a processing unit; wherein,
    所述处理单元,用于获取待操作数据的属性信息;The processing unit is configured to obtain attribute information of data to be operated;
    所述通信单元,用于向客户端发送数据操作请求,所述数据操作请求包括数据完整性域DIF,所述DIF用于承载所述待操作数据的属性信息。The communication unit is configured to send a data operation request to a client, where the data operation request includes a data integrity field DIF, and the DIF is used to carry attribute information of the data to be operated.
  14. 一种对象存储设备,其特征在于,包括处理器、存储器;所述处理器以及所述存储器建立通信;其中,所述存储器用于存储指令;所述处理器用于调用所述存储器中的指令,执行如上权利要求1-3中任一项所述的方法。An object storage device, comprising: a processor, a memory; the processor and the memory establish communication; wherein the memory is used to store instructions; the processor is used to call instructions in the memory, The method according to any one of claims 1-3 is performed.
  15. 一种对象存储设备,其特征在于,包括处理器、存储器;所述处理器以及所述存储器建立通信;其中,所述存储器用于存储指令;所述处理器用于调用所述存储器中的指令,执行如上权利要求4-7中任一项所述的方法。An object storage device, comprising: a processor, a memory; the processor and the memory establish communication; wherein the memory is used to store instructions; the processor is used to call instructions in the memory, Perform the method according to any one of claims 4-7.
  16. 一种主机,其特征在于,包括处理器、存储器;所述处理器、以及所述存储器建立通信;其中,所述存储器用于存储指令;所述处理器用于调用所述存储器中的指令,执行如上权利要求8-10中任一项所述的方法。A host is characterized in that it includes a processor, a memory, the processor, and the memory establishing communication; wherein the memory is used to store instructions; the processor is used to call the instructions in the memory to execute A method as claimed in any one of claims 8-10 above.
  17. 一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储有计算机程序,其特征在于,所述计算机程序被计算设备执行时实现如权利要求1至3任一项所述方法。A computer non-transitory storage medium storing a computer program, wherein the computer program implements the method according to any one of claims 1 to 3 when executed by a computing device.
  18. 一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储有计算机程序,其特征在于,所述计算机程序被计算设备执行时实现如权利要求4至7任一项所述方法。A computer non-transitory storage medium storing a computer program, wherein the computer program implements the method according to any one of claims 4 to 7 when executed by a computing device.
  19. 一种计算机非瞬态存储介质,所述计算机非瞬态存储介质存储有计算机程序,其特征在于,所述计算机程序被计算设备执行时实现如权利要求8至10任一项所述方法。A computer non-transitory storage medium storing a computer program, wherein the computer program implements the method according to any one of claims 8 to 10 when executed by a computing device.
PCT/CN2019/089582 2018-08-17 2019-05-31 Data processing method, related device, and computer storage medium WO2020034729A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810940730.8 2018-08-17
CN201810940730.8A CN110837479B (en) 2018-08-17 2018-08-17 Data processing method, related equipment and computer storage medium

Publications (1)

Publication Number Publication Date
WO2020034729A1 true WO2020034729A1 (en) 2020-02-20

Family

ID=69525077

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/089582 WO2020034729A1 (en) 2018-08-17 2019-05-31 Data processing method, related device, and computer storage medium

Country Status (2)

Country Link
CN (1) CN110837479B (en)
WO (1) WO2020034729A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297203A (en) * 2020-07-15 2021-08-24 阿里巴巴集团控股有限公司 Data query and write-in method and device, computer storage medium and electronic equipment
CN116483737A (en) * 2023-04-18 2023-07-25 深圳市金玺智控技术有限公司 Data processing method and device, electronic equipment and storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111538461B (en) * 2020-04-21 2023-04-07 招商局金融科技有限公司 Data reading and writing method and device based on solid state disk cache and storage medium
CN111796876A (en) * 2020-07-08 2020-10-20 深圳忆联信息系统有限公司 Method, device, equipment and medium for defining requirements on storage equipment based on user
CN111796776A (en) * 2020-07-08 2020-10-20 深圳忆联信息系统有限公司 Storage method, device, equipment and medium based on user customization or demand analysis
CN114115697B (en) * 2020-08-26 2024-03-22 浙江宇视科技有限公司 Cloud storage data processing method and device, electronic equipment and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915340A (en) * 2012-02-29 2013-02-06 浙江工商大学 Expanded B+ tree-based object file system
CN103064639A (en) * 2012-12-28 2013-04-24 华为技术有限公司 Method and device for storing data
CN104063344A (en) * 2014-06-20 2014-09-24 华为技术有限公司 Data storage method and network interface card
US20170139840A1 (en) * 2015-11-12 2017-05-18 International Business Machines Corporation Memory mapping for object-based storage devices
CN106713250A (en) * 2015-11-18 2017-05-24 杭州华为数字技术有限公司 Data access method and device based on distributed system
CN105993013B (en) * 2014-12-27 2018-05-04 华为技术有限公司 A kind of data processing method apparatus and system

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101657802A (en) * 2006-12-06 2010-02-24 弗森多系统公司(dba弗森-艾奥) The device, the system and method that are used for long-range direct memory access (DMA) solid storage device
WO2010092576A1 (en) * 2009-02-11 2010-08-19 Xsignnet Ltd. Virtualized storage system and method of operating it
US9165155B2 (en) * 2010-10-27 2015-10-20 Max Planck Gesellschaft Zur Foerderung Der Wissenschaften Protecting the integrity and privacy of data with storage leases
CN102307221A (en) * 2011-03-25 2012-01-04 国云科技股份有限公司 Cloud storage system and implementation method thereof
US8650359B2 (en) * 2011-08-26 2014-02-11 Vmware, Inc. Computer system accessing object storage system
US9225780B2 (en) * 2012-02-24 2015-12-29 Xyratex Technology Limited Data integrity in a networked storage system
US8918581B2 (en) * 2012-04-02 2014-12-23 Microsoft Corporation Enhancing the lifetime and performance of flash-based storage
CN103797770B (en) * 2012-12-31 2015-12-02 华为技术有限公司 A kind of method and system of shared storage resources
CN105094691B (en) * 2014-05-21 2019-05-21 华为技术有限公司 A kind of method, apparatus and system of data manipulation
US10481833B2 (en) * 2014-10-29 2019-11-19 Pure Storage, Inc. Transferring data encoding functions in a distributed storage network
US9881070B2 (en) * 2014-12-12 2018-01-30 Microsoft Technology Licensing, Llc Controlling service functions in response to service instigation and service reactivation messages
US10318375B2 (en) * 2015-03-20 2019-06-11 Burlywood, LLC Configurable multi-level error correction in a storage controller
CN107179878B (en) * 2016-03-11 2021-03-19 伊姆西Ip控股有限责任公司 Data storage method and device based on application optimization
CN107590395B (en) * 2017-08-15 2020-06-02 国家电网有限公司 Multilayer data encryption method, device, equipment and system suitable for cloud environment

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102915340A (en) * 2012-02-29 2013-02-06 浙江工商大学 Expanded B+ tree-based object file system
CN103064639A (en) * 2012-12-28 2013-04-24 华为技术有限公司 Method and device for storing data
CN104063344A (en) * 2014-06-20 2014-09-24 华为技术有限公司 Data storage method and network interface card
CN105993013B (en) * 2014-12-27 2018-05-04 华为技术有限公司 A kind of data processing method apparatus and system
US20170139840A1 (en) * 2015-11-12 2017-05-18 International Business Machines Corporation Memory mapping for object-based storage devices
CN106713250A (en) * 2015-11-18 2017-05-24 杭州华为数字技术有限公司 Data access method and device based on distributed system

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113297203A (en) * 2020-07-15 2021-08-24 阿里巴巴集团控股有限公司 Data query and write-in method and device, computer storage medium and electronic equipment
CN116483737A (en) * 2023-04-18 2023-07-25 深圳市金玺智控技术有限公司 Data processing method and device, electronic equipment and storage medium
CN116483737B (en) * 2023-04-18 2024-03-15 深圳市金玺智控技术有限公司 Data processing method and device, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN110837479B (en) 2023-09-01
CN110837479A (en) 2020-02-25

Similar Documents

Publication Publication Date Title
WO2020034729A1 (en) Data processing method, related device, and computer storage medium
US11662936B2 (en) Writing data using references to previously stored data
US9798655B2 (en) Managing a cache on storage devices supporting compression
US11275530B2 (en) Method, system, and related device for NAS data access
AU2014235793B2 (en) Automatic tuning of virtual data center resource utilization policies
RU2651219C2 (en) Computer, control device and data processing method
US9639459B2 (en) I/O latency and IOPs performance in thin provisioned volumes
CN108701004A (en) A kind of system of data processing, method and corresponding intrument
US9092366B2 (en) Splitting direct memory access windows
US20160070475A1 (en) Memory Management Method, Apparatus, and System
CN110119304B (en) Interrupt processing method and device and server
US9104601B2 (en) Merging direct memory access windows
US20200394304A1 (en) Optimizing storage system performance using storage device topology
WO2020083067A1 (en) Resource management method and apparatus
CN106598502B (en) Data storage method and system
WO2017054714A1 (en) Method and apparatus for reading disk array
US10255213B1 (en) Adapter device for large address spaces
WO2017031637A1 (en) Memory access method, apparatus and system
US20220261354A1 (en) Data access method and apparatus and storage medium
US9788192B2 (en) Making subscriber data addressable as a device in a mobile data network
CN107704596A (en) A kind of method, apparatus and equipment for reading file
US20140359062A1 (en) Data transferring apparatus, data transferring system and non-transitory computer readable medium

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

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

Country of ref document: EP

Kind code of ref document: A1