CN111176559B - Data writing method and device and dual-activity system - Google Patents

Data writing method and device and dual-activity system Download PDF

Info

Publication number
CN111176559B
CN111176559B CN201911272697.7A CN201911272697A CN111176559B CN 111176559 B CN111176559 B CN 111176559B CN 201911272697 A CN201911272697 A CN 201911272697A CN 111176559 B CN111176559 B CN 111176559B
Authority
CN
China
Prior art keywords
storage controller
write operation
operation command
data
writing
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
CN201911272697.7A
Other languages
Chinese (zh)
Other versions
CN111176559A (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.)
Chengdu Huawei Technology Co Ltd
Original Assignee
Chengdu Huawei 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 Chengdu Huawei Technology Co Ltd filed Critical Chengdu Huawei Technology Co Ltd
Priority to CN201911272697.7A priority Critical patent/CN111176559B/en
Publication of CN111176559A publication Critical patent/CN111176559A/en
Application granted granted Critical
Publication of CN111176559B publication Critical patent/CN111176559B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0837Cache consistency protocols with software control, e.g. non-cacheable data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2017Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where memory access, memory control or I/O control functionality is redundant
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a data writing method and device and a dual-activity system, and belongs to the technical field of data storage. The method comprises the following steps: sending a first write operation command to a second storage controller; receiving a return message sent by a second storage controller; transmitting a forward write command to the second storage controller; receiving a forwarding write command sent by the second storage controller when determining to stop writing data to the second position according to the second write operation command and starting writing data to the second position according to the forwarding write command; and writing data to the first position according to the forwarding write command. The invention solves the problem of lower data writing efficiency, improves the data writing efficiency, and is used for writing data.

Description

Data writing method and device and dual-activity system
Technical Field
The present invention relates to the field of data storage technologies, and in particular, to a data writing method and apparatus, and a dual-active system.
Background
A dual-active system is a common data storage system, and includes a first storage controller and a second storage controller, where each storage controller may have a storage array disposed thereon, and each storage array may include a plurality of storage locations. The host connected with the dual-activity system can send a write operation command containing a target storage position to the dual-activity system according to the requirement, so that a first storage controller and a second storage controller in the dual-activity system can write data to the target storage position on each storage controller according to the write operation command, and when the first storage controller fails, the host can acquire the data from the target storage position of the second storage controller.
For example, the target storage location on the first storage controller is a first location and the target storage location on the second storage controller is a second location. The host may send the write operation command to the first storage controller, and if the first storage controller is not writing data to the first location according to a write operation command at this time, the first storage controller may lock the first location and send the write operation command to the second storage controller, so that the first storage controller cannot write data to the first location according to other write operation commands at this time. In order to prevent the second storage controller from writing data to the second location according to the write operation command, the second storage controller may trigger the locking action for the second location after receiving the write operation command according to other write operation commands, so that the second storage controller cannot write data to the second location at this time according to other write operation commands. After the locking is completed, the second storage controller may send locking information indicating that the locking for the second location is successful to the first storage controller. Then, the first storage controller and the second storage controller may write data to the first location and the second location, respectively, according to the write operation command. After the second storage controller finishes writing the data to the second location, the second storage controller may send an end message to the first storage controller indicating that the writing of the data is finished. After the first storage controller receives the end message and finishes writing data into the first position, the lock on the first position can be released, an unlocking command is sent to the second storage controller, and after the second storage controller receives the unlocking command, the lock on the second position can be released. Alternatively, the lock in the second location may be a distributed lock management (English: distributed Lock Management; DLM) lock.
In the process of writing data in the dual-activity system, the first position and the second position need to be locked and unlocked, and in the process of locking and unlocking, the first storage controller and the second storage controller need to communicate for a plurality of times, so that the time consumed by data writing in the dual-activity system is long, and the data writing efficiency is low.
Disclosure of Invention
In order to solve the problem of low data writing efficiency, the invention provides a data writing method and device and a dual-activity system. The technical scheme is as follows:
in a first aspect, a data writing method is provided, which is used for a first storage controller in a dual-activity system, the dual-activity system further includes a second storage controller, and the method includes:
transmitting a first write operation command to a second storage controller, wherein the first write operation command is transmitted to the first storage controller by a host, the first write operation command is used for indicating that data is written in a target storage position, the target storage position in the first storage controller is a first position, and the target storage position in the second storage controller is a second position;
receiving a return message sent by the second storage controller, wherein the return message is used for indicating that the second storage controller is writing data to the second position according to a second write operation command when receiving the first write operation command, and generating and sending the return message to the first storage controller when determining that the priority of the second storage controller is higher than that of the first storage controller for the second storage controller;
Transmitting a forwarding write command to the second storage controller, wherein the operation indicated by the first forwarding write command is the same as the operation indicated by the write operation command;
receiving a forwarding write command sent by the second storage controller when the second storage controller determines to stop writing data to the second position according to the second write operation command and starts writing data to the second position according to the forwarding write command;
and writing data into the first position according to the forwarding writing command.
After the first storage controller sends the first write operation command to the second storage controller, the first storage controller receives a return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second position according to the second write operation command, and then the first storage controller sends a forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first position and the second position respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
With reference to the first aspect, in a first implementation manner of the first aspect, before the sending the first write operation command to the second storage controller, the method further includes:
receiving the first write operation command sent by a host;
judging whether the first storage controller is writing data to the first position according to a third writing operation command;
the sending a first write operation command to a second storage controller includes:
and if the first storage controller is not writing data to the first position according to a third write operation command, writing data to the first position according to the first write operation command, and sending the first write operation command to the second storage controller.
After the first storage controller receives a first write operation command sent by the host, if the first storage controller is writing data to the first position according to a third write operation command at the moment, the first storage controller needs to wait for the first storage controller to write data to the first position according to the third write operation command after finishing writing the data to the first position according to the first write operation command, so that the first storage controller orderly processes the write operation command received by the first storage controller according to a certain sequence.
With reference to the first implementation manner of the first aspect, in a second implementation manner of the first aspect, before the sending the forwarding write command to the second storage controller, the method further includes:
and stopping writing data to the first position according to the first write operation command.
With reference to the first implementation manner or the second implementation manner of the first aspect, in a third implementation manner of the first aspect, each storage controller is provided with a write operation recording module, where the write operation recording module is used to record: the determining whether the first storage controller is writing data to the first location according to a third write operation command includes:
judging whether the first position is recorded in a write operation recording module on the first storage controller or not;
if the first position is recorded in a write operation recording module on the first storage controller, determining that the first storage controller is writing data to the first position according to a third write operation command;
and if the first position is not recorded in the write operation recording module on the first storage controller, determining that the first storage controller is not writing data to the first position according to a third write operation command.
In a second aspect, a data writing method is provided, which is used for a second storage controller in a dual-active system, where the dual-active system further includes a first storage controller, and the method includes:
receiving a first write operation command sent by a first storage controller, wherein the first write operation command is sent to a second storage controller by the first storage controller after receiving the first write operation command sent by a host, the first write operation command is used for indicating to write data in a target storage position, and the target storage position in the second storage controller is a second position;
sending a return message to the first storage controller when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than the priority of the first storage controller, wherein the return message is used for indicating that the second storage controller is writing data to the second location according to a second write operation command when receiving the first write operation command;
receiving a forwarding write command sent by the first storage controller, wherein the operation indicated by the forwarding write command is the same as the operation indicated by the write operation command;
And when the second storage controller stops writing data to the second position according to the second writing operation command, writing data to the second position according to the forwarding writing command, and sending the forwarding writing command to the first storage controller.
Because the second storage controller receives the first write operation command sent by the first storage controller, when the second storage controller is writing data to the second position according to the second write operation command and the priority of the second storage controller is higher than that of the first storage controller, a return message is sent to the first storage controller, then a forwarding write command sent by the first storage controller is received, when the second storage controller stops writing data to the second position according to the second write operation command, the data is written to the second position according to the forwarding write command, and the forwarding write command is sent to the first storage controller. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
With reference to the second aspect, in a first implementation manner of the second aspect, the method further includes:
and when the second storage controller is writing data to the second position according to the second write operation command, the priority of the second storage controller is lower than that of the first storage controller, and the second storage controller stops writing data to the second position according to the second write operation command, writing data to the second position according to the first write operation command.
If the second storage controller receives the first write operation sent by the first storage controller, the second storage controller is writing data to the second position according to the second write operation command, and at this time, the second storage controller determines that the priority of the first storage controller is higher than that of the second storage controller, then the second storage controller can write data to the second position according to the first write operation command after writing data to the second position according to the second write operation command is completed, so that the second storage controller is ensured to orderly process the write operation command received by the second storage controller.
With reference to the second aspect or the first implementation manner of the first aspect, in a second implementation manner of the second aspect, a write operation recording module is disposed on each storage controller, where the write operation recording module is used to record: the write operation recording module is located in a storage controller where data is being written,
Recording the second position in a write operation recording module on the second storage controller when the second storage controller is writing data to the second position according to the second write operation command;
when the second storage controller is not writing data to the second position according to the second write operation command, the second position is not recorded in a write operation recording module on the second storage controller.
In a third aspect, there is provided a data writing apparatus for a first storage controller in a dual-activity system, the dual-activity system further including a second storage controller, the data writing apparatus comprising:
a first sending module, configured to send a first write operation command to a second storage controller, where the first write operation command is sent by a host to the first storage controller, the first write operation command is used to instruct writing of data in a target storage location, the target storage location in the first storage controller is a first location, and the target storage location in the second storage controller is a second location;
the first receiving module is configured to receive a return message sent by the second storage controller, where the return message is used to instruct the second storage controller to write data to the second location according to a second write operation command when the second storage controller receives the first write operation command, and generate and send the return message to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than the priority of the first storage controller;
The second sending module is used for sending a forwarding write command to the second storage controller, and the operation indicated by the first forwarding write command is the same as the operation indicated by the write operation command;
a second receiving module, configured to receive the forwarding write command sent by the second storage controller when it is determined that writing of data to the second location according to the second write operation command is stopped, and writing of data to the second location according to the forwarding write command is started;
and the writing module is used for writing data into the first position according to the forwarding writing command.
With reference to the third aspect, in a first implementation manner of the third aspect, the data writing device further includes:
the fourth receiving module is used for receiving the first write operation command sent by the host;
the judging module is used for judging whether the first storage controller is writing data into the first position according to a third writing operation command;
the first sending module is further configured to:
when the first storage controller is not writing data to the first position according to a third write operation command, writing data to the first position according to the first write operation command, and sending the first write operation command to the second storage controller.
With reference to the first implementation manner of the third aspect, in a second implementation manner of the third aspect, the data writing device further includes:
and the stopping module is used for stopping writing data to the first position according to the first writing operation command.
With reference to the first implementation manner or the second implementation manner of the third aspect, in a third implementation manner of the third aspect, each storage controller is provided with a write operation recording module, where the write operation recording module is used to record: the write operation recording module is located in a storage controller where data is being written, and the judging module is further configured to:
judging whether the first position is recorded in a write operation recording module on the first storage controller or not;
determining that the first storage controller is writing data to the first location according to a third write operation command when the first location is recorded in a write operation recording module on the first storage controller;
when the first location is not recorded in a write operation recording module on the first storage controller, determining that the first storage controller is not writing data to the first location according to a third write operation command.
In a fourth aspect, there is provided a data writing apparatus for a second memory controller in a dual-activity system, the dual-activity system further including a first memory controller, the data writing apparatus comprising:
the first receiving module is used for receiving a first write operation command sent by a first storage controller, wherein the first write operation command is sent to the second storage controller after the first write operation command sent by a host is received by the first storage controller, the first write operation command is used for indicating to write data in a target storage position, and the target storage position in the second storage controller is a second position;
a sending module, configured to send a return message to the first storage controller when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than the priority of the first storage controller, where the return message is used to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command;
the second receiving module is used for receiving a forwarding write command sent by the first storage controller, and the operation indicated by the forwarding write command is the same as the operation indicated by the write operation command;
And the first writing module is used for writing data to the second position according to the forwarding writing command and sending the forwarding writing command to the first storage controller when the second storage controller stops writing data to the second position according to the second writing command.
With reference to the fourth aspect, in a first implementation manner of the fourth aspect, the data writing device further includes:
and the second writing module is used for writing data to the second position according to the first writing operation command when the second storage controller is writing data to the second position according to the second writing operation command, the priority of the second storage controller is lower than that of the first storage controller, and the second storage controller stops writing data to the second position according to the second writing operation command.
With reference to the fourth aspect or the first implementation manner of the first aspect, in a second implementation manner of the fourth aspect, each storage controller is provided with a write operation recording module, where the write operation recording module is used to record: the write operation recording module is located in a storage controller where data is being written,
Recording the second position in a write operation recording module on the second storage controller when the second storage controller is writing data to the second position according to the second write operation command;
when the second storage controller is not writing data to the second position according to the second write operation command, the second position is not recorded in a write operation recording module on the second storage controller.
In a fifth aspect, a dual activity system is provided, the dual activity system comprising a first storage controller and a second storage controller,
the first storage controller is the data writing device described in any one of the third aspect or the third aspect;
the second storage controller is the data writing device described in any one of the fourth or fourth implementation manners.
In a sixth aspect, there is provided a data writing apparatus comprising: at least one processor, at least one network interface, a memory, and at least one communication bus, the processor configured to execute a program stored in the memory, the program comprising:
transmitting a first write operation command to a second storage controller, wherein the first write operation command is transmitted to the first storage controller by a host, the first write operation command is used for indicating that data is written in a target storage position, the target storage position in the first storage controller is a first position, and the target storage position in the second storage controller is a second position;
Receiving a return message sent by the second storage controller, wherein the return message is used for indicating that the second storage controller is writing data to the second position according to a second write operation command when receiving the first write operation command, and generating and sending the return message to the first storage controller when determining that the priority of the second storage controller is higher than that of the first storage controller for the second storage controller;
transmitting a forwarding write command to the second storage controller, wherein the operation indicated by the first forwarding write command is the same as the operation indicated by the write operation command;
receiving a forwarding write command sent by the second storage controller when the second storage controller determines to stop writing data to the second position according to the second write operation command and starts writing data to the second position according to the forwarding write command;
and writing data into the first position according to the forwarding writing command.
With reference to the sixth aspect, in a first implementation manner of the sixth aspect, before the sending the first write operation command to the second storage controller, the program further includes:
Receiving the first write operation command sent by a host;
judging whether the first storage controller is writing data to the first position according to a third writing operation command;
the sending a first write operation command to a second storage controller includes:
and if the first storage controller is not writing data to the first position according to a third write operation command, writing data to the first position according to the first write operation command, and sending the first write operation command to the second storage controller.
With reference to the first implementation manner of the sixth aspect, in a second implementation manner of the sixth aspect, before the sending the forwarding write command to the second storage controller, the program further includes:
and stopping writing data to the first position according to the first write operation command.
With reference to the first implementation manner or the second implementation manner of the sixth aspect, in a third implementation manner of the sixth aspect, each storage controller is provided with a write operation recording module, where the write operation recording module is used to record: the determining whether the first storage controller is writing data to the first location according to a third write operation command includes:
Judging whether the first position is recorded in a write operation recording module on the first storage controller or not;
if the first position is recorded in a write operation recording module on the first storage controller, determining that the first storage controller is writing data to the first position according to a third write operation command;
and if the first position is not recorded in the write operation recording module on the first storage controller, determining that the first storage controller is not writing data to the first position according to a third write operation command.
In a seventh aspect, there is provided a data writing apparatus comprising: at least one processor, at least one network interface, a memory, and at least one communication bus, the processor configured to execute a program stored in the memory, the program comprising:
receiving a first write operation command sent by a first storage controller, wherein the first write operation command is sent to a second storage controller by the first storage controller after receiving the first write operation command sent by a host, the first write operation command is used for indicating to write data in a target storage position, and the target storage position in the second storage controller is a second position;
Sending a return message to the first storage controller when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than the priority of the first storage controller, wherein the return message is used for indicating that the second storage controller is writing data to the second location according to a second write operation command when receiving the first write operation command;
receiving a forwarding write command sent by the first storage controller, wherein the operation indicated by the forwarding write command is the same as the operation indicated by the write operation command;
and when the second storage controller stops writing data to the second position according to the second writing operation command, writing data to the second position according to the forwarding writing command, and sending the forwarding writing command to the first storage controller.
With reference to the seventh aspect, in a first implementation manner of the seventh aspect, the program further includes:
and when the second storage controller is writing data to the second position according to the second write operation command, the priority of the second storage controller is lower than that of the first storage controller, and the second storage controller stops writing data to the second position according to the second write operation command, writing data to the second position according to the first write operation command.
With reference to the seventh aspect or the first implementation manner of the first aspect, in a second implementation manner of the seventh aspect, each storage controller is provided with a write operation recording module, where the write operation recording module is used to record: the write operation recording module is located in a storage controller where data is being written,
recording the second position in a write operation recording module on the second storage controller when the second storage controller is writing data to the second position according to the second write operation command;
when the second storage controller is not writing data to the second position according to the second write operation command, the second position is not recorded in a write operation recording module on the second storage controller.
In an eighth aspect, a dual activity system is provided that includes a first storage controller and a second storage controller,
the first storage controller is the data writing device of the sixth aspect or any implementation manner of the sixth aspect;
the second storage controller is the data writing device described in any one of the seventh or seventh implementation manners.
The invention provides a data writing method and device and a dual-activity system, wherein after a first storage controller sends a first writing operation command to a second storage controller, the first storage controller receives a return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to a second position according to the second writing operation command, and then the first storage controller sends a forwarding writing command to the second storage controller, so that the first storage controller and the second storage controller write data to a first position and a second position respectively according to the forwarding writing command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required for the description of the embodiments will be briefly described below, and it is apparent that the drawings in the following description are only some embodiments of the present invention, and other drawings may be obtained according to these drawings without inventive effort for a person skilled in the art.
Fig. 1 is a schematic diagram of an application scenario of a data writing method according to an embodiment of the present invention;
FIG. 2 is a flow chart of a method for writing data according to an embodiment of the present invention;
FIG. 3 is a flowchart of another method for writing data according to an embodiment of the present invention;
FIG. 4-1 is a flow chart of a method for writing data according to another embodiment of the present invention;
FIG. 4-2 is a flowchart of a method for writing data according to an embodiment of the present invention;
FIGS. 4-3 are flowcharts of another method for writing data according to embodiments of the present invention;
FIG. 5-1 is a schematic diagram of a data writing device according to an embodiment of the present invention;
FIG. 5-2 is a schematic diagram illustrating another data writing device according to an embodiment of the present invention;
FIG. 5-3 is a schematic diagram illustrating a structure of a data writing device according to another embodiment of the present invention;
FIG. 6-1 is a schematic diagram of a data writing device according to another embodiment of the present invention;
FIG. 6-2 is a schematic diagram of a data writing device according to another embodiment of the present invention;
FIG. 7 is a schematic diagram of another data writing device according to another embodiment of the present invention;
FIG. 8 is a schematic diagram of a data writing device according to another embodiment of the present invention;
fig. 9 is a schematic structural diagram of a dual-active system according to an embodiment of the present invention.
Specific embodiments of the present invention have been shown by way of the above drawings and will be described in more detail below. The drawings and the written description are not intended to limit the scope of the inventive concepts in any way, but rather to illustrate the inventive concepts to those skilled in the art by reference to the specific embodiments.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the present invention more apparent, the embodiments of the present invention will be described in further detail with reference to the accompanying drawings.
Fig. 1 is a schematic diagram of an application scenario of a data writing method according to an embodiment of the present invention, where an example of the application scenario may include a dual-active system 0 and a host 1, where the dual-active system 0 includes a first storage controller 01 and a second storage controller 02, each storage controller may be provided with a plurality of storage locations, and optionally, each storage controller may be provided with a storage array, where the storage array may include a plurality of storage blocks arranged in an array, and the plurality of storage locations are storage addresses of the plurality of storage blocks.
The host 1 may establish a connection with the first storage controller 01 and the second storage controller 02 in the dual-active system 0, and the host 1 may send a write operation command including a target storage location to the first storage controller 01 in the dual-active system 0 as needed, so that the first storage controller 01 and the second storage controller 02 in the dual-active system 0 write data to the target storage location on each storage controller according to the write operation command, and when the first storage controller 01 fails, the host 1 can acquire data from the target storage location of the second storage controller 02.
By way of example, the target storage location on the first storage controller 01 is a first location and the target storage location on the second storage controller 02 is a second location. The host 1 may send the write operation command to the first storage controller 01, and if the first storage controller 01 is not writing data to the first location according to a certain write operation command at this time, the first storage controller 01 may lock the first location and send the write operation command to the second storage controller 02, so that the first storage controller cannot write data to the first location according to other write operation commands at this time. In order to prevent the second storage controller 02 from writing data to the second location according to the write operation command, after the second storage controller 02 receives the write operation command, the second storage controller 02 may trigger the locking action for the second location, so that the second storage controller 02 cannot write data to the second location according to the other write operation command at this time. After writing the data to the second location is completed, the second storage controller 02 may send an end message to the first storage controller 01 indicating that the writing of the data is completed. After the first storage controller 01 receives the end message and finishes writing data into the first position, the lock on the first position can be released, and an unlocking command is sent to the second storage controller 02, and after receiving the unlocking command, the second storage controller 02 can release the lock on the second position. Alternatively, the locks in the first and second positions may be DLM locks.
Since the first location and the second location need to be locked and unlocked in the process of writing data in the dual-active system 0, and the first storage controller 01 and the second storage controller 02 need to communicate for many times in the process of locking and unlocking, the time consumed for writing data in the dual-active system 0 is long, and the efficiency of writing data is low.
As shown in fig. 2, an embodiment of the present invention provides a data writing method, which may be used for a first storage controller 01 in a dual-active system 0 as shown in fig. 1, where the dual-active system 0 may further include a second storage controller 02, and the data writing method may include:
step 201, a first write operation command is sent to a second storage controller, where the first write operation command is sent to the first storage controller by a host, the first write operation command is used to instruct writing of data in a target storage location, the target storage location in the first storage controller is a first location, and the target storage location in the second storage controller is a second location.
Step 202, receiving a return message sent by the second storage controller, where the return message is used to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command, and when the return message determines that the priority of the second storage controller is higher than the priority of the first storage controller for the second storage controller, the return message is generated and sent to the first storage controller.
Step 203, a forwarding write command is sent to the second storage controller, and the operation indicated by the first forwarding write command is the same as the operation indicated by the write operation command.
Step 204, receiving a forward write command sent by the second storage controller when it is determined to stop writing data to the second location according to the second write operation command and to start writing data to the second location according to the forward write command.
Step 205, writing data to the first location according to the forward write command.
In summary, in the data writing method provided by the embodiment of the present invention, after the first storage controller sends the first write operation command to the second storage controller, the first storage controller receives the return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second location according to the second write operation command, and then the first storage controller sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first location and the second location respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
Optionally, before step 201, the data writing method may further include:
receiving a first write operation command sent by a host;
judging whether the first storage controller is writing data to the first position according to the third writing operation command;
sending a first write operation command to a second storage controller, comprising:
if the first storage controller is not writing data to the first position according to the third write operation command, writing data to the first position according to the first write operation command, and sending the first write operation command to the second storage controller.
Optionally, before step 203, the data writing method may further include:
and stopping writing the data to the first position according to the first write operation command.
Optionally, each storage controller is provided with a write operation recording module, and the write operation recording module is used for recording: the determining whether the first storage controller is writing data to the first location according to the third write operation command may include:
judging whether a first position is recorded in a write operation recording module on the first storage controller;
if the first position is recorded in the write operation recording module on the first storage controller, determining that the first storage controller is writing data to the first position according to a third write operation command;
If the first position is not recorded in the write operation recording module on the first storage controller, determining that the first storage controller is not writing data to the first position according to the third write operation command.
In summary, in the data writing method provided by the embodiment of the present invention, after the first storage controller sends the first write operation command to the second storage controller, the first storage controller receives the return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second location according to the second write operation command, and then the first storage controller sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first location and the second location respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
As shown in fig. 3, an embodiment of the present invention provides another data writing method, which may be used for the second memory controller 02 in the dual-active system 0 shown in fig. 1, where the dual-active system 0 may further include the first memory controller 01, and the data writing method may include:
step 301, receiving a first write operation command sent by a first storage controller, where the first write operation command is sent to a second storage controller by the first storage controller after receiving the first write operation command sent by the host, where the first write operation command is used to indicate that data is written in a target storage location, and the target storage location in the second storage controller is a second location.
Step 302, when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than the priority of the first storage controller, sending a return message to the first storage controller, where the return message is used to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command.
Step 303, receiving a forwarding write command sent by the first storage controller, where an operation indicated by the forwarding write command is the same as an operation indicated by the write operation command.
And step 304, when the second storage controller stops writing data to the second position according to the second write operation command, writing data to the second position according to the forwarding write command, and sending the forwarding write command to the first storage controller.
In summary, in the data writing method provided by the embodiment of the present invention, the second storage controller receives the first write operation command sent by the first storage controller, when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than that of the first storage controller, sends a return message to the first storage controller, then receives the forward write command sent by the first storage controller, and when the second storage controller stops writing data to the second location according to the second write operation command, writes data to the second location according to the forward write command and sends the forward write command to the first storage controller. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
Optionally, the data writing method may further include:
when the second storage controller is writing data to the second location according to the second write operation command, the priority of the second storage controller is lower than that of the first storage controller, and the second storage controller stops writing data to the second location according to the second write operation command, writing data to the second location according to the first write operation command.
Optionally, each storage controller is provided with a write operation recording module, and the write operation recording module is used for recording: the storage location in the storage controller where the write operation recording module is located where data is being written,
recording the second position in a write operation recording module on the second storage controller when the second storage controller is writing data to the second position according to the second write operation command;
when the second storage controller is not writing data to the second position according to the second write operation command, the second position is not recorded in a write operation recording module on the second storage controller.
In summary, in the data writing method provided by the embodiment of the present invention, the second storage controller receives the first write operation command sent by the first storage controller, when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than that of the first storage controller, sends a return message to the first storage controller, then receives the forward write command sent by the first storage controller, and when the second storage controller stops writing data to the second location according to the second write operation command, writes data to the second location according to the forward write command and sends the forward write command to the first storage controller. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
If the second storage controller receives the first write operation sent by the first storage controller, the second storage controller is writing data to the second position according to the second write operation command, and at this time, the second storage controller determines that the priority of the first storage controller is higher than that of the second storage controller, then the second storage controller can write data to the second position according to the first write operation command after writing data to the second position according to the second write operation command is completed, so that the second storage controller is ensured to orderly process the write operation command received by the second storage controller.
As shown in fig. 4-1, an embodiment of the present invention provides a data writing method, which may be used in the dual-active system 0 shown in fig. 1, where the dual-active system 0 may include a first memory controller 01 and a second memory controller 02, and the data writing method may include:
step 401, a first storage controller receives a first write operation command sent by a host. Step 402 is performed.
For example, the host may be host 1 in fig. 1, and when the host needs to write data into the dual-active system, the host may generate a first write operation command including the target storage location, that is, the first write operation command is used to instruct to write data in the target storage location. Specifically, the target storage location may store data, and the first write operation command generated by the host may be to modify the data in the target storage location; the target storage location may or may not have data stored thereon, and the first write command generated by the host may be to store data onto the target storage location. After generating the first write operation command, the host may send the first write operation command to the dual-active system.
For example, the first storage controller and the second storage controller may each be provided with a plurality of storage locations, where the target storage location in the first storage controller is a first location, and the target storage location in the second storage controller is a second location. Optionally, each of the first storage controller and the second storage controller may be provided with a storage array, where each storage array may include a plurality of storage blocks arranged in an array, and each storage block corresponds to one storage address, that is, one storage location.
Step 402, the first storage controller determines whether the first storage controller is writing data to the first location according to the third write operation command. If the first storage controller is writing data to the first location according to the third write operation command, then step 403 is performed; if the first storage controller is not writing data to the first location according to the third write operation command, step 404 is performed.
Optionally, each storage controller may be provided with a write operation recording module, where the write operation recording module may be used to record: the write operation records the storage location in the storage controller where the module is located where data is being written. Further, the write operation recording module may also record a write operation command corresponding to a storage location where data is being written, and by way of example, the write operation recording module may include an input or output (english: in/Out; abbreviated: I/O) pool, where the I/O pool may be used to record a write operation command corresponding to a storage location where data is being written. When judging whether the first storage controller is writing data to the first position according to the third write operation command, the first storage controller can inquire the position recorded in the write operation recording module on the first storage controller, judge whether the first position is recorded in the write operation recording module on the first storage controller, and if the first position is recorded in the write operation recording module on the first storage controller, the first storage controller can determine that the first storage controller is writing data to the first position according to the third write operation command. If the first position is not recorded in the write operation recording module on the first storage controller, determining that the first storage controller is not writing data to the first position according to the third write operation command.
It should be noted that, if the first storage controller is writing data to the first location according to the third write operation command, the first storage controller may determine that the first storage controller receives the third write operation command earlier than the first write operation command. The operation indicated by the third write operation command may be the same as the operation indicated by the first write operation command, or the operation indicated by the third write operation command may be different from the operation indicated by the first write operation command, which is not limited in the embodiment of the present invention.
Step 403, the first storage controller determines whether the first storage controller stops writing data to the first location according to the third write operation command. If the first storage controller stops writing data to the first location according to the third write operation command, then step 404 is performed; if the first storage controller does not stop writing data to the first location according to the third write operation command, then step 403 is performed.
Specifically, the first storage controller may determine whether to stop writing data to the first location according to the third write operation command by querying, in real time, whether the first location is recorded in the write operation recording module on the first storage controller. If the first storage controller does not stop writing data to the first location according to the third write operation command, then step 403 is repeatedly performed until it is detected that the first storage controller stops writing data to the first location according to the third write operation command.
After writing the data to the first location according to the third write operation command, the first memory controller may stop writing the data to the first location according to the third write operation command. The first storage controller may also stop writing data to the first location in accordance with the third write operation command after receiving the return message sent by the second storage controller.
Step 404, the first storage controller writes data to the first location according to the first write operation command. Step 405 is performed.
If the first storage controller is not writing data to the first location according to the third write operation command, or the first storage controller stops writing data to the first location according to the third write operation command, then the first storage controller may write data to the first location according to the first write operation command. When the first storage controller writes data to the first position according to the first write operation command, the first position and the first write operation command corresponding to the first position may be recorded on the write operation recording module on the first storage controller.
After the first storage controller receives a first write operation command sent by the host, if the first storage controller is writing data to the first position according to a third write operation command at the moment, the first storage controller needs to wait for the first storage controller to write data to the first position according to the third write operation command after finishing writing the data to the first position according to the first write operation command, so that the first storage controller orderly processes the write operation command received by the first storage controller according to a certain sequence.
Step 405, the first storage controller sends a first write operation command to the second storage controller. Step 406 is performed.
The first storage controller may send the first write operation command to the second storage controller while the first storage controller writes data to the first location in accordance with the first write operation command.
Step 406, the second storage controller determines whether the second storage controller is writing data to the second location according to the second write operation command. If the second storage controller is writing data to the second location according to the second write operation command, then step 407 is performed; if the second storage controller is not writing data to the second location according to the second write operation command, then step 408 is performed.
After receiving the first write operation command sent by the first storage controller, the second storage controller may determine whether the second storage controller is writing data to the second location according to the second write operation command.
When the second storage controller determines whether the second storage controller is writing data to the second location according to the second write operation command, the second storage controller may query the location recorded in the write operation recording module on the second storage controller, determine whether the second location is recorded in the write operation recording module on the second storage controller, and if the second location is recorded in the write operation recording module on the second storage controller, determine that the second storage controller is writing data to the second location according to the second write operation command. If the second position is not recorded in the write operation recording module on the second storage controller, determining that the second storage controller is not writing data to the second position according to the second write operation command.
It should be noted that, if the second storage controller is writing data to the first location according to the second write operation command, the first storage controller may determine that the second storage controller receives the second write operation command earlier than the first write operation command. The operation indicated by the second write operation command may be the same as the operation indicated by the first write operation command, or the operation indicated by the second write operation command may be different from the operation indicated by the first write operation command, which is not limited in the embodiment of the present invention.
Step 407, the second storage controller controls the first storage controller and the second storage controller according to the priorities of the first storage controller and the second storage controller, and writes data to the first location and the second location according to the first write operation command, respectively.
Alternatively, the priorities of the first storage controller and the second storage controller may be preset, and the first storage controller and the second storage controller may each have a priority list stored thereon, where the priority list is used to record the priorities of the first storage controller and the second storage controller. If the priority list is shown in table 1, the first storage controller has a higher priority than the second storage controller, and if the priority list is shown in table 2, the second storage controller has a higher priority than the first storage controller. The second storage controller may query a priority list to determine a priority order of the first storage controller and the second storage controller.
TABLE 1
Memory controller Priority level
First memory controller High height
Second memory controller Low and low
TABLE 2
Memory controller Priority level
First memory controller Low and low
Second memory controller High height
In one aspect, after querying the priority list, if the second storage controller has a higher priority than the first storage controller, as shown in fig. 4-2, step 407 may include:
step 4071a, the second storage controller sends a return message to the first storage controller. Step 4072a is performed.
When the second storage controller receives the first write operation command sent by the first storage controller and determines that the second storage controller is writing data to the second location according to the second write operation, the second storage controller may generate a command for instructing the second storage controller to write data to the second location according to the second write operation command when receiving the first write operation command sent by the first storage controller, and send the generated return message to the first storage controller.
Step 4072a, the first storage controller stops writing data to the first location according to the first write operation command. Step 4073a is performed.
The first storage controller may stop writing data to the first location according to the first write operation command after receiving a return message sent by the second storage controller indicating that the second storage controller is writing data to the second location according to the second write operation command when receiving the first write operation command. When the first storage controller stops writing data to the first position according to the first write operation command, the write operation recording module on the first storage controller can delete the first position recorded in the write operation recording module and the first write operation command corresponding to the first position.
Step 4073a, the first storage controller sends a forward write command to the second storage controller. Step 4074a is performed.
The first storage controller may generate a forwarding write command according to the first write command, and send the forwarding write command to the second storage controller, where an operation indicated by the forwarding write command is the same as an operation indicated by the first write command, and specifically, when generating the forwarding write command according to the first write command, only the format of the first write command may be modified, and the content of the first write command is not modified.
Optionally, after the first storage controller generates the forwarding write command according to the first write command, the first write command may be deleted. Specifically, the first storage controller may generate deletion information for indicating to delete the first write operation command, delete the first write operation command in the first storage controller according to the deletion information, and send the indication information to the second storage controller, so that the second storage controller deletes the first write operation command on the second storage controller. Optionally, the first storage controller may delete the first location recorded in the I/O pool on the first storage controller and the first write operation command corresponding to the first location, and the second storage controller may delete the second location recorded in the I/O pool on the second storage controller and the first write operation command corresponding to the second location.
Step 4074a, the second storage controller determines whether the second storage controller stops writing data to the second location according to the second write operation command. If the second storage controller stops writing data to the second location according to the second write operation command, then step 4075a is performed; if the second storage controller does not stop writing data to the second location according to the second write operation command, then step 4074a is performed.
Specifically, the second storage controller may determine whether to stop writing data to the second location according to the second write operation command by querying, in real time, whether the second location is recorded in the write operation recording module on the second storage controller. If the second position is recorded in the write operation recording module on the second storage controller, determining that the second storage controller is writing data to the second position according to a third write operation command; if the second position is not recorded in the write operation recording module on the second storage controller, determining that the second storage controller is not writing data to the second position according to the third write operation command.
If the second storage controller does not stop writing data to the second location according to the second write operation command, then step 4074a is repeated until it is detected that the second storage controller stops writing data to the second location according to the second write operation command. Note that, the second memory controller may stop writing data to the second location according to the second write operation command after writing data to the second location according to the second write operation command is completed. When the second storage controller stops writing data to the second position according to the second write operation command, the write operation recording module on the second storage controller can delete the second position recorded in the write operation recording module and the second write operation command corresponding to the second position.
Step 4075a, the second storage controller writes the data to the second location according to the forward write command. Step 4076a is performed.
If the second storage controller is not writing data to the second location according to the second write operation command, then the second storage controller may write data to the second location according to the forward write command.
Step 4076a, the second storage controller sends a forward write command to the first storage controller. Step 4077a is performed.
The second storage controller may send the forward write command to the first storage controller when the second storage controller may write data to the second location according to the forward write command.
Step 4077a, the first storage controller writes the data to the first location according to the forward write command.
Since the first storage controller has already written data to the first location according to the first write operation command in step 404 and stops writing data to the first location according to the first write operation command in step 4072a, if the forward write command is used to indicate to store data to the target storage location in step 4077a, the first storage controller may detect whether data is stored in the first location on the first storage controller after receiving the forward write command, and determine whether the data stored in the first location is the same as the data to be stored indicated by the forward write command, and if the data stored in the first location is the same as the data to be stored indicated by the forward write command, determine that the first storage controller finishes writing data to the first location according to the forward write command and stops writing data to the first location according to the forward write command. If the data stored in the first position is the same as a part of the data to be stored indicated by the forwarding write command, the data can be continuously written into the first position according to the forwarding write command until the data stored in the first position is completely the same as the data to be stored indicated by the forwarding write command, and then the data writing into the first position according to the forwarding write command is stopped.
Since the first storage controller has already written data to the first location according to the first write operation command in step 404 and stopped writing data to the first location according to the first write operation command in step 4072a, if the forward write command is used to instruct to modify data on the target storage location in step 4077a, the first storage controller may determine whether the data stored on the first location is the same as the data obtained by modifying the data on the first location according to the forward write command after receiving the forward write command, and if the data stored on the first location is the same as the data obtained by modifying the data on the first location according to the forward write command, determine that the first storage controller finishes writing data to the first location according to the forward write command and stops writing data to the first location according to the forward write command. If the data stored in the first location is the same as a part of the data obtained by modifying the data in the first location according to the forwarding write command, the data can be continuously written in the first location according to the forwarding write command until the data stored in the first location is identical to the data obtained by modifying the data in the first location according to the forwarding write command, and then the writing of the data in the first location according to the forwarding write command is stopped.
Optionally, after receiving the forwarding write command, the first storage controller may directly write data to the first location according to the forwarding write command, without detecting whether the data stored in the first location is the same as the data to be stored indicated by the forwarding write command (or the data obtained by modifying the data in the first location according to the forwarding write command). When writing data to the first location according to the forward write command, if the data W indicated by the forward write command has already been written to the first location, the data W indicated by the forward write command written in step 4077a may be overlaid on the data W already written to the first location when writing the data W indicated by the forward write command in step 4077 a.
It should be noted that, in step 4075a, after the second storage controller finishes writing data to the second location according to the forwarding write command, the write operation recording module on the second storage controller may delete the second location recorded in the write operation recording module and the forwarding write command corresponding to the second location, generate a finishing message for indicating that the second storage controller finishes writing data to the second location according to the forwarding write command, and send the finishing message to the first storage controller. After the first storage controller receives the finishing message sent by the second storage controller, the first storage controller can determine whether the first storage controller finishes writing data into the first position according to the forwarding write command, after determining whether the first storage controller finishes writing data into the first position according to the forwarding write command, a write operation recording module on the first storage controller can delete the first position recorded in the write operation recording module and the forwarding write command corresponding to the first position, generate a notification message for indicating that the dual-activity system finishes writing data into the target storage position according to the first write operation command, and then send the notification message to the host.
On the other hand, if the second storage controller has a lower priority than the first storage controller, as shown in fig. 4-3, step 407 may include:
step 4071b, the second storage controller determines whether the second storage controller stops writing data to the second location according to the second write operation command. If the second storage controller stops writing data to the second location according to the second write operation command, then step 4072b is performed; if the second storage controller does not stop writing data to the second location according to the second write operation command, then step 4071b is performed.
Specifically, the second storage controller may determine whether to stop writing data to the second location according to the second write operation command by querying, in real time, whether the second location is recorded in the write operation recording module on the second storage controller. If the second position is recorded in the write operation recording module on the second storage controller, determining that the second storage controller is writing data to the second position according to a third write operation command; if the second position is not recorded in the write operation recording module on the second storage controller, determining that the second storage controller is not writing data to the second position according to the third write operation command.
If the second storage controller does not stop writing data to the second location according to the second write operation command, then step 4074a is repeated until it is detected that the second storage controller stops writing data to the second location according to the second write operation command. After writing the data to the second location according to the second write operation command, the second storage controller may stop writing the data to the second location according to the second write operation command, and the write operation recording module on the second storage controller may delete the second location recorded in the write operation recording module and the second write operation command corresponding to the second location.
Step 4072b, the second storage controller writes the data to the second location according to the first write operation command.
If the second storage controller is not writing data to the second location according to the second write operation command, then the second storage controller may write data to the second location according to the forward write command and send the forward write command to the first storage controller. If the second storage controller receives the first write operation sent by the first storage controller, the second storage controller is writing data to the second position according to the second write operation command, and at this time, the second storage controller determines that the priority of the first storage controller is higher than that of the second storage controller, then the second storage controller can write data to the second position according to the first write operation command after writing data to the second position according to the second write operation command is completed, so that the second storage controller is ensured to orderly process the write operation command received by the second storage controller.
After writing data to the second location according to the first write operation command, the write operation recording module on the second storage controller may delete the second location recorded in the write operation recording module and the first write operation command corresponding to the second location, generate a finalization message for indicating that the second storage controller finishes writing data to the second location according to the first write operation command, and send the finalization message to the first storage controller. After the first storage controller receives the finishing message sent by the second storage controller, the first storage controller can determine whether the first storage controller finishes writing data to the first position according to the first writing operation command, after determining whether the first storage controller finishes writing data to the first position according to the first writing operation command, a writing operation recording module on the first storage controller can delete the first position recorded in the writing operation recording module and the first writing operation command corresponding to the first position, and generates a notification message for indicating that the dual-activity system finishes writing data to the target storage position according to the first writing operation command, and then sends the notification message to the host.
Step 408, the second storage controller writes data to the second location according to the first write operation command.
If the second storage controller is not writing data to the second location according to the second write operation command, then the second storage controller may write data to the second location according to the forward write command and send the forward write command to the first storage controller.
After writing data to the second location according to the first write operation command, the write operation recording module on the second storage controller may delete the second location recorded in the write operation recording module and the first write operation command corresponding to the second location, generate a finalization message for indicating that the second storage controller finishes writing data to the second location according to the first write operation command, and send the finalization message to the first storage controller. After the first storage controller receives the finishing message sent by the second storage controller, the first storage controller can determine whether the first storage controller finishes writing data to the first position according to the first writing operation command, after determining whether the first storage controller finishes writing data to the first position according to the first writing operation command, a writing operation recording module on the first storage controller can delete the first position recorded in the writing operation recording module and the first writing operation command corresponding to the first position, and generates a notification message for indicating that the dual-activity system finishes writing data to the target storage position according to the first writing operation command, and then sends the notification message to the host.
Optionally, the write operation recording module in the embodiment of the present invention may further include a copy PAIR (english: PAIR) and an I/O pool, where the I/O pool may be used to record a write operation command corresponding to a storage location where data is being written, the copy PAIR may query contents recorded in the I/O pool, and the copy PAIR may further manage contents recorded in the I/O pool, that is, delete a certain storage location recorded in the I/O pool and a write operation command corresponding to the storage location, or control the I/O to record a certain storage location and a write operation command corresponding to the storage location. In the embodiment of the present invention, the storage address of each storage block in the storage array set on each storage controller may be a logical unit number (english: logical Unit Number; abbreviated as LUN), and the storage location recorded in the I/O pool may also be a LUN of a certain storage block.
By way of example, the priority of the first storage controller and the priority of the second storage controller described in the embodiments of the present invention may be characterized by the following two methods, for example: the priority of the first storage controller and the priority of the second storage controller, or the priority of the storage position on the first storage controller and the priority of the storage position on the second storage controller, the storage position on the storage controller may be a position corresponding to a logical unit number (English: logical Unit Number; abbreviated: LUN) in the storage array. It should be noted that, the priority of the first storage controller and the priority of the second storage controller may also be characterized in other manners, which is not limited in the embodiment of the present invention.
In summary, in the data writing method provided by the embodiment of the present invention, after the first storage controller sends the first write operation command to the second storage controller, the first storage controller receives the return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second location according to the second write operation command, and then the first storage controller sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first location and the second location respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
If the second storage controller receives the first write operation sent by the first storage controller, the second storage controller is writing data to the second position according to the second write operation command, and at this time, the second storage controller determines that the priority of the first storage controller is higher than that of the second storage controller, then the second storage controller can write data to the second position according to the first write operation command after writing data to the second position according to the second write operation command is completed, so that the second storage controller is ensured to orderly process the write operation command received by the second storage controller.
As shown in fig. 5-1, an embodiment of the present invention provides a data writing device 50, where the data writing device 50 may be used in a first storage controller 01 of a dual-active system 0 shown in fig. 1, and the dual-active system 0 may further include a second storage controller 02, and the data writing device 50 may include:
the first sending module 501 is configured to send a first write operation command to the second storage controller, where the first write operation command is sent to the first storage controller by the host, and the first write operation command is used to instruct writing of data in a target storage location, where the target storage location in the first storage controller is a first location, and where the target storage location in the second storage controller is a second location.
The first receiving module 502 is configured to receive a return message sent by the second storage controller, where the return message is configured to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command, and generate and send the return message to the first storage controller when the return message determines that the priority of the second storage controller is higher than the priority of the first storage controller for the second storage controller.
The second sending module 503 is configured to send a forwarding write command to the second storage controller, where an operation indicated by the first forwarding write command is the same as an operation indicated by the write operation command.
The second receiving module 504 is configured to receive a forward write command sent by the second storage controller when it is determined to stop writing data to the second location according to the second write operation command, and to start writing data to the second location according to the forward write command.
The writing module 505 is configured to write data to the first location according to the forwarding write command.
In summary, in the data writing device provided by the embodiment of the present invention, after the first sending module sends the first write operation command to the second storage controller, the first receiving module receives the return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second location according to the second write operation command, and then the second sending module sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first location and the second location respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
As shown in fig. 5-2, another data writing device 50 is provided in an embodiment of the present invention, where the data writing device 50 may be used in a first storage controller 01 of a dual active system 0 as shown in fig. 1, and the dual active system 0 may further include a second storage controller 02, and the data writing device 50 may include:
the first sending module 501 is configured to send a first write operation command to the second storage controller, where the first write operation command is sent to the first storage controller by the host, and the first write operation command is used to instruct writing of data in a target storage location, where the target storage location in the first storage controller is a first location, and where the target storage location in the second storage controller is a second location.
The first receiving module 502 is configured to receive a return message sent by the second storage controller, where the return message is configured to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command, and generate and send the return message to the first storage controller when the return message determines that the priority of the second storage controller is higher than the priority of the first storage controller for the second storage controller.
The second sending module 503 is configured to send a forwarding write command to the second storage controller, where an operation indicated by the first forwarding write command is the same as an operation indicated by the write operation command.
The second receiving module 504 is configured to receive a forward write command sent by the second storage controller when it is determined to stop writing data to the second location according to the second write operation command, and to start writing data to the second location according to the forward write command.
The writing module 505 is configured to write data to the first location according to the forwarding write command.
A fourth receiving module 506, configured to receive the first write operation command sent by the host.
A determining module 507 is configured to determine whether the first storage controller is writing data to the first location according to the third write operation command.
In summary, in the data writing device provided by the embodiment of the present invention, after the first sending module sends the first write operation command to the second storage controller, the first receiving module receives the return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second location according to the second write operation command, and then the second sending module sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first location and the second location respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
The first transmitting module 501 may also be configured to:
when the first memory controller is not writing data to the first location according to the third write operation command, writing data to the first location according to the first write operation command, and sending the first write operation command to the second memory controller.
As shown in fig. 5-3, an embodiment of the present invention provides a further data writing device 50, where the data writing device 50 may be used in a first memory controller 01 of a dual active system 0 as shown in fig. 1, and the dual active system 0 may further include a second memory controller 02, and the data writing device 50 may include:
the first sending module 501 is configured to send a first write operation command to the second storage controller, where the first write operation command is sent to the first storage controller by the host, and the first write operation command is used to instruct writing of data in a target storage location, where the target storage location in the first storage controller is a first location, and where the target storage location in the second storage controller is a second location.
The first receiving module 502 is configured to receive a return message sent by the second storage controller, where the return message is configured to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command, and generate and send the return message to the first storage controller when the return message determines that the priority of the second storage controller is higher than the priority of the first storage controller for the second storage controller.
The second sending module 503 is configured to send a forwarding write command to the second storage controller, where an operation indicated by the first forwarding write command is the same as an operation indicated by the write operation command.
The second receiving module 504 is configured to receive a forward write command sent by the second storage controller when it is determined to stop writing data to the second location according to the second write operation command, and to start writing data to the second location according to the forward write command.
The writing module 505 is configured to write data to the first location according to the forwarding write command.
A fourth receiving module 506, configured to receive the first write operation command sent by the host.
A determining module 507 is configured to determine whether the first storage controller is writing data to the first location according to the third write operation command.
A stop module 508 for stopping writing data to the first location according to the first write operation command.
In summary, in the data writing device provided by the embodiment of the present invention, after the first sending module sends the first write operation command to the second storage controller, the first receiving module receives the return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second location according to the second write operation command, and then the second sending module sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first location and the second location respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
Optionally, each storage controller is provided with a write operation recording module, and the write operation recording module is used for recording: the determining module 507 may be further configured to determine a storage location of the data being written in the storage controller in which the write operation recording module is located:
judging whether a first position is recorded in a write operation recording module on the first storage controller;
when the first position is recorded in a write operation recording module on the first storage controller, determining that the first storage controller is writing data to the first position according to a third write operation command;
when the first location is not recorded in the write operation recording module on the first storage controller, it is determined that the first storage controller is not writing data to the first location according to the third write operation command.
As shown in fig. 6-1, an embodiment of the present invention provides a further data writing device 60, where the data writing device 60 may be used in a second memory controller 02 of the dual active system 0 shown in fig. 1, and the dual active system 0 may further include a first memory controller 01, and the data writing device 60 may include:
the first receiving module 601 is configured to receive a first write operation command sent by a first storage controller, where the first write operation command is sent to a second storage controller after the first write operation command sent by a host is received, the first write operation command is used to indicate writing of data in a target storage location, and the target storage location in the second storage controller is a second location.
And a sending module 602, configured to send a return message to the first storage controller when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than the priority of the first storage controller, where the return message is used to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command.
The second receiving module 603 is configured to receive a forwarding write command sent by the first storage controller, where an operation indicated by the forwarding write command is the same as an operation indicated by the write operation command.
The first writing module 604 is configured to, when the second storage controller stops writing data to the second location according to the second write operation command, write data to the second location according to the forward write command, and send the forward write command to the first storage controller.
In summary, in the data writing device provided by the embodiment of the invention, the first receiving module receives the first write operation command sent by the first storage controller, when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than that of the first storage controller, the sending module sends a return message to the first storage controller, then the second receiving module receives the forward write command sent by the first storage controller, and when the second storage controller stops writing data to the second location according to the second write operation command, the first writing module writes data to the second location according to the forward write command and sends the forward write command to the first storage controller. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
As shown in fig. 6-2, another embodiment of the present invention provides a data writing device 60, where the data writing device 60 may be used in a second memory controller 02 of a dual-active system 0 as shown in fig. 1, and the dual-active system 0 may further include a first memory controller 01, and the data writing device 60 may include:
the first receiving module 601 is configured to receive a first write operation command sent by a first storage controller, where the first write operation command is sent to a second storage controller after the first write operation command sent by a host is received, the first write operation command is used to indicate writing of data in a target storage location, and the target storage location in the second storage controller is a second location.
And a sending module 602, configured to send a return message to the first storage controller when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than the priority of the first storage controller, where the return message is used to instruct the second storage controller to write data to the second location according to the second write operation command when the second storage controller receives the first write operation command.
The second receiving module 603 is configured to receive a forwarding write command sent by the first storage controller, where an operation indicated by the forwarding write command is the same as an operation indicated by the write operation command.
The first writing module 604 is configured to, when the second storage controller stops writing data to the second location according to the second write operation command, write data to the second location according to the forward write command, and send the forward write command to the first storage controller.
The second writing module 605 is configured to write data to the second location according to the first writing command when the second storage controller is writing data to the second location according to the second writing command, the priority of the second storage controller is lower than the priority of the first storage controller, and the second storage controller stops writing data to the second location according to the second writing command.
In summary, in the data writing device provided by the embodiment of the invention, the first receiving module receives the first write operation command sent by the first storage controller, when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than that of the first storage controller, the sending module sends a return message to the first storage controller, then the second receiving module receives the forward write command sent by the first storage controller, and when the second storage controller stops writing data to the second location according to the second write operation command, the first writing module writes data to the second location according to the forward write command and sends the forward write command to the first storage controller. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
If the second storage controller receives the first write operation sent by the first storage controller, the second storage controller is writing data to the second position according to the second write operation command, and the priority of the first storage controller is higher than that of the second storage controller, the second write module can write data to the second position according to the first write operation command after writing data to the second position according to the second write operation command is completed, so that the second storage controller is ensured to orderly process the write operation command received by the second storage controller.
Optionally, each storage controller is provided with a write operation recording module, and the write operation recording module is used for recording: the storage location in the storage controller where the write operation recording module is located where data is being written,
when the second storage controller writes data to the second position according to the second write operation command, the second position is recorded in a write operation recording module on the second storage controller;
when the second storage controller is not writing data to the second location according to the second write operation command, the second location is not recorded in the write operation recording module on the second storage controller.
In summary, in the data writing device provided by the embodiment of the invention, the first receiving module receives the first write operation command sent by the first storage controller, when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than that of the first storage controller, the sending module sends a return message to the first storage controller, then the second receiving module receives the forward write command sent by the first storage controller, and when the second storage controller stops writing data to the second location according to the second write operation command, the first writing module writes data to the second location according to the forward write command and sends the forward write command to the first storage controller. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
As shown in fig. 7, another embodiment of the present invention provides another data writing device that may include at least one processor 701 (e.g., a CPU), at least one network interface 702 or other communication interface, a memory 703, and at least one communication bus 704 for enabling connected communications between the devices. The processor 701 is configured to execute executable modules, such as computer programs, stored in the memory 703. The memory 703 may comprise high speed random access memory (RAM: random Access Memory) and may also include non-volatile memory (non-volatile memory), such as at least one disk memory. The communication connection between the data writing means and at least one other network element is achieved via at least one network interface 702 (which may be wired or wireless), which may use the internet, a wide area network, a local network, a metropolitan area network, etc.
In some embodiments, the memory 703 stores a program 7031, the program 7031 being executable by the processor 701, the program 7031 comprising:
transmitting a first write operation command to a second storage controller, wherein the first write operation command is transmitted to the first storage controller by a host, the first write operation command is used for indicating that data is written in a target storage position, the target storage position in the first storage controller is a first position, and the target storage position in the second storage controller is a second position;
Receiving a return message sent by the second storage controller, wherein the return message is used for indicating that the second storage controller is writing data to the second position according to a second write operation command when receiving the first write operation command, and generating and sending the return message to the first storage controller when determining that the priority of the second storage controller is higher than that of the first storage controller for the second storage controller;
transmitting a forwarding write command to the second storage controller, wherein the operation indicated by the first forwarding write command is the same as the operation indicated by the write operation command;
receiving a forwarding write command sent by the second storage controller when the second storage controller determines to stop writing data to the second position according to the second write operation command and starts writing data to the second position according to the forwarding write command;
and writing data into the first position according to the forwarding writing command.
Optionally, before the sending the first write operation command to the second storage controller, the program 7031 may further include:
receiving the first write operation command sent by a host;
Judging whether the first storage controller is writing data to the first position according to a third writing operation command;
the sending a first write operation command to a second storage controller includes:
and if the first storage controller is not writing data to the first position according to a third write operation command, writing data to the first position according to the first write operation command, and sending the first write operation command to the second storage controller.
Optionally, before the forwarding write command is sent to the second storage controller, the method further includes:
and stopping writing data to the first position according to the first write operation command.
Optionally, each storage controller is provided with a write operation recording module, where the write operation recording module is used for recording: the determining whether the first storage controller is writing data to the first location according to a third write operation command includes:
judging whether the first position is recorded in a write operation recording module on the first storage controller or not;
If the first position is recorded in a write operation recording module on the first storage controller, determining that the first storage controller is writing data to the first position according to a third write operation command;
and if the first position is not recorded in the write operation recording module on the first storage controller, determining that the first storage controller is not writing data to the first position according to a third write operation command.
In summary, in the data writing device provided by the embodiment of the invention, after the first storage controller sends the first write operation command to the second storage controller, the first storage controller receives the return message sent to the first storage controller when the second storage controller determines that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second position according to the second write operation command, and then the first storage controller sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first position and the second position respectively according to the forward write command. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
As shown in FIG. 8, another embodiment of the present invention provides a data writing device that may include at least one processor 801 (e.g., CPU), at least one network interface 802 or other communication interface, a memory 803, and at least one communication bus 804 for enabling connected communication between the devices. The processor 801 is configured to execute executable modules, such as computer programs, stored in the memory 803. The memory 803 may comprise a high-speed random access memory (RAM: random Access Memory), and may also include a non-volatile memory (non-volatile memory), such as at least one disk memory. The communication connection between the data writing means and the at least one other network element is realized via at least one network interface 802 (which may be wired or wireless), which may use the internet, a wide area network, a local network, a metropolitan area network, etc.
In some embodiments, the memory 803 stores a program 8031, the program 8031 being executable by the processor 801, the program 8031 comprising:
receiving a first write operation command sent by a first storage controller, wherein the first write operation command is sent to a second storage controller by the first storage controller after receiving the first write operation command sent by a host, the first write operation command is used for indicating to write data in a target storage position, and the target storage position in the second storage controller is a second position;
Sending a return message to the first storage controller when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than the priority of the first storage controller, wherein the return message is used for indicating that the second storage controller is writing data to the second location according to a second write operation command when receiving the first write operation command;
receiving a forwarding write command sent by the first storage controller, wherein the operation indicated by the forwarding write command is the same as the operation indicated by the write operation command;
and when the second storage controller stops writing data to the second position according to the second writing operation command, writing data to the second position according to the forwarding writing command, and sending the forwarding writing command to the first storage controller.
Optionally, the program 8031 may further include: and when the second storage controller is writing data to the second position according to the second write operation command, the priority of the second storage controller is lower than that of the first storage controller, and the second storage controller stops writing data to the second position according to the second write operation command, writing data to the second position according to the first write operation command.
Optionally, each storage controller is provided with a write operation recording module, where the write operation recording module is used for recording: the write operation recording module is located in a storage controller where data is being written,
recording the second position in a write operation recording module on the second storage controller when the second storage controller is writing data to the second position according to the second write operation command;
when the second storage controller is not writing data to the second position according to the second write operation command, the second position is not recorded in a write operation recording module on the second storage controller.
In summary, in the data writing device provided by the embodiment of the invention, the second storage controller receives the first write operation command sent by the first storage controller, when the second storage controller is writing data to the second location according to the second write operation command and the priority of the second storage controller is higher than that of the first storage controller, sends a return message to the first storage controller, then receives the forward write command sent by the first storage controller, and when the second storage controller stops writing data to the second location according to the second write operation command, writes data to the second location according to the forward write command and sends the forward write command to the first storage controller. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
As shown in fig. 9, an embodiment of the present invention provides a dual active system 90, which dual active system 90 may include a first storage controller 901 and a second storage controller 902.
In one aspect, the first memory controller 901 may be the data writing device 50 shown in FIG. 5-1, FIG. 5-2, or FIG. 5-3; the second memory controller 902 may be the data writing device 60 shown in fig. 6-1 or fig. 6-2.
On the other hand, the first memory controller 901 may be a data writing device shown in fig. 7; the second memory controller 902 may be a data writing device as shown in fig. 8.
In summary, in the dual-active system provided by the embodiment of the present invention, after the first storage controller sends the first write operation command to the second storage controller, the first storage controller receives the return message sent to the first storage controller when determining that the priority of the second storage controller is higher than that of the first storage controller and the second storage controller is writing data to the second location according to the second write operation command, and then the first storage controller sends the forward write command to the second storage controller, so that the first storage controller and the second storage controller write data to the first location and the second location according to the forward write command respectively. In the embodiment of the invention, the data is written into the second position in sequence according to the priority order of the first storage controller and the second storage controller, so that the second storage controller is prevented from writing the data into the same storage position according to two writing operation commands at the same time, and the second position is not required to be locked, thereby reducing the communication times between the first storage controller and the second storage controller, shortening the time consumed by data writing in a dual-activity system and improving the data writing efficiency.
It will be clearly understood by those skilled in the art that, for convenience and brevity of description, the specific working process of the data writing device and the dual-active system described above may refer to the corresponding process in the foregoing embodiment of the data writing method, which is not described herein again.
Other embodiments of the disclosure will be apparent to those skilled in the art from consideration of the specification and practice of the disclosure disclosed herein. This application is intended to cover any adaptations, uses, or adaptations of the disclosure following, in general, the principles of the disclosure and including such departures from the present disclosure as come within known or customary practice within the art to which the disclosure pertains. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the disclosure being indicated by the following claims.
In several embodiments provided in the present application, it should be understood that the disclosed dual active system, data writing apparatus and data writing method may be implemented in other manners. For example, the above-described embodiments of the data writing device are merely illustrative, and for example, the division of units in the data writing device is merely a logical function division, and there may be another division manner in actual implementation, for example, multiple units or components may be combined or may be integrated into another system, or some features may be omitted or not performed. Alternatively, the coupling or direct coupling or communication connection shown or discussed with each other may be an indirect coupling or communication connection via some interfaces, devices or units, which may be in electrical, mechanical or other form.
It is to be understood that the present disclosure is not limited to the precise arrangements and instrumentalities shown in the drawings, and that various modifications and changes may be effected without departing from the scope thereof. The scope of the present disclosure is limited only by the appended claims.

Claims (8)

1. The data writing method is characterized by being applied to a dual-activity system, wherein the dual-activity system comprises a first storage controller and a second storage controller;
the first storage controller receives a first write operation command sent by a host, wherein the first write operation command is used for indicating writing data in a target storage position;
the first storage controller forwards the first write operation command to the second storage controller;
the second storage controller receives the first write operation command;
the second storage controller determining that the second storage controller has received a second write operation command indicating writing of data at the target storage location and that the second storage controller has a higher priority than the first storage controller;
when the second storage controller determines that the second storage controller has received a second write operation command and that the second storage controller has a higher priority than the first storage controller, the second storage controller does not execute the first write operation command.
2. The method as recited in claim 1, further comprising:
the second storage controller sends a return message to the first storage controller, the return message being used to instruct the second storage controller not to execute the first write operation command;
based on the return message, the first storage controller stops executing the first write operation command.
3. The method as recited in claim 1, further comprising:
the second storage controller forwards the second write operation command to the first storage controller;
the first storage controller receives the second write operation command, determines that the first storage controller has received the first write operation command, and that the first storage controller has a priority lower than the second storage controller;
the first memory controller executes the second write operation command.
4. The method of claim 3, further comprising, after the first memory controller executes the second write operation command:
the first storage controller sends the first write operation command to the second storage controller;
The second memory controller receives and executes the first write operation command.
5. A dual activity system comprising a first storage controller and a second storage controller;
the first storage controller is used for receiving a first write operation command sent by the host, and the first write operation command is used for indicating to write data in a target storage position; forwarding the first write operation command to the second storage controller;
the second storage controller is used for receiving the first write operation command; determining that the second storage controller has received a second write operation command indicating writing of data at the target storage location and that the second storage controller has a higher priority than the first storage controller; when the second storage controller determines that the second storage controller has received a second write operation command and that the second storage controller has a higher priority than the first storage controller, the second storage controller does not execute the first write operation command.
6. A dual activity system according to claim 5, wherein,
The second storage controller is further configured to send a return message to the first storage controller, where the return message is configured to instruct the second storage controller not to execute the first write operation command;
the first memory controller is further configured to stop executing the first write operation command based on the return message.
7. A dual activity system according to claim 5, wherein,
the second storage controller is further configured to forward the second write operation command to the first storage controller;
the first storage controller is further configured to receive the second write operation command, determine that the first storage controller has received the first write operation command, and that the first storage controller has a priority lower than the second storage controller; and executing the second write operation command.
8. A dual activity system according to claim 5, wherein,
the first storage controller is further configured to send the first write operation command to the second storage controller after the first storage controller executes the second write operation command;
the second memory controller is also configured to receive and execute the first write operation command.
CN201911272697.7A 2015-12-04 2015-12-04 Data writing method and device and dual-activity system Active CN111176559B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911272697.7A CN111176559B (en) 2015-12-04 2015-12-04 Data writing method and device and dual-activity system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510885958.8A CN106844234B (en) 2015-12-04 2015-12-04 Data writing method and device and double-active system
CN201911272697.7A CN111176559B (en) 2015-12-04 2015-12-04 Data writing method and device and dual-activity system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201510885958.8A Division CN106844234B (en) 2015-12-04 2015-12-04 Data writing method and device and double-active system

Publications (2)

Publication Number Publication Date
CN111176559A CN111176559A (en) 2020-05-19
CN111176559B true CN111176559B (en) 2023-07-11

Family

ID=59150511

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201911272697.7A Active CN111176559B (en) 2015-12-04 2015-12-04 Data writing method and device and dual-activity system
CN201510885958.8A Active CN106844234B (en) 2015-12-04 2015-12-04 Data writing method and device and double-active system

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201510885958.8A Active CN106844234B (en) 2015-12-04 2015-12-04 Data writing method and device and double-active system

Country Status (1)

Country Link
CN (2) CN111176559B (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108663971A (en) * 2018-06-01 2018-10-16 北京汉能光伏投资有限公司 Order retransmission method and device, solar energy system and central controller
CN110881277A (en) * 2018-07-04 2020-03-13 华为技术有限公司 Data storage method, device and related equipment
CN109445992A (en) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 A kind of dual-active System data management method and relevant apparatus

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1206147A (en) * 1989-05-17 1999-01-27 国际商业机器公司 Apparatus for submitting fault-tolerant environmental and system structure in data processing system
EP1400893A2 (en) * 2002-09-18 2004-03-24 Hitachi, Ltd. Storage system and control method
JP2005071100A (en) * 2003-08-25 2005-03-17 Fujitsu Ltd Storage controller and its control method
CN101464781A (en) * 2008-12-31 2009-06-24 成都市华为赛门铁克科技有限公司 Port control method and apparatus, and solid state disk
CN101719052A (en) * 2009-12-22 2010-06-02 成都市华为赛门铁克科技有限公司 Method, device and system for writing data
CN102331977A (en) * 2011-09-07 2012-01-25 上海交通大学 Memory controller, processor system and memory access control method
CN103530066A (en) * 2013-09-16 2014-01-22 华为技术有限公司 Data storage method, device and system
CN103562872A (en) * 2011-06-01 2014-02-05 国际商业机器公司 Resource allocation for a plurality of resources for a dual activity system
CN103680594A (en) * 2012-08-29 2014-03-26 三星电子株式会社 Memory device for reducing a write fail, a system including the same, and a method thereof

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4993913B2 (en) * 2006-01-13 2012-08-08 株式会社日立製作所 Storage control device and data management method thereof
KR101497074B1 (en) * 2008-06-17 2015-03-05 삼성전자주식회사 Non-volatile memory system and data manage method thereof
US8862816B2 (en) * 2010-01-28 2014-10-14 International Business Machines Corporation Mirroring multiple writeable storage arrays
CN103513956B (en) * 2012-06-26 2016-04-06 阿里巴巴集团控股有限公司 A kind of method of processor processes data and device
US20150261446A1 (en) * 2014-03-12 2015-09-17 Futurewei Technologies, Inc. Ddr4-onfi ssd 1-to-n bus adaptation and expansion controller
CN104407814B (en) * 2014-11-21 2017-10-17 华为技术有限公司 Double method and apparatus for writing data

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1206147A (en) * 1989-05-17 1999-01-27 国际商业机器公司 Apparatus for submitting fault-tolerant environmental and system structure in data processing system
EP1400893A2 (en) * 2002-09-18 2004-03-24 Hitachi, Ltd. Storage system and control method
JP2005071100A (en) * 2003-08-25 2005-03-17 Fujitsu Ltd Storage controller and its control method
CN101464781A (en) * 2008-12-31 2009-06-24 成都市华为赛门铁克科技有限公司 Port control method and apparatus, and solid state disk
CN101719052A (en) * 2009-12-22 2010-06-02 成都市华为赛门铁克科技有限公司 Method, device and system for writing data
CN103562872A (en) * 2011-06-01 2014-02-05 国际商业机器公司 Resource allocation for a plurality of resources for a dual activity system
CN102331977A (en) * 2011-09-07 2012-01-25 上海交通大学 Memory controller, processor system and memory access control method
CN103680594A (en) * 2012-08-29 2014-03-26 三星电子株式会社 Memory device for reducing a write fail, a system including the same, and a method thereof
CN103530066A (en) * 2013-09-16 2014-01-22 华为技术有限公司 Data storage method, device and system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Software-Defined Data Center;Ghazanfar Ali等;《ZTE Communications》;20131205(第04期);151-156 *
基于FPGA的信号存储控制器的设计;李静梅等;《应用科技》;20090405(第04期);222-227 *

Also Published As

Publication number Publication date
CN106844234B (en) 2020-01-03
CN106844234A (en) 2017-06-13
CN111176559A (en) 2020-05-19

Similar Documents

Publication Publication Date Title
US20220309007A1 (en) Data Write Method, Apparatus, and System
US20140181035A1 (en) Data management method and information processing apparatus
CN106527974B (en) A kind of method that writing data, equipment and system
US20160350192A1 (en) Storage system transactions
US10496608B2 (en) Synchronizing changes in a file system which are initiated by a storage device and a host device
CN111176559B (en) Data writing method and device and dual-activity system
CN100530069C (en) Virtualizing system and method for non-homogeny storage device
US20190332540A1 (en) Storage management method, electronic device and computer readable medium
JP5381713B2 (en) Data storage system for virtual machine, data storage method, and data storage program
CN106104515A (en) Utilize File system design and the fault recovery method of nonvolatile memory
CN109213429B (en) Storage management method and device
US20060085598A1 (en) Storage-device resource allocation method and storage device
US20160266808A1 (en) Information processing device, information processing method, and recording medium
US8886597B2 (en) Synchronizing changes in a file system which are initiated by a storage device and a host device
CN105205160A (en) Data write-in method and device
CN113254536A (en) Database transaction processing method, system, electronic device and storage medium
JP5673396B2 (en) Information processing system, information processing program, and information processing method
CN108132759A (en) A kind of method and apparatus that data are managed in file system
CN110647476B (en) Method, device and equipment for writing data in solid state disk and storage medium
JP2015170271A (en) Storage area management apparatus, storage area management method, and storage area management program
CN105335441B (en) Distributed file system based on local area network
US7039659B2 (en) Method and apparatus for making differential independent data copies in a data processing system
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
US20140365736A1 (en) Hardware Based Cache Scan with Divert Node Handling
CN111324668B (en) Database data synchronous processing method, device 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