A storage system based on a RAID array card, a computer device and a storage medium

CN117908771BActive Publication Date: 2026-09-22TIANJIN JINHANG COMP TECH RES INST
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202311620037.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-11-30
Publication Date
2026-09-22
Estimated Expiration
2043-11-30

AI Technical Summary

Benefits of technology

[0016]结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提出了一种基于RAID阵列卡的存储系统,相比传统RAID阵列卡架构,在RAID阵列卡端去掉了高速缓存模块、用于存储缓存模块数据的非易失性存储器件和外接掉电保护模块,并且将处理器更换为性能功耗更低的低级处理器,而在计算机驱动端增加了SCSI设备虚拟模块和任务调度处理模块,将RAID阵列卡端的一部分工作转移到计算机驱动进行处理,简化了RAID阵列卡的架构并且不影响阵列卡的性能。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN117908771B_ABST
    Figure CN117908771B_ABST
Patent Text Reader

Abstract

The application belongs to the technical field of software, and discloses a storage system based on a RAID array card, a computer device and a storage medium.The architecture comprises: a computer drive end is equipped with a SCSI device virtual module and a task scheduling processing module; the SCSI device virtual module is used for virtually taking the RAID array card as a SCSI storage device; the task scheduling processing module is used for inquiring array information stored by the RAID array card, determining a RAID level and an array number of a hard disk group connected by the current RAID array card, and controlling a write and read operation of the current RAID array card; and the RAID array card comprises a PCIE controller, a processor module, a RAID calculation module and a SATA controller.The application transfers part of work of the RAID array card end to the computer drive for processing, simplifies the architecture of the RAID array card and improves the performance of the array card.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of software technology, and in particular relates to a storage system, computer equipment and storage medium based on a RAID array card. Background Technology

[0002] RAID (Redundant Array of Independent Disks) technology was initially designed to combine multiple smaller, less expensive hard drives to replace larger, more cost-effective ones, while ensuring data integrity even if a single drive fails. Through continuous development, RAID technology has become a comprehensive storage solution, increasing both hard drive capacity and speed, while also enhancing data security and ease of management. Due to its high reliability and fault tolerance, RAID technology enjoys widespread application in storage systems.

[0003] The core hardware of RAID technology is a RAID array card, which integrates a RAID controller chip, onboard interfaces, and storage devices. The RAID controller card interacts with the outside world primarily through two interfaces: a PCIe interface and a SATA interface. The SATA interface is used to connect to the external disk array, while the PCIe interface connects to the PCIe interface of the computer motherboard or other devices. Therefore, the RAID controller card manages the external disk array through the SATA interface and exchanges commands and data with the user through the PCIe interface. Figure 1 As shown.

[0004] Traditional RAID array cards work by having the computer recognize the RAID array card as a SCSI device and send SCSI commands that the RAID card can recognize to it. The RAID card processes these commands and returns the results to the computer via an interrupt signal. For commands issued by the computer, the processor on the RAID array card handles task scheduling and processing, and then sends the results back to the computer. For data reading and writing, the RAID array card needs a high-speed cache module. Data is read from the computer or hard drive into the RAID array card's cache module, and then RAID calculations are performed on the data in the cache module to obtain the parity value. Because of the cache module, current RAID array cards all need to be equipped with a power-loss protection module (usually a capacitor or battery, connected to the RAID array card via a cable) to ensure that the RAID array card can still be powered in the event of a sudden power failure, ensuring that the data in the cache module can be written to non-volatile devices for storage and preventing data loss. Figure 2 As shown.

[0005] The performance of current RAID array card processors is limited by the size and heat dissipation of the RAID array card, and cannot achieve particularly high performance. However, RAID array cards require the processor to process and schedule a large number of tasks, and various interrupt handling and task prioritization are needed to ensure that the tasks are properly handled. As a result, the processor of traditional RAID array cards is under heavy load for a long time, which affects the task processing efficiency. Summary of the Invention

[0006] To overcome the problems existing in related technologies, the present invention discloses a storage system, computer device and storage medium based on a RAID array card.

[0007] The technical solution is as follows: A storage system based on a RAID array card includes a computer driver and a RAID array card. The computer driver is equipped with a SCSI device virtualization module and a task scheduling and processing module. The SCSI device virtual module interacts with the RAID array card through the PCIe interface and is used to virtualize the RAID array card as a SCSI storage device. The task scheduling and processing module interacts with the RAID array card through the PCIe interface to query the array information stored in the RAID array card, determine the RAID level and number of arrays formed by the hard drives connected to the current RAID array card, and control the write and read operations of the current RAID array card. The RAID array card includes a PCIe controller, a processor module, a RAID computing module, and a SATA controller; The PCIe controller is used to interact with the computer for data and commands, and it acts as a bridge between the RAID controller and the computer. The processor module is used to complete the power-on initialization of each part of the RAID array card, as well as the interrupt handling and submission work after each module has completed its processing. The RAID calculation module is used to calculate the RAID level check value. It performs check calculation on the data in the computer's DDR and stores the check value in the check value space of the computer's DDR. Unlike the traditional RAID calculation module, the RAID calculation module in this invention has the right to access the computer's DDR, and can calculate the check value on the data in the computer's DDR and place the check value in the computer's DDR. The SATA controller is used to execute instructions from the task scheduling processing module to write data to the hard disk and read data from the hard disk; Furthermore, the task scheduling processing module is used to query the array information stored in the RAID array card. Specifically, the RAID array, RAID level, and number of hard drives are all stored in the Flash storage of the RAID array card. The computer driver only reads the agreed storage address of the flash storage of the RAID array card immediately after loading to obtain this information. Then, it accesses the array information address and the hard drive information address to obtain the specific information of the corresponding hard drive. After determining the RAID level and number of hard drives connected to the current RAID array card, the task scheduling and processing module calls the SCSI device virtual module in the computer driver to simulate the data and command transmission mode of the SCSI device. It receives SCSI format data and commands from the upper-level driver of the computer, decomposes the data and commands in the SCSI device virtual module, executes the corresponding actions in the RAID array, and then feeds back the execution results of the command actions to the upper-level driver of the computer in SCSI format, thus virtualizing the RAID array as a SCSI storage device, so that the computer recognizes the RAID array as a SCSI storage device.

[0008] Furthermore, the RAID array card interacts with the hard drive via a SATA interface.

[0009] Furthermore, the computer driver detects the SCSI storage device corresponding to the RAID array. If data is to be written to the SCSI storage device, the driver receives the command to write data, requests space 1 in the computer's free DDR space, and then writes the length of the address where the SCSI storage device needs to write data, the address of space 1, and the RAID level into the RAID calculation module of the RAID array card. Then, the RAID calculation module is started to perform calculations.

[0010] Furthermore, after the RAID calculation module completes the calculation, the task scheduling and processing module calculates the hard drive number and corresponding address that the current RAID array card needs to write data and parity values ​​to. Then, it controls the SATA controller of the RAID array card to write the data in the computer's free DDR space and the data in space 1 to the hard drive, thus completing the write operation.

[0011] Furthermore, if data is read from a SCSI storage device, the driver receives the address and length of the data to be read in the SCSI storage device, and obtains the address of the computer's free DDR space 2 where the data is waiting to be placed. Based on the current RAID array level and hard drive members, the task scheduling module calculates the disk where the data is located and its corresponding length, and controls the SATA controller of the RAID array card to read the data from the corresponding hard drive into the computer's free DDR space 2, thus completing the read operation.

[0012] Furthermore, if the RAID array is in a degraded or unrebuilt state, after the RAID calculation module completes its calculation, the task scheduling and processing module calculates the hard drive number and corresponding address that the current RAID array needs to write data and parity values ​​to. Then, it controls the SATA controller of the RAID array card to write the data in DDR and the data in space 1 to the remaining hard drives in the RAID array, bypassing the hard drives that are in a lost or unrebuilt state, and completes the write operation.

[0013] Furthermore, if the RAID array is in a degraded or unrebuilt state and data is read from the storage device, the driver receives the address and length of the data to be read in the SCSI device, and obtains the address of space 2 in the computer's free DDR space waiting to be placed. Based on the current RAID array level and hard drive members, the task scheduling module calculates the disk where the data is located and its corresponding length, and controls the SATA controller of the RAID array card to read the data from the corresponding hard drive into space 2 in the computer's free DDR space. Then, it controls the RAID calculation module to calculate the data of the hard drive that is lost or in an unrebuilt state and put it into space 2 in the computer's free DDR space to complete the read operation.

[0014] Another object of the present invention is to provide a computer device comprising: at least one processor, a memory, and a computer program stored in the memory and executable on the at least one processor, wherein the processor executes the computer program to implement the functions of the storage system based on the RAID array card described above.

[0015] Another object of the present invention is to provide a computer-readable storage medium storing a computer program that, when executed by a processor, can realize the functions of the storage system based on the RAID array card described above.

[0016] Combining all the above technical solutions, the advantages and positive effects of this invention are as follows: This invention proposes a storage system based on a RAID array card. Compared with the traditional RAID array card architecture, the high-speed cache module, the non-volatile storage device for storing cache module data, and the external power-loss protection module are removed from the RAID array card side. The processor is replaced with a low-level processor with lower performance and power consumption. On the computer driver side, a SCSI device virtual module and a task scheduling processing module are added, transferring some of the work of the RAID array card to the computer driver for processing. This simplifies the architecture of the RAID array card and does not affect the performance of the array card. Attached Figure Description

[0017] The accompanying drawings, which are incorporated in and form part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure; Figure 1 This is a schematic diagram of a traditional RAID array card provided by existing technology; Figure 2 This is a diagram of the traditional RAID array card structure provided by existing technology; Figure 3 This is a diagram of a storage system based on a RAID array card provided in an embodiment of the present invention; In the diagram: 1. Computer driver; 101. SCSI device virtual module; 102. Task scheduling and processing module; 2. RAID array card; 201. PCIe controller; 202. Processor module; 203. RAID calculation module; 204. SATA controller; 3. Hard drive. Detailed Implementation

[0018] To make the above-mentioned objects, features, and advantages of the present invention more apparent and understandable, specific embodiments of the present invention will be described in detail below with reference to the accompanying drawings. Many specific details are set forth in the following description to provide a thorough understanding of the present invention. However, the present invention can be practiced in many other ways different from those described herein, and those skilled in the art can make similar modifications without departing from the spirit of the present invention. Therefore, the present invention is not limited to the specific embodiments disclosed below.

[0019] The innovation of the storage system based on RAID array card provided in this embodiment of the invention is as follows: a RAID fusion technology architecture is proposed, which transfers part of the scheduling work to the computer driver 1 and uses the computer DDR as RAID data storage, which can effectively reduce the hardware cost of RAID array card 2, avoid the need for cache module and power failure protection module, and improve the reliability of RAID array card 2. Example 1, such as Figure 3 As shown, the storage system based on a RAID array card provided in this embodiment of the invention includes a computer driver 1 and a RAID array card 2. The computer driver 1 is equipped with a SCSI device virtual module 101 and a task scheduling and processing module 102. The SCSI device virtual module 101 interacts with the RAID array card 2 through the PCIe interface and is used to virtualize the RAID array card 2 as a SCSI storage device. The task scheduling and processing module 102 interacts with the RAID array card 2 through the PCIe interface to query the array information stored in the RAID array card 2, determine the RAID level and number of arrays formed by the hard drives 3 connected to the current RAID array card 2, and control the write and read operations of the current RAID array card 2. The RAID array card 2 includes a PCIe controller 201, a processor module 202, a RAID calculation module 203, and a SATA controller 204; The PCIe controller 201 is used to interact with the computer for data and commands, and acts as a bridge between the RAID controller and the computer. The processor module 202 is used to complete the power-on initialization of each part of the RAID array card 2, as well as the interrupt handling and submission work after each module has completed its processing. The RAID calculation module 203 is used to calculate the RAID level check value, calculate the check value of the data in the computer DDR and store it in the check value space of the computer DDR. Unlike the traditional RAID calculation module, the RAID calculation module 203 in this invention has the right to access the computer DDR, and can calculate the check value of the data in the computer DDR and place the check value in the computer DDR. The SATA controller 204 is used to execute the instructions of the task scheduling processing module 102 to write data to the hard disk 3 and read data from the hard disk 3; Preferred, the RAID array card 2 interacts with the hard drive 3 via a SATA interface.

[0020] Preferably, the processor module 202 is a low-level processor with low performance and power consumption.

[0021] It is understandable that, compared to the traditional RAID array card 2 architecture, this invention removes the high-speed cache module, the non-volatile storage device for storing cache module data, and the external power-loss protection module at the RAID array card 2 end, and replaces the processor with a low-level processor with lower performance and power consumption. Meanwhile, a SCSI device virtual module 101 and a task scheduling processing module 102 were added to the computer driver 1, which transferred some of the work of the RAID array card 2 to the computer driver for processing, simplifying the architecture of the RAID array card and improving the performance of the array card.

[0022] The storage system based on RAID array card provided in this embodiment of the invention can migrate the heavy scheduling tasks of RAID array card 2 to the computer for scheduling and processing, while retaining the core RAID calculation and verification value function of RAID array card 2 on RAID array card 2, and removing the high-speed cache module and power loss protection module on RAID array card 2.

[0023] This invention leverages the powerful performance and multi-core scheduling capabilities of a computer's processor, enabling the RAID array card 2 to achieve higher processing efficiency with only a low-performance processor. Furthermore, it eliminates the need for a high-speed cache module for data storage and power-loss protection modules on the RAID array card 2, effectively reducing its overall cost and heat generation. Simultaneously, it still uses the RAID calculation module 203 on the RAID array card 2 for parity value calculation, preventing the calculation from consuming computer performance and thus reducing normal computer performance.

[0024] The expected benefits and commercial value of the technical solution of the present invention after transformation are as follows: the hardware cost of the technical solution of the present invention will be significantly reduced, and the overall RAID performance will not be reduced. It can replace the current high-cost RAID array card 2 at a lower cost. Moreover, due to the simpler architecture, the reliability of RAID array card 2 can be effectively improved. The technical solution of this invention fills a technical gap in the domestic and international industry: Currently, domestic and international RAID array card technology solutions manage and control the RAID array card 2 as an independent storage device, which leads to the RAID array card 2 requiring higher processor performance, high-speed cache, and power-loss protection functions. This solution proposes a fusion RAID technology solution, which transfers some of the work to the computer driver 1. It can use the computer's DDR as the parity calculation medium, thereby avoiding the need for high-speed cache and power-loss protection modules. This simplifies the technical architecture, improves reliability, reduces costs, and does not affect performance.

[0025] Example 2: The working principle of the storage system based on a RAID array card provided in this embodiment of the invention includes: (1) When the computer is powered on, the RAID array card 2 is powered on, and the processor of the RAID array card 2 completes the initialization of the PCIe controller 201 and the SATA controller 204. (2) The computer loads the RAID array card 2 driver, and uses the task scheduling processing module 102 in the driver to query the array information stored in the RAID array card 2, determine the RAID level and number of arrays formed by the hard disks 3 connected to the current RAID array card 2, and then calls the SCSI device virtual module 101 in the computer driver to simulate the data and command transmission mode of the SCSI device, receive the SCSI format data and commands sent by the upper-level driver of the computer, and decompose the data and commands in the SCSI device virtual module 101, execute the corresponding actions of the commands in the RAID array, and then feed back the command action execution results to the upper-level driver of the computer in SCSI format, thereby virtualizing the RAID array as a SCSI storage device, ensuring that the computer can recognize the RAID array as a SCSI storage device; For example, the computer loads the RAID array card 2 driver and uses the task scheduling processing module 102 in the driver to query the array information stored in the RAID array card 2. Specifically, the RAID array, RAID level, and which hard disks 3 are included are all stored in the Flash storage of the RAID array card 2. The computer driver only needs to read the agreed storage address of the flash storage of the RAID array card 2 as soon as it is loaded to obtain this information. For example, in the Flash, address 0 is filled with the number of arrays, address 4 is the address where the information of the first array is stored, address 8 is the address where the information of the second array is stored, and so on. Then, the array information address is accessed. The address offset 0 indicates the RAID level, the address offset 4 indicates the number of hard disks 3, the address offset 8 indicates the information address of the first hard disk 3, and the address offset 12 indicates the information address of the second hard disk 3. Then, the specific information of the corresponding hard disk 3 can be obtained by accessing the information address of the hard disk 3. (3) The current computer can detect the SCSI storage device corresponding to the RAID array card 2. If data is written to the SCSI storage device, the RAID array driver receives the write data command transmitted from the upper-level driver of the computer and hands it over to the SCSI device virtual module 101 for command parsing. After parsing the address and length of the data to be written, the RAID array card 2 driver calls the task scheduling processing module 102 and uses the dma_pool_alloc() function to request space 1 in the computer's free DDR space. Then, the length of the address of the data to be written to the SCSI storage device, the address of space 1, the RAID level of the RAID array, and the number and stripe size of the hard disks 3 are calculated. (The RAID array card 2 can build multiple RAID arrays, each RAID array can contain multiple hard disks 3, each RAID array has a RAID level, and a RAID array card 2 is recognized by the computer as a storage device, which can be understood as a hard disk 3. The role of the SCSI virtual module is to virtualize the RAID array as a SCSI device, so that the computer can recognize a RAID array as a storage device. Common levels include RAID0, RAID1, and RAID5.) The command writes RAID 6 information to the RAID calculation module 203 of the RAID array card 2, then writes a command to calculate the parity value to the register of the RAID calculation module, and starts the RAID calculation module to perform the calculation. (The RAID calculation module 203 is a calculation module in a RAID chip, similar to a GPU, and is specifically designed for calculating RAID parity values. It only requires writing the address, length, RAID level, number of hard drives 3, and array stripe size to the register of the RAID calculation module 203, as well as the command to calculate whether to calculate lost data on hard drive 3 or to calculate the parity value, to calculate the data.) (4) After the RAID calculation module 203 completes the calculation, the driver calls the task scheduling and processing module 102. Based on the data storage specifications of different RAID levels in the RAID array data storage standard (SNIA Common RAID Disk Data Format Specification), the driver calculates the hard disk number and corresponding address that the data and parity value need to be written to in the current RAID array. Then, the driver controls the register of the SATA controller 204 of the RAID array card 2 to write the data address in the computer DDR and the data address in space 1 to the corresponding SATA controller register. Then, the driver starts the SATA controller 204 to start the data transfer from the computer DDR to the SATA hard disk 3 and completes one write operation. (5) If data is read from a SCSI storage device, the driver receives the SCSI read command from the upper-level driver of the computer, calls the SCSI device virtual module 101 to parse the SCSI command, and writes the address and length of the data to be read in the SCSI storage device, as well as the address of space 2 in the computer's DDR (space 2 is requested by the upper-level driver of the computer to store the read data); then calls the task scheduling processing module 102, which, based on the current RAID level and hard disk 3 members of the RAID array, can calculate the disk where the current RAID array data is located and the corresponding length according to the different RAID level hard disk 3 data storage specifications in the RAID array data storage standard (SNIA's Common RAID DiskData Format Specification), and controls the SATA controller 204 of the RAID array card 2 to write the address and length of the data to be read in each hard disk 3 and the address to be read back to the computer's DDR into the SATA controller register, and starts the data transfer work of the SATA controller 204, so that the data is read from the corresponding hard disk 3 into space 2 in the computer's free DDR, and completes one read operation; (6) If the RAID array is in a degraded or unrebuilt state, and data is read from the SCSI storage device, the driver receives the SCSI read command issued by the upper-level driver of the computer, calls the SCSI device virtual module 101 to parse the SCSI command, and obtains the address and length of the data to be read in the SCSI storage device, as well as the address of space 2 in the computer's DDR (space 2 is requested by the upper-level driver of the computer to store the read data); then calls the task scheduling processing module 102, which, based on the current RAID level and hard disk 3 members of the RAID array, can calculate the disk where the current RAID array data is located and the corresponding length according to the different RAID level hard disk 3 data storage specifications in the RAID array data storage standard (SNIA's Common RAID Disk Data Format Specification), and controls the SATA controller 204 of the RAID array card 2 to write the address and length of the data to be read in each hard disk 3 and the address to be read back to the computer's DDR into the SATA controller register, and starts the data transfer work of the SATA controller 204, so as to realize the data read from the corresponding hard disk 3 into the space 2 of the computer's free DDR. Then the RAID calculation module 203 is called to calculate and restore the data of the missing hard disk 3 in space 2 based on the data of the remaining hard disk 3, thereby obtaining the complete data and putting it in to complete a read operation; (7) If the RAID array is in a degraded or unrebuilt state, after the RAID array driver receives the write data command transmitted from the upper-level driver of the computer, it hands it over to the SCSI device virtual module 101 for command parsing. After parsing the address and length of the data to be written, the RAID array card 2 driver calls the task scheduling processing module 102 and uses the dma_pool_alloc() function to request space 1 in the computer's free DDR space. Then, it sets the length of the address of the data to be written to the SCSI storage device, the address of space 1, the RAID level of the RAID array, the number of hard disks 3, and the stripe size (RAID array card 2 can build multiple RAID arrays, each RAID array can contain multiple hard disks 3, each RAID array has a RAID level, a RAID array card 2 is recognized by the computer as a storage device, which can be understood as a hard disk 3. The role of the SCSI virtual module is to virtualize the RAID array as a SCSI device, so that the computer can recognize a RAID array as a storage device. Common levels are RAID0, RAID1, and RAID5). The RAID 6 algorithm writes data to the RAID calculation module 203 of the RAID array card 2, then writes a command to calculate the parity value into the RAID calculation module register, and starts the RAID calculation module 203 to perform the calculation. (The RAID calculation module 203 is a calculation module in a RAID chip, similar to a GPU, specifically designed for calculating RAID parity values. It only requires writing the address, length, RAID level, number of hard drives 3, and array stripe size to the register of the RAID calculation module 203, as well as whether to calculate data from lost hard drives 3 or to calculate the parity value, to calculate the data.) After the RAID calculation module 203 completes the calculation, the driver calls the task scheduling processing module 102, based on the RAID array data storage standard (SNIA Common RAID Disk Data Format). The system calculates the hard drive 3 data storage specifications for different RAID levels in the specification, determines the hard drive 3 number and corresponding address that the current RAID array needs to write data and checksum to, and then controls the registers of the SATA controller 204 of the RAID array card 2 to bypass the lost or faulty hard drive 3, writes the data address in the computer DDR and the data address in space 1 to the corresponding remaining SATA controller registers, and then starts the SATA controller 204 to start transferring data from the computer DDR to the remaining SATA hard drive 3, completing one write operation.

[0026] In the above embodiments, the descriptions of each embodiment have different focuses. For parts that are not described in detail or recorded in a certain embodiment, please refer to the relevant descriptions of other embodiments.

[0027] The information interaction and execution process between the above-mentioned devices / units are based on the same concept as the method embodiments of the present invention. For details on their specific functions and technical effects, please refer to the method embodiments section, and they will not be repeated here.

[0028] Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the above-described division of functional units and modules is merely an example. In practical applications, the above functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or as a software functional unit. Furthermore, the specific names of the functional units and modules are only for easy differentiation and are not intended to limit the scope of protection of this invention. The specific working process of the units and modules in the above system can be referred to the corresponding process in the foregoing method embodiments.

[0029] This invention also provides a computer device comprising: at least one processor, a memory, and a computer program stored in the memory and executable on the at least one processor, wherein the processor executes the computer program to implement the steps in any of the above method embodiments.

[0030] This invention also provides a computer-readable storage medium storing a computer program that, when executed by a processor, can implement the steps described in the various method embodiments above.

[0031] This invention also provides an information data processing terminal, which, when executed on an electronic device, provides a user input interface to implement the steps described in the above method embodiments. The information data processing terminal is not limited to mobile phones, computers, or switches.

[0032] This invention also provides a server that, when executed on an electronic device, provides a user input interface to implement the steps described in the above method embodiments.

[0033] This invention provides a computer program product that, when run on an electronic device, enables the electronic device to implement the steps described in the various method embodiments above.

[0034] If the integrated unit is implemented as a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a computer-readable storage medium, and when executed by a processor, it can implement the steps of the various method embodiments described above. The computer program includes computer program code, which can be in the form of source code, object code, executable files, or certain intermediate forms. The computer-readable medium can include at least: any entity or device capable of carrying the computer program code to a photographic device / terminal device, a recording medium, a computer memory, a read-only memory (ROM), a random access memory (RAM), an electrical carrier signal, a telecommunication signal, and a software distribution medium. Examples include USB flash drives, portable hard drives, magnetic disks, or optical disks.

[0035] To further illustrate the effects of the embodiments of the present invention, the following experiments were conducted: Traditional RAID array card technology writes data into the cache of the RAID array card 2, performs verification calculations on the data, and then writes the data to the hard drive 3. The performance bottleneck lies in the read / write speed of the array card's cache and the speed of the RAID calculation module 203 in calculating the verification value. However, the technical solution proposed in this invention stores the data in the computer's DDR memory. The RAID calculation module 203 of the card can directly read and calculate the data in the computer's DDR memory, and then write the verification results back to the computer's DDR memory via the PCIe interface. The data only passes through the high-speed PCIe interface, reducing the read / write operation time of the RAID array card 2's cache. Since the current transmission speed of the PCIe interface is not the bottleneck for the read / write performance of the RAID array card 2 solution, more PCIe interface data transmission will not affect the overall performance. Furthermore, the overall technical solution is simpler, more reliable, and lower in cost.

[0036] The above description is only a preferred embodiment of the present invention, but the scope of protection of the present invention is not limited thereto. Any modifications, equivalent substitutions and improvements made by those skilled in the art within the scope of the technology disclosed in the present invention and within the spirit and principles of the present invention should be covered within the scope of protection of the present invention.

Claims

1. A storage system based on a RAID array card, comprising a computer driver (1) and a RAID array card (2), characterized in that, The computer driver (1) is equipped with a SCSI device virtual module (101) and a task scheduling processing module (102). The SCSI device virtual module (101) interacts with the RAID array card (2) through the PCIe interface to virtualize the RAID array card (2) as a SCSI storage device; The task scheduling and processing module (102) interacts with the RAID array card (2) through the PCIe interface to query the array information stored in the RAID array card (2), determine the RAID level and number of arrays formed by the hard disks (3) connected to the current RAID array card (2), and control the write and read operations of the current RAID array card (2). The RAID array card (2) includes: a PCIe controller (201), a processor module (202), a RAID calculation module (203), and a SATA controller (204). The PCIe controller (201) is used to interact with the computer for data and commands; The processor module (202) is used to complete the power-on initialization of the RAID array card (2), as well as the interrupt handling and submission work after the processor module (202) and RAID calculation module (203) have finished processing; The RAID calculation module (203) is used to calculate the RAID level check value, perform check calculation on the data in the computer DDR and store it in the check value space in the computer DDR; The SATA controller (204) is used to execute the instructions of the task scheduling processing module (102), write data to the hard disk (3) and read data from the hard disk (3); the query of the array information stored in the RAID array card (2) includes: the RAID array, RAID level and the number of hard disks (3) are all stored in the Flash storage of the RAID array card (2). After loading, the computer driver reads the agreed storage address of the flash storage of the RAID array card (2), obtains the information, accesses the array information address and accesses the information address of the hard disk (3), and obtains the information of the corresponding hard disk (3); After the task scheduling and processing module (102) determines the RAID level and number of arrays formed by the hard disks (3) connected to the current RAID array card (2), it calls the SCSI device virtual module (101) in the computer driver to simulate the data and command transmission mode of the SCSI device, receives SCSI format data and commands sent by the upper-level driver of the computer, and decomposes the data and commands in the SCSI device virtual module (101), performs the corresponding actions of the commands in the RAID array, and then feeds back the command action execution results to the upper-level driver of the computer in SCSI format, making the RAID array virtual as a SCSI storage device, so that the computer recognizes the RAID array as a SCSI storage device; The computer driver (1) detects the SCSI storage device corresponding to the RAID array. If data is written to the SCSI storage device, the driver receives the command to write data, requests space 1 in the computer's free DDR space, and then writes the length of the address to be written to the SCSI storage device, the address of space 1, and the RAID level to the RAID calculation module (203) of the RAID array card (2), and starts the RAID calculation module (203) to perform calculations. After the RAID calculation module (203) completes the calculation, the task scheduling and processing module (102) calculates the hard disk (3) number and corresponding address that the current RAID array card (2) needs to write data and check value to, and controls the SATA controller (204) of the RAID array card (2) to write the data in the computer's free DDR space and the data in space 1 to the hard disk (3) to complete the write operation.

2. The storage system based on a RAID array card according to claim 1, characterized in that, The RAID array card (2) interacts with the hard disk (3) via the SATA interface.

3. The storage system based on a RAID array card according to claim 1, characterized in that, If data is read from a SCSI storage device, the driver receives the address and length of the data to be read in the SCSI storage device, and obtains the address of the space 2 in the computer's free DDR that is waiting to be put into the data. The task scheduling processing module (102) calculates the disk where the data is located and the corresponding length based on the current RAID array level and the members of the hard disk (3), and controls the SATA controller (204) of the RAID array card (2) to read the data from the corresponding hard disk (3) into the space 2 in the computer's free DDR, thus completing the read operation.

4. The storage system based on a RAID array card according to claim 1, characterized in that, If the RAID array is in a degraded or unrebuilt state, after the RAID calculation module (203) completes the calculation, the task scheduling processing module (102) calculates the hard disk (3) number and corresponding address that the current RAID array needs to write data and check value to, and then controls the SATA controller (204) of the RAID array card (2) to write the data in DDR and the data in space 1 to the remaining hard disk (3) of the RAID array, bypassing the hard disk (3) in a lost or unrebuilt state, and completes the write operation.

5. The storage system based on a RAID array card according to claim 1, characterized in that, If the RAID array is in a degraded or unrebuilt state, and data is read from the storage device, the driver receives the address and length of the data to be read in the SCSI device, and obtains the address of space 2 in the computer's free DDR space waiting to be put into the data. The task scheduling processing module (102) calculates the disk where the data is located and the corresponding length based on the current RAID array level and the hard disk (3) members, and controls the SATA controller (204) of the RAID array card (2) to read the data from the corresponding hard disk (3) into space 2 in the computer's free DDR space. Then, it controls the RAID calculation module (203) to calculate the data of the hard disk (3) in the lost state or in the unrebuilt state and put it into space 2 in the computer's free DDR space to complete the read operation.

6. A computer device, characterized in that, The computer device includes: at least one processor, a memory, and a computer program stored in the memory and executable on the at least one processor, wherein the processor executes the computer program to perform the functions of the storage system based on the RAID array card according to any one of claims 1-5.

7. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, which, when executed by a processor, can perform the functions of the storage system based on a RAID array card as described in any one of claims 1-5.

Citation Information

Patent Citations

  • RAID array adaptive configuration method and RAID server

    CN115145495A

  • Redundant array of independent disks system

    US20080052459A1