WO2024131122A1 - 一种数据缓存的方法、系统、设备和非易失性可读存储介质 - Google Patents
一种数据缓存的方法、系统、设备和非易失性可读存储介质 Download PDFInfo
- Publication number
- WO2024131122A1 WO2024131122A1 PCT/CN2023/115582 CN2023115582W WO2024131122A1 WO 2024131122 A1 WO2024131122 A1 WO 2024131122A1 CN 2023115582 W CN2023115582 W CN 2023115582W WO 2024131122 A1 WO2024131122 A1 WO 2024131122A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- new
- verification
- hard disk
- original
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/781—On-chip cache; Off-chip memory
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Definitions
- the present application relates to the field of hardware, and in particular to a method, system, device and non-volatile readable storage medium for data caching.
- the hardware RAID processing module will first move the data from the host computer memory to the local storage space, and read the data on the corresponding hard disk to the local storage according to the RAID level and its position in the RAID stripe, and then call the hardware RAID calculation acceleration engine to calculate the new check data, and write the new data and check data to the disk.
- a write IO of the host computer will be amplified into multiple read/write IOs of the relevant hard disk by the RAID processing module. This phenomenon is called "write amplification".
- a potential performance bottleneck is the bandwidth of local storage.
- RAID5's 4KB modification write as an example, one write IO will cause 9 read/write accesses to local storage, consuming 36KB of storage bandwidth.
- local storage is implemented through off-chip DDR (Double Data Rate, double-rate synchronous dynamic random access memory).
- DDR4-3200 Double Data Rate, double-rate synchronous dynamic random access memory
- its theoretical bandwidth is 51GB/s.
- the DDR4 utilization rate of 60% its actual bandwidth is only about 30GB/s, so it can provide RAID54KB random write IOPS (Input/Output Operations Per Second, IO operations per second) to the host computer.
- IOPS Input/Output Operations Per Second, IO operations per Second
- the data link between the RAID module and the host computer is generally a PCIe link.
- PCIe Gen5 X16 link As an example, its unidirectional link bandwidth is 64GB/s. In the RAID54KB random write scenario, its link occupancy rate is only about 5%.
- the hard disks that make up the RAID are NVMe (NVM Express, non-volatile memory host controller interface specification) SSDs (Solid State Drives)
- NVMe NVM Express, non-volatile memory host controller interface specification
- SSDs Solid State Drives
- their IO performance is also greatly limited by the bandwidth limit of the off-chip DDR.
- the hardware RAID solution is mainly limited by the bandwidth limit of traditional off-chip DDR.
- the purpose of the embodiments of the present application is to propose a method, system, computer device and non-volatile readable storage medium for data caching.
- the present application is aimed at NVMe SSD for RAID accelerated computing scenarios, and data is cached through the MB-level on-chip cache located in the RAID acceleration management chip, and the high storage bandwidth required for key performance scenarios is provided; for NVMe SSD group RAID scenarios, the RAID card no longer needs off-chip DDR for data caching; in response to high storage bandwidth requirements, a multi-chip OCB (On Chip Buffer) design is introduced to reduce the difficulty of engineering implementation, and the overall performance is achieved through multiple parallel channels.
- OCB On Chip Buffer
- a method for data caching comprising the following steps: setting an on-chip cache on a RAID management chip; reading new data from a host DDR into the on-chip cache, and calculating new verification data based on the type of the current RAID group and the new data; and sending the new data to a data hard disk corresponding to the RAID group, and sending the new verification data to a verification hard disk corresponding to the RAID group.
- calculating new verification data based on the type of the current RAID group and the new data includes: in response to the RAID group being of the first type, determining a method for calculating the new verification data based on the size of the new data; and in response to the RAID group being of the second type, calculating the new verification data based on the new data, the original data corresponding to the new data, the first original verification data, and the second original verification data.
- the method for determining the calculation of new verification data based on the size of the new data includes: in response to the new data not exceeding a first threshold, calculating new verification data based on the new data, the original data corresponding to the new data, and the original verification data; and in response to the new data exceeding the first threshold, calculating new verification data based on the new data.
- calculating new verification data based on new data, original data corresponding to the new data, and original verification data includes: reading the original data corresponding to the new data from the first data hard disk into the on-chip cache, and reading the original verification data from the first verification hard disk into the on-chip cache.
- the method also includes: writing new data into a first space of an on-chip cache, writing original data corresponding to the new data into a second space of the on-chip cache, writing original verification data into a third space of the on-chip cache, and writing new verification data into a fourth space of the on-chip cache.
- sending new data to a data hard disk corresponding to a RAID group and sending new verification data to a verification hard disk corresponding to the RAID group includes: sending new data to a first data hard disk and sending new verification data to a first verification hard disk.
- the method further includes: concurrently executing reading new data from a host DDR, reading original data corresponding to the new data from a first data hard disk, and reading original verification data from a first verification hard disk.
- the method further includes: concurrently executing the steps of writing new data to the first data hard disk and writing new verification data to the first verification hard disk.
- the method further includes: writing new data into a first space of the on-chip cache, and writing new verification data into a fourth space of the on-chip cache.
- sending new data to a data hard disk corresponding to a RAID group and sending new verification data to a verification hard disk corresponding to the RAID group includes: dividing the new data into multiple parts evenly, transmitting each part to each corresponding data hard disk, and transmitting the new verification data to the corresponding verification hard disk.
- the method further includes concurrently executing the transfer of each portion of the new data to each corresponding data hard disk.
- calculating new verification data based on new data, original data corresponding to the new data, first original verification data, and second original verification data includes: calculating new first verification data and second verification data based on the new data, original data corresponding to the new data, first original verification data, and second original verification data.
- the method also includes: reading the original data corresponding to the new data from the second data hard disk into the on-chip cache, reading the first original verification data from the second verification hard disk into the on-chip cache, and reading the second original verification data from the third verification hard disk into the on-chip cache.
- the method also includes: writing new data into the first space of the on-chip cache, writing the original data corresponding to the new data into the second space of the on-chip cache, writing the first original verification data into the third space of the on-chip cache, writing the second original verification data into the fourth space of the on-chip cache, writing the new first verification data into the fifth space of the on-chip cache, and writing the new second verification data into the sixth space of the on-chip cache.
- sending new data to a data hard disk corresponding to a RAID group and sending new verification data to a verification hard disk corresponding to a RAID group includes: sending the new data to a second data hard disk, sending new first verification data to a second verification hard disk, and sending new second verification data to a third verification hard disk.
- the method further includes: concurrently executing reading new data from the host DDR, reading original data corresponding to the new data from the second data hard disk, reading first original verification data from the second verification hard disk, and reading second original verification data from the third verification hard disk.
- the method further includes: concurrently executing the steps of writing new data to a second data hard disk, writing new first verification data to a second verification hard disk, and writing new second verification data to a third verification hard disk.
- a data cache system comprising: a setting module, configured to manage the RAID An on-chip cache is set on the chip; a computing module is configured to read new data from the host DDR into the on-chip cache, and calculate new verification data according to the type of the current RAID group and the new data; and a sending module is configured to send the new data to the data hard disk corresponding to the RAID group, and send the new verification data to the verification hard disk corresponding to the RAID group.
- a computer device comprising: at least one processor; and a memory, wherein the memory stores computer instructions executable on the processor, and the instructions implement the steps of the above method when executed by the processor.
- a non-volatile readable storage medium which stores a computer program that implements the above method steps when executed by a processor.
- the RAID data processing process is decoupled from the dependence on the limited bandwidth of traditional off-chip DDR, maximizing the IO performance of the RAID processing chip to match the growth rhythm of the generational doubling of PCIe interface performance;
- the RAID acceleration management chip can completely remove the traditional DDR interface, reduce system power consumption, and increase the number of hanging disks directly connected to the RAID card;
- FIG1 is a schematic diagram of an embodiment of a method for data caching provided by the present application.
- FIG2 is a schematic diagram of an embodiment of a first type of data caching provided by the present application.
- FIG3 is a schematic diagram of another embodiment of the first type of data caching provided by the present application.
- FIG4 is a schematic diagram of an embodiment of a second type of data caching provided by the present application.
- FIG5 is a schematic diagram of the architecture of the data cache provided by the present application.
- FIG6 is a schematic diagram of an embodiment of a data caching system provided by the present application.
- FIG7 is a schematic diagram of the hardware structure of an embodiment of a computer device for data caching provided by the present application.
- FIG8 is a schematic diagram of an embodiment of a non-volatile readable storage medium for data caching provided by the present application.
- FIG1 is a schematic diagram of an embodiment of the method for data caching provided by the present application. As shown in FIG1 , the embodiment of the present application includes the following steps:
- RAID technology organically combines multiple independent non-volatile readable storage media (SSD (Solid State Disk) or HDD (Hard Disk Drive)) into a whole, presenting it to the host computer as a storage device with data redundancy protection, and responding to the host computer's management and read/write IO (Input/Output) requests.
- SSD Solid State Disk
- HDD Hard Disk Drive
- IO Input/Output
- the embodiment of the present application is specifically aimed at NVMe (Non-Volatile Memory Express, a transmission protocol based on non-volatile memory) SSD group RAID, and based on the hardware-based RAID acceleration scenario, introduces OCB (On-Chip Bus) as a data cache, which provides high storage bandwidth while only requiring a limited number of MB (MByte) level cache space, which can greatly improve the RAID write IO performance.
- NVMe Non-Volatile Memory Express
- OCB On-Chip Bus
- An on-chip cache is set on the RAID management chip. New data is read from the host DDR into the on-chip cache, and new verification data is calculated based on the type of the current RAID group and the new data.
- calculating new check data according to the type of the current RAID group and the new data includes: In response to the RAID group being of the first type, a method for calculating new verification data is determined according to the size of the new data; and in response to the RAID group being of the second type, new verification data is calculated according to the new data, the original data corresponding to the new data, the first original verification data and the second original verification data.
- the method of calculating new verification data according to the size of new data includes: in response to the new data not exceeding the first threshold, calculating the new verification data according to the new data, the original data corresponding to the new data, and the original verification data; and in response to the new data exceeding the first threshold, calculating the new verification data according to the new data.
- the first threshold may be 4KB (Kilobyte)
- the new verification data is calculated according to the new data, the original data corresponding to the new data, and the original verification data
- the new data exceeds 4KB the new verification data is calculated according to the new data.
- FIG2 is a schematic diagram of an embodiment of the first type of data caching provided in the present application.
- the first type is illustrated by taking RAID5 as an example.
- a RAID5 4KB data random write IO processing flow the digital sequence on the arrow is the possible data operation order.
- D' is the new data of the host
- D is the original data to be overwritten on the hard disk
- P is the original check data
- P' is the newly calculated check data.
- Their sizes are all 4KB.
- the RAID processing related data of this application is cached in the non-volatile readable storage medium in the RAID processing chip.
- calculating new verification data based on new data, original data corresponding to the new data, and original verification data includes: reading the original data corresponding to the new data from the first data hard disk into the on-chip cache, and reading the original verification data from the first verification hard disk into the on-chip cache.
- the method further includes: writing the new data into the first space of the on-chip cache, writing the original data corresponding to the new data into the second space of the on-chip cache, writing the original verification data into the third space of the on-chip cache, and writing the new verification data into the fourth space of the on-chip cache. That is, as shown in FIG2 , the new data D' is read from the host DDR into the on-chip cache space U; the original data D corresponding to the new data is read from the corresponding SSD into the on-chip cache space V; the original verification data P is read from the corresponding SSD into the on-chip cache space W; the new verification data P' is calculated through D', D and P and stored in the on-chip cache space X.
- the new data is sent to the data hard disk corresponding to the RAID group, and the new verification data is sent to the verification hard disk corresponding to the RAID group.
- sending new data to a data hard disk corresponding to the RAID group and sending new verification data to a verification hard disk corresponding to the RAID group includes: sending the new data to the first data hard disk and sending the new verification data to the verification hard disk corresponding to the RAID group.
- the data is sent to the first verification hard disk, that is, the new data D' is written to the corresponding SSD, and the new verification data P' is written to the corresponding SSD.
- the method further includes: concurrently executing reading new data from a host DDR, reading original data corresponding to the new data from a first data hard disk, and reading original verification data from a first verification hard disk.
- the method further includes: concurrently executing the steps of writing new data to the first data hard disk and writing new verification data to the first verification hard disk.
- NVMe SSD For NVMe SSD, set the NVMe SSD disk read IO delay to a, write IO delay to b, and RAID calculation processing time to c, then the single IO processing time can be approximately equal to 2a+2b+c.
- the system's small IO (4KB) random write IOPS design target value to M, then the required on-chip cache size is: M ⁇ (2a+2b+c) ⁇ 16KB; the on-chip cache bandwidth is: 9 ⁇ M ⁇ 4KB.
- the above steps are executed concurrently, then the delay of a single IO can be shortened to a+b+c, and the corresponding required on-chip cache size can be reduced to: M ⁇ (a+b+c) ⁇ 16KB; in the above processing process, P' can also be stored in space W to overwrite the original verification data, and the corresponding required on-chip cache space is: M ⁇ (2a+2b+c) ⁇ 12KB.
- FIG3 is a schematic diagram of another embodiment of the first type of data caching provided by the present application. As shown in FIG3, it is a 256KB write IO processing flow of a RAID5 (5 hard disks are grouped into RAID5, and the stripe unit size is 64KB). The RAID acceleration management chip will aggregate and process it as a full stripe. D' is 256KB of new data, and P' is the new verification data calculated from 64KB. The data related to the RAID processing of the present application is cached in a non-volatile readable storage medium in the RAID processing chip.
- the method further includes: writing the new data into the first space of the on-chip cache, and writing the new check data into the fourth space of the on-chip cache.
- the new data D' (256KB) is read from the host DDR into the on-chip cache space U; the new check data P' is calculated from D' and stored in the on-chip storage space X.
- sending new data to the data hard disk corresponding to the RAID group, and sending new verification data to the verification hard disk corresponding to the RAID group includes: dividing the new data into multiple parts evenly, transferring each part to each corresponding data hard disk, and transferring the new verification data to the corresponding verification hard disk.
- the first part of the new data D’ 64KB is written to the corresponding SSD; the second part of the new data D’ (64KB) is written to the corresponding SSD; the third part of the new data D’ (64KB) is written to the corresponding SSD; the fourth part of the new data D’ (64KB) is written to the corresponding SSD; and the new verification data P’ (64KB) is written to the corresponding SSD.
- the method further includes: concurrently executing the transmission of each portion of the new data to each corresponding data According to the hard disk.
- the SSD write latency of the NVMe interface is set to b
- the RAID calculation processing time is c
- the sequential write bandwidth design target set by the system is W.
- the on-chip cache bandwidth is:
- the delay of a single IO can be shortened to b+c.
- the corresponding required on-chip cache size can be reduced to:
- Fig. 4 is a schematic diagram of an embodiment of the second type of data caching provided by the present application.
- the second type of embodiment of the present application is described by taking RAID 6 as an example.
- FIG. 4 it is a RAID6 4KB data random write IO processing flow, and the digital serial number on the arrow is the possible data operation order.
- D' is the newly written data of the host
- D is the corresponding original data to be overwritten on the hard disk
- P/Q is the first original verification data and the second original verification data
- P'/Q' is the newly calculated first verification data and the second verification data, both of which are 4KB in size.
- the RAID processing related data of this application is cached in the non-volatile readable storage medium in the RAID processing chip.
- calculating new verification data based on new data, original data corresponding to the new data, first original verification data, and second original verification data includes: calculating new first verification data and second verification data based on the new data, original data corresponding to the new data, first original verification data, and second original verification data.
- the method also includes: reading the original data corresponding to the new data from the second data hard disk into the on-chip cache, reading the first original verification data from the second verification hard disk into the on-chip cache, and reading the second original verification data from the third verification hard disk into the on-chip cache.
- the method further includes: writing the new data into the first space of the on-chip cache, writing the original data corresponding to the new data into the second space of the on-chip cache, writing the first original verification data into the third space of the on-chip cache, writing the second original verification data into the fourth space of the on-chip cache, writing the new first verification data into the fifth space of the on-chip cache, and writing the new second verification data into the sixth space of the on-chip cache.
- the new data D' is read from the host DDR into the on-chip cache space U; the old data D is read from the corresponding SSD into the on-chip cache space V; the old verification data P is read from the corresponding SSD into the on-chip cache space W; the old verification data Q is read from the corresponding SSD into the on-chip cache space X; calculate new check data P' and Q' through D', D, P and Q and store them in on-chip cache space Y and Z.
- sending new data to the data hard disk corresponding to the RAID group and sending new verification data to the verification hard disk corresponding to the RAID group includes: sending the new data to the second data hard disk, sending the new first verification data to the second verification hard disk, and sending the new second verification data to the third verification hard disk. That is, the new data D' is written to the corresponding SSD; the new verification data P' and Q' are written to the corresponding SSD.
- the method further includes: concurrently executing reading new data from the host DDR, reading original data corresponding to the new data from the second data hard disk, reading first original verification data from the second verification hard disk, and reading second original verification data from the third verification hard disk.
- the method further includes: concurrently executing the steps of writing new data to a second data hard disk, writing new first verification data to a second verification hard disk, and writing new second verification data to a third verification hard disk.
- NVMe SSD For NVMe SSD, set the NVMe SSD disk read IO latency to a, write IO latency to b, and RAID calculation processing time to c, then the single IO processing time can be approximately equal to 3a+3b+c.
- the delay of a single IO can be shortened to a+b+c, and the corresponding required on-chip cache size can be reduced to: M ⁇ (a+b+c) ⁇ 24KB.
- P' and Q' can also be stored in space W and X, covering the original verification data, and the corresponding required on-chip cache space is: M ⁇ (3a+3b+c) ⁇ 16KB.
- the second aspect of the embodiment of the present application proposes a data cache system.
- the system 200 includes the following modules: a setting module, configured to set an on-chip cache on a RAID management chip; a computing module; A module is configured to read new data from the host DDR into the on-chip cache and calculate new verification data according to the type of the current RAID group and the new data; and a sending module is configured to send the new data to the data hard disk corresponding to the RAID group and send the new verification data to the verification hard disk corresponding to the RAID group.
- the calculation module is configured to: in response to the RAID group being of the first type, determine a method for calculating new verification data based on the size of the new data; and in response to the RAID group being of the second type, calculate new verification data based on the new data, the original data corresponding to the new data, the first original verification data, and the second original verification data.
- the calculation module is configured to: in response to new data not exceeding a first threshold, calculate new verification data based on the new data, the original data corresponding to the new data, and the original verification data; and in response to the new data exceeding the first threshold, calculate new verification data based on the new data.
- the computing module is configured to: read original data corresponding to the new data from the first data hard disk into the on-chip cache, and read original verification data from the first verification hard disk into the on-chip cache.
- the system also includes a write module, which is configured to: write new data into the first space of the on-chip cache, write the original data corresponding to the new data into the second space of the on-chip cache, write the original verification data into the third space of the on-chip cache, and write the new verification data into the fourth space of the on-chip cache.
- a write module configured to: write new data into the first space of the on-chip cache, write the original data corresponding to the new data into the second space of the on-chip cache, write the original verification data into the third space of the on-chip cache, and write the new verification data into the fourth space of the on-chip cache.
- the sending module is configured to: send new data to the first data hard disk, and send new verification data to the first verification hard disk.
- the system further includes a first execution module configured to concurrently execute reading of new data from a host DDR, reading of original data corresponding to the new data from a first data hard disk, and reading of original verification data from a first verification hard disk.
- a first execution module configured to concurrently execute reading of new data from a host DDR, reading of original data corresponding to the new data from a first data hard disk, and reading of original verification data from a first verification hard disk.
- system further includes a second execution module configured to concurrently execute the writing of new data to the first data hard disk and the writing of new verification data to the first verification hard disk.
- system further includes a second writing module configured to write new data into the first space of the on-chip cache and write new verification data into the fourth space of the on-chip cache.
- the sending module is configured to: divide the new data into multiple parts evenly, transmit each part to each corresponding data hard disk, and transmit the new verification data to the corresponding verification hard disk.
- system further includes a third execution module configured to concurrently execute the transmission of each portion of the new data to each corresponding data hard disk.
- the calculation module is configured to calculate new first verification data and second verification data according to the new data, original data corresponding to the new data, first original verification data, and second original verification data.
- the system also includes a reading module, which is configured to: read the original data corresponding to the new data from the second data hard disk into the on-chip cache, read the first original verification data from the second verification hard disk into the on-chip cache, and read the second original verification data from the third verification hard disk into the on-chip cache.
- a reading module configured to: read the original data corresponding to the new data from the second data hard disk into the on-chip cache, read the first original verification data from the second verification hard disk into the on-chip cache, and read the second original verification data from the third verification hard disk into the on-chip cache.
- the system also includes a third writing module, which is configured to: write new data into the first space of the on-chip cache, write the original data corresponding to the new data into the second space of the on-chip cache, write the first original verification data into the third space of the on-chip cache, write the second original verification data into the fourth space of the on-chip cache, write the new first verification data into the fifth space of the on-chip cache, and write the new second verification data into the sixth space of the on-chip cache.
- a third writing module which is configured to: write new data into the first space of the on-chip cache, write the original data corresponding to the new data into the second space of the on-chip cache, write the first original verification data into the third space of the on-chip cache, write the second original verification data into the fourth space of the on-chip cache, write the new first verification data into the fifth space of the on-chip cache, and write the new second verification data into the sixth space of the on-chip cache.
- the sending module is configured to: send new data to the second data hard disk, send new first verification data to the second verification hard disk, and send new second verification data to the third verification hard disk.
- the system also includes a fourth execution module, which is configured to concurrently execute reading new data from the host DDR, reading original data corresponding to the new data from the second data hard disk, reading first original verification data from the second verification hard disk, and reading second original verification data from the third verification hard disk.
- a fourth execution module which is configured to concurrently execute reading new data from the host DDR, reading original data corresponding to the new data from the second data hard disk, reading first original verification data from the second verification hard disk, and reading second original verification data from the third verification hard disk.
- the system also includes a fifth execution module, which is configured to concurrently execute the writing of new data to the second data hard disk, the writing of new first verification data to the second verification hard disk, and the writing of new second verification data to the third verification hard disk.
- the third aspect of the embodiment of the present application proposes a computer device, including: at least one processor; and a memory, the memory storing computer instructions that can be run on the processor, and the instructions are executed by the processor to implement the following steps: S1, setting an on-chip cache on the RAID management chip; S2, reading new data from the host DDR into the on-chip cache, and calculating new verification data based on the type of the current RAID group and the new data; and S3, sending the new data to the data hard disk corresponding to the RAID group, and sending the new verification data to the verification hard disk corresponding to the RAID group.
- calculating new verification data based on the type of the current RAID group and the new data includes: in response to the RAID group being of the first type, determining a method for calculating the new verification data based on the size of the new data; and in response to the RAID group being of the second type, calculating the new verification data based on the new data, the original data corresponding to the new data, the first original verification data, and the second original verification data.
- the method for determining the calculation of new verification data based on the size of the new data includes: in response to the new data not exceeding a first threshold, calculating new verification data based on the new data, the original data corresponding to the new data, and the original verification data; and in response to the new data exceeding the first threshold, calculating new verification data based on the new data.
- calculating new verification data based on new data, original data corresponding to the new data, and original verification data includes: reading the original data corresponding to the new data from the first data hard disk into the on-chip cache, and reading the original verification data from the first verification hard disk into the on-chip cache.
- the steps also include: writing new data into the first space of the on-chip cache, writing the original data corresponding to the new data into the second space of the on-chip cache, writing the original verification data into the third space of the on-chip cache, and writing the new verification data into the fourth space of the on-chip cache.
- sending new data to a data hard disk corresponding to a RAID group and sending new verification data to a verification hard disk corresponding to the RAID group includes: sending new data to a first data hard disk and sending new verification data to a first verification hard disk.
- the steps further include: concurrently executing reading new data from the host DDR, reading original data corresponding to the new data from the first data hard disk, and reading original verification data from the first verification hard disk.
- the steps further include: concurrently executing the steps of writing new data to the first data hard disk and writing new verification data to the first verification hard disk.
- the steps further include: writing new data into a first space of the on-chip cache, and writing new verification data into a fourth space of the on-chip cache.
- sending new data to a data hard disk corresponding to a RAID group and sending new verification data to a verification hard disk corresponding to the RAID group includes: dividing the new data into multiple parts evenly, transmitting each part to each corresponding data hard disk, and transmitting the new verification data to the corresponding verification hard disk.
- the steps further include: concurrently executing the transfer of each portion of the new data to each corresponding data hard disk.
- calculating new verification data based on new data, original data corresponding to the new data, first original verification data, and second original verification data includes: calculating new first verification data and second verification data based on the new data, original data corresponding to the new data, first original verification data, and second original verification data.
- the steps also include: reading the original data corresponding to the new data from the second data hard disk into the on-chip cache, reading the first original verification data from the second verification hard disk into the on-chip cache, and reading the second original verification data from the third verification hard disk into the on-chip cache.
- the steps also include: writing new data into the first space of the on-chip cache, writing the original data corresponding to the new data into the second space of the on-chip cache, writing the first original verification data into the third space of the on-chip cache, writing the second original verification data into the fourth space of the on-chip cache, writing the new first verification data into the fifth space of the on-chip cache, and writing the new second verification data into the sixth space of the on-chip cache.
- sending new data to a data hard disk corresponding to a RAID group and sending new verification data to a verification hard disk corresponding to a RAID group includes: sending the new data to a second data hard disk, sending new first verification data to a second verification hard disk, and sending new second verification data to a third verification hard disk.
- the steps further include: concurrently executing reading new data from the host DDR, reading original data corresponding to the new data from the second data hard disk, reading first original verification data from the second verification hard disk, and reading second original verification data from the third verification hard disk.
- the steps further include: concurrently executing the steps of writing new data to a second data hard disk, writing new first verification data to a second verification hard disk, and writing new second verification data to a third verification hard disk.
- FIG3 it is a schematic diagram of the hardware structure of an embodiment of the computer device for data caching provided by the present application.
- the device includes a processor 301 and a memory 302 .
- the processor 301 and the memory 302 may be connected via a bus or other means, and FIG3 takes the connection via a bus as an example.
- the memory 302 as a non-volatile readable storage medium, can be configured to store non-volatile software programs, non-volatile computer executable programs and modules, such as program instructions/modules corresponding to the data caching method in the embodiment of the present application.
- the processor 301 executes various functional applications and data processing of the server by running the non-volatile software programs, instructions and modules stored in the memory 302, that is, implementing the data caching method.
- the memory 302 may include a program storage area and a data storage area, wherein the program storage area may store an operating system and an application required by at least one function; the data storage area may store data created by using a data caching method, etc.
- the memory 302 may include a high-speed random access memory, and may also include a non-volatile memory, such as up to At least one disk storage device, flash memory device, or other non-volatile solid-state storage device.
- memory 302 optionally includes a memory remotely arranged relative to processor 301, and these remote memories can be connected to the local module via a network. Examples of the above-mentioned network include but are not limited to the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
- Computer instructions 303 corresponding to one or more data caching methods are stored in the memory 302 , and when executed by the processor 301 , the data caching method in any of the above method embodiments is executed.
- Any embodiment of a computer device that executes the above-mentioned data caching method can achieve the same or similar effect as any corresponding embodiment of the above-mentioned method.
- the present application also provides a non-volatile readable storage medium, which stores a computer program for executing a data caching method when executed by a processor.
- FIG 4 it is a schematic diagram of an embodiment of the non-volatile readable storage medium for data caching provided by the present application.
- the non-volatile readable storage medium 401 stores a computer program 402 that performs the above method when executed by a processor.
- the program of the data caching method can be stored in a non-volatile readable storage medium, and when the program is executed, it can include the processes of the embodiments of the above-mentioned methods.
- the non-volatile readable storage medium of the program can be a disk, an optical disk, a read-only storage memory (ROM) or a random access memory (RAM), etc.
- the above-mentioned computer program embodiments can achieve the same or similar effects as any of the above-mentioned method embodiments corresponding thereto.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请提供一种数据缓存的方法、系统、设备和非易失性可读存储介质,方法包括:在RAID管理芯片上设置片上缓存;从主机DDR中将新的数据读取到所述片上缓存中,并根据当前RAID组的类型和所述新的数据计算得到新的校验数据;以及将所述新的数据发送到RAID组对应的数据硬盘中,并将所述新的校验数据发送到RAID组对应的校验硬盘中。本申请通过引入片上缓存,解耦了RAID数据处理过程中对传统片外DDR有限带宽的依赖,最大化释放了RAID处理芯片的IO性能,匹配了PCIe接口性能代际倍增的增长节奏。
Description
相关申请的交叉引用
本申请要求于2022年12月19日提交中国专利局,申请号为202211634314.8,申请名称为“一种数据缓存的方法、系统、设备和存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及硬件领域,特别是一种数据缓存的方法、系统、设备和非易失性可读存储介质。
RAID(Redundant Arrays of Independent Disks,独立冗余磁盘阵列)组一般由n个数据盘和m个校验盘组成。依据不同的组织方式和算法,RAID可以分类成不同的RAID级别,常见的有RAID0(n=k,m=0),RAID1(n=1,m=1),RAID10(n=k,m=k),RAID5(n=k,m=1),RAID6(n=k,m=2)等,其中k为正整数。在RAID组响应上位机的写IO请求的过程中,硬RAID处理模块会先将数据从上位机内存搬移到本地的存储空间,并依据RAID级别和其在RAID条带中的位置,读取对应硬盘上的数据到本地存储后,再调用硬RAID计算加速引擎计算出新的校验数据,并将新数据和校验数据落盘。这个过程中,上位机的一次写IO会放大成RAID处理模块对相关硬盘的多次读/写IO,这种现象被称为“写放大”。
在“写放大”的过程中,潜在的一个性能瓶颈点是本地存储的带宽。以RAID5的4KB修改写为例,一次写IO会造成9次对本地存储的读/写访问,消耗掉36KB的存储带宽。通常本地存储通过片外DDR(Double Data Rate,双倍速率同步动态随机存储器)实现,以128位的双通道DDR4-3200为例,其理论带宽为51GB/s,按DDR4利用率60%估算,其实际带宽仅为30GB/s左右,从而得到其可以提供给上位机的RAID54KB随机写的IOPS(Input/Output Operations Per Second,每秒IO操作数)为833K。而RAID模块同上位机之间的数据链路一般为PCIe链路,以PCIe Gen5 X16的链路为例,其单向链路带宽为64GB/s,在RAID54KB随机写场景下,其链路占用率仅为5%左右。同时,如果组成RAID的硬盘是NVMe(NVM Express,非易失性内存主机控制器接口规范)SSD(Solid State Drive,固态硬盘),其IO性能释放也极大地受限于片外DDR的带宽上限。综上,当前在面向NVMe SSD的
硬RAID的解决方案主要受限于传统片外DDR的带宽上限限制。
发明内容
有鉴于此,本申请实施例的目的在于提出一种数据缓存的方法、系统、计算机设备及非易失性可读存储介质,本申请面向NVMe SSD进行RAID加速计算场景,通过位于RAID加速管理芯片内的MB级别片上缓存进行数据缓存,并提供关键性能场景所需的高存储带宽;面向NVMe SSD组RAID场景,RAID卡不在需要片外的DDR进行数据缓存;针对高存储带宽需求,引入多片OCB(On Chip Buffer,片上缓存)的设计,降低工程实现难度,并通过多个并联通道来实现整体性能的达成。
基于上述目的,根据第一方面,提供了一种数据缓存的方法,包括如下步骤:在RAID管理芯片上设置片上缓存;从主机DDR中将新的数据读取到片上缓存中,并根据当前RAID组的类型和新的数据计算得到新的校验数据;以及将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中。
在一些实施方式中,根据当前RAID组的类型和新的数据计算得到新的校验数据包括:响应于RAID组为第一类型,根据新的数据的大小确定计算新的校验数据的方式;以及响应于RAID组为第二类型,根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的校验数据。
在一些实施方式中,根据新的数据的大小确定计算新的校验数据的方式包括:响应于新的数据不超过第一阈值,根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据;以及响应于新的数据超过第一阈值,根据新的数据计算得到新的校验数据。
在一些实施方式中,根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据包括:从第一数据硬盘上读取新的数据对应的原始数据到片上缓存中,并从第一校验硬盘上读取原始校验数据到片上缓存中。
在一些实施方式中,方法还包括:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将原始校验数据写入片上缓存的第三空间,并将新的校验数据写入片上缓存的第四空间。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据发送到第一数据硬盘中,并将新的校验数据发送到第一校验硬盘中。
在一些实施方式中,方法还包括:并发执行从主机DDR读取新的数据、从第一数据硬盘上读取新的数据对应的原始数据以及从第一校验硬盘上读取原始校验数据。
在一些实施方式中,方法还包括:并发执行将新的数据落盘到第一数据硬盘中以及将新的校验数据落盘到第一校验硬盘中。
在一些实施方式中,方法还包括:将新的数据写入片上缓存的第一空间,将新的校验数据写入片上缓存的第四空间。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据平均分成多个部分,将每个部分传输到每个对应的数据硬盘,并将新的校验数据传输到对应的校验硬盘。
在一些实施方式中,方法还包括:并发执行将新的数据的每个部分传输到每个对应的数据硬盘。
在一些实施方式中,根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的校验数据包括:根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的第一校验数据和第二校验数据。
在一些实施方式中,方法还包括:从第二数据硬盘上读取新的数据对应的原始数据到片上缓存中,从第二校验硬盘上读取第一原始校验数据到片上缓存中,并从第三校验硬盘上读取第二原始校验数据到片上缓存中。
在一些实施方式中,方法还包括:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将第一原始校验数据写入片上缓存的第三空间,将第二原始校验数据写入片上缓存的第四空间,将新的第一校验数据写入片上缓存的第五空间,并将新的第二校验数据写入片上缓存的第六空间。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据发送到第二数据硬盘,将新的第一校验数据发送到第二校验硬盘,并将新的第二校验数据发送到第三校验硬盘。
在一些实施方式中,方法还包括:并发执行从主机DDR读取新的数据、从第二数据硬盘上读取新的数据对应的原始数据、从第二校验硬盘上读取第一原始校验数据以及从第三校验硬盘上读取第二原始校验数据。
在一些实施方式中,方法还包括:并发执行将新的数据落盘到第二数据硬盘中、将新的第一校验数据落盘到第二校验硬盘中以及将新的第二校验数据落盘到第三校验硬盘中。
根据第二方面,提供了一种数据缓存的系统,包括:设置模块,被设置为在RAID管理
芯片上设置片上缓存;计算模块,被设置为从主机DDR中将新的数据读取到片上缓存中,并根据当前RAID组的类型和新的数据计算得到新的校验数据;以及发送模块,被设置为将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中。
根据第三方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现如上方法的步骤。
根据第四方面,还提供了一种非易失性可读存储介质,非易失性可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
本申请具有以下有益技术效果:
1、针对NVMe SSD基于半导体存储的IO特点,通过引入MB级别的片上缓存,解耦了RAID数据处理过程中对传统片外DDR有限带宽的依赖,最大化释放了RAID处理芯片的IO性能,以匹配PCIe接口性能代际倍增的增长节奏;
2、针对纯粹的NVMe SSD挂盘场景,RAID加速管理芯片可以完全移除传统的DDR接口,降低系统功耗,增加RAID卡直连挂盘数量;
3、因为仅需对片上MB级别数据进行异常掉电后的数据保护,异常备电能量需求相较于传统RAID卡也会大幅减少。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本申请提供的数据缓存的方法的实施例的示意图;
图2为本申请提供的第一类型进行数据缓存的实施例的示意图;
图3为本申请提供的第一类型进行数据缓存的另一实施例的示意图;
图4为本申请提供的第二类型进行数据缓存的实施例的示意图;
图5为本申请提供的数据缓存的架构示意图;
图6为本申请提供的数据缓存的系统的实施例的示意图;
图7为本申请提供的数据缓存的计算机设备的实施例的硬件结构示意图;
图8为本申请提供的数据缓存的非易失性可读存储介质的实施例的示意图。
为使本申请的目的、技术方案和优点更加清楚明白,以下结合实施例,并参照附图,对本申请实施例的详细说明。
需要说明的是,本申请实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本申请实施例的限定,后续实施例对此不再一一说明。
本申请实施例的第一个方面,提出了一种数据缓存的方法的实施例。图1示出的是本申请提供的数据缓存的方法的实施例的示意图。如图1所示,本申请实施例包括如下步骤:
S1、在RAID(Redundant Arrays of Independent Disks,独立冗余磁盘阵列)管理芯片上设置片上缓存;
S2、从主机DDR(Double Data Rate双倍速率)中将新的数据读取到片上缓存中,并根据当前RAID组的类型和新的数据计算得到新的校验数据;以及
S3、将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中。
RAID技术通过将多个独立的非易失性可读存储介质(SSD(Solid State Disk,固态硬盘)或者HDD(Hard Disk Drive,机械硬盘))有机的结合成一个整体,对上位机呈现为一个带数据冗余保护的存储设备,并响应上位机的管理和读/写IO(Input/Output,输入/输出)请求。以RAID0为例,它将上位机的一次IO请求变为对多个独立非易失性可读存储介质的并发操作,从而提高了整体的带宽和时延性能。本申请实施例特别的针对NVMe(Non-Volatile Memory Express,一种基于非易失性存储器的传输协议)SSD组RAID,并基于硬件进行的RAID加速场景,引入OCB(On-Chip Bus,片上缓存)作为数据缓存,在提供了高存储带宽的同时,仅需要有限数MB(MByte,兆字节)级别的缓存空间,可以大幅度的提高RAID写IO性能。
在RAID管理芯片上设置片上缓存。从主机DDR中将新的数据读取到片上缓存中,并根据当前RAID组的类型和新的数据计算得到新的校验数据。
在一些实施方式中,根据当前RAID组的类型和新的数据计算得到新的校验数据包括:
响应于RAID组为第一类型,根据新的数据的大小确定计算新的校验数据的方式;以及响应于RAID组为第二类型,根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的校验数据。
在一些实施方式中,根据新的数据的大小确定计算新的校验数据的方式包括:响应于新的数据不超过第一阈值,根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据;以及响应于新的数据超过第一阈值,根据新的数据计算得到新的校验数据。例如,第一阈值可以是4KB(Kilobyte,千字节),如果新的数据不超过4KB,就根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据,如果新的数据超过4KB,就根据新的数据计算得到新的校验数据。
图2为本申请提供的第一类型进行数据缓存的实施例的示意图,本申请中第一类型以RAID5为例进行说明。
如图2所示为一次RAID5的4KB数据随机写IO处理流程,箭头上的数字序号为可能的数据操作顺序。D’为主机新的数据,D为硬盘上对应的将要被覆盖的原始数据,P为原始校验数据,P’为新计算出的校验数据,它们的大小均为4KB,不同于常规的基于DDR的数据缓存,本申请RAID处理相关数据缓存于RAID处理芯片内非易失性可读存储介质中。
在一些实施方式中,根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据包括:从第一数据硬盘上读取新的数据对应的原始数据到片上缓存中,并从第一校验硬盘上读取原始校验数据到片上缓存中。
在一些实施方式中,方法还包括:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将原始校验数据写入片上缓存的第三空间,并将新的校验数据写入片上缓存的第四空间。也即是,如图2所示,从主机DDR将新的数据D’读取到片上缓存空间U;从对应的SSD上读取新的数据对应的原始数据D到片上缓存空间V;从对应的SSD上读取原始校验数据P到片上缓存空间W;通过D’,D和P计算出新的校验数据P’并将其存储到片上缓存空间X。
将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据发送到第一数据硬盘中,并将新的校验
数据发送到第一校验硬盘中。也即是,将新的数据D’落盘到对应SSD,将新的校验数据P’落盘到对应SSD。
在一些实施方式中,方法还包括:并发执行从主机DDR读取新的数据、从第一数据硬盘上读取新的数据对应的原始数据以及从第一校验硬盘上读取原始校验数据。
在一些实施方式中,方法还包括:并发执行将新的数据落盘到第一数据硬盘中以及将新的校验数据落盘到第一校验硬盘中。
针对NVMe SSD,设定NVMe SSD盘读IO延时为a,写IO延时为b,RAID计算处理耗时为c,则单个IO处理时长可以近似的等于2a+2b+c。设定系统的小IO(4KB)随机写的IOPS设计目标值为M,那么需要的片上缓存大小为:M×(2a+2b+c)×16KB;片上缓存带宽为:9×M×4KB。为了的缩短单次IO的处理时延,将上述步骤并发执行,那么单次IO的延时可以缩短为a+b+c,相应的所需的片上缓存大小可以减少为:M×(a+b+c)×16KB;在上述处理过程中,也可以将P’存储到空间W中,覆盖原始校验数据,相应的所需的片上缓存空间为:M×(2a+2b+c)×12KB。
图3为本申请提供的第一类型进行数据缓存的另一实施例的示意图,如图3所示为一次RAID5(5块硬盘组RAID5,条带单元大小为64KB)的256KB写IO处理流程,RAID加速管理芯片内部会将其按照满条带聚合并处理。D’是256KB的新的数据,P’为64KB计算得到的新的校验数据。本申请RAID处理相关数据缓存于RAID处理芯片内非易失性可读存储介质中。
在一些实施方式中,方法还包括:将新的数据写入片上缓存的第一空间,将新的校验数据写入片上缓存的第四空间。如图3所示,从主机DDR将新的数据D’(256KB)读取到片上缓存空间U;通过D’计算出新的校验数据P’并将其存储到片上存储空间X。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据平均分成多个部分,将每个部分传输到每个对应的数据硬盘,并将新的校验数据传输到对应的校验硬盘。如图3所示,将第一部分新数据D’(64KB)落盘到对应SSD;将第二部分新数据D’(64KB)落盘到对应SSD;将第三部分新数据D’(64KB)落盘到对应SSD;将第四部分新数据D’(64KB)落盘到对应SSD;将新的校验数据P’(64KB)落盘到对应SSD。
在一些实施方式中,方法还包括:并发执行将新的数据的每个部分传输到每个对应的数
据硬盘。
更一般的,针对“n+m”盘组RAID5/RAID6(n为数据盘数量,m为校验盘数量,RAID5场景下m=1,RAID6场景下m=2),设定NVMe接口的SSD写延时为b,RAID计算处理耗时为c,系统设定的顺序写带宽设计目标为W。
那么所需要的片上缓存大小为:片上缓存带宽为:
为了缩短单次IO的处理时延,按照上述并发执行,那么单次IO的延时可以缩短为b+c。
相应的所需的片上缓存大小可以减少为:
图4为本申请提供的第二类型进行数据缓存的实施例的示意图。本申请实施例第二类型以RAID6为例进行说明。
如图4所示为一次RAID6的4KB数据随机写IO处理流程,箭头上的数字序号为可能的数据操作顺序。D’为主机新写入数据,D为硬盘上对应的将要被覆盖的原始数据,P/Q为第一原始校验数据和第二原始校验数据,P’/Q’为新计算出的第一校验数据和第二校验数据,它们的大小均为4KB,不同于常规的基于DDR的数据缓存,本申请RAID处理相关数据缓存于RAID处理芯片内非易失性可读存储介质中。
在一些实施方式中,根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的校验数据包括:根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的第一校验数据和第二校验数据。
在一些实施方式中,方法还包括:从第二数据硬盘上读取新的数据对应的原始数据到片上缓存中,从第二校验硬盘上读取第一原始校验数据到片上缓存中,并从第三校验硬盘上读取第二原始校验数据到片上缓存中。
在一些实施方式中,方法还包括:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将第一原始校验数据写入片上缓存的第三空间,将第二原始校验数据写入片上缓存的第四空间,将新的第一校验数据写入片上缓存的第五空间,并将新的第二校验数据写入片上缓存的第六空间。如图4所示,从主机DDR将新的数据D’读取到片上缓存空间U;从对应的SSD上读取老数据D到片上缓存空间V;从对应的SSD上读取老校验数据P到片上缓存空间W;从对应的SSD上读取老校验数据Q到片上缓存空间
X;通过D’,D,P和Q计算出新的校验数据P’和Q’并将其存储到片上缓存空间Y和Z。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据发送到第二数据硬盘,将新的第一校验数据发送到第二校验硬盘,并将新的第二校验数据发送到第三校验硬盘。也即是将新的数据D’落盘到对应SSD;将新的校验数据P’和Q’落盘到对应SSD。
在一些实施方式中,方法还包括:并发执行从主机DDR读取新的数据、从第二数据硬盘上读取新的数据对应的原始数据、从第二校验硬盘上读取第一原始校验数据以及从第三校验硬盘上读取第二原始校验数据。
在一些实施方式中,方法还包括:并发执行将新的数据落盘到第二数据硬盘中、将新的第一校验数据落盘到第二校验硬盘中以及将新的第二校验数据落盘到第三校验硬盘中。
针对NVMe SSD,设定NVMe SSD盘读IO延时为a,写IO延时为b,RAID计算处理耗时为c,则单个IO处理时长可以近似的等于3a+3b+c。设定系统的小IO(4KB)随机写的IOPS设计目标值为M。那么需要的片上缓存大小为:M×(3a+3b+c)×24KB,片上缓存带宽为:13×M×4KB。
为了缩短单次IO的处理时延,按照上述并发执行,那么单次IO的延时可以缩短为a+b+c,相应的所需的片上缓存大小可以减少为:M×(a+b+c)×24KB。在上述处理过程中,也可以将P’和Q’存储到空间W和X中,覆盖原始校验数据,相应的所需的片上缓存空间为:M×(3a+3b+c)×16KB。
随着NVMe SSD的接口逐步支持到PCIe Gen5,虽然对RAID芯片的片上缓存空间的需求只有数十MB级别,但对OCB的带宽需求可能需要几百个GB/s以上,这对工程实现也带来了挑战。本申请引入了多片OCB的方案,通过多个并联通道来实现整体性能的达成,其结构示意图如图5所示,由n片OCB组成,每片OCB达成1/n的容量和带宽。
需要特别指出的是,上述数据缓存的方法的各个实施例中的各个步骤均可以相互交叉、替换、增加、删减,因此,这些合理的排列组合变换之于数据缓存的方法也应当属于本申请的保护范围,并且不应将本申请的保护范围局限在实施例之上。
基于上述目的,本申请实施例的第二个方面,提出了一种数据缓存的系统。如图2所示,系统200包括如下模块:设置模块,被设置为在RAID管理芯片上设置片上缓存;计算
模块,被设置为从主机DDR中将新的数据读取到片上缓存中,并根据当前RAID组的类型和新的数据计算得到新的校验数据;以及发送模块,被设置为将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中。
在一些实施方式中,计算模块被设置为:响应于RAID组为第一类型,根据新的数据的大小确定计算新的校验数据的方式;以及响应于RAID组为第二类型,根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的校验数据。
在一些实施方式中,计算模块被设置为:响应于新的数据不超过第一阈值,根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据;以及响应于新的数据超过第一阈值,根据新的数据计算得到新的校验数据。
在一些实施方式中,计算模块被设置为:从第一数据硬盘上读取新的数据对应的原始数据到片上缓存中,并从第一校验硬盘上读取原始校验数据到片上缓存中。
在一些实施方式中,系统还包括写入模块,被设置为:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将原始校验数据写入片上缓存的第三空间,并将新的校验数据写入片上缓存的第四空间。
在一些实施方式中,发送模块被设置为:将新的数据发送到第一数据硬盘中,并将新的校验数据发送到第一校验硬盘中。
在一些实施方式中,系统还包括第一执行模块,被设置为:并发执行从主机DDR读取新的数据、从第一数据硬盘上读取新的数据对应的原始数据以及从第一校验硬盘上读取原始校验数据。
在一些实施方式中,系统还包括第二执行模块,被设置为:并发执行将新的数据落盘到第一数据硬盘中以及将新的校验数据落盘到第一校验硬盘中。
在一些实施方式中,系统还包括第二写入模块,被设置为:将新的数据写入片上缓存的第一空间,将新的校验数据写入片上缓存的第四空间。
在一些实施方式中,发送模块被设置为:将新的数据平均分成多个部分,将每个部分传输到每个对应的数据硬盘,并将新的校验数据传输到对应的校验硬盘。
在一些实施方式中,系统还包括第三执行模块,被设置为:并发执行将新的数据的每个部分传输到每个对应的数据硬盘。
在一些实施方式中,计算模块被设置为:根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的第一校验数据和第二校验数据。
在一些实施方式中,系统还包括读取模块,被设置为:从第二数据硬盘上读取新的数据对应的原始数据到片上缓存中,从第二校验硬盘上读取第一原始校验数据到片上缓存中,并从第三校验硬盘上读取第二原始校验数据到片上缓存中。
在一些实施方式中,系统还包括第三写入模块,被设置为:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将第一原始校验数据写入片上缓存的第三空间,将第二原始校验数据写入片上缓存的第四空间,将新的第一校验数据写入片上缓存的第五空间,并将新的第二校验数据写入片上缓存的第六空间。
在一些实施方式中,发送模块被设置为:将新的数据发送到第二数据硬盘,将新的第一校验数据发送到第二校验硬盘,并将新的第二校验数据发送到第三校验硬盘。
在一些实施方式中,系统还包括第四执行模块,被设置为:并发执行从主机DDR读取新的数据、从第二数据硬盘上读取新的数据对应的原始数据、从第二校验硬盘上读取第一原始校验数据以及从第三校验硬盘上读取第二原始校验数据。
在一些实施方式中,系统还包括第五执行模块,被设置为:并发执行将新的数据落盘到第二数据硬盘中、将新的第一校验数据落盘到第二校验硬盘中以及将新的第二校验数据落盘到第三校验硬盘中。
基于上述目的,本申请实施例的第三个方面,提出了一种计算机设备,包括:至少一个处理器;以及存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行以实现如下步骤:S1、在RAID管理芯片上设置片上缓存;S2、从主机DDR中将新的数据读取到片上缓存中,并根据当前RAID组的类型和新的数据计算得到新的校验数据;以及S3、将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中。
在一些实施方式中,根据当前RAID组的类型和新的数据计算得到新的校验数据包括:响应于RAID组为第一类型,根据新的数据的大小确定计算新的校验数据的方式;以及响应于RAID组为第二类型,根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的校验数据。
在一些实施方式中,根据新的数据的大小确定计算新的校验数据的方式包括:响应于新的数据不超过第一阈值,根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据;以及响应于新的数据超过第一阈值,根据新的数据计算得到新的校验数据。
在一些实施方式中,根据新的数据、新的数据对应的原始数据以及原始校验数据计算得到新的校验数据包括:从第一数据硬盘上读取新的数据对应的原始数据到片上缓存中,并从第一校验硬盘上读取原始校验数据到片上缓存中。
在一些实施方式中,步骤还包括:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将原始校验数据写入片上缓存的第三空间,并将新的校验数据写入片上缓存的第四空间。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据发送到第一数据硬盘中,并将新的校验数据发送到第一校验硬盘中。
在一些实施方式中,步骤还包括:并发执行从主机DDR读取新的数据、从第一数据硬盘上读取新的数据对应的原始数据以及从第一校验硬盘上读取原始校验数据。
在一些实施方式中,步骤还包括:并发执行将新的数据落盘到第一数据硬盘中以及将新的校验数据落盘到第一校验硬盘中。
在一些实施方式中,步骤还包括:将新的数据写入片上缓存的第一空间,将新的校验数据写入片上缓存的第四空间。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据平均分成多个部分,将每个部分传输到每个对应的数据硬盘,并将新的校验数据传输到对应的校验硬盘。
在一些实施方式中,步骤还包括:并发执行将新的数据的每个部分传输到每个对应的数据硬盘。
在一些实施方式中,根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的校验数据包括:根据新的数据、新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的第一校验数据和第二校验数据。
在一些实施方式中,步骤还包括:从第二数据硬盘上读取新的数据对应的原始数据到片上缓存中,从第二校验硬盘上读取第一原始校验数据到片上缓存中,并从第三校验硬盘上读取第二原始校验数据到片上缓存中。
在一些实施方式中,步骤还包括:将新的数据写入片上缓存的第一空间,将新的数据对应的原始数据写入片上缓存的第二空间,将第一原始校验数据写入片上缓存的第三空间,将第二原始校验数据写入片上缓存的第四空间,将新的第一校验数据写入片上缓存的第五空间,并将新的第二校验数据写入片上缓存的第六空间。
在一些实施方式中,将新的数据发送到RAID组对应的数据硬盘中,并将新的校验数据发送到RAID组对应的校验硬盘中包括:将新的数据发送到第二数据硬盘,将新的第一校验数据发送到第二校验硬盘,并将新的第二校验数据发送到第三校验硬盘。
在一些实施方式中,步骤还包括:并发执行从主机DDR读取新的数据、从第二数据硬盘上读取新的数据对应的原始数据、从第二校验硬盘上读取第一原始校验数据以及从第三校验硬盘上读取第二原始校验数据。
在一些实施方式中,步骤还包括:并发执行将新的数据落盘到第二数据硬盘中、将新的第一校验数据落盘到第二校验硬盘中以及将新的第二校验数据落盘到第三校验硬盘中。
如图3所示,为本申请提供的上述数据缓存的计算机设备的一个实施例的硬件结构示意图。
以如图3所示的装置为例,在该装置中包括一个处理器301以及一个存储器302。
处理器301和存储器302可以通过总线或者其他方式连接,图3中以通过总线连接为例。
存储器302作为一种非易失性可读存储介质,可被设置为存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的数据缓存的方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现数据缓存的方法。
存储器302可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据缓存的方法的使用所创建的数据等。此外,存储器302可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至
少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器302可选包括相对于处理器301远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个数据缓存的方法对应的计算机指令303存储在存储器302中,当被处理器301执行时,执行上述任意方法实施例中的数据缓存的方法。
执行上述数据缓存的方法的计算机设备的任何一个实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
本申请还提供了一种非易失性可读存储介质,非易失性可读存储介质存储有被处理器执行时执行数据缓存的方法的计算机程序。
如图4所示,为本申请提供的上述数据缓存的非易失性可读存储介质的一个实施例的示意图。以如图4所示的非易失性可读存储介质为例,非易失性可读存储介质401存储有被处理器执行时执行如上方法的计算机程序402。
最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,数据缓存的方法的程序可存储于一非易失性可读存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的非易失性可读存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
以上是本申请公开的示例性实施例,但是应当注意,在不背离权利要求限定的本申请实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本申请实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本申请实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种非易失性可读存储介质中,上述提到的非易失性可读存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请实施例公开的范围(包括权利要求)被限于这些例子;在本申请实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
Claims (20)
- 一种数据缓存的方法,其特征在于,包括如下步骤:在RAID管理芯片上设置片上缓存;从主机DDR中将新的数据读取到所述片上缓存中,并根据当前RAID组的类型和所述新的数据计算得到新的校验数据;以及将所述新的数据发送到RAID组对应的数据硬盘中,并将所述新的校验数据发送到RAID组对应的校验硬盘中。
- 根据权利要求1所述的方法,其特征在于,所述根据当前RAID组的类型和所述新的数据计算得到新的校验数据包括:响应于RAID组为第一类型,根据所述新的数据的大小确定计算所述新的校验数据的方式;以及响应于RAID组为第二类型,根据所述新的数据、所述新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到所述新的校验数据。
- 根据权利要求2所述的方法,其特征在于,所述根据所述新的数据的大小确定计算所述新的校验数据的方式包括:响应于所述新的数据不超过第一阈值,根据所述新的数据、所述新的数据对应的原始数据以及原始校验数据计算得到所述新的校验数据;以及响应于所述新的数据超过第一阈值,根据所述新的数据计算得到所述新的校验数据。
- 根据权利要求3所述的方法,其特征在于,所述根据所述新的数据、所述新的数据对应的原始数据以及原始校验数据计算得到所述新的校验数据包括:从第一数据硬盘上读取所述新的数据对应的原始数据到所述片上缓存中,并从第一校验硬盘上读取所述原始校验数据到所述片上缓存中。
- 根据权利要求4所述的方法,其特征在于,所述方法还包括:将所述新的数据写入所述片上缓存的第一空间,将所述新的数据对应的原始数据写入所述片上缓存的第二空间,将所述原始校验数据写入所述片上缓存的第三空间,并将所述新的校验数据写入所述片上缓存的第四空间。
- 根据权利要求5所述的方法,其特征在于,所述将所述新的数据发送到RAID组对应的数据硬盘中,并将所述新的校验数据发送到RAID组对应的校验硬盘中包括:将所述新的数据发送到所述第一数据硬盘中,并将所述新的校验数据发送到所述第一校验硬盘中。
- 根据权利要求6所述的方法,其特征在于,所述方法还包括:并发执行从主机DDR读取所述新的数据、从所述第一数据硬盘上读取所述新的数据对应的原始数据以及从所述第一校验硬盘上读取所述原始校验数据。
- 根据权利要求7所述的方法,其特征在于,所述方法还包括:并发执行将所述新的数据落盘到所述第一数据硬盘中以及将所述新的校验数据落盘到所述第一校验硬盘中。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:将所述新的数据写入所述片上缓存的第一空间,将所述新的校验数据写入所述片上缓存的第四空间。
- 根据权利要求9所述的方法,其特征在于,所述将所述新的数据发送到RAID组对应的数据硬盘中,并将所述新的校验数据发送到RAID组对应的校验硬盘中包括:将所述新的数据平均分成多个部分,将每个部分传输到每个对应的数据硬盘,并将所述新的校验数据传输到对应的校验硬盘。
- 根据权利要求10所述的方法,其特征在于,所述方法还包括:并发执行将所述新的数据的每个部分传输到每个对应的数据硬盘。
- 根据权利要求2所述的方法,其特征在于,所述根据所述新的数据、所述新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到所述新的校验数据包括:根据所述新的数据、所述新的数据对应的原始数据、第一原始校验数据和第二原始校验数据计算得到新的第一校验数据和第二校验数据。
- 根据权利要求12所述的方法,其特征在于,所述方法还包括:从第二数据硬盘上读取所述新的数据对应的原始数据到所述片上缓存中,从第二校验硬盘上读取所述第一原始校验数据到所述片上缓存中,并从第三校验硬盘上读取所述第二原始校验数据到所述片上缓存中。
- 根据权利要求13所述的方法,其特征在于,所述方法还包括:将所述新的数据写入所述片上缓存的第一空间,将所述新的数据对应的原始数据写入所述片上缓存的第二空间,将所述第一原始校验数据写入所述片上缓存的第三空间,将所述第二原始校验数据写入所述片上缓存的第四空间,将所述新的第一校验数据写入所述片上缓存的第五空间,并将所述新的第二校验数据写入所述片上缓存的第六空间。
- 根据权利要求14所述的方法,其特征在于,所述将所述新的数据发送到RAID组对应的数据硬盘中,并将所述新的校验数据发送到RAID组对应的校验硬盘中包括:将所述新的数据发送到所述第二数据硬盘,将所述新的第一校验数据发送到所述第二校验硬盘,并将所述新的第二校验数据发送到所述第三校验硬盘。
- 根据权利要求15所述的方法,其特征在于,所述方法还包括:并发执行从主机DDR读取所述新的数据、从所述第二数据硬盘上读取所述新的数据对应的原始数据、从所述第二校验硬盘上读取所述第一原始校验数据以及从所述第三校验硬盘上读取所述第二原始校验数据。
- 根据权利要求16所述的方法,其特征在于,所述方法还包括:并发执行将所述新的数据落盘到所述第二数据硬盘中、将所述新的第一校验数据落盘到所述第二校验硬盘中以及将所述新的第二校验数据落盘到所述第三校验硬盘中。
- 一种数据缓存的系统,其特征在于,包括:设置模块,被设置为在RAID管理芯片上设置片上缓存;计算模块,被设置为从主机DDR中将新的数据读取到所述片上缓存中,并根据当前RAID组的类型和所述新的数据计算得到新的校验数据;以及发送模块,被设置为将所述新的数据发送到RAID组对应的数据硬盘中,并将所述新的校验数据发送到RAID组对应的校验硬盘中。
- 一种计算机设备,其特征在于,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-17任意一项所述方法的步骤。
- 一种非易失性可读存储介质,所述非易失性可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-17任意一项所述方法的步骤。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211634314.8A CN115617742B (zh) | 2022-12-19 | 2022-12-19 | 一种数据缓存的方法、系统、设备和存储介质 |
| CN202211634314.8 | 2022-12-19 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024131122A1 true WO2024131122A1 (zh) | 2024-06-27 |
Family
ID=84880526
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/115582 Ceased WO2024131122A1 (zh) | 2022-12-19 | 2023-08-29 | 一种数据缓存的方法、系统、设备和非易失性可读存储介质 |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN115617742B (zh) |
| WO (1) | WO2024131122A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118394281A (zh) * | 2024-06-25 | 2024-07-26 | 北京芯驰半导体科技股份有限公司 | 数据读取方法、装置和芯片 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115617742B (zh) * | 2022-12-19 | 2023-03-28 | 苏州浪潮智能科技有限公司 | 一种数据缓存的方法、系统、设备和存储介质 |
| CN115826882B (zh) * | 2023-02-15 | 2023-05-30 | 苏州浪潮智能科技有限公司 | 一种存储方法、装置、设备及存储介质 |
| CN117055822B (zh) * | 2023-10-11 | 2024-02-06 | 苏州元脑智能科技有限公司 | NVME SSD Raid卡板载备电系统及控制方法 |
| CN117806568B (zh) * | 2024-02-29 | 2024-06-07 | 山东云海国创云计算装备产业创新中心有限公司 | 一种数据更新方法、装置、设备和存储介质 |
| CN117851304B (zh) * | 2024-03-07 | 2024-07-30 | 济南浪潮数据技术有限公司 | 一种硬盘更换方法、装置、设备及介质 |
| CN118276785B (zh) * | 2024-05-31 | 2024-09-13 | 山东云海国创云计算装备产业创新中心有限公司 | 输入输出处理方法、系统、装置、设备、存储介质及产品 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101571820A (zh) * | 2009-05-27 | 2009-11-04 | 成都市华为赛门铁克科技有限公司 | 一种冗余保护方法、装置及系统 |
| CN102122235A (zh) * | 2011-01-24 | 2011-07-13 | 武汉固捷联讯科技有限公司 | 一种raid4系统及其数据读写方法 |
| CN103019893A (zh) * | 2012-11-16 | 2013-04-03 | 华中科技大学 | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 |
| US8429514B1 (en) * | 2008-09-24 | 2013-04-23 | Network Appliance, Inc. | Dynamic load balancing of distributed parity in a RAID array |
| CN115617742A (zh) * | 2022-12-19 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 一种数据缓存的方法、系统、设备和存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101539842A (zh) * | 2009-04-27 | 2009-09-23 | 杭州华三通信技术有限公司 | 磁盘阵列系统的数据写入方法及磁盘阵列系统 |
| CN107885613A (zh) * | 2017-11-09 | 2018-04-06 | 郑州云海信息技术有限公司 | 一种基于raid5的数据写入方法、装置及介质 |
| CN113391947B (zh) * | 2021-06-22 | 2022-12-02 | 深圳忆联信息系统有限公司 | Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质 |
-
2022
- 2022-12-19 CN CN202211634314.8A patent/CN115617742B/zh active Active
-
2023
- 2023-08-29 WO PCT/CN2023/115582 patent/WO2024131122A1/zh not_active Ceased
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8429514B1 (en) * | 2008-09-24 | 2013-04-23 | Network Appliance, Inc. | Dynamic load balancing of distributed parity in a RAID array |
| CN101571820A (zh) * | 2009-05-27 | 2009-11-04 | 成都市华为赛门铁克科技有限公司 | 一种冗余保护方法、装置及系统 |
| CN102122235A (zh) * | 2011-01-24 | 2011-07-13 | 武汉固捷联讯科技有限公司 | 一种raid4系统及其数据读写方法 |
| CN103019893A (zh) * | 2012-11-16 | 2013-04-03 | 华中科技大学 | 一种多盘容错的二维混合盘raid4系统架构及其读写方法 |
| CN115617742A (zh) * | 2022-12-19 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 一种数据缓存的方法、系统、设备和存储介质 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118394281A (zh) * | 2024-06-25 | 2024-07-26 | 北京芯驰半导体科技股份有限公司 | 数据读取方法、装置和芯片 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN115617742A (zh) | 2023-01-17 |
| CN115617742B (zh) | 2023-03-28 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2024131122A1 (zh) | 一种数据缓存的方法、系统、设备和非易失性可读存储介质 | |
| US20230144287A1 (en) | Systems and Methods for Identifying Storage Resources That Are Not in Use | |
| CN102122235B (zh) | 一种raid4系统及其数据读写方法 | |
| US20220357894A1 (en) | Physical Disk and Virtual Disk Mapping in Storage Systems | |
| CN103049220B (zh) | 存储控制方法、存储控制装置和固态存储系统 | |
| WO2012089154A1 (zh) | 存储阵列和存储系统及数据访问方法 | |
| US20140304460A1 (en) | Multiprocessor System with Independent Direct Access to Bulk Solid State Memory Resources | |
| WO2012050935A2 (en) | Apparatus, system, and method for data transformations within a data storage device | |
| CN106202138A (zh) | 用于自主空间压缩的存储设备和方法 | |
| US20160365874A1 (en) | Storage control apparatus and non-transitory computer-readable storage medium storing computer program | |
| JP6426838B2 (ja) | ストレージシステム、及び、記憶制御方法 | |
| CN109815157B (zh) | 编程命令处理方法与装置 | |
| CN109388333B (zh) | 降低读命令处理延迟的方法与装置 | |
| CN107608624A (zh) | 一种提升固态硬盘性能的方法 | |
| WO2022246727A1 (zh) | 数据处理装置及数据处理方法 | |
| WO2024169299A1 (zh) | 一种存储方法、装置、设备及非易失性可读存储介质 | |
| CN103092725B (zh) | 一种实现存储器中数据备份的方法及装置 | |
| US20180217935A1 (en) | Method and apparatus for reading redundant array of independent disks | |
| US12229434B2 (en) | Operation method of host device and operation method of storage device for migration of data | |
| CN118626020A (zh) | 数据更新的处理方法及装置、存储介质、电子设备 | |
| US11733917B2 (en) | High bandwidth controller memory buffer (CMB) for peer to peer data transfer | |
| US20160283133A1 (en) | Low-latency signature/hash calculation of a stream of data blocks | |
| CN116243854A (zh) | 数据存储系统及数据存储方法 | |
| US20220137879A1 (en) | Storage server, a method of operating the same storage server and a data center including the same storage server | |
| CN113552999A (zh) | 存储装置 |
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: 23905301 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: 23905301 Country of ref document: EP Kind code of ref document: A1 |
|
| 32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 18.11.2025) |