CN107329859B - Data protection method and storage device - Google Patents
Data protection method and storage device Download PDFInfo
- Publication number
- CN107329859B CN107329859B CN201710512405.7A CN201710512405A CN107329859B CN 107329859 B CN107329859 B CN 107329859B CN 201710512405 A CN201710512405 A CN 201710512405A CN 107329859 B CN107329859 B CN 107329859B
- Authority
- CN
- China
- Prior art keywords
- storage unit
- lun
- subspace
- logical
- request
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
The application provides a data protection method and storage equipment, the method is applied to a slave LUN storage unit which is pre-configured as Thin-LUN in a double-active storage system under a sequential write mode, a master LUN storage unit in the double-active storage system processes write IO requests, and data synchronization is not executed; can include the following steps: after a main LUN storage unit or storage equipment where the main LUN storage unit is located fails, determining a target logic subspace on the LUN based on a logic address in a write IO request received after the failure; converting the target logic subspace into a temporary main state, starting an automatic capacity expansion mechanism for the target logic subspace, writing the data of the write IO request into the target logic subspace, and not executing data synchronization; after fault recovery, triggering the data synchronization of the target logic subspace and the logic subspace, corresponding to the target logic subspace, in the main LUN storage unit, converted into the temporary slave state, releasing the physical space occupied by the target logic subspace after the synchronization is completed, and executing recovery operation, thereby realizing data protection.
Description
Technical Field
The application relates to the field of computer communication, in particular to a double-active storage technology.
Background
The technology of live-active storage is a data protection technology, and a primary LUN storage unit and a secondary LUN storage unit can be generally included in a live-active storage system. The master LUN storage unit and the slave LUN storage unit may be allocated to an application server, and the master LUN storage unit and the slave LUN storage unit are identified as the same LUN storage unit for the application server.
After receiving a write IO request issued by an application server, a master LUN storage unit in the dual active storage system may process the write IO request, write data carried in the write IO request into the master LUN storage unit, and synchronize the written data to a slave LUN storage unit.
When a main LUN storage unit fails or its storage device fails, how to continue IO request processing and data protection problems such as restoring data after the main LUN storage unit or its storage device returns to normal become problems to be solved urgently.
Disclosure of Invention
In view of this, the present application provides a data protection method and a storage device, so as to implement data protection by investing lower hardware cost.
Specifically, the method is realized through the following technical scheme:
according to a first aspect of the present application, a data protection method is provided, which is applied to a slave logical unit number LUN storage unit in a dual active storage system, the dual active storage system further including a master LUN storage unit; after the double-active storage system receives the write IO request, a main LUN storage unit in the double-active storage system processes the write IO request, and the main LUN storage unit does not synchronize data in the write IO request to the slave LUN storage unit; the slave LUN storage unit is preconfigured as a Thin logical unit number Thin-LUN storage unit, the method comprising:
after the main LUN storage unit or the storage equipment where the main LUN storage unit is located fails, determining a target logic subspace on the LUN storage unit based on a logic address carried in a write IO request received after the failure; the initial logical address of the target logical address segment corresponding to the target logical subspace is greater than or equal to the logical address carried in the write IO request;
converting the state of the target logic subspace into a temporary main state, starting an automatic capacity expansion mechanism for the target logic subspace, writing the data carried by the write IO request into the target logic subspace, and not executing data synchronization;
after fault recovery, triggering the data synchronization of the target logic subspace and the logic subspace which is converted into a temporary slave state and is located in the main LUN storage unit and corresponding to the target logic address field, releasing the physical space occupied by the target logic subspace after the synchronization is completed, and recovering the LUN storage unit and the main LUN storage unit.
According to a second aspect of the present application, there is provided a storage device comprising a processor and a storage medium, the processor invoking machine executable instructions corresponding to data protection logic stored on the storage medium, the processor being caused to perform the above-described method of data protection.
The application provides a data protection method which can be applied to a double-active storage system.
When a write IO request issued by an application server is received, a master LUN storage unit in the dual active storage system processes the write IO request, and data carried in the write IO request is not synchronized to a slave LUN storage unit.
The slave LUN storage unit in the double-active storage system is configured as a Thin-LUN storage unit, after the failure of the main LUN storage unit or the storage device where the main LUN storage unit is located, the slave LUN storage unit can determine a target logic subspace on the LUN storage unit based on a logic address carried in a write IO request received after the failure, convert the state of the target logic subspace into a temporary main state, start an automatic capacity expansion mechanism for the target logic subspace, write data carried by the write IO request into the target logic subspace, and do not execute data synchronization. After fault recovery, the slave LUN storage unit triggers the data synchronization of the target logic subspace and the logic subspace which is converted into a temporary slave state and is located in the master LUN storage unit and corresponds to the target logic address field, and after the data synchronization is completed, the physical space occupied by the target logic subspace is released, and the local LUN storage unit and the master LUN storage unit are recovered.
On one hand, when the main LUN storage unit or the storage device where the main LUN storage unit is located is normal, only one copy of data carried by the write IO request is stored in the dual active storage system, and in the process of synchronizing the data after the failure recovery of the main LUN storage unit or the storage device where the main LUN storage unit is located, the dual active storage system only stores two copies of data carried by the write IO request.
On the other hand, the logical spaces of the master LUN storage unit and the slave LUN storage unit are divided into several logical subspaces, and each logical subspace corresponds to a dual active state. The mechanism for managing the LUN double-active state based on the logical subspace can enable the write IO request to be continuously written into the target logical subspace of the temporary main state in the slave LUN storage unit aiming at the write IO request after the main LUN storage unit or the storage equipment where the main LUN storage unit is located fails, so that the write IO request is successfully processed; meanwhile, for the IO read request, as long as the logical subspace of the main state in the main LUN storage unit can be accessed, the data can be read in real time, so that the problem that the data cannot be read from the space where the data is not written on the LUN storage unit, and the data can only be read after the main LUN storage unit or the storage equipment where the main LUN storage unit is located recovers and the data synchronization is completed is solved.
In a third aspect, the slave LUN storage unit is configured as a Thin-LUN storage unit, and after a target logic subspace in the slave LUN storage unit is changed into a temporary main state, an automatic capacity expansion mechanism may be enabled, the storage capacity may be expanded by applying for the storage space as needed, and after a failure recovery, the storage space occupied by the target logic subspace may be released after the data synchronization is performed on the target logic subspace in the temporary main state. By adopting the mechanism, the requirement of the LUN storage unit on the storage space can be reduced as much as possible, the waste of the storage space is reduced, the utilization rate of the storage space is improved, the data to be synchronized can be found quickly, and the efficiency of data synchronization is improved.
Drawings
FIG. 1 is a schematic diagram of a dual active storage system shown in an exemplary embodiment of the present application;
FIG. 2 is a flow chart illustrating a method of data protection according to an exemplary embodiment of the present application;
FIG. 3 is a schematic diagram illustrating one type of data protection according to an exemplary embodiment of the present application;
fig. 4 is a hardware structure diagram of a storage device in which a data protection apparatus is located according to an exemplary embodiment of the present application;
fig. 5 is a block diagram of a data protection device according to an exemplary embodiment of the present application.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present application. Rather, they are merely examples of apparatus and methods consistent with certain aspects of the present application, as detailed in the appended claims.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the application. As used in this application and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It should also be understood that the term "and/or" as used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items.
It is to be understood that although the terms first, second, third, etc. may be used herein to describe various information, such information should not be limited to these terms. These terms are only used to distinguish one type of information from another. For example, first information may also be referred to as second information, and similarly, second information may also be referred to as first information, without departing from the scope of the present application. The word "if" as used herein may be interpreted as "at … …" or "when … …" or "in response to a determination", depending on the context.
Referring to FIG. 1, FIG. 1 is a schematic diagram of a dual active storage system in accordance with an exemplary embodiment of the present application.
A primary LUN storage unit and a secondary LUN storage unit may be included in the dual active storage system generally. The master LUN storage unit and the slave LUN storage unit may be respectively configured on different storage devices. The master LUN storage unit and the slave LUN storage unit may be allocated to an application server, and the master LUN storage unit and the slave LUN storage unit are identified as the same LUN storage unit for the application server.
After receiving a write IO request issued by an application server, a master LUN storage unit in the dual active storage system may process the write IO request, write data carried in the write IO request into the master LUN storage unit, and synchronize the written data to a slave LUN storage unit.
When the main LUN storage unit fails or the storage device where the main LUN storage unit is located fails, the slave LUN storage unit may continue to perform IO request processing, and after the main LUN storage unit is recovered to be normal or the storage device where the main LUN storage unit is located is recovered to be normal, the data stored in the slave LUN storage unit may be used to recover the data of the main LUN storage unit.
However, in the dual active storage system, the same data needs to be stored in two parts, which greatly increases the storage space requirement, increases the number of hard disks, increases the consumption of the disk cabinets, and the like. While increasing hardware cost, the complexity of hardware maintenance is also greatly increased.
In view of the above, the present application provides a data protection method, which can be applied to a dual active storage system.
When a write IO request issued by an application server is received, a master LUN storage unit in the dual active storage system processes the write IO request, and data carried in the write IO request is not synchronized to a slave LUN storage unit.
The slave LUN storage unit in the double-active storage system is configured as a Thin-LUN storage unit, after the failure of the main LUN storage unit or the storage device where the main LUN storage unit is located, the slave LUN storage unit can determine a target logic subspace on the LUN storage unit based on a logic address carried in a write IO request received after the failure, convert the state of the target logic subspace into a temporary main state, start an automatic capacity expansion mechanism for the target logic subspace, write data carried by the write IO request into the target logic subspace, and do not execute data synchronization. After fault recovery, the slave LUN storage unit triggers the data synchronization of the target logic subspace and the logic subspace which is converted into a temporary slave state and is located in the master LUN storage unit and corresponds to the target logic address field, and after the data synchronization is completed, the physical space occupied by the target logic subspace is released, and the local LUN storage unit and the master LUN storage unit are recovered.
On one hand, when the main LUN storage unit or the storage device where the main LUN storage unit is located is normal, only one copy of data carried by the write IO request is stored in the dual active storage system, and in the process of synchronizing the data after the failure recovery of the main LUN storage unit or the storage device where the main LUN storage unit is located, the dual active storage system only stores two copies of data carried by the write IO request.
On the other hand, the logical spaces of the master LUN storage unit and the slave LUN storage unit are divided into several logical subspaces, and each logical subspace corresponds to a dual active state. The mechanism for managing the LUN double-active state based on the logical subspace can enable the write IO request to be continuously written into the target logical subspace of the temporary main state in the slave LUN storage unit aiming at the write IO request after the main LUN storage unit or the storage equipment where the main LUN storage unit is located fails, so that the write IO request is successfully processed; meanwhile, for the IO read request, as long as the logical subspace of the main state in the main LUN storage unit can be accessed, the data can be read in real time, so that the problem that the data cannot be read from the space where the data is not written on the LUN storage unit, and the data can only be read after the main LUN storage unit or the storage equipment where the main LUN storage unit is located recovers and the data synchronization is completed is solved.
In a third aspect, the slave LUN storage unit is configured as a Thin-LUN storage unit, and after a target logic subspace in the slave LUN storage unit is changed into a temporary main state, an automatic capacity expansion mechanism may be enabled, the storage capacity may be expanded by applying for the storage space as needed, and after a failure recovery, the storage space occupied by the target logic subspace may be released after the data synchronization is performed on the target logic subspace in the temporary main state. By adopting the mechanism, the requirement of the LUN storage unit on the storage space can be reduced as much as possible, the waste of the storage space is reduced, the utilization rate of the storage space is improved, the data to be synchronized can be found quickly, and the efficiency of data synchronization is improved.
Fig. 2 is a flow chart illustrating a data protection method according to an exemplary embodiment of the present application. The method can be applied to a slave LUN storage unit in a dual active storage system in a sequential write mode, wherein the dual active storage system also comprises a master LUN storage unit; after the double-active storage system receives the write IO request, a main LUN storage unit in the double-active storage system processes the write IO request, and the main LUN storage unit does not synchronize data in the write IO request to the slave LUN storage unit; the slave LUN-storage unit is preconfigured as a Thin-LUN-storage unit. The method may include steps 201 through 203.
Step 201: after the main LUN storage unit or the storage equipment where the main LUN storage unit is located fails, determining a target logic subspace on the LUN storage unit based on a logic address carried in a write IO request received after the failure; and the initial logical address of the target logical address segment corresponding to the target logical subspace is greater than or equal to the logical address carried in the write IO request.
The present application is directed to partitioning the logical space from LUN storage units into several logical subspaces. The storage space of the main LUN storage unit can also be divided into a plurality of logical subspaces, and the logical subspaces on the main LUN correspond to the logical subspaces of the slave LUNs one to one. Each logic subspace corresponds to a double-activity state, and the double-activity storage system is managed through the management of the double-activity state of the logic subspace.
It should be noted that the data protection method proposed in the present application is applied to the sequential write mode. The sequential write mode may mean that the initial logical address carried by the subsequent write IO request is greater than the initial logical address carried by the previous write IO request, and the LUN storage units sequentially write data according to the sequence of the logical address segments.
In the embodiment of the present application, the dual active state may include a master state, a slave state, a temporary master state, and a temporary slave state.
The master state may be a state of the dual active memory system in the normal state, and corresponds to the slave state. When the double-active storage system works normally, after the logic subspace of the main state receives the write IO request, the write IO request can be directly subjected to write processing. After receiving the write IO request from the logical subspace of the slave state, the write IO request may be forwarded to the logical subspace of the master state, and the logical subspace of the master state performs processing of the write IO request. Different from the related art, after the write IO request processing is completed, the logical subspace of the master state does not synchronize data in the write IO request to the logical subspace of the slave state.
The slave state may be a state of the dual active memory system in a normal state. The logical subspace of the slave state does not handle IO requests. And after receiving the IO request from the logic subspace of the slave state, forwarding the IO request to the logic subspace of the master state, and processing the IO request by the logic subspace of the master state. Different from the related art, since the logic subspace of the master state does not synchronize the data carried by the write IO request to the logic subspace of the slave state, the data carried by the corresponding write IO request is not saved in the logic subspace of the slave state.
In the data protection method provided by the present application, the LUN storage unit in the slave state (i.e., the slave LUN storage unit described in the present application) is configured as a Thin-LUN storage unit in advance, and the storage space can be allocated according to the allocation mechanism of the storage space of the Thin-LUN storage unit. Moreover, when the dual active storage system works normally, since the data carried by any write IO request is not saved in the slave LUN storage unit, the initial capacity of the slave LUN storage unit may be small, and the auto-capacity-expansion mechanism is in a shutdown state. The optimal state is that the initial capacity of the slave LUN storage unit may be zero. The initial capacity of the logical subspace from the LUN storage unit is also small, optimally zero.
The temporary master state may be a state that is generally present in the dual active storage system in the abnormal state, and corresponds to the temporary slave state. The logical subspace of the temporary master state may process an IO request issued by an application server. And the logic subspace of the temporary main state corresponds to a data synchronization identifier, and the logic subspace of the temporary main state can determine whether to synchronize the written data according to the data synchronization identifier. For example, when the synchronization flag is 0, the logical subspace of the temporary master state may not synchronize the written data to the logical subspace of the temporary slave state, and when the synchronization flag is 1, the logical subspace of the temporary master state may synchronize the written data to the logical subspace of the temporary slave state.
The temporary slave state may be a state that is generally present in the dual active storage system in the abnormal state, and corresponds to the temporary master state. After receiving the IO request issued by the application server, the logic subspace of the temporary slave state does not perform IO request processing, but may forward the IO request to the logic subspace of the temporary master state, and perform IO request processing by the logic subspace of the temporary master state.
It should be noted that, in this embodiment of the present application, when the dual active storage system works normally, the primary LUN storage unit in the dual active storage system processes the write IO request issued by the application server, and does not synchronize data carried in the write IO request to the secondary LUN storage unit. In other words, in this case, the data carried in the write IO request is single-ended written.
When the main LUN storage unit in the dual active storage system fails or the storage device where the main LUN storage unit is located fails, the target logic subspace in the slave LUN storage unit can be changed into a temporary main state, the target logic subspace in the temporary main state can process a write IO request issued by an application server, and data carried by the write IO request is not synchronized to an opposite terminal. In other words, in this case, the data carried in the write IO request is also single-ended written.
After the failure recovery of the main LUN storage unit or the storage device in which the main LUN storage unit is located, the logical subspace on the main LUN storage unit corresponding to the target logical subspace may be converted into a temporary slave state, and after the failure recovery, before the data synchronization is completed from the logical subspace in the temporary master state to the logical subspace in the temporary slave state, a write IO request issued by an application server is processed by the logical subspace in the temporary master state, and the logical subspace in the temporary master state may synchronize locally written data in the failure to the logical subspace in the temporary slave state, and may also synchronize data carried in the write IO request to the logical subspace in the temporary slave state. In other words, in this case, the data carried in the write IO request is double-ended written.
It should be noted that the main LUN storage unit mentioned in this application refers to a LUN storage unit in a main state, and the slave LUN storage unit mentioned in this application refers to a LUN storage unit in a slave state. Under the condition that the dual active storage system works normally, there are a LUN storage unit in a master state (i.e. a master LUN storage unit) and a LUN storage unit in a slave state (i.e. a slave LUN storage unit), and when the dual active storage system is abnormal, the dual active state may be defined according to a logic subspace, which is not described in detail below.
In this embodiment of the present application, in a normal state of the dual active storage system, after the dual active storage system receives a write IO request issued by an application server, a master LUN storage unit in the dual active storage system processes the write IO request, and does not synchronize data carried in the write IO request to a slave LUN storage unit.
For example, after the primary LUN storage unit receives the write IO request, the primary LUN storage unit may write the data carried in the write IO request into the local, and not synchronize the data carried in the write IO request to the secondary LUN storage unit. And then returning a response message for successful writing of the write IO request to the application server.
After receiving the write IO request from the LUN storage unit, the write IO request may be forwarded to the primary LUN storage unit, and after the primary LUN storage unit writes the data carried in the write IO request into a local, the data carried in the write IO request is not written into the secondary LUN storage unit. The master LUN storage unit may return a response message to the slave LUN storage unit that the write IO request is successfully written to, the response message being returned by the slave LUN storage unit to the application server.
In this embodiment of the present application, when the main LUN storage unit fails or the storage device where the main LUN storage unit is located fails, the target logical subspace on the LUN storage unit may be determined based on the logical address carried in the write IO request received after the failure.
In an alternative implementation, for a scenario of a primary LUN storage unit failure: in general, a master LUN storage unit and a slave LUN storage unit in a dual active storage system may record a device identifier and a LUN identifier of a storage device where the other storage device is located. In addition, the primary LUN storage unit corresponds to the identity to be reversed. When the main LUN storage unit fails, the main LUN storage unit may send a notification instruction of state transition to the slave LUN storage unit according to the recorded device identifier and LUN identifier of the device where the slave LUN storage unit is located.
In addition, when the primary LUN storage unit fails, the primary LUN storage unit may add an identifier to be inverted, so that the received write IO request may be forwarded to the secondary LUN storage unit after the failure of the primary LUN storage unit.
For example, when a write IO request is received by a primary LUN storage unit, if there is an identity to be reversed on the primary LUN storage unit, the write IO request may be forwarded to a secondary LUN storage unit.
After receiving the notification instruction of the state transition from the LUN storage unit, the to-be-reversed identifier may be added to the LUN storage unit, so that the write IO request received after the fault is identified from the LUN.
For example, after receiving a write IO request issued by an application server or a write IO request forwarded by a main LUN storage unit from a LUN, it may be determined whether the identifier to be reversed exists, and if so, a target logical subspace on the LUN storage unit may be determined based on a logical address carried in the write IO request. The write IO request received after the identifier to be reversed is added is the write IO request received after the failure of the main LUN storage unit or the storage device where the main LUN storage unit is located.
In another alternative implementation, for a scenario where the storage device in which the primary LUN storage unit is located fails: generally, a heartbeat message can be sent between the storage device where the main LUN storage unit is located and the storage device where the slave LUN storage unit is located to detect the operating state of the opposite storage device.
When the storage device where the slave LUN storage unit is located detects a failure of the storage device where the master LUN storage unit is located through the heartbeat message, the storage device where the slave LUN storage unit is located may send a notification instruction of state transition to the slave LUN storage unit.
After receiving the notification instruction of the state transition from the LUN storage unit, the to-be-reversed identifier may be added to the LUN storage unit, so that the write IO request received after the fault is identified from the LUN.
For example, after receiving a write IO request issued by an application server from a LUN, it may be determined whether the identifier to be reversed exists, and if so, a target logical subspace on the storage unit of the LUN may be determined based on a logical address carried in the write IO request. The write IO request received after the identifier to be reversed is added is the write IO request received after the failure of the main LUN storage unit or the storage device where the main LUN storage unit is located. The write IO request received after the failure of the main LUN storage unit or the storage device in which the main LUN storage unit is located may be a first write IO request received after the failure of the main LUN storage unit or the storage device in which the main LUN storage unit is located, or may be a first write IO request, which is not specifically limited herein. However, in order to ensure the accuracy of data writing, the overall method is optimally that the write IO request is the first write IO request received after the failure of the main LUN storage unit or the storage device in which the main LUN storage unit is located.
In this embodiment of the present application, when determining the target logical subspace of the LUN storage unit based on the logical address carried in the write IO request received after the failure, the following manner may be adopted.
The slave LUN storage unit can divide the logical space corresponding to the LUN storage unit into a plurality of logical subspaces based on a preset division rule.
The preset partitioning rule may include setting based on the logical address carried in the write IO request, the number of the partitioned segments, or the length of each logical address segment. Here, the developer may set the preset division rule according to actual situations, and this is only an exemplary illustration and is not limited to the specific details.
Under the division rule, the divided logical address segments at least comprise a target address segment of which the initial logical address is greater than or equal to the logical address carried in the write IO request. The target logical address field may be one or more, and is not particularly limited herein.
The logical subspace corresponding to the target address segment can be determined as the target logical subspace from the LUN storage unit. The target logical subspace may be one or more, and is not particularly limited herein.
In addition, the partitioned logical address segments at least include a written logical address segment whose ending logical address is smaller than the logical address carried in the write IO request, and a logical space corresponding to the written logical address segment may be referred to as a written logical subspace here.
For example, it is assumed that the logical address field corresponding to the logical space of the slave LUN storage unit is 0GB to 100GB, the logical address carried by the write IO request is 60GB, and the preset division rule may be to divide the logical address field corresponding to the logical space of the slave LUN storage unit into two segments, with the logical address carried by the write IO request as a demarcation point.
Here, the divided logical address segments may be two logical address segments of 0GB to 60GB and 60GB to 100GB based on a preset division rule. Then, the slave LUN storage unit may use a logical address segment (e.g., a 60GB-100GB address segment) whose starting logical address is the logical address carried in the write IO request as a target logical address segment, and determine a logical subspace corresponding to the target logical address segment as a target logical subspace. And 0GB-60GB may be a written address segment.
Step 202: and converting the state of the target logic subspace into a temporary main state, starting an automatic capacity expansion mechanism for the target logic subspace, writing the data carried by the write IO request into the target logic subspace, and not executing data synchronization.
In this embodiment, the slave LUN storage unit may change the dual active state corresponding to the target logical subspace from the slave state to the temporary master state, and clear the to-be-inverted flag. While the states of other logical subspaces than the target logical subspace remain unchanged.
During implementation, each dual-active state corresponds to a state identifier, and values of different state identifiers represent different dual-active states. For example, the state identifier values corresponding to the master state, the slave state, the temporary master state and the temporary slave state are 1, 2, 3 and 4 in sequence. The slave LUN storage unit can change the value of the state identification bit of the target logical subspace from 2 to 3, thereby completing the conversion of the state of the target logical subspace into the temporary main state.
In addition, an automatic capacity expansion mechanism can be started for the target logic subspace from the LUN storage unit, and when the residual capacity of the storage space of the target logic subspace is smaller than or equal to a capacity expansion threshold, capacity expansion can be performed according to capacity expansion step length, so that the purpose of applying for the storage space in real time and on demand is achieved.
In this embodiment of the present application, after the target logic subspace is converted into the temporary master state, if a write IO request issued by the application server is received from the LUN storage unit, data carried in the write IO request may be written into the target logic subspace, data synchronization is not performed, and a write success message is returned to the application server.
In addition, after the target logical subspace is converted into the temporary main state, if a write IO request forwarded by the main LUN is received from the LUN storage unit, data carried by the write IO request may be written into the target logical subspace, and data synchronization is not performed, and then a write success message is returned to the main LUN storage unit, so that the main LUN storage unit returns a write success message to the application server.
Step 203: after fault recovery, the slave LUN storage unit triggers the data synchronization of the target logic subspace and the logic subspace which is converted into a temporary slave state and is located in the master LUN storage unit and corresponds to the target logic address field, and after the data synchronization is completed, the physical space occupied by the target logic subspace is released, and the local LUN storage unit and the master LUN storage unit are recovered.
In this embodiment of the present application, at the time of failure recovery, the slave LUN storage unit triggers data synchronization between the target logical subspace and the logical subspace located in the master LUN storage unit corresponding to the target logical address segment, which is converted into the temporary slave state.
In an alternative implementation, for a scenario of a primary LUN storage unit failure: when the target logical subspace is converted to the temporary primary state, a local state conversion notification may be sent to the primary LUN storage unit. The local state transition notification carries the starting logical address of the target logical subspace.
After receiving the local state transition notification, the main LUN storage unit may divide the main LUN storage unit into a plurality of logical subspaces according to the preset division rule based on the initial logical address in the notification, where the divided logical subspaces correspond to the logical subspaces divided from the LUN storage unit one to one.
The main LUN storage unit can convert the state of the logical subspace corresponding to the target logical subspace in the LUN storage unit from a main state to a temporary slave state, and clear the mark to be reversed. The other logical subspace states on the primary LUN storage unit are unchanged.
For example, suppose a storage unit is divided into logical subspace 1 and logical subspace 2 from a LUN, and their corresponding logical address segments are 0GB-60GB and 60GB-100GB, respectively. Where logical subspace 2 is the target logical subspace. After the target logical subspace is converted to the temporary main state, a local state conversion notification may be sent to the main LUN storage unit, where the notification carries the starting logical address of the target logical subspace, i.e., 60 GB.
After receiving the notification, the main LUN storage unit may divide the main LUN storage unit into two logical subspaces, i.e., a logical subspace 1 'and a logical subspace 2', based on the initial logical address and a preset division rule, where the corresponding logical address segments are 0GB-60GB and 60GB-100GB, respectively.
The primary LUN-storage unit can convert the logical subspace (i.e., logical subspace 2') on the present LUN-storage unit corresponding to the target logical subspace (i.e., logical subspace 2) into a temporary slave state.
And after the logic subspace corresponding to the target logic subspace on the main LUN storage unit is converted into a temporary slave state, clearing the mark to be reversed.
If the main LUN storage unit receives a write IO request issued by the application server, the main LUN storage unit may forward the write IO request to the slave LUN storage unit. After receiving the write IO request from the LUN storage unit, the data carried by the write IO request may be written into the target logical subspace. And then returning a write success message to the main LUN storage unit so as to return the write success message to the application server by the main LUN storage unit.
In this embodiment, after the failure recovery of the primary LUN storage unit, the primary LUN storage unit may send a synchronization instruction to the secondary LUN storage unit, and after receiving the synchronization instruction, the secondary LUN storage unit may synchronize the data written in the target logical subspace (i.e., the logical subspace of the temporary primary state) to the logical subspace of the temporary secondary state.
In another alternative implementation, for a scenario where the storage device in which the primary LUN storage unit is located fails: when the storage device where the LUN storage unit is located detects that the device where the main LUN storage unit is located is recovered from a failure, a role negotiation notification can be sent to the main LUN storage unit, and the role negotiation notification can carry the initial logical address of the target logical subspace.
After receiving the role negotiation notification, the main LUN storage unit may divide the main LUN storage unit into a plurality of logical subspaces according to the preset division rule based on the initial logical address in the notification, where the divided logical subspaces correspond to the logical subspaces divided from the LUN storage unit one to one.
The main LUN storage unit may negotiate the state of each logical subspace with the slave LUN storage unit, and after negotiation, the logical subspace corresponding to the target logical subspace on the main LUN storage unit is in a temporary slave state. The other logical subspaces are the master states.
After the logical subspace corresponding to the target logical subspace on the master LUN storage unit is negotiated to be in the temporary slave state, the master LUN storage unit may send a synchronization instruction to the slave LUN storage unit, and the slave LUN storage unit may synchronize data written in the target logical subspace (i.e., the logical subspace in the temporary master state) to the logical subspace in the temporary slave state after receiving the synchronization instruction.
It should be noted that, the synchronizing the data stored in the logical subspace of the temporary master state to the logical subspace of the temporary slave state may include: and after the main LUN storage unit or the storage equipment where the main LUN storage unit is located fails, the data written in the logic subspace of the temporary main state is synchronized to the logic subspace of the temporary slave state. Further comprising: when the main LUN storage unit is restored or the storage device where the main LUN storage unit is located is restored, the logical subspace of the temporary main state locally writes data carried by the currently received write IO request (including the write IO request received from the application server and the write IO request temporarily forwarded from the LUN storage unit), and synchronizes to the logical subspace of the temporary slave state.
The negotiation rule may generally include that, when a logical subspace of a master state or a logical subspace of a temporary master state exists in the dual active storage system, a newly added logical subspace may be in a slave state or a temporary slave state. Of course, the negotiation rule may be set by a developer, as long as the logical subspace corresponding to the target logical subspace on the main LUN storage unit is in a temporary slave state, which is only an exemplary illustration of the negotiation rule and is not specifically limited thereto.
In the embodiment of the present application, data synchronization between the logical subspace of the temporary master state and the logical subspace of the temporary slave state can be implemented based on the data synchronization identifier.
In the implementation, all the logic subspaces of the temporary main state correspond to the data synchronization identification. The value of the data synchronization identifier can be a first preset value and a second preset value. The first preset value indicates that the written data is not subjected to synchronous processing; the second preset value indicates that the written data is to be synchronized.
After the target logic subspace is converted from the slave state to the temporary master state, the data synchronization identifier corresponding to the target logic subspace of the temporary master state can be modified to be the first preset value, so that the data synchronization is not executed after the data of the write IO request is written into the target logic subspace of the temporary master state.
After the failure is recovered, after the target logic subspace of the temporary master state receives the data synchronization instruction of the logic subspace of the temporary slave state, the data synchronization identifier of the target logic subspace of the temporary master state can be modified to be a second preset value, so that the target logic subspace of the temporary master state can synchronize the written data to the logic subspace of the temporary slave state.
In this embodiment of the present application, after the data synchronization is completed, the physical space occupied by the logical subspace of the temporary master state may be released, and the automatic capacity expansion mechanism is closed, and the copy LUN storage unit and the master LUN storage unit are restored.
It should be noted that, when the dual active storage system is in a normal state, because the master LUN storage unit does not synchronize data with the slave LUN storage unit, and the physical space occupied by the master LUN storage unit is released after the logical subspace of the temporary master state is converted into the logical subspace of the slave state, the logical subspace of the slave state is always in a state without data storage, and in this state, after the logical subspace of the slave state is the logical subspace of the temporary master state, all the written data is the data to be synchronized, so the logical subspace of the slave state does not need to find the data to be synchronized through the difference bitmap. Therefore, when data synchronization is executed, the logic subspace of the temporary main state can directly read locally written data for synchronization, on one hand, the difference bitmap does not need to be updated when write IO is processed from the LUN, the software complexity is simplified, the write IO processing efficiency is improved, on the other hand, the synchronization processing flow is simplified, and therefore the data synchronization efficiency is greatly improved.
In the embodiment of the present application, during the recovery, the slave LUN storage unit may convert the target logical subspace of the temporary master state thereon into the slave state, and merge several consecutive logical subspaces of the slave state partitioned on the present LUN storage unit.
The slave LUN storage unit can also send a recovery instruction to the master LUN storage unit, and after receiving the recovery instruction, the master LUN storage unit can convert the logical subspace of the temporary slave state on the master LUN storage unit into the master state and merge a plurality of continuous logical subspaces of the master state divided by the LUN storage unit.
In this embodiment of the present application, the plurality of address segments divided from the LUN storage unit at least further include a written logical address segment whose ending logical address is smaller than the logical address carried in the write IO request received after the failure of the main LUN storage unit or the failure of the storage device where the main LUN storage unit is located. The state of the logical subspace on the main LUN storage unit corresponding to the written logical address field is a master state, and the state of the logical subspace on the slave LUN storage unit corresponding to the written logical address field is a slave state.
And after receiving the read IO request issued by the application server from the LUN storage unit, the logical address field carried by the read IO request can be acquired.
If the obtained logical address field is in the written logical address field, the slave LUN storage unit may return a read error notification message to the application server, or the slave LUN storage unit may forward the read IO request to the master LUN storage unit. The main LUN storage unit may read corresponding data in the logical subspace of the main state corresponding to the written logical address field based on the logical address carried in the read IO request, and if the data is read, return the read data to the slave LUN storage unit; and if the data is not read, returning a reading error prompt message to the slave LUN storage unit.
And after receiving the data or the reading error prompting message returned by the main LUN storage unit, the slave LUN storage unit returns the data or the reading error prompting message to the application server.
In an alternative implementation, for a scenario of a primary LUN storage unit failure:
1) failure of primary LUN storage unit not recovered: if the logical address field carried by the read IO request received from the LUN storage unit is located in the written logical address field, the slave LUN storage unit may forward the read IO request to the master LUN storage unit. The main LUN storage unit may read corresponding data in the logical subspace of the main state corresponding to the written logical address field based on the logical address field carried in the read IO request.
During reading, if the logical subspace corresponding to the logical address field carried by the read IO request can be accessed, the data corresponding to the read IO request can be read, the read data can be returned to the slave LUN storage unit, and the data is returned to the application server by the slave LUN storage unit.
If the logical subspace corresponding to the logical address field carried by the read IO request fails to access, the data cannot be read, at this time, a read error prompting message may be returned to the slave LUN storage unit, and the slave LUN storage unit returns the read error prompting message to the application server.
2) Primary LUN storage unit failure recovery (i.e. during data synchronization): if the logical address field carried by the read IO request received from the LUN storage unit is located in the written logical address field, the slave LUN storage unit may forward the read IO request to the master LUN storage unit. The main LUN storage unit may read corresponding data in the logical subspace of the main state corresponding to the written logical address field based on the logical address field carried in the read IO request. The master LUN storage unit may forward the read data to the slave LUN storage unit, which returns the data to the application server.
In another alternative implementation, for a scenario where the storage device in which the primary LUN storage unit is located fails:
1) the storage device where the main LUN storage unit is located fails and is not recovered: and if the logical address field carried by the read IO request received from the LUN storage unit is located in the written logical address field, returning a read error prompt message to the application server.
2) And (3) fault recovery of the storage device where the main LUN storage unit is located (namely in the data synchronization process): if the logical address field carried by the read IO request received from the LUN storage unit is located in the written logical address field, the slave LUN storage unit may forward the read IO request to the master LUN storage unit. The main LUN storage unit may read corresponding data in the logical subspace of the main state corresponding to the written logical address field based on the logical address field carried in the read IO request. The master LUN storage unit may forward the read data to the slave LUN storage unit, which returns the data to the application server.
In this embodiment of the present application, if the logical address field carried by the read IO request received from the LUN storage unit is located in the target logical address field, the LUN storage unit may determine whether there is a logical address mapping record corresponding to the logical address field carried by the read IO request.
And if the logical address mapping record corresponding to the logical address field carried by the read IO request exists, reading the data corresponding to the read IO request, and returning the read data to the application server.
And if the logical address mapping record corresponding to the logical address field carried by the read IO request does not exist, returning read error prompt information to the application server.
In the embodiment of the present application, the receiving of the IO request for the primary LUN storage unit may occur in three stages, from after the failure of the primary LUN storage unit to before the failure recovery, after the failure recovery of the primary LUN storage unit, and after the failure recovery of the storage device where the primary LUN storage unit is located.
In an alternative implementation, for a scenario of a primary LUN storage unit failure:
1) failure of primary LUN storage unit not recovered: and if the logical address field carried by the read IO request is located in the written logical address field, the main LUN storage unit can read data corresponding to the read IO request in a logical subspace of a main state corresponding to the written logical address field. If the logical subspace corresponding to the logical address field can be accessed normally, the corresponding data can be read, and the main LUN storage unit can return the read data to the application server. If the logical subspace corresponding to the logical address field fails to access, the main LUN storage unit can return a read error prompt message to the application server.
If the logical address field carried by the IO read request is located in the target logical address field, the master LUN storage unit may forward the IO read request to the slave LUN storage unit. Whether a logical address mapping record corresponding to the logical address field carried by the read IO request exists can be determined from the LUN storage unit. If so, the slave LUN storage unit may read data in the target logical subspace of the temporary master state and return the read data back to the master LUN storage unit, which may return the data to the application server. If not, the read error prompting message is returned from the LUN storage unit to the main LUN storage unit, and the main LUN storage unit can return the read error prompting message to the application server.
2) Primary LUN storage unit failure recovery (i.e. during data synchronization): and if the logical address field carried by the read IO request is located in the written logical address field, the main LUN storage unit can read data corresponding to the read IO request in a logical subspace of a main state corresponding to the written logical address field. And returns the read data to the application server.
If the logical address field carried by the IO read request is located in the target logical address field, the master LUN storage unit may forward the IO read request to the slave LUN storage unit. Whether a logical address mapping record corresponding to the logical address field carried by the read IO request exists can be determined from the LUN storage unit. If so, the slave LUN storage unit may read data in the target logical subspace of the temporary master state and return the read data back to the master LUN storage unit, which may return the data to the application server. If not, the read error prompting message is returned from the LUN storage unit to the main LUN storage unit, and the main LUN storage unit can return the read error prompting message to the application server.
3) In another alternative implementation, for a scenario where the storage device in which the primary LUN storage unit is located fails:
and (3) fault recovery of the storage equipment where the main LUN storage unit is located: and if the logical address field carried by the read IO request is located in the written logical address field, the main LUN storage unit can read data corresponding to the read IO request in a logical subspace of a main state corresponding to the written logical address field. And returns the read data to the application server.
If the logical address field carried by the IO read request is located in the target logical address field, the master LUN storage unit may forward the IO read request to the slave LUN storage unit. Whether a logical address mapping record corresponding to the logical address field carried by the read IO request exists can be determined from the LUN storage unit. If so, the slave LUN storage unit may read data in the target logical subspace of the temporary master state and return the read data back to the master LUN storage unit, which may return the data to the application server. If not, the read error prompting message is returned from the LUN storage unit to the main LUN storage unit, and the main LUN storage unit can return the read error prompting message to the application server.
Referring to fig. 3, fig. 3 is a schematic diagram illustrating a data protection according to an exemplary embodiment of the present application.
The method is described in detail below by using a specific example and combining two scenarios, namely, failure of the main LUN storage unit and failure of the storage device where the main LUN storage unit is located.
The write mode of the double-active storage system is assumed to be A sequential write mode, the main LUN storage unit in the double-active storage system is LUN-A, and the auxiliary LUN storage unit is LUN-B. LUN-A is configured on device A and LUN-B is configured on device B. LUN-B is pre-configured as a Thin-LUN storage unit. The logical subspace of the LUN storage unit is configured with a state identifier bit, where values of state identifiers corresponding to the master state, the slave state, the temporary master state, and the temporary slave state are 1, 2, 3, and 4, respectively. And a data synchronization identification bit is configured in the logic subspace corresponding to the temporary main state, wherein when the value of the data synchronization identification bit is 0, the written data is not subjected to synchronization processing, and when the value of the data synchronization identification bit is 1, the written data is subjected to synchronization processing.
When the double-active storage system is in A normal state, after the LUN-A receives the write IO request, the datA carried by the write IO request can be written into the local, and the written datA is not synchronized to the LUN-B. And after the writing is completed, returning a response message of successful writing to the application server.
After receiving the write IO request, the LUN-B may forward the write IO request to the LUN-A, and the LUN-A writes the datA carried in the write IO request into the LUN-A and does not synchronize the written datA to the LUN-B. And after the writing is finished, returning a response message of successful writing to the LUN-B, and returning the response message of successful writing to the application server by the LUN-B.
When A LUN-A failure or A device A failure occurs in A dual active storage system, the following operations may be performed.
1) For LUN-A failures
When the LUN-A detects that the LUN-A becomes A fault state, the LUN-A can add an identifier to be reversed, so that the write IO request received by the LUN-A is forwarded to the LUN-B. In addition, LUN-A may also send A role switch notification to LUN-B viA the stored device identification of device B and LUN identification of LUN-B.
After LUN-B receives the role switch notification, LUN-B can add the identifier to be reversed. After the reversed identifier is added, after A first write IO request sent by an application server or forwarded by the LUN-A is received, the logical space of the LUN-B may be divided based on the logical address carried in the first write IO request.
The logical address carried by the first write IO request is assumed to be 60GB, and is assumed to be divided into two segments. It is assumed that the logical address fields corresponding to LUN-A and LUN-B are both 0GB-100 GB. The LUN-B may divide the logical address segment of the LUN-B into two address segments of 0GB-60GB and 60GB-100GB based on the logical address of 60GB, where the logical subspaces corresponding to the two address segments of 0GB-60GB and 60GB-100GB are the logical subspace 1 and the logical subspace 2. The LUN-B may use an address field with a starting logical address equal to or greater than the logical address in the write IO request as a target address field, in this example, 60GB-100GB are the target address fields described above. The logical subspace 2 corresponding to the target address segment may be the target logical subspace described above.
The LUN-B may modify the state identifier of the logical subspace 2 from 2 to 3, so that the target logical subspace is converted from the slave state to the temporary master state, and modify the value of the data synchronization identifier of the logical subspace to 0. LUN-B may also clear the to-be-reversed flag. Meanwhile, LUN-B can open a capacity expansion mechanism for the target logical subspace. At this point, logical subspace 1 is still the slave state.
LUN-B may send A local state transition notification to LUN-A, which may carry the logical address of the write IO request, i.e., 60 GB.
After receiving the local state transition notification, the LUN-A may divide the logical address segment of the LUN-A into two address segments, i.e., 0GB-60GB and 60GB-100GB, according to the 60GB logical address. The logical subspaces corresponding to these two address segments are respectively denoted as logical subspace 1 'and logical subspace 2'.
LUN-A may modify the state identification of logical subspace 2 'from 1 to 4, such that logical subspace 2' transitions from A master state to A temporary slave state. The logical subspace 1' is still in the master state at this time. LUN-A may clear the flag to be reversed.
After the LUN-B receives the write IO request, the data carried by the write IO request may be written into the logical subspace 2, and based on the data synchronization identifier being 0, the written data is not synchronized to the logical subspace 2'.
If the LUN-A receives the write IO request, the write IO request may be forwarded to the LUN-B for execution, and the LUN-B may write the datA carried by the write IO request into the logical subspace 2, and based on the datA synchronization identifier being 0, not synchronize the written datA to the logical subspace 2'. LUN-B may then return the execution result of the write request to LUN-A, which returns it to the front-end application server.
If the LUN-B receives the read IO request, the LUN-B may obtain the logical address field carried in the read IO request. If the logical address field is located in the target logical address field (i.e. 60GB-100GB), LUN-B can determine whether there is a logical address mapping record corresponding to the logical address field. And if so, the LUN-B can read the data corresponding to the read IO request and return the read data to the application server. If not, the LUN-B can return a read error prompt message to the application server.
If the logical address field carried in the read IO request received by the LUN-B is located in the written address field (i.e., 0GB-60GB), the LUN-B may send the read IO request to the LUN-A. If the logical subspace corresponding to the logical address field carried by the read IO request can be normally accessed on the LUN-A, the LUN-A can read the datA corresponding to the read IO request and return the datA to the LUN-B, so that the read datA is returned to the application server by the LUN-B. If the logical subspace corresponding to the logical address field carried by the read IO request on the LUN-A has access failure, the LUN-A may return A read error prompting message to the LUN-B, so that the LUN-B returns the read error prompting message to the application server.
If the LUN-A receives the IO read request, the LUN-A may obtain the logical address field carried by the IO read request. If the logical address field is located in the written logical address field, the LUN-A may read datA corresponding to the IO read request. If the logical subspace corresponding to the logical address field carried by the read IO request can be normally accessed on the LUN-A, the LUN-A can read the datA corresponding to the read IO request and return the datA to the application server. If the logical subspace corresponding to the logical address field carried by the read IO request on the LUN-A fails to be accessed, the LUN-A can return A read error prompt message to the application server.
If the logical address field of the read IO request received by the LUN-A is located in the target logical address field, the LUN-A may forward the read IO request to the LUN-B. The LUN-B can determine whether there is a logical address mapping record corresponding to the logical address field carried by the read IO request. If the read IO request exists, the LUN-B can read the datA corresponding to the read IO request and return the read datA to the LUN-A, and the LUN-A returns the read datA to the application server. If not, the LUN-B can return A read error prompting message to the LUN-A, so that the LUN-A returns the read error prompting message to the application server. When the LUN-A detects self fault recovery, A datA synchronization instruction can be sent to the LUN-B. After receiving the data synchronization instruction, LUN-B may set the data synchronization flag of logical subspace 2 to 1, and then synchronize the written data to logical subspace 2' based on the data synchronization flag 1.
In the data synchronization process, if the LUN-B receives a write IO request, the LUN-B may write data carried by the write IO request into the logical subspace 2, and synchronize the data to the logical subspace 2'.
If the LUN-A receives the write IO request, the LUN-A may forward the write IO request to the LUN-B, and the LUN-B may write the datA carried by the write IO request into the logical subspace 2 and synchronize the datA to the logical subspace 2'.
In the data synchronization process, if the logical address field carried by the read IO request received by the LUN-B is located in the target logical address field (i.e., 60GB-100GB), the LUN-B may determine whether the logical address field exists in the logical address mapping record corresponding to the logical address field. And if so, the LUN-B can read the data corresponding to the read IO request and return the read data to the application server. If not, the LUN-B can return a read error prompt message to the application server.
If the logical address field carried in the read IO request is located in the written address field (i.e. 0GB-60GB), LUN-B may send the read IO request to LUN-A. The LUN-A can read the datA corresponding to the read IO request and return the datA to the LUN-B, so that the LUN-B returns the read datA to the application server.
In the datA synchronization process, if the logical address field carried by the read IO request received by the LUN-A is located in the target logical address field (i.e., 60GB-100GB), the LUN-A may forward the read IO request to the LUN-B. The LUN-B can determine whether there is a logical address mapping record corresponding to the logical address field carried by the read IO request. If the read IO request exists, the LUN-B can read the datA corresponding to the read IO request and return the read datA to the LUN-A, and the LUN-A returns the read datA to the application server. If not, the LUN-B can return A read error prompting message to the LUN-A, so that the LUN-A returns the read error prompting message to the application server.
If the logical address field carried by the read IO request received by the LUN-A is located in the written logical address field (namely 0GB-60GB), the LUN-A can read the datA corresponding to the read IO request and return the datA to the application server.
After the data synchronization is completed, the LUN-B may modify the state identifier of the logical subspace 2 from 3 to 2, so that it is converted from the temporary master state to the slave state, and release the physical space occupied by the LUN-B, and at the same time, close the automatic capacity expansion mechanism. LUN-B can merge logical subspace 1 and logical subspace 2 to restore the original state of the slave LUN storage unit.
And the LUN-B sends A recovery instruction to the LUN-A, and the LUN-A can modify the state identifier of the logic subspace 2 'from 4 to 1 after receiving the recovery instruction, so that the logic subspace 2' is converted from the temporary slave state to the master state, and the logic subspace 1 'and the logic subspace 2' are combined to recover the original state of the main LUN storage unit.
2) For device A failure
The device B can detect whether the device a is faulty or not through the heartbeat message with the device a. When the device B detects A failure of the device A, the device B may search for the LUN-B corresponding to the LUN-A through A locally recorded correspondence relationship, etc., of the slave LUN storage unit corresponding to the primary LUN storage unit in the device A. Device B may then send a state transition instruction to LUN-B.
After receiving the state conversion instruction, the LUN-B may add an identifier to be inverted to the LUN-B. After the mark to be inverted is added and the first write IO request is received, the logical space of the LUN-B may be divided based on the logical address carried in the write IO request.
The write IO request is assumed to carry a logical address of 60GB, and is assumed to be divided into two segments. It is assumed that the logical address fields corresponding to LUN-A and LUN-B are both 0GB-100 GB. The LUN-B may divide the logical address segment of the LUN-B into two address segments of 0GB-60GB and 60GB-100GB based on the logical address of 60GB, where the logical subspaces corresponding to the two address segments of 0GB-60GB and 60GB-100GB are the logical subspace 1 and the logical subspace 2. The LUN-B may use an address field with an address field start address equal to or greater than the logical address in the write IO request as a target address field, in this example, 60GB-100GB are the target address fields described above. The logical subspace 2 corresponding to the target address segment is the target logical subspace described above.
The LUN-B may modify the state identifier of the logical subspace 2 from 2 to 3, so that the target logical subspace is converted from the slave state to the temporary master state, and modify the value of the data synchronization identifier of the logical subspace to 0. LUN-B may clear the to-be-reversed flag. Meanwhile, LUN-B can open a capacity expansion mechanism for the target logical subspace. At this point, logical subspace 1 is still the slave state.
After the LUN-B receives the write IO request, the data carried by the write IO request may be written into the logical subspace 2, and based on the data synchronization identifier being 0, the written data is not synchronized to the logical subspace 2'.
If the LUN-B receives the read IO request, the LUN-B may obtain the logical address field carried in the read IO request. If the logical address field is located in the target logical address field (i.e. 60GB-100GB), LUN-B can determine whether there is a logical address mapping record corresponding to the logical address field. And if so, the LUN-B can read the data corresponding to the read IO request and return the read data to the application server. If not, the LUN-B can return a read error prompt message to the application server.
And if the logical address field carried in the read IO request is located in the written address field (namely 0GB-60GB), the LUN-B returns a read error prompt message to the application server.
When device B detects that device A fails back, LUN-B may perform state negotiations of the various logical subspaces with LUN-A.
For example, LUN-B may notify LUN-A of the logical address fields and states thereof corresponding to logical subspace 1 and logical subspace 2, and LUN-A may divide the local logical space into logical subspace 1 'and logical subspace 2' based on the notification, and the corresponding logical address fields are 0GB-60GB and 60GB-100GB, respectively. LUN-A may set the state identification of logical subspace 2 'to 4, so that it is the temporary slave state, and set the state identification of logical subspace 1' to 1, so that it is the master state. LUN-A may then send A datA synchronization instruction to LUN-B.
After receiving the data synchronization instruction, LUN-B may modify the data synchronization identifier of logical subspace 2 to 1, and then synchronize the written data to logical subspace 2' based on the data synchronization identifier being 1.
In the data synchronization process, if the LUN-B receives a write IO request, the LUN-B may write data carried by the write IO request into the logical subspace 2, and synchronize the data to the logical subspace 2'.
If the LUN-A receives the write IO request, the LUN-A may forward the write IO request to the LUN-B, and the LUN-B may write the datA carried by the write IO request into the logical subspace 2 and synchronize the datA to the logical subspace 2'.
In the data synchronization process, if the logical address field carried by the read IO request received by the LUN-B is located in the target logical address field (i.e., 60GB-100GB), the LUN-B may determine whether the logical address field exists in the logical address mapping record corresponding to the logical address field. And if so, the LUN-B can read the data corresponding to the read IO request and return the read data to the application server. If not, the LUN-B can return a read error prompt message to the application server.
If the logical address field carried in the read IO request is located in the written address field (i.e. 0GB-60GB), LUN-B may send the read IO request to LUN-A. The LUN-A can read the datA corresponding to the read IO request and return the datA to the LUN-B, so that the LUN-B returns the read datA to the application server.
In the datA synchronization process, if the logical address field carried by the read IO request received by the LUN-A is located in the target logical address field (i.e., 60GB-100GB), the LUN-A may forward the read IO request to the LUN-B. The LUN-B can determine whether there is a logical address mapping record corresponding to the logical address field carried by the read IO request. If the read IO request exists, the LUN-B can read the datA corresponding to the read IO request and return the read datA to the LUN-A, and the LUN-A returns the read datA to the application server. If not, the LUN-B can return A read error prompting message to the LUN-A, so that the LUN-A returns the read error prompting message to the application server.
If the logical address field carried by the read IO request received by the LUN-A is located in the written logical address field (namely 0GB-60GB), the LUN-A can read the datA corresponding to the read IO request and return the datA to the application server. After the data synchronization is completed, the LUN-B may modify the state identifier of the logical subspace 2 from 3 to 2, so that it is converted from the temporary master state to the slave state, and release the physical space occupied by the LUN-B, and at the same time, close the automatic capacity expansion mechanism. LUN-B can merge logical subspace 1 and logical subspace 2 to restore the original state of the slave LUN storage unit.
And the LUN-B sends A recovery instruction to the LUN-A, and the LUN-A can modify the state identifier of the logic subspace 2 'from 4 to 1 after receiving the recovery instruction, so that the logic subspace 2' is converted from the temporary slave state to the master state, and the logic subspace 1 'and the logic subspace 2' are combined to recover the original state of the main LUN storage unit.
The application provides a data protection method which can be applied to a double-active storage system.
When a write IO request issued by an application server is received, a master LUN storage unit in the dual active storage system processes the write IO request, and data carried in the write IO request is not synchronized to a slave LUN storage unit.
The slave LUN storage unit in the double-active storage system is configured as a Thin-LUN storage unit, after the failure of the main LUN storage unit or the storage device where the main LUN storage unit is located, the slave LUN storage unit can determine a target logic subspace on the LUN storage unit based on a logic address carried in a write IO request received after the failure, convert the state of the target logic subspace into a temporary main state, start an automatic capacity expansion mechanism for the target logic subspace, write data carried by the write IO request into the target logic subspace, and do not execute data synchronization. After fault recovery, the slave LUN storage unit triggers the data synchronization of the target logic subspace and the logic subspace which is converted into a temporary slave state and is located in the master LUN storage unit and corresponds to the target logic address field, and after the data synchronization is completed, the physical space occupied by the target logic subspace is released, and the local LUN storage unit and the master LUN storage unit are recovered.
On one hand, when the main LUN storage unit or the storage device where the main LUN storage unit is located is normal, only one copy of data carried by the write IO request is stored in the dual active storage system, and in the process of synchronizing the data after the failure recovery of the main LUN storage unit or the storage device where the main LUN storage unit is located, the dual active storage system only stores two copies of data carried by the write IO request.
On the other hand, the logical spaces of the master LUN storage unit and the slave LUN storage unit are divided into several logical subspaces, and each logical subspace corresponds to a dual active state. The mechanism for managing the LUN double-active state based on the logical subspace can enable the write IO request to be continuously written into the target logical subspace of the temporary main state in the slave LUN storage unit aiming at the write IO request after the main LUN storage unit or the storage equipment where the main LUN storage unit is located fails, so that the write IO request is successfully processed; meanwhile, for the IO read request, as long as the logical subspace of the main state in the main LUN storage unit can be accessed, the data can be read in real time, so that the problem that the data cannot be read from the space where the data is not written on the LUN storage unit, and the data can only be read after the main LUN storage unit or the storage equipment where the main LUN storage unit is located recovers and the data synchronization is completed is solved.
In a third aspect, the slave LUN storage unit is configured as a Thin-LUN storage unit, and after a target logic subspace in the slave LUN storage unit is changed into a temporary main state, an automatic capacity expansion mechanism may be enabled, the storage capacity may be expanded by applying for the storage space as needed, and after a failure recovery, the storage space occupied by the target logic subspace may be released after the data synchronization is performed on the target logic subspace in the temporary main state. By adopting the mechanism, the requirement of the LUN storage unit on the storage space can be reduced as much as possible, the waste of the storage space is reduced, the utilization rate of the storage space is improved, the data to be synchronized can be found quickly, and the efficiency of data synchronization is improved.
Corresponding to the embodiment of the data protection method, the application also provides an embodiment of a data protection device.
The embodiment of the data protection device can be applied to the storage equipment. The device embodiments may be implemented by software, or by hardware, or by a combination of hardware and software. Taking a software implementation as an example, as a logical device, the device is formed by reading a corresponding computer program instruction in the nonvolatile memory into the memory through the processor of the storage device where the device is located to operate. From a hardware aspect, as shown in fig. 4, the present application is a hardware structure diagram of a storage device where the data protection apparatus is located, except for the processor, the memory, the network interface, and the storage medium shown in fig. 4, the storage device where the apparatus is located in the embodiment may also include other hardware according to an actual function of the storage device, which is not described again.
The processor of the storage device may call machine-executable instructions stored in the storage medium corresponding to the data protection logic to perform the data protection method.
Referring to fig. 5, fig. 5 is a block diagram of a data protection device according to an exemplary embodiment of the present application. The device is applied to a slave logical unit number LUN storage unit in a double-active storage system in a sequential write mode, and the double-active storage system also comprises a master LUN storage unit; after the double-active storage system receives the write IO request, a main LUN storage unit in the double-active storage system processes the write IO request, and the main LUN storage unit does not synchronize data in the write IO request to the slave LUN storage unit; the slave LUN storage unit is preconfigured as a Thin logical unit number Thin-LUN storage unit.
Functionally divided, the data protection logic may be the data protection device, and may include a determination unit 510, a conversion unit 520, a synchronization unit 530, and a recovery unit 540.
After the main LUN storage unit or the storage device where the main LUN storage unit is located fails, the determining unit 510 determines a target logical subspace on the LUN storage unit based on a logical address carried in a write IO request received after the failure; the initial logical address of the target logical address segment corresponding to the target logical subspace is greater than or equal to the logical address carried in the write IO request;
a conversion unit 520, configured to convert the state of the target logic subspace into a temporary main state, start an automatic capacity expansion mechanism for the target logic subspace, write the data carried in the write IO request into the target logic subspace, and not perform data synchronization;
a synchronization unit 530, configured to trigger data synchronization between the target logical subspace and the logical subspace corresponding to the target logical address segment, which is converted into a temporary slave state, located in the main LUN storage unit after failure recovery;
and a restoring unit 540, configured to release the physical space occupied by the target logical sub-space after synchronization is completed, and restore the LUN storage unit and the main LUN storage unit.
In an optional implementation manner, the determining unit 510 is specifically configured to divide a logical space corresponding to the LUN storage unit into a plurality of logical subspaces based on a preset division rule, so that a plurality of logical address segments corresponding to the plurality of logical subspaces at least include a target logical address segment whose initial logical address is greater than or equal to a logical address carried in the write IO request; and determining the logic subspace corresponding to the target logic address segment as a target logic subspace.
In another optional implementation manner, the plurality of logical address segments at least include a written logical address segment whose ending logical address is smaller than a logical address carried in the write IO request; the state of the logic subspace on the main LUN storage unit corresponding to the written logic address field is a main state; the state of the logical subspace on the slave LUN storage unit corresponding to the written logical address field is a slave state;
the device further comprises:
the reading unit 550 is configured to, after receiving an IO reading request issued by an application server, acquire a logical address field carried by the IO reading request; if the obtained logical address field is in the written logical address field, returning a read error prompt message to an application server; or forwarding the read IO request to the main LUN storage unit, so that the main LUN storage unit reads corresponding data in the logic subspace of the main state corresponding to the written logic address field based on the logic address carried in the read IO request, and if the data is read, returning the read data to the slave LUN storage unit; if the data is not read, returning a reading error prompt message to the slave LUN storage unit; and after receiving the data or the reading error prompting message returned by the main LUN storage unit, returning the data or the reading error prompting message to an application server.
In another optional implementation manner, the reading unit 550 is further configured to, after receiving a read IO request issued by an application server, obtain a logical address field carried by the read IO request; if the obtained logical address field is in the target logical address field, judging whether a logical address mapping record corresponding to the logical address field exists or not; if so, reading data corresponding to the read IO request in the target logic subspace of the temporary main state, and returning the read data to the application server; and if not, returning reading error prompt information to the application server.
In another optional implementation manner, after receiving the read IO request, if the logical address segment carried by the read IO request is in the written address segment, the main LUN storage unit reads data corresponding to the read IO request, and if the logical address segment can be read, returns the read data to the application server; and if the data cannot be read, returning a read error prompt message to the application server.
In another optional implementation manner, after the main LUN storage unit receives the read IO request, if a logical address field carried by the read IO request is in a target logical address field, the read IO request is forwarded to the slave LUN storage unit, so that the slave LUN storage unit determines whether a logical address mapping record corresponding to the logical address field exists, if so, the slave LUN storage unit reads data in a target logical subspace of a temporary main state, and returns the read data to the main LUN storage unit, and the main LUN storage unit returns the data to the application server, and if not, the slave LUN storage unit returns a read error prompting message to the main LUN storage unit, and the main LUN storage unit returns the read error prompting message to the application server.
In another optional implementation manner, the restoring unit 540 is specifically configured to convert the target logical subspace of the temporary master state into a slave state, and merge several partitioned logical subspaces of consecutive slave states on the LUN storage unit; and informing the main LUN storage unit that the logical subspace of the temporary slave state is converted into the main state, so that the main LUN storage unit merges the logical subspaces of a plurality of continuous main states divided from the main LUN storage unit.
In another optional implementation manner, if the initial capacity of the logical subspace is zero, the automatic capacity expansion mechanism of the logical subspace is in an off state;
the device further comprises: a closing unit 560, configured to close the automatic capacity expansion mechanism after the target logical subspace of the temporary master state is converted into the slave state.
In another optional implementation manner, when the main LUN storage unit fails, after receiving a local state conversion notification sent by the temporary main LUN storage unit, the main LUN storage unit determines, based on a logical address in the write IO request carried in the local state conversion notification, a logical subspace corresponding to the target logical address field on the main LUN storage unit, and converts the state of the logical subspace into a temporary slave state.
In another optional implementation manner, when the storage device where the main LUN storage unit is located fails, after the failure of the storage device where the main LUN storage unit is located is recovered, the state of each logical subspace on the main LUN storage unit is respectively updated based on a negotiation result with the temporary main LUN storage unit for each logical subspace state, so that the state of the logical subspace on the main LUN storage unit corresponding to the target logical address is updated to a temporary slave state.
The implementation process of the functions and actions of each unit in the above device is specifically described in the implementation process of the corresponding step in the above method, and is not described herein again.
For the device embodiments, since they substantially correspond to the method embodiments, reference may be made to the partial description of the method embodiments for relevant points. The above-described embodiments of the apparatus are merely illustrative, and the units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the scheme of the application. One of ordinary skill in the art can understand and implement it without inventive effort.
The above description is only exemplary of the present application and should not be taken as limiting the present application, as any modification, equivalent replacement, or improvement made within the spirit and principle of the present application should be included in the scope of protection of the present application.
Claims (11)
1. A data protection method is characterized in that the method is applied to a slave logical unit number LUN storage unit in a double-active storage system in a sequential write mode, and the double-active storage system also comprises a master LUN storage unit; after the double-active storage system receives the write IO request, a main LUN storage unit in the double-active storage system processes the write IO request, and the main LUN storage unit does not synchronize data in the write IO request to the slave LUN storage unit; the slave LUN storage unit is preconfigured as a Thin logical unit number Thin-LUN storage unit, the method comprising:
after the main LUN storage unit or the storage equipment where the main LUN storage unit is located fails, determining a target logic subspace on the slave LUN storage unit based on a logic address carried in a write IO request received after the failure; the initial logical address of the target logical address segment corresponding to the target logical subspace is greater than or equal to the logical address carried in the write IO request;
converting the state of the target logic subspace into a temporary main state, starting an automatic capacity expansion mechanism for the target logic subspace, writing the data carried by the write IO request into the target logic subspace, and not executing data synchronization;
after fault recovery, triggering the data synchronization of the target logic subspace and the logic subspace which is converted into a temporary slave state and is located in the main LUN storage unit and corresponding to the target logic address field, releasing the physical space occupied by the target logic subspace after the synchronization is completed, and recovering the slave LUN storage unit and the main LUN storage unit.
2. The method according to claim 1, wherein the determining the target logical subspace on the current LUN storage unit comprises:
dividing the logical space corresponding to the slave LUN storage unit into a plurality of logical subspaces based on a preset division rule, so that a plurality of logical address segments corresponding to the plurality of logical subspaces at least comprise a target logical address segment of which the initial logical address is greater than or equal to the logical address carried in the write IO request;
and determining the logic subspace corresponding to the target logic address segment as a target logic subspace.
3. The method of claim 2, wherein the plurality of logical address segments at least include a written logical address segment having an ending logical address smaller than a logical address carried in the write IO request; the state of the logic subspace on the main LUN storage unit corresponding to the written logic address field is a main state; the state of the logical subspace on the slave LUN storage unit corresponding to the written logical address field is a slave state;
the method further comprises the following steps:
after receiving an IO reading request issued by an application server, acquiring a logical address field carried by the IO reading request;
if the obtained logical address field is in the written logical address field, returning a read error prompt message to an application server; or
Forwarding the read IO request to the main LUN storage unit, so that the main LUN storage unit reads corresponding data in a logic subspace of a main state corresponding to the written logic address field based on a logic address carried in the read IO request, and if the data is read, returning the read data to the slave LUN storage unit; if the data is not read, returning a reading error prompt message to the slave LUN storage unit;
and after receiving the data or the reading error prompting message returned by the main LUN storage unit, returning the data or the reading error prompting message to an application server.
4. The method of claim 3, further comprising:
after receiving an IO reading request issued by an application server, acquiring a logical address field carried by the IO reading request;
if the obtained logical address field is in the target logical address field, judging whether a logical address mapping record corresponding to the logical address field exists or not;
if so, reading data corresponding to the read IO request in the target logic subspace of the temporary main state, and returning the read data to the application server;
and if not, returning reading error prompt information to the application server.
5. The method according to claim 3, wherein after receiving a read IO request, the main LUN storage unit reads data corresponding to the read IO request if a logical address field carried by the read IO request is in the written address field, and returns the read data to the application server if the data can be read; and if the data cannot be read, returning a read error prompt message to the application server.
6. The method according to claim 3, wherein after the main LUN storage unit receives the read IO request, if the logical address field carried by the read IO request is in the target logical address field, the read IO request is forwarded to the slave LUN storage unit, so that the slave LUN storage unit determines whether there is a logical address mapping record corresponding to the logical address field, if so, the slave LUN storage unit reads data in the target logical subspace of the temporary main state, and returns the read data to the main LUN storage unit, and the main LUN storage unit returns the data to the application server, and if not, the slave LUN storage unit returns a read error prompt message to the main LUN storage unit, and the main LUN storage unit returns the read error prompt message to the application server.
7. The method of claim 1, wherein restoring the LUN-storage unit and the primary LUN-storage unit comprises:
converting the target logic subspace of the temporary main state into a slave state, and merging a plurality of divided logic subspaces of the slave states on the LUN storage unit; and the number of the first and second groups,
and informing the main LUN storage unit of the conversion of the logical subspace of the temporary slave state into the main state, so that the main LUN storage unit can combine the logical subspaces of a plurality of continuous main states divided on the main LUN storage unit.
8. The method of claim 7, wherein if the initial capacity of the logical subspace is zero, the automatic capacity expansion mechanism of the logical subspace is in an off state;
the method further comprises the following steps:
and after the target logic subspace of the temporary main state is converted into the slave state, closing the automatic capacity expansion mechanism.
9. The method according to claim 1, wherein when the primary LUN storage unit fails, after receiving a local state transition notification sent by the temporary primary LUN storage unit, the primary LUN storage unit determines a logical subspace corresponding to the target logical address segment on the primary LUN storage unit based on a logical address in the write IO request carried in the local state transition notification, and transitions the state of the logical subspace to a temporary slave state.
10. The method according to claim 1, wherein when the storage device where the main LUN storage unit is located fails, after the failure of the storage device where the main LUN storage unit is located recovers, the main LUN storage unit updates the state of each logical subspace on the main LUN storage unit based on the negotiation result of the temporary main LUN storage unit for the state of each logical subspace, so that the state of the logical subspace corresponding to the target logical address on the main LUN storage unit is updated to a temporary slave state.
11. A storage device, comprising a processor and a storage medium, the processor invoking machine executable instructions corresponding to data protection logic stored on the storage medium, the processor being caused to perform the method of claims 1-10.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710512405.7A CN107329859B (en) | 2017-06-29 | 2017-06-29 | Data protection method and storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710512405.7A CN107329859B (en) | 2017-06-29 | 2017-06-29 | Data protection method and storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107329859A CN107329859A (en) | 2017-11-07 |
CN107329859B true CN107329859B (en) | 2020-06-30 |
Family
ID=60198151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710512405.7A Active CN107329859B (en) | 2017-06-29 | 2017-06-29 | Data protection method and storage device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107329859B (en) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600040B (en) * | 2018-03-16 | 2022-03-15 | 国电南瑞科技股份有限公司 | Distributed system node fault detection method based on high-availability detection node |
CN108762668B (en) * | 2018-05-07 | 2021-03-09 | 杭州宏杉科技股份有限公司 | Method and device for processing write conflict |
EP3796149B1 (en) | 2018-07-17 | 2024-02-21 | Huawei Technologies Co., Ltd. | Method and device for processing i/o request |
CN109445707A (en) * | 2018-11-01 | 2019-03-08 | 新疆凯力智慧电子科技有限公司 | Processing method and system when a kind of hard disk write operation fails |
CN112559388B (en) * | 2020-12-14 | 2022-07-12 | 杭州宏杉科技股份有限公司 | Data caching method and device |
CN113190177B (en) * | 2021-05-12 | 2023-07-14 | 西安雷风电子科技有限公司 | Data storage method, terminal equipment, server and system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747835B1 (en) * | 2005-06-10 | 2010-06-29 | American Megatrends, Inc. | Method, system, and apparatus for expanding storage capacity in a data storage system |
CN103561064B (en) * | 2013-10-22 | 2016-12-07 | 华为技术有限公司 | A kind of method and apparatus of LUN switching |
CN105404565B (en) * | 2014-07-22 | 2019-01-29 | 杭州宏杉科技股份有限公司 | A kind of dual-active data guard method and device |
CN106331166B (en) * | 2016-10-11 | 2019-09-06 | 杭州宏杉科技股份有限公司 | A kind of access method and device of storage resource |
-
2017
- 2017-06-29 CN CN201710512405.7A patent/CN107329859B/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN107329859A (en) | 2017-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107329859B (en) | Data protection method and storage device | |
US10795788B2 (en) | Remote data replication method and system | |
EP3620905B1 (en) | Method and device for identifying osd sub-health, and data storage system | |
CN202798798U (en) | High availability system based on cloud computing technology | |
US8464101B1 (en) | CAS command network replication | |
RU2596585C2 (en) | Method for sending data, data receiving method and data storage device | |
CN102891849B (en) | Service data synchronization method, data recovery method, data recovery device and network device | |
CN106776130B (en) | Log recovery method, storage device and storage node | |
CN106062717A (en) | Distributed storage replication system and method | |
CN104778102A (en) | Master-slave switching method and system | |
US9525733B2 (en) | Method and system for data synchronization | |
CN109710456B (en) | Data recovery method and device | |
US11748215B2 (en) | Log management method, server, and database system | |
US8527454B2 (en) | Data replication using a shared resource | |
US20230281167A1 (en) | Hybrid synchronization using a shadow component | |
CN107729515B (en) | Data synchronization method, device and storage medium | |
WO2017014814A1 (en) | Replicating memory volumes | |
CN106873902B (en) | File storage system, data scheduling method and data node | |
CN109960602B (en) | Information management method, device, equipment and medium | |
CN106201772A (en) | The backup of a kind of operating system based on data center, restoration methods and device | |
CN105323271B (en) | Cloud computing system and processing method and device thereof | |
US20210240351A1 (en) | Remote copy system and remote copy management method | |
WO2021082925A1 (en) | Transaction processing method and apparatus | |
CN107181608B (en) | Method for recovering service and improving performance and operation and maintenance management system | |
CN109165117B (en) | Data processing method and system |
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 |