CN113253944A - Disk array access method, system and storage medium - Google Patents

Disk array access method, system and storage medium Download PDF

Info

Publication number
CN113253944A
CN113253944A CN202110767427.4A CN202110767427A CN113253944A CN 113253944 A CN113253944 A CN 113253944A CN 202110767427 A CN202110767427 A CN 202110767427A CN 113253944 A CN113253944 A CN 113253944A
Authority
CN
China
Prior art keywords
node
access
lock
received
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.)
Pending
Application number
CN202110767427.4A
Other languages
Chinese (zh)
Inventor
邸忠辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 CN202110767427.4A priority Critical patent/CN113253944A/en
Publication of CN113253944A publication Critical patent/CN113253944A/en
Pending legal-status Critical Current

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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention provides a disk array access method, a system and a storage medium, wherein the method comprises the following steps: dividing the disk array into a plurality of strip groups, respectively attributing each strip group to each node, and respectively issuing IO to each node; responding to the IO received by a node, and judging whether the IO received by the node is prepared to access the corresponding stripe group; responding to the IO prepared to access the corresponding stripe group received by the node, and enabling the IO received by the node to access the corresponding stripe group through the local lock; and responding to the IO received by the node to prepare to access the stripe group corresponding to the other node, and enabling the IO received by the node to access the stripe group corresponding to the other node through the stripe lock. The invention greatly reduces the sending of lock messages between nodes, improves the access rate of IO, and reduces the time delay for processing IO; the disk array is accessed by combining a local lock mode and a strip lock mode, and the performance of the storage system is effectively improved.

Description

Disk array access method, system and storage medium
Technical Field
The present invention relates to the field of storage technologies, and in particular, to a disk array access method, system, and storage medium.
Background
In a cloud computing data center, the storage performance of data is a core concern of users. The main storage device of the cloud computing data center storage system is raid, which represents a disk array and is a disk group with huge capacity formed by combining a plurality of independent disks, and the efficiency of the whole disk system is improved by utilizing the addition effect generated by data provided by individual disks. Currently, the disk array is divided into stripes. For the case of a large IO load, there may be a large number of concurrent access operations to the same stripe, and the concurrent IO requests may be controlled by the lock in stripe units. Accessing a plurality of IOs of the same strip needs to be carried out in series through lock control; for a dual-node active-active system, because two nodes can access raid, a lock is required to be used between the two nodes for access control. The mutual communication among the nodes through the lock to access the control can carry out a large amount of message transmission, which is very tedious. Especially under the condition of a large number of small IOs, the number of required lock messages is greatly increased, and the performance of the storage system is seriously influenced.
Disclosure of Invention
In view of this, an object of the present invention is to provide a disk array access method, a disk array access system, and a storage medium, so as to solve the problem in the prior art that performance of a storage system is degraded because a large amount of IO accesses to a disk array need to control access through multiple lock message transfers between nodes.
Based on the above purpose, the present invention provides a disk array access method, which comprises the following steps:
dividing the disk array into a plurality of strip groups, respectively attributing each strip group to each node, and respectively issuing IO to each node;
responding to the IO received by a node, and judging whether the IO received by the node is prepared to access the corresponding stripe group;
responding to the IO prepared to access the corresponding stripe group received by the node, and enabling the IO received by the node to access the corresponding stripe group through the local lock;
and responding to the IO received by the node to prepare to access the stripe group corresponding to the other node, and enabling the IO received by the node to access the stripe group corresponding to the other node through the stripe lock.
In some embodiments, the method further comprises:
and responding to the condition that the IO received by the node is prepared to access the corresponding stripe group and the newly received IO is prepared to access the stripe group corresponding to other nodes, enabling the received IO to access the stripe group corresponding to the node through the local lock, and enabling the newly received IO to access the stripe group corresponding to other nodes through the stripe lock.
In some embodiments, accessing the received IO to the stripe group corresponding to the node through the local lock, and accessing the newly received IO to the stripe group corresponding to the other node through the stripe lock includes:
and storing the newly received IO into the linked list in sequence until the received IO accesses the strip group corresponding to the node through the local lock, and enabling the newly received IO to access the strip group corresponding to other nodes through the strip lock.
In some embodiments, the method further comprises:
responding to the condition that the newly received IO of the node is prepared to access the corresponding stripe group and the received IO is prepared to access the stripe group corresponding to other nodes, enabling the newly received IO to access the stripe group corresponding to the node through the local lock, and enabling the received IO to access the stripe group corresponding to other nodes through the stripe lock.
In some embodiments, accessing the newly received IO to the stripe group corresponding to the node through the local lock and accessing the received IO to the stripe group corresponding to the other node through the stripe lock includes:
and storing the newly received IO into the linked list in sequence until the received IO accesses the strip group corresponding to the other node through the strip lock, and enabling the newly received IO to access the strip group corresponding to the node through the local lock.
In some embodiments, responsive to the IO received by the node preparing to access its corresponding stripe group, causing the IO received by the node to access its corresponding stripe group through the local lock comprises:
responding to IO preparation of a first task of the node to access a corresponding stripe group and initiating a first lock request, and adding a local lock to the first task through a lock manager of the node based on the first lock request so that the IO of the first task accesses the stripe group;
responding to the fact that an IO of a second task is prepared to access the stripe group and initiate a second lock request in the process that the IO of the first task accesses the stripe group, storing the second lock request into a waiting queue until the IO of the first task accesses the stripe group and releases the local lock, and adding the local lock for the second task through a lock manager to enable the IO of the second task to access the stripe group.
In some embodiments, in response to the IO received by the node preparing to access the corresponding stripe group of the other node, causing the IO received by the node to access the corresponding stripe group of the other node through the stripe lock includes:
responding to IO (input/output) received by the node to prepare to access the strip group corresponding to other nodes and sending a third lock request to other nodes, enabling the node to acquire a strip lock based on the third lock request through other nodes and enabling the IO to access the strip group based on the strip lock;
responding to the fact that the IO of other nodes prepares to access the stripe group and sends a fourth lock request to the node in the process that the IO received by the node accesses the stripe group, enabling the fourth lock request to wait until the IO received by the node accesses the stripe group and releases the lock resource of the stripe lock, and then informing the other nodes of the message of releasing the lock resource so that the other nodes perform corresponding operation of locking the resource and obtain the stripe lock to enable the IO to access the stripe group.
In some embodiments, dividing the disk array into a plurality of stripe groups comprises:
the disk array is divided into a plurality of strips, and the adjacent strips are combined into a plurality of strip groups respectively.
In another aspect of the present invention, a disk array access system is further provided, including:
the IO issuing module is configured to divide the disk array into a plurality of stripe groups, respectively attribute each stripe group to each node, and respectively issue IO to each node;
the judging module is configured to respond to the fact that a node receives IO and judge whether the IO received by the node is prepared to access the corresponding stripe group;
the local lock module is configured to respond to the IO prepared by the node to access the corresponding stripe group, and enable the IO received by the node to access the corresponding stripe group through the local lock; and
and the strip lock module is configured to respond to the IO received by the node to prepare to access the strip group corresponding to the other node, and enable the IO received by the node to access the strip group corresponding to the other node through the strip lock.
In yet another aspect of the present invention, there is also provided a computer readable storage medium storing computer program instructions which, when executed, implement any one of the methods described above.
In yet another aspect of the present invention, a computer device is provided, which includes a memory and a processor, the memory storing a computer program, the computer program executing any one of the above methods when executed by the processor.
The invention has at least the following beneficial technical effects:
according to the method, the node receives IO to access the stripe group corresponding to the node or the stripe group corresponding to other nodes, and the set local lock is used for accessing the IO of the node under the condition that the IO of the node is to access the corresponding stripe group, so that the sending of the inter-node lock message is greatly reduced, the access rate of the IO is improved, and the time delay for processing the IO is reduced; the IO of the node is accessed by using the stripe lock under the condition that the IO of the node is to access the stripe group corresponding to other nodes, so that the IO of the node can stably and reliably access the disk array; the two modes are combined to access the disk array, so that the performance of the storage system is effectively 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, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art that other embodiments can be obtained by using the drawings without creative efforts.
FIG. 1 is a schematic diagram of a disk array access method according to an embodiment of the present invention;
FIG. 2 is a schematic diagram illustrating a process for using a local lock according to an embodiment of the present invention;
FIG. 3 is a schematic view illustrating a process of using a strap lock according to an embodiment of the present invention;
FIG. 4 is a schematic diagram of a disk array access system provided in accordance with an embodiment of the present invention;
FIG. 5 is a schematic diagram of a computer-readable storage medium for implementing a disk array access method according to an embodiment of the present invention;
fig. 6 is a schematic hardware structure diagram of a computer device for executing a disk array access method according to an embodiment of 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 non-identical entities with the same name or different parameters, and it is understood that "first" and "second" are only used for convenience of expression and should not be construed as limiting the embodiments of the present invention. Furthermore, the terms "comprises" and "comprising," and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or elements does not include all of the other steps or elements inherent in the list.
In view of the foregoing, a first aspect of the embodiments of the present invention provides an embodiment of a disk array access method. Fig. 1 is a schematic diagram illustrating an embodiment of a disk array access method provided by the present invention. As shown in fig. 1, the embodiment of the present invention includes the following steps:
step S10, dividing the disk array into a plurality of strip groups, respectively attributing each strip group to each node, and respectively issuing IO to each node;
step S20, responding to the IO received by a node, judging whether the IO received by the node is prepared to access the corresponding stripe group;
step S30, responding to the IO prepared to access the corresponding stripe group received by the node, and enabling the IO received by the node to access the corresponding stripe group through the local lock;
step S40, in response to the IO received by the node preparing to access the stripe group corresponding to the other node, the IO received by the node is made to access the stripe group corresponding to the other node through the stripe lock.
According to the embodiment of the invention, the IO received by the node is judged whether to access the stripe group corresponding to the node or access the stripe group corresponding to other nodes, and the set local lock is utilized to access the IO of the node under the condition that the IO of the node is to access the corresponding stripe group, so that the sending of the lock message between the nodes is greatly reduced, the access rate of the IO is improved, and the time delay for processing the IO is reduced; the IO of the node is accessed by using the stripe lock under the condition that the IO of the node is to access the stripe group corresponding to other nodes, so that the IO of the node can stably and reliably access the disk array; the two modes are combined to access the disk array, so that the performance of the storage system is effectively improved.
In this embodiment, IO denotes a data Input (Input) Output (Output).
In some embodiments, the method further comprises: and responding to the condition that the IO received by the node is prepared to access the corresponding stripe group and the newly received IO is prepared to access the stripe group corresponding to other nodes, enabling the received IO to access the stripe group corresponding to the node through the local lock, and enabling the newly received IO to access the stripe group corresponding to other nodes through the stripe lock.
In some embodiments, accessing the received IO to the stripe group corresponding to the node through the local lock, and accessing the newly received IO to the stripe group corresponding to the other node through the stripe lock includes: and storing the newly received IO into the linked list in sequence until the received IO accesses the strip group corresponding to the node through the local lock, and enabling the newly received IO to access the strip group corresponding to other nodes through the strip lock.
In the above embodiment, when an IO that is received by a node before and is not processed is to access a corresponding stripe group, a local lock is used to perform corresponding access; when a newly received IO is to access a stripe group corresponding to other nodes, placing the newly received IO into a linked list for waiting; when the previously received IOs are processed, the newly received IOs sequentially come out from the head of the linked list and are correspondingly accessed through the strip locks; and if the IO received later still needs to access the strip groups corresponding to other nodes, sequentially putting the IO into the linked list from the tail part of the linked list.
In some embodiments, the method further comprises: responding to the condition that the newly received IO of the node is prepared to access the corresponding stripe group and the received IO is prepared to access the stripe group corresponding to other nodes, enabling the newly received IO to access the stripe group corresponding to the node through the local lock, and enabling the received IO to access the stripe group corresponding to other nodes through the stripe lock.
In some embodiments, accessing the newly received IO to the stripe group corresponding to the node through the local lock and accessing the received IO to the stripe group corresponding to the other node through the stripe lock includes: and storing the newly received IO into the linked list in sequence until the received IO accesses the strip group corresponding to the other node through the strip lock, and enabling the newly received IO to access the strip group corresponding to the node through the local lock.
In the above embodiment, when an IO that is received by a node before and is not processed is to access a stripe group corresponding to another node, a stripe lock is used to perform corresponding access; when a newly received IO is to access the stripe group corresponding to the node, placing the newly received IO into a linked list for waiting; when the previously received IOs are processed, the newly received IOs sequentially come out from the head of the linked list and are correspondingly accessed through the local lock; and if the IO received later still needs to access the strip group corresponding to the node, sequentially putting the IO into the linked list from the tail part of the linked list.
In some embodiments, responsive to the IO received by the node preparing to access its corresponding stripe group, causing the IO received by the node to access its corresponding stripe group through the local lock comprises: responding to IO preparation of a first task of the node to access a corresponding stripe group and initiating a first lock request, and adding a local lock to the first task through a lock manager of the node based on the first lock request so that the IO of the first task accesses the stripe group; responding to the fact that an IO of a second task is prepared to access the stripe group and initiate a second lock request in the process that the IO of the first task accesses the stripe group, storing the second lock request into a waiting queue until the IO of the first task accesses the stripe group and releases the local lock, and adding the local lock for the second task through a lock manager to enable the IO of the second task to access the stripe group.
FIG. 2 illustrates a flow of use of a local lock. As shown in FIG. 2, IO of a first task (process 0) of node0 needs to access the A stripe group, initiating a first lock request; the lock manager agrees with a first lock request (grant lock), namely the local lock is successfully added; the first task starts to execute IO; if the second task (process 1) also needs to access the A stripe group in the process of executing IO by the first task, the second task also requests a lock and initiates a second lock request; at the moment, the first task has a local lock, and the second task can only be added into a waiting queue for waiting; the first task releases the lock; the lock manager takes out the second lock request from the waiting queue and grants the second lock request (grant lock), namely the second task successfully adds the local lock; the second task starts to carry out IO operation; after the operation is finished, releasing the local lock; the lock management checks whether there are other locking requests.
In some embodiments, in response to the IO received by the node preparing to access the corresponding stripe group of the other node, causing the IO received by the node to access the corresponding stripe group of the other node through the stripe lock includes: responding to IO (input/output) received by the node to prepare to access the strip group corresponding to other nodes and sending a third lock request to other nodes, enabling the node to acquire a strip lock based on the third lock request through other nodes and enabling the IO to access the strip group based on the strip lock; responding to the fact that the IO of other nodes prepares to access the stripe group and sends a fourth lock request to the node in the process that the IO received by the node accesses the stripe group, enabling the fourth lock request to wait until the IO received by the node accesses the stripe group and releases the lock resource of the stripe lock, and then informing the other nodes of the message of releasing the lock resource so that the other nodes perform corresponding operation of locking the resource and obtain the stripe lock to enable the IO to access the stripe group.
Fig. 3 shows a usage flow of the strap lock. As shown in fig. 3, when node1 (referred to as the node) has IO to access a B-stripe group, it needs to send a message requesting lock to another node0 (referred to as another node); after receiving the lock request, node0 agrees to node1 to obtain the lock of the B stripe group and sends the lock message of grant lock; the node1 acquires the stripe lock, namely the locking is successful, and the IO operation is started; node0 also has IO to access B stripe group, and sends the lock message requesting lock to node 1; node1 receives the message from node0 requesting a lock, at which point node1 is using the lock and the lock request can only wait; ending the IO processing of node1, releasing the lock resource of the B strip group of node1, and sending a lock message for releasing the lock to node 0; node1 agrees that node0 gets a lock of the B stripe group and sends a lock message of grant lock; after receiving the lock message of releasing the lock, node0 performs corresponding lock resource operation, where the lock resource operation mainly includes preparing for a memory required when using the lock and a communication channel required by the lock message; the node0 obtains the strip lock, namely the locking is successful, and IO processing is carried out; after IO processing is finished, releasing the lock resource of the B strip group of the node0, and sending a lock message for releasing the lock to the node 1; node1 also performs the corresponding lock resource operation.
In some embodiments, dividing the disk array into a plurality of stripe groups comprises: the disk array is divided into a plurality of strips, and the adjacent strips are combined into a plurality of strip groups respectively. In this embodiment, each band group includes a plurality of bands.
In a second aspect of the embodiments of the present invention, a disk array access system is further provided. FIG. 4 is a schematic diagram of an embodiment of a disk array access system provided by the invention. As shown in fig. 4, a disk array access system includes: an IO issuing module 10 configured to divide the disk array into a plurality of stripe groups, respectively assign each stripe group to a respective node, and respectively issue an IO to each node; the determining module 20 is configured to respond to that a node receives an IO, and determine whether the IO received by the node is ready to access a corresponding stripe group; a local lock module 30, configured to respond to the IO received by the node to prepare to access its corresponding stripe group, and enable the IO received by the node to access its corresponding stripe group through a local lock; and a stripe lock module 40 configured to respond to the IO received by the node to prepare to access the stripe group corresponding to the other node, and enable the IO received by the node to access the stripe group corresponding to the other node through the stripe lock.
In some embodiments, the system further includes a first hybrid access module configured to, in response to the received IO of the node being ready to access its corresponding stripe group and the newly received IO being ready to access a stripe group corresponding to another node, access the received IO to the stripe group corresponding to the node through the local lock, and access the newly received IO to the stripe group corresponding to the other node through the stripe lock.
In some embodiments, the first hybrid access module includes a first access module configured to store the newly received IO in the linked list in sequence, until the received IO accesses the stripe group corresponding to the node through the local lock, and then access the stripe group corresponding to another node through the stripe lock.
In some embodiments, the system further includes a second hybrid access module configured to, in response to a newly received IO of the node being ready to access its corresponding stripe group and a received IO being ready to access a stripe group corresponding to another node, access the newly received IO to the stripe group corresponding to the node through the local lock, and access the received IO to the stripe group corresponding to the other node through the stripe lock.
In some embodiments, the second hybrid access module includes a second access module configured to store the newly received IO in the linked list in sequence, until the received IO accesses the stripe group corresponding to the other node through the stripe lock, and then access the stripe group corresponding to the node through the local lock.
In some embodiments, local lock module 30 is further configured to, in response to an IO of a first task of the node preparing to access its corresponding stripe group and initiating a first lock request, add a local lock to the first task based on the first lock request by a lock manager of the node, such that the IO of the first task accesses the stripe group; responding to the fact that an IO of a second task is prepared to access the stripe group and initiate a second lock request in the process that the IO of the first task accesses the stripe group, storing the second lock request into a waiting queue until the IO of the first task accesses the stripe group and releases the local lock, and adding the local lock for the second task through a lock manager to enable the IO of the second task to access the stripe group.
In some embodiments, the stripe lock module 40 is further configured to prepare to access a stripe group corresponding to another node in response to the IO received by the node and send a third lock request to the other node, and enable, by the other node, the node to acquire a stripe lock based on the third lock request and enable its IO to access the stripe group based on the stripe lock; responding to the fact that the IO of other nodes prepares to access the stripe group and sends a fourth lock request to the node in the process that the IO received by the node accesses the stripe group, enabling the fourth lock request to wait until the IO received by the node accesses the stripe group and releases the lock resource of the stripe lock, and then informing the other nodes of the message of releasing the lock resource so that the other nodes perform corresponding operation of locking the resource and obtain the stripe lock to enable the IO to access the stripe group.
In some embodiments, the IO issue module 10 includes a stripe group dividing module configured to divide the disk array into a plurality of stripes, and respectively combine a plurality of adjacent stripes into a plurality of stripe groups.
In a third aspect of the embodiment of the present invention, a computer-readable storage medium is further provided, and fig. 5 is a schematic diagram illustrating a computer-readable storage medium for implementing a disk array access method according to an embodiment of the present invention. As shown in fig. 5, the computer-readable storage medium 3 stores computer program instructions 31, the computer program instructions 31 implementing the method of any one of the above embodiments when executed.
It should be understood that all of the embodiments, features and advantages set forth above with respect to the disk array access method according to the present invention are equally applicable to the disk array access system and the storage medium according to the present invention, without conflict therebetween.
In a fourth aspect of the embodiments of the present invention, there is further provided a computer device, including a memory 402 and a processor 401, where the memory stores a computer program, and the computer program, when executed by the processor, implements the method of any one of the above embodiments.
Fig. 6 is a schematic hardware structural diagram of an embodiment of a computer device for executing a disk array access method according to the present invention. Taking the computer device shown in fig. 6 as an example, the computer device includes a processor 401 and a memory 402, and may further include: an input device 403 and an output device 404. The processor 401, the memory 402, the input device 403 and the output device 404 may be connected by a bus or other means, and fig. 6 illustrates an example of a connection by a bus. The input device 403 may receive input numeric or character information and generate key signal inputs related to user settings and function control of the disk array access system. The output device 404 may include a display device such as a display screen.
The memory 402, which is a non-volatile computer-readable storage medium, may be used to store non-volatile software programs, non-volatile computer-executable programs, and modules, such as program instructions/modules corresponding to the disk array access method in the embodiments of the present application. The memory 402 may include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required for at least one function; the storage data area may store data created by use of the disk array access method, and the like. Further, the memory 402 may include high speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid state storage device. In some embodiments, memory 402 may optionally include memory located remotely from processor 401, which may be connected to local modules via a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The processor 401 executes various functional applications of the server and data processing, namely, the disk array access method of the above-described method embodiment, by executing the nonvolatile software program, instructions and modules stored in the memory 402.
Finally, it should be noted that the computer-readable storage medium (e.g., memory) 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), Synchronous Link 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.
Those of skill would further appreciate that 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.
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 disclosed embodiments of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.
It should be understood that, as used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly supports the exception. It should also be understood that "and/or" as used herein is meant to include any and all possible combinations of one or more of the associated listed items. The numbers of the embodiments disclosed in the embodiments of the present invention are merely for description, and do not represent the merits of the embodiments.
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 the embodiments 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 and principles of the embodiments of the present invention are intended to be included within the scope of the embodiments of the present invention.

Claims (10)

1. A disk array access method, comprising the steps of:
dividing the disk array into a plurality of strip groups, respectively attributing each strip group to each node, and respectively issuing IO to each node;
responding to the fact that a node receives IO, and judging whether the IO received by the node is prepared to access a corresponding stripe group;
responding to the IO received by the node to prepare to access the corresponding stripe group, and enabling the IO received by the node to access the corresponding stripe group through a local lock;
responding to the IO prepared to access the stripe group corresponding to other nodes received by the node, and enabling the IO received by the node to access the stripe group corresponding to other nodes through a stripe lock.
2. The method of claim 1, further comprising:
responding to the condition that the IO received by the node is prepared to access the corresponding stripe group and the newly received IO is prepared to access the stripe group corresponding to other nodes, enabling the received IO to access the stripe group corresponding to the node through the local lock, and enabling the newly received IO to access the stripe group corresponding to other nodes through the stripe lock.
3. The method of claim 2, wherein enabling the received IO to access the corresponding stripe group of the node through a local lock and enabling the newly received IO to access the corresponding stripe group of the other node through a stripe lock comprises:
and storing the newly received IO into a linked list in sequence until the received IO accesses the strip group corresponding to the node through the local lock, and enabling the newly received IO to access the strip group corresponding to other nodes through the strip lock.
4. The method of claim 1, further comprising:
responding to the condition that the IO received by the node newly accesses the corresponding stripe group and the received IO accesses the stripe group corresponding to other nodes, enabling the newly received IO to access the stripe group corresponding to the node through the local lock, and enabling the received IO to access the stripe group corresponding to other nodes through the stripe lock.
5. The method of claim 4, wherein enabling the newly received IO to access the set of stripes corresponding to the node through a local lock and enabling the received IO to access the set of stripes corresponding to other nodes through a stripe lock comprises:
and storing the newly received IO into a linked list in sequence until the received IO accesses the strip group corresponding to other nodes through the strip lock, and enabling the newly received IO to access the strip group corresponding to the nodes through the local lock.
6. The method of claim 1, wherein in response to the IO received by the node preparing to access its corresponding stripe group, causing the IO received by the node to access its corresponding stripe group through a local lock comprises:
responding to IO preparation of a first task of the node to access a corresponding stripe group and initiating a first lock request, and adding a local lock to the first task through a lock manager of the node based on the first lock request so that the IO of the first task accesses the stripe group;
responding to the fact that an IO of a second task prepares to access the stripe group and initiates a second lock request in the process that the IO of the first task accesses the stripe group, storing the second lock request into a waiting queue until the IO of the first task accesses the stripe group and releases the local lock, and adding the local lock for the second task through the lock manager to enable the IO of the second task to access the stripe group.
7. The method of claim 1, wherein in response to the IO received by the node preparing to access the corresponding stripe group of the other node, causing the IO received by the node to access the corresponding stripe group of the other node through a stripe lock comprises:
responding to IO (input/output) received by the node to prepare to access a stripe group corresponding to other nodes and sending a third lock request to the other nodes, enabling the other nodes to obtain a stripe lock based on the third lock request and enabling the IO of the other nodes to access the stripe group based on the stripe lock;
responding to the fact that IO of other nodes is prepared to access the stripe group and sending a fourth lock request to the nodes in the process that the IO received by the nodes accesses the stripe group, enabling the fourth lock request to wait until the IO received by the nodes accesses the stripe group and releases the lock resource of the stripe lock, and then informing the other nodes of the message of releasing the lock resource so that the other nodes perform corresponding lock resource operation and obtain the stripe lock to enable the IO of the other nodes to access the stripe group.
8. The method of claim 1, wherein partitioning the disk array into a plurality of stripe groups comprises:
the disk array is divided into a plurality of strips, and the adjacent strips are combined into a plurality of strip groups respectively.
9. A disk array access system, comprising:
the IO issuing module is configured to divide the disk array into a plurality of stripe groups, respectively attribute each stripe group to each node, and respectively issue IO to each node;
the judging module is configured to respond to the fact that a node receives IO and judge whether the IO received by the node is prepared to access the corresponding stripe group;
the local lock module is configured to respond to the IO prepared by the node to access the corresponding stripe group, and enable the IO received by the node to access the corresponding stripe group through the local lock; and
and the strip lock module is configured to respond to the IO received by the node to prepare to access the strip group corresponding to the other node, and enable the IO received by the node to access the strip group corresponding to the other node through the strip lock.
10. A computer-readable storage medium, characterized in that computer program instructions are stored which, when executed, implement the method according to any one of claims 1-8.
CN202110767427.4A 2021-07-07 2021-07-07 Disk array access method, system and storage medium Pending CN113253944A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110767427.4A CN113253944A (en) 2021-07-07 2021-07-07 Disk array access method, system and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110767427.4A CN113253944A (en) 2021-07-07 2021-07-07 Disk array access method, system and storage medium

Publications (1)

Publication Number Publication Date
CN113253944A true CN113253944A (en) 2021-08-13

Family

ID=77190978

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110767427.4A Pending CN113253944A (en) 2021-07-07 2021-07-07 Disk array access method, system and storage medium

Country Status (1)

Country Link
CN (1) CN113253944A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113885806A (en) * 2021-10-21 2022-01-04 郑州云海信息技术有限公司 Write-in control method and device for disk array and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014598A1 (en) * 2001-07-12 2003-01-16 Brown William P. Software raid methods and apparatuses including server usage based write delegation
CN105808155A (en) * 2014-12-31 2016-07-27 北京神州云科数据技术有限公司 Double-controller-based read-write locking method and device
CN107239235A (en) * 2017-06-02 2017-10-10 郑州云海信息技术有限公司 A kind of many RAID synchronous method living of many controls and system
CN108064374A (en) * 2017-08-10 2018-05-22 华为技术有限公司 A kind of data access method, device and system
CN112463757A (en) * 2020-12-17 2021-03-09 北京浪潮数据技术有限公司 Resource access method of distributed system and related device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014598A1 (en) * 2001-07-12 2003-01-16 Brown William P. Software raid methods and apparatuses including server usage based write delegation
CN105808155A (en) * 2014-12-31 2016-07-27 北京神州云科数据技术有限公司 Double-controller-based read-write locking method and device
CN107239235A (en) * 2017-06-02 2017-10-10 郑州云海信息技术有限公司 A kind of many RAID synchronous method living of many controls and system
CN108064374A (en) * 2017-08-10 2018-05-22 华为技术有限公司 A kind of data access method, device and system
CN112463757A (en) * 2020-12-17 2021-03-09 北京浪潮数据技术有限公司 Resource access method of distributed system and related device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113885806A (en) * 2021-10-21 2022-01-04 郑州云海信息技术有限公司 Write-in control method and device for disk array and storage medium

Similar Documents

Publication Publication Date Title
CN111756811B (en) Method, system, device and medium for actively pushing distributed system
US11960915B2 (en) Method and apparatus for creating virtual machine based on parameter information of a virtual network interface card
US10805363B2 (en) Method, device and system for pushing file
CN102857484B (en) A kind of method, system and device realizing single-sign-on
CN110096336B (en) Data monitoring method, device, equipment and medium
CN110659151B (en) Data verification method and device and storage medium
CN110943934A (en) Service request processing method, system, terminal and readable storage medium
CN115033722A (en) Method, system, device and medium for accelerating data query of database
CN107102889B (en) Virtual machine resource adjusting method and device
CN113489689B (en) Authentication method and device for access request, storage medium and electronic equipment
CN113253944A (en) Disk array access method, system and storage medium
CN115039082A (en) Log writing method and device, electronic equipment and storage medium
CN114706816A (en) Data migration method and device and storage medium
CN112583941B (en) Method for supporting access of multiple power terminals, unit node and power Internet of things
CN112954716B (en) Network access method, device, computer equipment and storage medium of mesh network
CN114040378B (en) Method, device, computer equipment and storage medium for arranging application
CN107305581B (en) Table connection method in distributed database system and distributed database system
CN105519055A (en) Dynamic equilibrium method and apparatus for QoS of I/O channel
CN116032498A (en) Memory area registration method, device and equipment
CN113419672A (en) Storage capacity management method, system and storage medium
CN113271229B (en) Equipment control method and device, storage equipment, safety equipment, switch, router and server
CN116339767B (en) Application resource allocation method, device, computer equipment and storage medium
CN110113177B (en) Management method and device of license of NFV system and computer readable storage medium
CN116016374A (en) Block chain-based data processing method, device, equipment and readable storage medium
CN117909045A (en) Log storage method, device and computer readable 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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210813