CN113326005B - Read-write method and device for RAID storage system - Google Patents

Read-write method and device for RAID storage system Download PDF

Info

Publication number
CN113326005B
CN113326005B CN202110657244.7A CN202110657244A CN113326005B CN 113326005 B CN113326005 B CN 113326005B CN 202110657244 A CN202110657244 A CN 202110657244A CN 113326005 B CN113326005 B CN 113326005B
Authority
CN
China
Prior art keywords
read
write
partition
logical volume
target stripe
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.)
Active
Application number
CN202110657244.7A
Other languages
Chinese (zh)
Other versions
CN113326005A (en
Inventor
夏方健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202110657244.7A priority Critical patent/CN113326005B/en
Publication of CN113326005A publication Critical patent/CN113326005A/en
Application granted granted Critical
Publication of CN113326005B publication Critical patent/CN113326005B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

The invention discloses a read-write method and a read-write device of a RAID storage system, wherein the method comprises the following steps: acquiring a read-write request issued by a read-write controller of the storage system from a server corresponding to the read-write controller, and determining a target strip and a partition where the target strip is located in the storage system based on the read-write request; accessing a partition in a logical volume corresponding to the read-write controller by the read-write controller, and detecting whether a target strip crosses the logical volume; in response to determining that the target stripe spans the logical volumes, data blocks in the target stripe that are located within the first logical volume are merged into the partition, data blocks in the target stripe that are located within the second logical volume are discarded from the partition, and data read and write based on the read and write requests are performed. The method and the device can remove the stripe locking on the premise of ensuring that the multiple controllers work together without write conflict, and improve the RAID efficiency and the read-write performance of the system.

Description

Read-write method and device for RAID storage system
Technical Field
The present invention relates to the field of data reading and writing, and more particularly, to a method and an apparatus for reading and writing a RAID storage system.
Background
The continuous improvement of global informatization degree is accelerating to generate massive high-value data, data generated inside enterprises and needed to be stored are rising rapidly, the exponentially-increased high-value data provide many challenges for IT departments of the enterprises, the data is explosively increased in the big data era, the storage performance bears more and more pressure, the data is not limited to capacity, faster reading and writing data are required, faster user task processing is required, the optimization on hardware is achieved, further optimization and adaptation are needed in the aspect of software, in a storage software system, performance optimization is conducted from a RAID module, and the effect of improving the overall storage performance is great.
RAID, i.e. redundant array of independent disks, consists of a large number of storage units (hard disks). In the storage system, a plurality of disks form an array and are used as a single disk, the data are stored in different disks in a striping mode, and when the data are accessed, the related disks in the array act together, so that the data access time is greatly reduced, and the space utilization rate is better. Different technologies used by the disk array are called RAID levels (levels), and different levels are used for different systems and applications to solve the problem of data security. The RAID realizes the acceleration of data reading and writing through striping, a fixed-size data block (block) is taken out from each hard disk forming the RAID to form a stripe, then an extent (partition) is formed by a plurality of stripes, and then a vdisk (logical volume) is formed by the extent.
In the traditional storage system, hardware devices are mostly dual-control and multi-control, but hard disks are common, so that one strip is simultaneously allocated to a scene of two or even more controllers. When multiple controls write to the same stripe at the same time, the problem of data inconsistency may be caused, so that it is necessary to lock the stripe at this time to ensure that only one controller can write to one stripe at the same time. However, in the actual test process, the inventor performs subdivision time dotting among the processes in the RAID internal module, and counts the stages of consuming time and resources in each process of the RAID in the whole read-write process, and finds that the stripe lock process of the RAID occupies about 30% of the whole time delay in the analysis process, because a large amount of time is wasted due to the fact that the lock waits between double controls.
Aiming at the problems of long time consumption of locking a strip and low RAID efficiency in the prior art, no effective solution is available at present.
Disclosure of Invention
In view of this, an object of the embodiments of the present invention is to provide a read-write method and apparatus for a RAID storage system, which can remove stripe locking on the premise of ensuring that multiple controllers work together without write collision, and improve RAID efficiency and read-write performance of the system.
In view of the foregoing, a first aspect of the embodiments of the present invention provides a read-write method for a RAID storage system, including the following steps:
acquiring a issued read-write request from a server corresponding to a read-write controller by the read-write controller of the storage system, and determining a target strip and a partition where the target strip is located in the storage system based on the read-write request;
accessing a partition in a logical volume corresponding to the read-write controller by the read-write controller, and detecting whether a target strip crosses the logical volume;
in response to determining that the target stripe spans the logical volumes, data blocks in the target stripe that are located within the first logical volume are merged into the partitions, data blocks in the target stripe that are located within the second logical volume are discarded from the partitions, and data read and write based on the read and write requests are performed.
In some embodiments, the partitions span multiple logical volumes, with the target stripe located in the partition.
In some embodiments, detecting whether the target stripe crosses the logical volume comprises: it is detected whether the target stripe includes data blocks in at least two different logical volumes simultaneously.
In some embodiments, detecting whether the target stripe crosses the logical volume further comprises: a determination is made as to whether the target stripe's stripe width is divisible by the length of the partition, and the target stripe is determined not to span the logical volume directly in response to determining that the target stripe's stripe width is divisible by the length of the partition.
In some embodiments, the method further comprises: data read and write based on the read and write request is performed directly in response to determining that the target stripe does not span the logical volume.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: data blocks in the target stripe that are located in the logical volume with the largest number of data blocks are merged into the partition, and data blocks in the target stripe that are located in other logical volumes are discarded from the partition.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: the data blocks in the target stripe that are located in the logical volume with the smallest address data blocks are merged into the partition, and the data blocks in the target stripe that are located in other logical volumes are discarded from the partition.
In some embodiments, the server is connected to the corresponding read/write controller and configured to send the issued read/write request to and only to the corresponding read/write controller, and not to any other read/write controller.
In some embodiments, the servers and corresponding read/write controllers are connected by fiber optics using a host bus adapter.
A second aspect of an embodiment of the present invention provides an apparatus, including:
a processor;
a controller storing program code executable by a processor, the processor executing the following steps when executing the program code:
acquiring a issued read-write request from a server corresponding to a read-write controller by the read-write controller of the storage system, and determining a target strip and a partition where the target strip is located in the storage system based on the read-write request;
accessing a partition in a logical volume corresponding to the read-write controller by the read-write controller, and detecting whether a target strip crosses the logical volume;
in response to determining that the target stripe spans the logical volumes, data blocks in the target stripe that are located within the first logical volume are merged into the partition, data blocks in the target stripe that are located within the second logical volume are discarded from the partition, and data read and write based on the read and write requests are performed.
In some embodiments, the partitions span multiple logical volumes, with the target stripe located in the partition.
In some embodiments, detecting whether the target stripe crosses the logical volume comprises: it is detected whether the target stripe includes data blocks in at least two different logical volumes at the same time.
In some embodiments, detecting whether the target stripe crosses the logical volume further comprises: a determination is made as to whether the target stripe's stripe width is divisible by the length of the partition, and the target stripe is determined not to span the logical volume directly in response to determining that the target stripe's stripe width is divisible by the length of the partition.
In some embodiments, the steps further comprise: in response to determining that the target stripe does not cross the logical volume, directly performing the read-write request based data read-write.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: data blocks in the target stripe that are located in the logical volume with the largest number of data blocks are merged into the partition, and data blocks in the target stripe that are located in other logical volumes are discarded from the partition.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: the data blocks in the target stripe that are located in the logical volume with the smallest address data blocks are merged into the partition, and the data blocks in the target stripe that are located in other logical volumes are discarded from the partition.
In some embodiments, the server is connected to the corresponding read/write controller and configured to send the issued read/write request to and only to the corresponding read/write controller, and not to any other read/write controller.
In some embodiments, the servers and corresponding read/write controllers are connected by fiber optics using a host bus adapter.
The invention has the following beneficial technical effects: the read-write controller of the storage system acquires a issued read-write request from a server corresponding to the read-write controller, and determines a target strip and a partition where the target strip is located in the storage system based on the read-write request; accessing a partition in a logical volume corresponding to the read-write controller by the read-write controller, and detecting whether a target strip crosses the logical volume; the data blocks in the target stripe in the first logical volume are merged into the partition in response to the fact that the target stripe crosses the logical volume, the data blocks in the target stripe in the second logical volume are abandoned from the partition, and the technical scheme of data reading and writing based on the reading and writing request is executed, so that the stripe locking can be removed on the premise that the multi-controller co-operation is guaranteed, the writing conflict is avoided, and the RAID efficiency and the reading and writing performance of the system are improved.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the drawings used in the description of the embodiments or the prior art will be briefly described below, it is obvious that the drawings in the following description are only some embodiments of the present invention, and for those skilled in the art, other drawings can be obtained according to the drawings without creative efforts.
Fig. 1 is a schematic flow chart of a read-write method of a RAID storage system according to the present invention.
Detailed Description
In order to make the objects, technical solutions and advantages of the present invention more apparent, the following embodiments of the present invention are described in further detail with reference to the accompanying drawings.
It should be noted that all expressions using "first" and "second" in the embodiments of the present invention are used for distinguishing two entities with the same name but different names or different parameters, and it should be noted that "first" and "second" are merely for convenience of description and should not be construed as limitations of the embodiments of the present invention, and they are not described in any more detail in the following embodiments.
Based on the above object, a first aspect of the embodiments of the present invention provides an embodiment of a read/write method for a RAID storage system, which removes stripe locking and improves RAID efficiency and read/write performance of the system on the premise of ensuring that multiple controllers work together without write collision. Fig. 1 is a schematic flowchart illustrating a read-write method of a RAID storage system according to the present invention.
The read-write method of the RAID storage system, as shown in fig. 1, includes the following steps:
step S101, a read-write controller of a storage system acquires a transmitted read-write request from a server corresponding to the read-write controller, and determines a target strip and a partition where the target strip is located in the storage system based on the read-write request;
step S103, accessing the partition in the logical volume corresponding to the read-write controller by the read-write controller, and detecting whether the target strip crosses the logical volume;
step S105, in response to determining that the target stripe spans the logical volume, merging the data block in the target stripe located in the first logical volume into the partition, discarding the data block in the target stripe located in the second logical volume from the partition, and performing data read/write based on the read/write request.
It will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above may be implemented by instructing relevant hardware by a computer program, and the program may be stored in a computer-readable storage medium, and when executed, may include the processes of the embodiments of the methods described above. The storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), a Random Access Memory (RAM), or the like. Embodiments of the computer program may achieve the same or similar effects as any of the preceding method embodiments to which it corresponds.
In some embodiments, the partitions span multiple logical volumes, with the target stripe located in the partition.
In some embodiments, detecting whether the target stripe crosses the logical volume comprises: it is detected whether the target stripe includes data blocks in at least two different logical volumes at the same time.
In some embodiments, detecting whether the target stripe crosses the logical volume further comprises: a determination is made as to whether the target stripe's stripe width is divisible by the length of the partition, and the target stripe is determined not to span the logical volume directly in response to determining that the target stripe's stripe width is divisible by the length of the partition.
In some embodiments, the method further comprises: data read and write based on the read and write request is performed directly in response to determining that the target stripe does not span the logical volume.
The various illustrative logical blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed with the following components designed to perform the functions described herein: a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination of these components. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP, and/or any other such configuration.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: data blocks in the target stripe that are located in the logical volume with the largest number of data blocks are merged into the partition, and data blocks in the target stripe that are located in other logical volumes are discarded from the partition.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: the data blocks in the target stripe, which are located in the logical volume with the data block with the smallest address, are merged into the partition, and the data blocks in the target stripe, which are located in other logical volumes, are discarded from the partition.
In some embodiments, the server is connected to the corresponding read/write controller and configured to send the issued read/write request to and only to the corresponding read/write controller, and not to any other read/write controller.
In some embodiments, the server and the corresponding read/write controller are connected by an optical fiber using a host bus adapter.
The computer-readable storage media (e.g., memory) described herein can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. By way of example, and not limitation, nonvolatile memory can include Read Only Memory (ROM), programmable ROM (PROM), electrically Programmable ROM (EPROM), electrically Erasable Programmable ROM (EEPROM), or flash memory. Volatile memory can include Random Access Memory (RAM), which can act as external cache memory. By way of example and not limitation, RAM is available in a variety of forms such as synchronous RAM (DRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The storage devices of the disclosed aspects are intended to comprise, without being limited to, these and other suitable types of memory.
The following further illustrates embodiments of the invention in terms of specific examples.
First, compared with the scheme that the servers can be connected to the read-write controller at will in the prior art, the mapping mode of the embodiment of the invention is that each server is separately connected with only one controller of the storage end, namely, the servers are in one-to-one correspondence, so that different servers cannot issue read-write requests to the same controller at the same time, and potential data inconsistency is avoided. The connection is made by connecting optical fiber lines through HBAs (host bus adapters).
Secondly, the invention considers that there are two cases of matching relationship between the stripe width and the extent (partition): the strip width can be evenly divided by the extent, or the strip width cannot be evenly divided by the extent. In the prior art, after the extent size is specified (for example, 2G), a sufficient number of stripes are selected from the stripes of RAID, and at this time or when the stripe width cannot be divided by the extent, there may exist a stripe divided into two halves, the first half belongs to extent1, and the second half belongs to extent2. If the extend 1 and the extend 2 do not belong to the same volume, the lock-robbing phenomenon that two different logical volumes are subjected to two different read-write instructions further occurs in the same partition.
At the moment, the invention only takes the first half part of the strip which is occupied much to form the previous extension, the second half part is abandoned, and the next extension selects the next strip to form the next extension, thereby avoiding the situation that two different read-write instructions read the same extension, and naturally needing no locking.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as software or hardware depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the disclosed embodiments of the present invention.
Furthermore, the method disclosed according to an embodiment of the present invention may also be implemented as a computer program executed by a CPU, and the computer program may be stored in a computer-readable storage medium. The computer program, when executed by the CPU, performs the above-described functions defined in the method disclosed in the embodiments of the present invention. The above-described method steps and system elements may also be implemented using a controller and a computer-readable storage medium for storing a computer program for causing the controller to implement the functions of the above-described steps or elements.
As can be seen from the foregoing embodiments, in the read-write method of the RAID storage system provided in the embodiments of the present invention, the read-write controller of the storage system obtains the issued read-write request from the server corresponding to the read-write controller, and determines the target stripe and the partition where the target stripe is located in the storage system based on the read-write request; accessing a partition in a logical volume corresponding to the read-write controller by the read-write controller, and detecting whether a target strip crosses the logical volume; the data blocks in the target stripe in the first logical volume are merged into the partition in response to the fact that the target stripe crosses the logical volume, the data blocks in the target stripe in the second logical volume are abandoned from the partition, and the technical scheme of data reading and writing based on the reading and writing request is executed, so that the stripe locking can be removed on the premise that the multi-controller co-operation is guaranteed, the writing conflict is avoided, and the RAID efficiency and the reading and writing performance of the system are improved.
It should be particularly noted that, the steps in the embodiments of the read/write method for the RAID storage system may be mutually intersected, replaced, added, and deleted, so that the read/write method for the RAID storage system based on these reasonable permutation and combination transformations shall also belong to the protection scope of the present invention, and shall not limit the protection scope of the present invention to the described embodiments.
In view of the foregoing, a second aspect of the embodiments of the present invention provides an embodiment of a read/write apparatus for a RAID storage system, where stripe locking is removed on the premise that it is ensured that multiple controllers work together without write collision, so as to improve RAID efficiency and read/write performance of the system. The device comprises:
a processor;
a controller storing program code executable by a processor, the processor executing the following steps when executing the program code:
acquiring a issued read-write request from a server corresponding to a read-write controller by the read-write controller of the storage system, and determining a target strip and a partition where the target strip is located in the storage system based on the read-write request;
accessing a partition in a logical volume corresponding to the read-write controller by the read-write controller, and detecting whether a target strip crosses the logical volume;
in response to determining that the target stripe spans the logical volumes, data blocks in the target stripe that are located within the first logical volume are merged into the partition, data blocks in the target stripe that are located within the second logical volume are discarded from the partition, and data read and write based on the read and write requests are performed.
The steps of a method or algorithm described in connection with the disclosure herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
In some embodiments, the partitions span multiple logical volumes, with the target stripe located in the partition.
In some embodiments, detecting whether the target stripe crosses the logical volume comprises: it is detected whether the target stripe includes data blocks in at least two different logical volumes simultaneously.
In some embodiments, detecting whether the target stripe crosses the logical volume further comprises: detecting whether a stripe width of the target stripe is divisible by a length of the partition and, in response to determining that the stripe width of the target stripe is divisible by the length of the partition, directly determining that the target stripe does not span the logical volume.
In some embodiments, the steps further comprise: data read and write based on the read and write request is performed directly in response to determining that the target stripe does not span the logical volume.
In one or more exemplary designs, the functions may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a general purpose or special purpose computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a general-purpose or special-purpose computer, or a general-purpose or special-purpose processor. Also, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital Subscriber Line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. Disk and disc, as used herein, includes Compact Disc (CD), laser disc, optical disc, digital Versatile Disc (DVD), floppy disk, blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: the data blocks in the target stripe that are located in the logical volume with the largest number of data blocks are merged into the partition, and the data blocks in the target stripe that are located in other logical volumes are discarded from the partition.
In some embodiments, merging the data blocks in the target stripe that are located within the first logical volume into the partition, and discarding the data blocks in the target stripe that are located within the second logical volume from the partition includes: the data blocks in the target stripe that are located in the logical volume with the smallest address data blocks are merged into the partition, and the data blocks in the target stripe that are located in other logical volumes are discarded from the partition.
In some embodiments, the server is connected to the corresponding read/write controller and configured to send the issued read/write request to and only to the corresponding read/write controller, and not to any other read/write controller.
In some embodiments, the servers and corresponding read/write controllers are connected by fiber optics using a host bus adapter.
The devices and apparatuses disclosed in the embodiments of the present invention may be various electronic terminal apparatuses, such as a mobile phone, a Personal Digital Assistant (PDA), a tablet computer (PAD), a smart television, or a large terminal apparatus, such as a server, and therefore the scope of protection disclosed in the embodiments of the present invention should not be limited to a specific type of device and apparatus. The client disclosed in the embodiment of the present invention may be applied to any one of the above electronic terminal devices in the form of electronic hardware, computer software, or a combination of both.
As can be seen from the foregoing embodiments, in the read/write apparatus of a RAID storage system provided in the embodiments of the present invention, a read/write controller of the storage system obtains a read/write request issued from a server corresponding to the read/write controller, and determines a target stripe and a partition where the target stripe is located in the storage system based on the read/write request; accessing a partition in a logical volume corresponding to the read-write controller by the read-write controller, and detecting whether a target strip crosses the logical volume; the data blocks in the target stripe in the first logical volume are merged into the partition in response to the fact that the target stripe crosses the logical volume, the data blocks in the target stripe in the second logical volume are abandoned from the partition, and the technical scheme of data reading and writing based on the reading and writing request is executed, so that the stripe locking can be removed on the premise that the multi-controller co-operation is guaranteed, the writing conflict is avoided, and the RAID efficiency and the reading and writing performance of the system are improved.
It should be particularly noted that the above-mentioned embodiment of the apparatus employs the embodiment of the read-write method of the RAID storage system to specifically describe the working process of each module, and those skilled in the art can easily think that these modules are applied to other embodiments of the read-write method of the RAID storage system. Of course, since the steps in the read/write method embodiment of the RAID storage system may be intersected, replaced, added, or deleted, these reasonable permutation and combination transformations should also belong to the protection scope of the present invention for the apparatus, and should not limit the protection scope of the present invention to the embodiment.
Finally, it should be noted that, as understood by those skilled in the art, all or part of the processes in the methods of the embodiments described above can be implemented by instructing relevant hardware by a computer program, where the computer program can be stored in a computer-readable storage medium, and when executed, the computer program can include the processes of the embodiments of the methods described above. The storage medium may be a magnetic disk, an optical disk, a read-only memory (ROM), or a Random Access Memory (RAM). Embodiments of the computer program may achieve the same or similar effects as any of the preceding method embodiments corresponding thereto.
The foregoing is an exemplary embodiment of the present disclosure, but it should be noted that various changes and modifications could be made herein without departing from the scope of the present disclosure as defined by the appended claims. The functions, steps and/or actions of the method claims in accordance with the disclosed embodiments described herein need not be performed in any particular order. Furthermore, although elements of the embodiments of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
Those of ordinary skill in the art will understand that: the discussion of any embodiment above is meant to be exemplary only, and is not intended to intimate that the scope of the disclosure, including the claims, of embodiments of the invention is limited to these examples; within the idea of an embodiment of the invention, also technical features in the above embodiment or in different embodiments may be combined and there are many other variations of the different aspects of an embodiment of the invention as described above, which are not provided in detail for the sake of brevity. Therefore, any omissions, modifications, substitutions, improvements and the like that may be made without departing from the spirit or scope of the embodiments of the present invention are intended to be included within the scope of the embodiments of the present invention.

Claims (9)

1. A read-write method of a RAID storage system is characterized by comprising the following steps:
acquiring a read-write request issued by a read-write controller of a storage system from a server corresponding to the read-write controller, and determining a target strip and a partition where the target strip is located in the storage system based on the read-write request;
accessing, by the read/write controller, the partition in a logical volume corresponding to the read/write controller, and detecting whether the target stripe crosses a logical volume;
in response to determining that the target stripe spans a logical volume, incorporating a data block of the target stripe located within a first logical volume into the partition, discarding a data block of the target stripe located within a second logical volume from the partition, and performing data read and write based on the read and write request;
the server is connected to the corresponding read-write controller and configured to send and issue the read-write request to and only to the corresponding read-write controller, and not to any other read-write controller.
2. The method of claim 1, wherein the partition spans a plurality of logical volumes, and wherein the target stripe is located in the partition.
3. The method of claim 1, wherein detecting whether the target stripe is across logical volumes comprises: it is detected whether the target stripe includes data blocks in at least two different logical volumes at the same time.
4. The method of claim 1, wherein detecting whether the target stripe is across logical volumes further comprises: detecting whether a stripe width of the target stripe is divisible by a length of the partition and directly determining that the target stripe does not span a logical volume in response to determining that the stripe width of the target stripe is divisible by the length of the partition.
5. The method of claim 1, further comprising: in response to determining that the target stripe does not span a logical volume, directly performing data read and write based on the read and write request.
6. The method of claim 1, wherein merging the data blocks in the target stripe that are located in the first logical volume into the partition, and wherein discarding the data blocks in the target stripe that are located in the second logical volume from the partition comprises: and merging the data blocks in the logical volume with the maximum data block number in the target stripe into the partition, and discarding the data blocks in other logical volumes in the target stripe from the partition.
7. The method of claim 1, wherein merging the data blocks in the target stripe that are located in the first logical volume into the partition, and wherein discarding the data blocks in the target stripe that are located in the second logical volume from the partition comprises: and merging the data blocks in the logical volume with the smallest address in the target stripe into the partition, and discarding the data blocks in other logical volumes in the target stripe from the partition.
8. The method of claim 1, wherein the servers and the corresponding read/write controllers are connected by fiber optics using a host bus adapter.
9. A read-write apparatus for a RAID storage system, comprising:
a processor;
a controller storing program code executable by the processor, the processor executing the following steps when executing the program code:
acquiring a read-write request issued by a read-write controller of a storage system from a server corresponding to the read-write controller, and determining a target strip and a partition where the target strip is located in the storage system based on the read-write request;
accessing, by the read/write controller, the partition in a logical volume corresponding to the read/write controller, and detecting whether the target stripe crosses a logical volume;
in response to determining that the target stripe spans a logical volume, incorporating a data block of the target stripe located within a first logical volume into the partition, discarding a data block of the target stripe located within a second logical volume from the partition, and performing data read and write based on the read and write request;
the server is connected to the corresponding read-write controller and configured to send and issue the read-write request to and only to the corresponding read-write controller, and not to any other read-write controller.
CN202110657244.7A 2021-06-11 2021-06-11 Read-write method and device for RAID storage system Active CN113326005B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110657244.7A CN113326005B (en) 2021-06-11 2021-06-11 Read-write method and device for RAID storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110657244.7A CN113326005B (en) 2021-06-11 2021-06-11 Read-write method and device for RAID storage system

Publications (2)

Publication Number Publication Date
CN113326005A CN113326005A (en) 2021-08-31
CN113326005B true CN113326005B (en) 2023-01-06

Family

ID=77420677

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110657244.7A Active CN113326005B (en) 2021-06-11 2021-06-11 Read-write method and device for RAID storage system

Country Status (1)

Country Link
CN (1) CN113326005B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114415981B (en) * 2022-03-30 2022-07-15 苏州浪潮智能科技有限公司 IO processing method and system of multi-control storage system and related components
CN115858410B (en) * 2023-02-16 2023-05-23 浪潮电子信息产业股份有限公司 IO processing method, device, equipment and storage medium
CN116700633B (en) * 2023-08-08 2023-11-03 成都领目科技有限公司 IO delay monitoring method, device and medium for RAID array hard disk

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488435A (en) * 2013-09-24 2014-01-01 华为技术有限公司 RAID (redundant arrays of independent disks) subsystem and data read-write method thereof
CN111290711A (en) * 2020-01-21 2020-06-16 苏州浪潮智能科技有限公司 IO processing method and related device of RAID system
CN111414317A (en) * 2020-03-06 2020-07-14 苏州浪潮智能科技有限公司 IO request processing method, device, equipment and readable storage medium

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488435A (en) * 2013-09-24 2014-01-01 华为技术有限公司 RAID (redundant arrays of independent disks) subsystem and data read-write method thereof
CN111290711A (en) * 2020-01-21 2020-06-16 苏州浪潮智能科技有限公司 IO processing method and related device of RAID system
CN111414317A (en) * 2020-03-06 2020-07-14 苏州浪潮智能科技有限公司 IO request processing method, device, equipment and readable storage medium

Also Published As

Publication number Publication date
CN113326005A (en) 2021-08-31

Similar Documents

Publication Publication Date Title
CN113326005B (en) Read-write method and device for RAID storage system
US11307769B2 (en) Data storage method, apparatus and storage medium
CN108459826B (en) Method and device for processing IO (input/output) request
CN103399823B (en) The storage means of business datum, equipment and system
JP7058132B2 (en) Systems and methods for maximized deduplication memory
CN110727404A (en) Data deduplication method and device based on storage end and storage medium
US8868793B2 (en) SAS expander system and method for dynamically allocating SAS addresses to SAS expander devices
WO2023040200A1 (en) Data deduplication method and system, and storage medium and device
CN103473266A (en) Solid state disk and method for deleting repeating data thereof
CN111984204B (en) Data reading and writing method and device, electronic equipment and storage medium
US20240086332A1 (en) Data processing method and system, device, and medium
CN103324466A (en) Data dependency serialization IO parallel processing method
CN110647423B (en) Method, device and readable medium for creating storage volume mirror image based on application
CN111352586A (en) Directory aggregation method, device, equipment and medium for accelerating file reading and writing
CN111352589B (en) Distributed storage method, device, equipment and readable medium
CN107423425B (en) Method for quickly storing and inquiring data in K/V format
CN110504002B (en) Hard disk data consistency test method and device
CN111045604A (en) Small file read-write acceleration method and device based on NVRAM
CN112559529A (en) Data storage method and device, computer equipment and storage medium
US20130080481A1 (en) Extreme large space allocation
WO2023050856A1 (en) Data processing method and storage system
CN115203211A (en) Unique hash sequence number generation method and system
CN111309255B (en) Method, system, device and medium for converting volume type
CN112015672A (en) Data processing method, device, equipment and storage medium in storage system
CN111966845A (en) Picture management method and device, storage node and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant