Active-active storage system and data processing method thereof

By employing a shared file system and virtual node management in an active-active storage system, the challenges of resource utilization and management complexity in NAS clusters are addressed, resulting in improved efficiency and reliability.

JP7618023B2Active Publication Date: 2025-01-20HUAWEI TECH CO LTD
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023516240
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-12-30
Filing Date
2021-09-11
Publication Date
2025-01-20
Estimated Expiration
2041-09-11

AI Technical Summary

Technical Problem

Existing network storage clusters, such as NAS clusters, cannot implement active-active mode due to the need for each storage device to have an independent file system, leading to low resource utilization and complex management, as well as inefficient client access.

Method used

Implementing an active-active storage system where both storage devices share the same file system, utilize virtual nodes for resource allocation, and maintain a global view to manage computing resources, allowing seamless access and backup across devices.

Benefits of technology

This approach enhances resource utilization, simplifies management, and improves client access efficiency while ensuring uninterrupted service through data backup and failover capabilities.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007618023000001
    Figure 0007618023000001
  • Figure 0007618023000002
    Figure 0007618023000002
  • Figure 0007618023000003
    Figure 0007618023000003
Patent Text Reader

Abstract

[0009] An embodiment of the present application provides an active-active storage system and a data processing method based on the active-active storage system. The active-active storage system includes a first storage device and a second storage device. The first storage device is configured to receive data of a first file sent to a file system by a client cluster, store the data of the first file, and send a first copy of the data of the first file to the second storage device. The second storage device is configured to receive data of a second file sent to the file system by the client cluster, store the data of the second file, and send a second copy of the data of the second file to the first storage device. In an embodiment of the present application, both the first storage device and the second storage device can store file data using the same file system and back up file data of peer ends to implement an active-active storage system in active-active mode.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present application relates to the field of storage, and in particular to an active-active storage system and its data processing method. [Background technology]

[0002] In the case of a network storage cluster, for example, a Network Attached Storage (NAS) cluster, when active-active is implemented, when write data is received, the first storage device writes the received write data locally and synchronizes the received write data to the peer storage device as backup data. In this way, when the first storage device fails or is disconnected from the second storage device, the second storage device can take over the service of the first storage device using backup data to ensure that the service is not interrupted, i.e., to implement active-active in active-passive mode. However, active-active in active-active mode cannot be implemented. Summary of the Invention

[0003] The present application provides an active-active storage system and a method for implementing an active-active storage system to implement the active-active mode of active-active such that storage devices in the active-active storage system can access data in the same file system. [Means for solving the problem]

[0004] A first aspect of the present application provides an active-active storage system. The active-active storage system includes a first storage device and a second storage device. The first storage device is configured to receive data of a first file sent to the file system by a client cluster, store the data of the first file, and send a first copy data of the data of the first file to the second storage device. The second storage device is configured to receive data of a second file sent to the file system by the client cluster, store the data of the second file, and send a second copy data of the data of the second file to the first storage device.

[0005] Both the first storage device and the second storage device can use the same file system to store file data and back up the file data of the peer end to implement an active-active storage system in active-active mode. A traditional NAS device also has a file system. However, the two storage devices in active-passive mode each have an independent file system. Both of the two independent file systems need to occupy the computing / storage resources of the storage device, resulting in low resource utilization and complex management. This is not real active-active. In this application, the first storage device and the second storage device have the same file system to improve resource utilization and reduce management complexity. In addition, when a client sends an access request to the storage device, the client also sends a request to the same file system. Therefore, the access efficiency of the client is also improved.

[0006] In a possible implementation of the first aspect of the present application, the active-active storage system further includes a virtual node set, the virtual node set including a plurality of virtual nodes, and computing resources are allocated to each virtual node, the computing resources coming from a physical node in the first storage device or the second storage device.

[0007] The physical node may be a control node of the first storage device or the second storage device, or may be a CPU in the control node or a core in the CPU. The virtual node is a logical concept and is used as a resource allocation medium to separate computing resources in the system. In this resource management method, independent computing resources are allocated to each virtual node, and the computing resources used by files / directories corresponding to different virtual nodes are also independent. This facilitates capacity expansion or reduction of the active-active storage system, and also facilitates the implementation of a lock-free mechanism between computing resources, thereby reducing complexity.

[0008] In a possible implementation of the first aspect of the present application, the active-active storage system further includes a management device. The management device is further configured to create a global view. The global view is used to record a correspondence between each virtual node and a computing resource allocated to the virtual node. The management device is further configured to transmit the global view to the first storage device and the second storage device. The first storage device and the second storage device store the global view.

[0009] The management device may be used as a software module and installed in the first storage device or the second storage device, or may be an independent device. When the management device is used as a software module installed in the first storage device, after generating a global view, the management device transmits the global view to the first storage device and the second storage device for storage by interacting with other modules in the storage devices.

[0010] The virtual nodes in the virtual node set are separately presented to an application in the first storage device and an application in the second storage device in a global view manner, and the application in the first storage device and the application in the second storage device use the physical nodes of the peer end as resources at the local end for use, which makes interaction with the physical nodes of the peer end more convenient.

[0011] In a possible implementation of the first aspect of the present application, when storing data of the first file, the first storage device determines a first virtual node corresponding to the first file based on an address of the data of the first file, determines computing resources allocated to the first virtual node based on the first virtual node and the global view, and transmits the data of the first file to a physical node based on the computing resources allocated to the first virtual node so that the physical node corresponding to the computing resources stores the data of the first file in a memory of the physical node.

[0012] Using the virtual node set provided by the global view, the first storage device can receive data of a file belonging to a physical node corresponding to any virtual node in the virtual node set, and transfer the received data of the file to the physical node to which the file belongs for processing. In this way, when writing data, a user does not need to be aware of the actual storage location of the file, and can operate the file using any storage device.

[0013] In a possible implementation of the first aspect of the present application, the first virtual node has at least one backup virtual node, and the physical node corresponding to the first virtual node and the physical node corresponding to the backup virtual node are located in different storage devices. After determining the first virtual node corresponding to the first file, the first storage device further determines a backup virtual node corresponding to the first virtual node, determines a physical node corresponding to the backup virtual node based on the backup virtual node and a global view, and sends the first copy data to the physical node corresponding to the backup virtual node, so as to make the physical node corresponding to the backup virtual node store the first copy data in the physical node.

[0014] The data of the file written to the first storage device is backed up to the second storage device, and after the first storage device fails or is disconnected from the second storage device, the service of the first storage device can be taken over using the backup data to improve the reliability of the system.

[0015] In a possible implementation of the first aspect of the present application, files and directories contained in the file system are distributed across physical nodes corresponding to multiple virtual nodes in a virtual node set.

[0016] The files and directories included in the file system are distributed to the physical nodes corresponding to the multiple virtual nodes in the virtual node set, specifically, the files and directories included in the file system are distributed to the multiple physical nodes for processing. In this way, the physical resources of the first storage device and the second storage device can be fully used to improve file processing efficiency.

[0017] In a possible implementation of the first aspect of the present application, one or more shard identifiers are set for each virtual node in the virtual node set. One shard identifier is assigned to each directory and file in the file system. The physical nodes in the first storage device and the second storage device distribute the directories and files to the physical nodes corresponding to the virtual node to which the shard identifier belongs based on the shard identifier of each directory and file.

[0018] Files and directories contained in the file system can be conveniently distributed across all physical nodes of the first storage device and the second storage device using the shard identifiers.

[0019] In a possible implementation of the first aspect of the present application, a first physical node in a first storage device receives a request to create a first file, and selects one shard identifier for the first file from one or more shard identifiers configured in a virtual node corresponding to the first physical node; 1. A first file is configured to be created in the storage device.

[0020] When a file is created, to improve processing efficiency, the file is assigned the virtual node shard identifier of the corresponding physical node that received the file creation request so that the file creation request is not forwarded to another physical node.

[0021] In a possible implementation of the first aspect of the present application, when the second storage device fails or the link between the first storage device and the second storage device is severed, the first storage device is further configured to restore the second file based on a second copy data of data of the second file and take over services transmitted to the second storage device by the client cluster.

[0022] After the first storage device fails or is disconnected from the second storage device, the service of the first storage device can be taken over using backup data to improve system reliability.

[0023] In a possible implementation of the first aspect of the present application, the first storage device is further configured to remove, from the global view, a virtual node corresponding to a computing resource of the second storage device.

[0024] In a possible implementation of the first aspect of the present application, the first storage device further comprises a first file system and the second storage device further comprises a second file system.

[0025] To provide multiple ways for a user to access data in a storage device, a local file system and a cluster file system operate simultaneously on the same storage device.

[0026] A second aspect of the present application provides a method for implementing an active-active file system, the steps of which are used to implement all the functions performed by a first storage device and a second storage device in the active-active storage system provided in the first aspect of the present application.

[0027] A third aspect of the present application provides a management device. The management device is configured to create a global view. The global view is used to record a correspondence between each virtual node and a computing resource allocated to the virtual node. The management device is further configured to transmit the global view to a first storage device and a second storage device for storage.

[0028] The management device is configured to monitor changes in the virtual nodes in the first storage device and the second storage device and update the global view when it detects that a new virtual node has been added to the virtual set or when a virtual node has been removed, e.g., when a physical node corresponding to the virtual node fails.

[0029] The monitoring module can monitor changes in the virtual nodes in the virtual node set in real time to update the global view in a timely manner.

[0030] A fourth aspect of the present application provides a storage medium configured to store program instructions for use in implementing functions provided by the management device provided in the third aspect.

[0031] In order to describe the technical solutions in the embodiments of the present application more clearly, the following will briefly describe the accompanying drawings which are used in describing the embodiments or the prior art. [Brief description of the drawings]

[0032] [Figure 1] FIG. 2 is an architecture diagram of an active-active storage system in active-passive mode. [Diagram 2] FIG. 2 is an architecture diagram of an active-active storage system in active-active mode according to an embodiment of the present application. [Figure 3A]1 is a flowchart of a method for establishing an active-active storage system according to an embodiment of the present application. [Figure 3B] FIG. 2 is a schematic diagram of parameters generated in the process of building an active-active storage system according to an embodiment of the present application. [Figure 4A] 1 is a flowchart of establishing a file system in an active-active storage system according to an embodiment of the present application. [Figure 4B] FIG. 1 is a schematic diagram of an active-active system constructed according to an embodiment of the present application. [Diagram 5] 2 is a flowchart of a method for creating a directory in a file system according to an embodiment of the present application. [Figure 6] 2 is a flowchart of a method for querying a directory in a file system according to an embodiment of the present application. [Figure 7] 2 is a flowchart of a method for creating a file in a file system according to an embodiment of the present application. [Figure 8] 2 is a flowchart of a method for writing data to a file in a file system according to an embodiment of the present application. [Figure 9] 2 is a flowchart of a method for writing data to a file in a file system according to an embodiment of the present application. [Figure 10] FIG. 2 is a schematic diagram of a first storage device taking over the services of a second storage device according to an embodiment of the present application; [Figure 11] 2 is a flowchart of a method for taking over the service of a second storage device by a first storage device according to an embodiment of the present application. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0033] The following clearly and completely describes the technical solutions in the embodiments of the present application with reference to the accompanying drawings in the embodiments of the present application. It is obvious that the described embodiments are only a part, but not all, of the embodiments of the present application.

[0034] FIG. 1 is a schematic architecture diagram of an active-active system in active-passive mode. The system 10 includes a first storage device 100 and a second storage device 200. A first file system 102 is arranged on a control node 101 of the first storage device 100 (the first storage device may include multiple control nodes, and for ease of explanation, only one control node is used as an example for explanation), and a second file system 202 is arranged on a control node 201 of the second storage device 200 (the second storage device may also include multiple control nodes, and for ease of explanation, only one control node is used as an example for explanation). After a first client 300 is connected to the first storage device 100, the first storage device 100 mounts the first file system 102 on the first client 300. After a second client 400 is connected to the second storage device 200, the second storage device 200 mounts the second file system 202 on the second client 400. Each file system has a root directory. When a storage device mounts a file system to a client, it means that the storage device provides the root directory of the file system to the client, and the client sets the root directory of the file system to the client's file system, so that the client can obtain the root directory of the file system of the storage device to access the file system of the storage device based on the root directory of the file system of the storage device. In this way, after the first file system 102 is mounted to the first client 300, the first client 300 uses the first file system 102 to read and write data, and the written data is stored as local data 103. In addition, the first storage device 100 further stores backup data of the second storage device 200, i.e., peer backup data 104.Similarly, the second client 400 reads and writes data using the second file system 202, and the write data is stored as local data 203. In addition, the second storage device 200 further stores backup data of the first storage device 100, i.e., peer backup data 204. In this way, after the first storage device 100 fails or the link between the first storage device 100 and the second client is disconnected, the second client can take over the service of the first client 300 using the peer backup data 204. In other words, an active-active in active-passive mode is implemented. However, the active-active system 1 in the active-passive mode is not necessarily a system that uses the peer backup data 204. 0 When both the first storage device 100 and the second storage device 200 are operating normally, the first client 300 can only access data in the first storage device 100 using the first file system and cannot access data in the second storage device 200, and the second client 400 can only access data in the second storage device 200 using the second file system and cannot access data in the first storage device 100. In other words, the activeness-activeness of the Active-Active mode cannot be implemented.

[0035] In the technical solution provided in the embodiment of the present application, a global view is set. The global view is a set of virtual nodes, and computing resources are allocated to each virtual node in the global view. The computing resources come from a physical node of a first storage device and a physical node of a second storage device, and the physical node may be a controller in the first storage device and a controller in the second storage device, or a CPU in the controller, or a core in the CPU, or a server in a distributed storage system. In the embodiment of the present application, each physical node can obtain a global view. In addition, each physical node further uses the same file system. In this way, the first client connected to the first storage device and the second client connected to the second storage device mount the same file system. As a result, the first client can access data belonging to the file system in the second storage device using the file system and the global view. The following will describe in detail the solution provided in the embodiment of the present application with reference to the accompanying drawings.

[0036] 2 is an architecture diagram of an active-active system 500 in active-active mode according to an embodiment of the present application. The system 500 includes a first storage device 600 and a second storage device 700. The first storage device 600 includes a physical node A and a physical node B. The second storage device 700 includes a physical node C and a physical node D. In practical application, the first storage device 600 and the second storage device 700 may each include more physical nodes. For ease of explanation, in this embodiment, only an example in which each storage device includes two physical nodes is used for explanation. The first storage device 600 and the second storage device 700 each include a persistent storage device 601 and a persistent storage device 701, which include multiple storage disks, configured to persistently store data. Based on the physical storage space provided by the storage disks of the persistent storage device 601 and the persistent storage device 701, the first storage device 600 and the second storage device 700 respectively create a first volume 609 and a second volume 703. The first storage device 600 and the second storage device 700 may respectively store data in the persistent storage device 601 and the persistent storage device 701 based on the first volume 609 and the second volume 703. For example, the storage disks may be persistent storage media, such as a solid state disk (SSD) or a hard disk drive (HDD).

[0037] The structures of physical node A, physical node B, physical node C, and physical node D are the same. In this embodiment of the present application, only the structure of node A is used as an example for explanation. Physical node A includes a processor 602 and a memory 603. The memory 603 stores application program instructions (not shown) and data generated in the operation process of the processor. The processor 602 executes application program instructions to implement the active-active function of the Active-Active mode provided in this embodiment of the present application. In addition to the first file system 608, the memory 603 further stores a global view 604, a file system 605, cache data 606, and backup data 607. The function of the first file system 608 is the same as that of the first file system 102 in FIG. 1. The details will not be described again here. In other words, in this embodiment of the present application, each physical node includes two file systems, one is a file system shared by all physical nodes, and the other is a file system of each physical node. A detailed description of other data in memory 603 is provided with reference to methods for implementing the activity-activity, such as the flow charts shown in Figures 5 to 9. A first client 800 is connected to the first storage device 600 to access data in the first storage device 600, and a second client 9 00 is the second storage device 7 A second storage device to access the data in 7 It is connected to 00.

[0038] The following describes a method for implementing the activeness-activeness of the active-active mode according to an embodiment of the present application with reference to FIG. 3A, FIG. 4A, and the flowcharts of FIG. 5 to FIG.

[0039] First, FIG. 3A is a flowchart of a method for establishing a global view according to one embodiment of the present application.

[0040] Step S301: The physical node A of the first storage device 600 receives a virtual cluster establishment request sent by a client.

[0041] When an active-active system needs to be constructed, a global view is established, and a user can use a client to send a global view establishment request to the first storage device 600. The first storage device is a primary array, and physical node A in the first storage device 600 is a primary node. In this case, physical node A processes the request.

[0042] Step S302: Physical node A establishes a global view 604, and synchronizes the established global view 604 with a physical node corresponding to another virtual node in the global view.

[0043] After the first storage device 600 establishes a network connection with the second storage device 700, the first storage device 600 obtains the identifier of each physical node in the second storage device 700 and the IP address of each physical node. When the global view 604 is established, node A allocates a virtual identifier to each physical node in the first storage device 600 and the second storage device 700 to identify a virtual node, and establishes a global view to record the virtual identifier of the virtual node. The computing resource of each physical node, for example, a processor resource or a memory resource, is the computing resource allocated to the virtual node. In another embodiment, in addition to the computing resource, another physical resource, for example, a bandwidth, may be further allocated to each virtual node. In this embodiment of the present application, the physical resources allocated to all virtual nodes are independent of each other. In this way, capacity expansion can be more convenient for the storage device. For example, when a new physical resource is added to the storage device, a new virtual node is generated based on the new physical resource to increase the number of virtual nodes, and the newly added virtual node is added to the global view. In the distributed storage, the added servers are used as new physical resources, and virtual nodes are established based on the added servers to increase the number of virtual nodes in the global view. The established global view is shown as Vcluster in FIG. 3B. For example, the physical nodes A and B in the first storage device 600 are assigned virtual identifiers Vnode A and Vnode B, and the physical nodes C and D in the second storage device 700 are assigned virtual identifiers Vnode C and Vnode D. After the global view 604 is generated, node A stores the global view 604 in memory 603 and persistent storage device 601, and then synchronizes the node set table 604 to the physical nodes corresponding to other virtual nodes (physical nodes B, C, and D) and the persistent storage medium 701 of the second storage device 700.

[0044] Step S303: Physical node A generates a shard view based on the node set, and synchronizes the shard view to a physical node corresponding to another virtual node in the virtual node cluster.

[0045] In this embodiment of the present application, a preset number of shards, for example 4096 shards, is set in a virtual cluster, and these shards are evenly allocated to all virtual nodes in the global view 604, that is, a shard view is generated. The generated shard view is shown as a shard view in FIG. 3B. The shards are configured to distribute and store directories and files of the file system 605 to physical nodes corresponding to all virtual nodes in the global view 604. The specific function of the shard view will be described in detail below. After the shard view is generated, the physical node A stores the shard view in the local memory 603 and the persistent storage medium 601, and synchronizes the shard view to the physical nodes corresponding to other virtual nodes (physical nodes B, C, and D) and the persistent storage medium 701 of the second storage device 700.

[0046] Step S30 4 : Physical node A generates a data backup policy and synchronizes the data backup policy to a physical node corresponding to another virtual node in the virtual node cluster.

[0047] In order to ensure the reliability of data and prevent data loss after a device failure, in this embodiment of the present application, a data backup policy can be set, that is, the generated data is backed up to multiple nodes. The backup policy in this embodiment of the present application is to back up three copies of data, two copies are stored in two local physical nodes, and the remaining one copy is stored in a physical node of a remote storage device. Specifically, in the backup policy shown in FIG. 3B, a group of backup nodes is set for each virtual node. For example, the backup nodes corresponding to virtual node Vnode A are set to virtual nodes VnodeB and VnodeC, the virtual nodes corresponding to virtual node VnodeB are set to VnodeA and VnodeD, and the virtual node Vnode C The virtual nodes corresponding to virtual node VnodeA are set to VnodeA and VnodeD, and the virtual nodes corresponding to virtual node VnodeD are set to VnodeC and VnodeB. After the backup policy is generated, node A stores the backup policy in its local memory 603 and persistent storage device 601, and synchronizes the backup policy to the persistent storage device 701 of the second storage device 700 and to physical nodes corresponding to other virtual nodes in the global view.

[0048] In FIG. 3A, the establishment of the virtual cluster is performed by a management module. In FIG. 3A and FIG. 4A, an example in which the management module is located in the first storage device is used for explanation. After generating the file system and the global view, the management module may send the generated file system and global view to the first storage device and the second storage device for storage. In another embodiment, the management module may be instead located in an independent third-party management device. After generating the file system and the global view, the third-party management device sends the file system and the global view to the first storage device and the second storage device for storage, so that each physical node can obtain the global view.

[0049] During operation of the established virtual cluster, the monitoring module monitors changes in the virtual nodes in the first storage device and the second storage device. When the monitoring module detects that a new virtual node is added to the virtual cluster or when a virtual node is removed, for example, when a physical node corresponding to the virtual node fails, it notifies the management module to update the global view. The monitoring module may be located in a third-party management device, or may be located in the first storage device or the second storage device. The first storage device acts as a primary storage device, and the second storage device sends the monitored changes to the first storage device, and the management module in the first storage device updates the global view. In this way, the establishment of the virtual node cluster can be accomplished. After the virtual node cluster is established, the first storage device 600 and the second storage device 700 may establish a file system based on a client's request. Details are shown in the flowchart of FIG. 4A.

[0050] Step S401: Physical node A receives a file system creation request.

[0051] The first client 800 may send a file system creation request to the first storage device 600, or may send a file system creation request to the second storage device 700. If the first storage device 600 receives the file system creation request, physical node A processes the file system creation request. If the second storage device 700 receives the file system creation request, the second storage device 700 forwards the file system creation request to physical node A of the first storage device 600 for processing.

[0052] Step S402: Physical node A sets the root directory of the file system.

[0053] When setting a root directory, the primary node first generates a mark for the root directory. Generally, the default mark for the root directory is " / ". Then, identification information and a shard ID are allocated to the root directory. Since the shard view created by the primary node is synchronized to all nodes, the primary node obtains the shard view from the memory of the primary node and selects the shard ID of the root directory from the shard view. As shown in FIG. 3B, in the shard view, multiple shard IDs are allocated to each virtual node. Therefore, in order to reduce cross-network and cross-node access, the shard ID of the shard ID included in the virtual node Vnode A corresponding to the physical node A is preferably allocated to the root directory. The root directory is not allocated a shard ID. Therefore, for example, shard 0 may be selected as the shard ID of the root directory.

[0054] Step S403: The physical node A sends a mount command of the file system to the first client 800.

[0055] After the root directory of the cluster file system is generated, to allow the first client 800 to access the file system, the physical node A mounts the file system on the file system of the first client 800. For example, the physical node A uses a mount command to provide the root directory of the file system to the first client 800. When sending the mount command, the physical node A carries parameter information of the root directory. The parameter information of the root directory is handle information of the root directory, and the handle information carries a shard ID and identification information of the root directory.

[0056] Step S404: The first client 800 mounts the cluster file system into the file system of the first client 800 according to the mount command.

[0057] After receiving the parameter information of the root directory of the file system, the first client 800 creates a mount point on the file system of the first client and records the parameter information of the root directory of the file system in the mount point. A mount point is a segment of storage space.

[0058] Thus, in addition to performing data transfer with the first storage device 600 using the first file system 608, the first client 800 may instead perform data transfer with the first storage device 600 using the file system 605. Storage Devices 6 00 and data transmission can be performed. Users can select the file system they need to access based on the actual requirements.

[0059] Step S405: Physical node A allocates the virtual volume to the file system.

[0060] A virtual volume Vvloume 0 is allocated to each newly created file system and is used to write data written by the first client or the second client to the file system. Step S406: Physical node A creates a mirror volume pair of the virtual volumes.

[0061] After the virtual volume Vvolume 0 is established, the physical node A first creates a local volume based on the persistent storage medium 601, e.g., the first volume in FIG. 2, and then creates a file system of the second storage device 700, e.g., the second volume in FIG. 2. Inside the The second storage device 700 is then requested to create a mirror volume of the first volume.

[0062] Step S407: Physical node A generates a flushing policy by recording the virtual volumes and the corresponding mirror volume pairs.

[0063] The generated flushing policy is shown as the flushing policy shown in FIG. 3B, and the virtual volume of the file system corresponds to a mirror volume pair (a first volume and a second volume). According to the flushing policy shown in FIG. 3B, the data of the file system cached in the memory may be stored separately in the persistent storage medium 601 of the first storage device 600 and the persistent storage medium 701 of the second storage device 700 to ensure the reliability of the data. Specifically, how to write the data in the memory to the persistent storage medium 601 and the persistent storage medium 701 according to the flushing policy is described in detail in FIG. 9.

[0064] After the flushing policy is generated, physical node A stores the file system flushing policy in local memory 603 and persistent storage device 601, and synchronizes the file system flushing policy to persistent storage device 701 of second storage device 700 and to physical nodes corresponding to other virtual nodes in the global view.

[0065] Figures 3A and 4 A By performing the method, the creation of an active-active file system in an Active-Active mode can be accomplished. A schematic diagram of an active-active storage system in which a file system has been created, i.e., a cross-device file system, a virtual volume, a shard view, and a global view have been generated on a first storage device and a second storage device, is shown in FIG. 4B.

[0066] After an active-active storage system in active-active mode is created, directories and files can be created and accessed based on the file system.

[0067] First, the process of creating a directory under a file system will be described with reference to the flowchart shown in FIG. 5. For the sake of explanation, the following uses the root directory as the parent directory and the directory to be created as the subdirectory of the parent directory. In this embodiment of the present application, a user may use a first client to access a first storage device to create a subdirectory, or may use a second client to access a second storage device to create a subdirectory. When the first storage device mounts a file system to the first client, a path is established for the first client to access the file system. For example, if the first storage device uses physical node A to mount a file system to the first client, the first client uses physical node A to access the file system. To implement active-active access in active-active mode, the second storage device also mounts a file system to the file system of the second client. In this way, a path is established for the second client to access the file system, and a request to access the file system by the second client is sent to the physical node that mounts the file system, for example, physical node C. The following describes the subdirectory creation process using an example in which a subdirectory creation request is sent to a second storage device using a second client.

[0068] The specific creation process is shown in the flow chart of FIG.

[0069] Step S501: The second client sends a subdirectory creation request to physical node C.

[0070] Physical node C is the primary node of the second storage device 700, ie, the node that mounts the file system on the second client. The subdirectory creation request includes parameter information of the parent directory and the name of the subdirectory.

[0071] Step S502: Physical node C receives the create request sent by the second client, and generates parameter information of the subdirectory based on the create request.

[0072] The parameter information includes the identification information of the parent directory and a shard ID. The identification information is used to uniquely identify the subdirectory, and the identification information is, for example, an object ID in an NFS file system. When generating a shard ID, physical node C searches the shard view, allocates a shard ID among the shard IDs recorded in the shard view to the subdirectory, and then creates the subdirectory in the physical node corresponding to the virtual node to which the shard ID belongs. It should be noted that each directory may be allocated one shard ID, but multiple directories may be allocated one shard ID. In this embodiment of the present application, in order to reduce data transfer, the subdirectory is allocated a shard ID among the shard IDs of the virtual node corresponding to the physical node receiving the subdirectory request. Specifically, the subdirectory is allocated a shard ID among the shard IDs [2048, 3071] corresponding to the virtual node Vnode C corresponding to the physical node C. However, when the number of directories corresponding to the shard IDs of the virtual node Vnode C exceeds a preset threshold, the subdirectory is allocated a shard ID corresponding to another virtual node.

[0073] Step S503: Physical node C creates a subdirectory.

[0074] Creating a subdirectory includes generating a directory entry table (DET) and an Inode table for the subdirectory. The directory entry table is used to record parameter information of the subdirectory or a file created under the subdirectory when the subdirectory acts as a parent directory after the subdirectory is successfully created. The parameter information includes, for example, the name of the subdirectory, as well as the identification information and shard ID of the directory or file.

[0075] The inode table is used to record detailed information about files subsequently created in subdirectories, such as the file's length, the user's permissions on the file, and the modification time of the file.

[0076] Step S504: The physical node C determines, according to the parameter information of the parent directory, the physical node B in the first storage device to which the parent directory belongs.

[0077] The parameter information of the parent directory includes a Shard ID. In the Shard view, it can be determined that the virtual node corresponding to the Shard ID is a virtual node Vnode B, and then, based on the virtual node Vnode B, it is further determined that the physical node corresponding to the virtual node Vnode B is a physical node B in the first storage device.

[0078] Step S505: The physical node C sends to the physical node B the parameter information of the subdirectory and the parameter information of the parent directory.

[0079] Step S506: Physical node B finds the directory entry table of the parent directory according to the parameter information of the parent directory.

[0080] Specifically, the parent directory may be found based on the shard ID and the name of the parent directory in the parent directory's parameter information.

[0081] Step S507: Physical node B records the parameter information of the subdirectory in the directory entry table of the parent directory.

[0082] Step S508: The physical node B first returns the parameter information of the subdirectory to the physical node C, and then the physical node C returns the parameter information of the subdirectory to the second client.

[0083] In a file system, in a process of accessing a file, for example, a process of reading a file or a process of creating a file, a file is created under a directory, so the directory must be found first before the file under the directory is further accessed. If the file to be accessed is under a multi-level directory, the directory must be queried level by level until the directory at the lowest level is found. For example, in the case of a multi-level directory filesystem1 / user1 / favorite, since the parameter information of the root directory is recorded in the file system of the first client, the client first queries the parameter information of the subdirectory user1 based on the parameter information of the root directory filesystem1, i.e., generates a request to query "user1", and after the parameter information of "user1" is queried, queries the parameter information of "favorite" based on the parameter information of "user1", i.e., generates a request to query "favorite". The method for querying the parameter information of each level of directory is the same. The following uses an example in which the upper layer directory is a parent directory and the queried directory is a subdirectory to explain the directory query process. In this embodiment of the present application, an example in which the physical node C of the second storage device receives a query request is still used for explanation.

[0084] Step S601: The second client sends a subdirectory inquiry request to physical node C.

[0085] The query request carries parameter information of the parent directory and the name of the subdirectory. The parameter information of the parent directory is, for example, a handle of the parent directory. When the parent directory is a root directory, the handle of the root directory is obtained from the client's file system. When the parent directory is not a root directory, the handle of the parent directory can be found using a query request to query the parent directory.

[0086] The parent directory handle contains the parent directory's identity and the shard ID.

[0087] Step S602: Physical node C receives the query request sent by the second client, and determines the physical node B to which the parent directory belongs according to the query request.

[0088] Physical node C obtains the shard ID of the root directory from the parameter information of the root directory, and obtains the virtual node to which the parent directory belongs based on the shard ID.

[0089] Since physical node A synchronizes the created shard view to all nodes, physical node C obtains the shard view from the memory of physical node C, and based on the shard ID of the parent directory, determines the virtual node to which the parent directory belongs, and then determines the physical node corresponding to the virtual node.

[0090] Step S603: Physical node C sends the parameter information of the parent directory and the name of the subdirectory to physical node B where the parent directory is located.

[0091] Step S604: The physical node B determines a directory entry table of the parent directory according to the parameter information of the parent directory.

[0092] Please refer to the description of Fig. 5. When creating a parent directory, physical node B creates a directory entry table for the parent directory, which records the parameter information of all subdirectories created under the parent directory.

[0093] Step S605: The physical node B obtains the parameter information of the subdirectory from the directory entry table of the parent directory.

[0094] Step S606: Physical node B returns the parameter information of the subdirectory to physical node C.

[0095] Step S607: The physical node C returns the parameter information of the subdirectory to the second client.

[0096] 5 and 6, an example in which a second client accesses a second storage device and creates and queries a subdirectory in a file system is used for explanation. However, in practical application, a first client may also create and query a subdirectory by accessing a first storage device.

[0097] After the subdirectory is found or a new subdirectory is created, the first client or the second client may obtain the parameter information of the subdirectory, and then create a file in the subdirectory based on the parameter information of the subdirectory. The following describes a process in which a user uses a first client to access a first storage device and create a file in a subdirectory. Details are shown in FIG. 7.

[0098] Step S701: The client sends a file creation request to physical node A.

[0099] The file creation request carries parameter information for the subdirectory and the file name.

[0100] As shown in FIG. 5 or FIG. 6, physical node A has sent the parameter information of the subdirectory to the client. Therefore, when a file needs to be created in the subdirectory, the client sends the parameter information of the subdirectory and the file name of the file to the file Generate may be added to the request.

[0101] Step S702: After receiving the file creation request, physical node A determines the physical node D to which the subdirectory belongs based on the parameter information of the subdirectory.

[0102] The method of determining the physical node D to which the subdirectory belongs is the same as step S602 in Fig. 6. The details will not be described again here.

[0103] Step S703: Physical node A sends the parameter information and file name of the subdirectory to physical node D.

[0104] Step S704: Physical node D determines whether a file has been created.

[0105] Physical node D finds the subdirectory based on the Shard ID and the subdirectory name in the parameter information of the subdirectory, then finds the DET corresponding to the subdirectory, and searches the DET for a file name. If the file name exists, it indicates that a file with the same file name is created, and step S705 is executed. If the file name does not exist, it indicates that a file can be created in the subdirectory, and step S706 is executed.

[0106] Step S705: Node D sends a feedback to node A indicating that the file name has been created, and node A further feeds back the feedback to the first client.

[0107] After receiving the feedback message, the first client may use a notification message to further notify the user that a file with the same file name already exists, and the user may perform further operations based on the notification information, for example, changing the file name.

[0108] Step S706: Node D creates a file.

[0109] When creating a file, node D sets parameter information of the file, for example, allocates a shard ID, allocates file identification information, and adds the shard ID and the file identification information to the DET of the subdirectory. As described in step S503 of FIG. 5, when a subdirectory is created, an Inode table is generated for the subdirectory, and the Inode table is used to record information about the files created under the subdirectory. Thus, in this step, after node D creates a file, information about the file is added to the Inode table of the subdirectory. The file information includes information such as the file length, the user's operation permission for the file, and the modification time of the file.

[0110] Step S707: Physical node D feeds back the parameter information of the file.

[0111] Physical node D first sends feedback information to node A, which further feeds back the feedback information to the first client.

[0112] When physical node A determines in step S702 that the home node of the subdirectory is physical node A, physical node A executes steps S704 to S707.

[0113] Here, Fig. 5It should be noted that the subdirectories generated in and the files generated in FIG. 7 will be backed up to the corresponding backup nodes according to the backup policy set in FIG. 3B.

[0114] After the file is created, a user may write data to the file. The user may write data to the file using a first client connected to a first storage device and a second client connected to a second storage device. The following uses a process in which a user uses a first client to access a first storage device and write data to a file as an example for illustration. Details are shown in FIG. 8.

[0115] Step S801: Physical node A receives a file write request.

[0116] In this embodiment of the present application, any node stores the file system, so that a user may access files in the file system using a client connected to any node.

[0117] The write request carries address information of the file, which includes parameter information of the file, an offset address, and the data to be written. In this embodiment of the present application, the parameter information of the file is a handle of the file, which includes a file system identifier, a file identifier, and a shard ID.

[0118] Step S802: Physical node A determines the home node D of the file based on the write request.

[0119] For the method of determining the home node D to record the file based on the shard ID of the file, please refer to step S602 in Figure 6. The details will not be described again here.

[0120] Step S803: Physical node A transfers the write request to physical node D.

[0121] Step S804: Physical node D converts the access to the file system into an access to a virtual volume corresponding to the file system.

[0122] Since each physical node keeps track of the virtual volumes that have been created for a file system, physical node D replaces the file system identifier in the write request with the identifier of the virtual volume.

[0123] Step S805: Physical node D finds the file based on the file identifier and shard ID in the write request, and updates information about the file.

[0124] After finding the file based on the file identifier and shard ID, physical node D finds an inode entry corresponding to the file in the inode table based on the inode number of the file contained in the file identifier, records information about the file in the inode entry based on, for example, the length and offset address of the data to be written carried in the write request, updates the length and offset address of the file, and records the current time as the update time of the file.

[0125] Step S806: Physical node D writes multiple copies of the written data based on a preset backup policy.

[0126] When the virtual file cluster is established, a backup policy is established for the file system. In the backup policy, a backup node is set for each node. For example, according to the backup policy set in FIG. 3B, it may be determined that the backup nodes of physical node D are physical node C and physical node B. In this case, when writing data to be written to the local memory, physical node D sends the data to be written to physical node C and physical node B, and physical node C and physical node B write the data to be written to the memory of physical node C and physical node B.

[0127] Step S807: After determining that the write of the multiple copies has been fulfilled, physical node D returns a message to the first client indicating that the write request has been fulfilled.

[0128] Step S808: Physical node D persistently stores the written data.

[0129] According to the flushing policy shown in FIG. 3B, the virtual volume of the file system corresponds to a mirror volume pair: a first volume in the first storage device and a second volume in the second storage device. When the physical node D determines based on the preset memory eviction algorithm that the data to be written needs to be evicted to the persistent storage device, i.e., flushed to disk, the physical node D first obtains the mirror volume pair corresponding to the virtual volume, i.e., the first volume in the first storage device and the second volume in the second storage device, from the flushing policy based on the virtual volume recorded in the address in the data to be written, then writes the data to be written in the memory of the second storage device to the physical space corresponding to the second volume in the persistent storage device 701, and then sends the memory address of the data to be written to the backup node B corresponding to the physical node D in the first storage device. The physical node B writes the data to be written stored in the memory of the physical node B to the physical space corresponding to the first volume in the persistent storage device 601 of the first storage device based on the memory address.

[0130] FIG. 9 is a flowchart of a file reading method according to an embodiment of the present application.

[0131] In this embodiment of the present application, the user can also use any client to access the file in the file system. In this embodiment, an example in which the user reads the file using a second client is used for explanation.

[0132] Step S901: Physical node C receives a request to read a file.

[0133] The read request carries address information of the file. The address information includes parameter information and offset address of the file, and the parameter information is a handle of the file, including a file system identifier, a file identifier, and a shard ID. When the second client sends the read request, the parameter information of the file has been obtained according to the method shown in FIG.

[0134] Step S902: Physical node C determines the home node B of the file based on the read request.

[0135] For the method of determining the home node B of the file, please refer to the description of step S602 in Fig. 6. The details will not be described again here.

[0136] Step S903: The physical node C forwards the read request to the home node B.

[0137] Step S904: Physical node B converts the access of the read request to the file system into access to the virtual volume of the file system.

[0138] Step S905: Physical node B reads the file from the memory of physical node B according to the address in the read request.

[0139] Step S906: Physical node B returns the file.

[0140] Step S907: When the file is not in memory, physical node B reads the file from the persistent storage device 601 based on the first volume in the first storage device corresponding to the virtual volume in the flushing policy, and returns the file to physical node C, which then returns the file to the second client.

[0141] In an embodiment of the present application, when accessing files and directories, the first storage device and the second storage device transfer the access request to the home node of the file and directory based on the shard ID. This results in cross-device data access, which further affects the access efficiency. In the possible implementation provided in this embodiment of the present application, both the first storage device and the second storage device back up the data of the peer end, so that when an access request to access the data of the peer end is received, the data that needs to be accessed can be obtained from the backup data of the peer end backed up by the local end, and the data to be accessed does not need to be obtained from the peer end. This improves the data access efficiency.

[0142] When one storage device in an active-active storage system in active-active mode fails, the service of the failed storage device can be taken over using backup data. As shown in FIG. 10, after the link between the first storage device and the second storage device is cut off or the second storage device fails, the service of the second storage device can be taken over using the backup data of the second storage device stored in the first storage device. The following uses an example in which the link between the first storage device and the second storage device is cut off for explanation. Details are shown in the flowchart shown in FIG. 11.

[0143] Step S111: The first storage device and the second storage device simultaneously detect the heartbeat of the peer end.

[0144] Step S112: When the heartbeat of the peer end is not detected, the first storage device and the second storage device respectively suspend the running services.

[0145] Suspending a service refers to stopping an access request that is being executed.

[0146] Step S113: The first storage device and the second storage device modify the global view and the file system.

[0147] When the heartbeat of the peer end is not detected, the first storage device and the second storage device need to prepare to take over the service of the peer end, modify the global view and the file system, remove the virtual node corresponding to the physical node of the peer end in the global view from the global view, and remove the backup node of the peer end in the backup policy. For example, the first storage device modifies the global view to (Vnode A, Vnode B), and the second storage device modifies the global view to (Vnode C, Vnode D). In addition, the shard of the virtual node corresponding to the peer node in the shard view of the file system is modified to the shard corresponding to the virtual node corresponding to the local node. For example, the shard view in the first storage device is modified to Vnode A[0,2047] and Vnode B[2048,4095], the shard view in the second storage device is modified to Vnode C[0,2047] and Vnode D[2048,4095], and the volume of the peer node in the flushing policy is deleted.

[0148] Step S114: The first storage device and the second storage device each send an arbitration request to the quorum device.

[0149] Step S115: The quorum device determines through arbitration that the first storage device takes over the service.

[0150] The quorum device may determine which device will take over the service based on the order in which it receives the arbitration requests, for example, the storage device corresponding to the first received quorum request serves as the device that will take over the service.

[0151] Step S116: The quorum device notifies the arbitration result to the first storage device and the second storage device separately.

[0152] Step S117: After receiving the notification, the second storage device is disconnected from the second client, ie, stops running the service.

[0153] Step S118: After receiving the notification, the first storage device drifts the IP address of the second storage array to the first storage device, and establishes a connection with the second client.

[0154] Step S119: Take over the service of the second storage array using the backup data of the second storage array.

[0155] The backup data of the second storage array is stored in the first storage device. 2 When receiving an access to the data in the second storage device, the first storage device can use the shard ID in the access request to identify the first client and the second client's access requests to the data in the second storage device to access the backup data, such that the first client and the second client are unaware of the link interruption.

[0156] In the data access process, the backup policy and the flushing policy are changed so that the write data is written only to the memory of the node of the first storage device and stored only in the volume of the first storage device.

[0157] The solutions provided in the embodiments of the present application have been described above. The principles and implementations of the present application are described through specific examples herein. The description of the embodiments of the present application is only provided to help understand the method and core idea of ​​the present application. In addition, those skilled in the art can make variations and modifications to the present application in terms of specific implementations and application scope according to the idea of ​​the present application. Therefore, the contents of this specification should not be interpreted as limitations on the present application. [Explanation of symbols]

[0158] 100 First Storage Device 101 Control Node 102 First File System 103 Local Data 104 Peer backup data 200 Secondary Storage Device 201 Control Node 202 Second File System 203 Local Data 204 Peer Backup Data 300 First Client 400 Second Client 500 Active-Active Systems 600 First Storage Device 601 Persistent Storage Devices 602 Processor 603 Memory 604 Global View 605 File System 606 Cached Data 607 Backup Data 608 First File System 609 First Volume 700 Secondary Storage Device 701 Persistent Storage Devices 702 Secondary File System 703 Second Volume 800 1st client 900 Second Client

Claims

1. In an active-active storage system comprising a first storage device (100) and a second storage device (200), a first client connected to the first storage device and a second client connected to the second storage device have the same file system mounted thereon; the first storage device (100) is configured to receive data of a first file sent to a file system by a client cluster, store the data of the first file, and send a first copy data of the data of the first file to the second storage device (200); The second storage device (200) is configured to receive data of a second file sent to the file system by the client cluster, store the data of the second file, and send a second copy data of the data of the second file to the first storage device (100), wherein both the first storage device and the second storage device store file data by using the same file system.

2. 2. The system of claim 1, wherein the active-active storage system further comprises a virtual node set, the virtual node set comprising a plurality of virtual nodes, and computing resources are allocated to each of the virtual nodes, the computing resources being derived from physical nodes within the first storage device (100) or the second storage device (200).

3. The active-active storage system further comprises a management device, the management device further configured to create a global view, the global view being used to record a correspondence between each of the virtual nodes and the computing resources allocated to the virtual nodes; the management device is further configured to transmit the global view to the first storage device (100) and the second storage device (200); the first storage device (100) is further configured to store the global view; the second storage device (200) is further configured to store the global view. The system of claim 2.

4. When storing the data of the first file, the first storage device (100) determining a first virtual node corresponding to the first file based on an address of the data of the first file; determining computing resources allocated to the first virtual node based on the first virtual node and the global view; transmitting the data of the first file to a physical node based on the computing resource allocated to the first virtual node, so that the physical node corresponding to the computing resource stores the data of the first file in a memory of the physical node; The system of claim 3, configured as follows:

5. the first virtual node has at least one backup virtual node, and a physical node corresponding to the first virtual node and a physical node corresponding to the backup virtual node are located in different storage devices; The first storage device (100) comprises: determining the backup virtual node corresponding to the first virtual node; determining the physical node corresponding to the backup virtual node based on the backup virtual node and the global view; Sending the first copy of data to the physical node corresponding to the backup virtual node, so that the physical node corresponding to the backup virtual node stores the first copy of data in the physical node. The system of claim 4, further configured to:

6. 6. The system of claim 2, wherein files and directories contained in the file system are distributed across physical nodes corresponding to the plurality of virtual nodes in the set of virtual nodes.

7. 7. The system of claim 6, wherein one or more shard identifiers are set for each of the virtual nodes in the set of virtual nodes, each of the directories and files in the file system is assigned a shard identifier, and the physical nodes in the first storage device (100) and the second storage device (200) distribute the directories and files to physical nodes corresponding to the virtual node to which the shard identifier belongs based on the shard identifier of each of the directories and files.

8. 8. The system of claim 7, wherein a first physical node in the first storage device (100) is configured to receive a request to create the first file, select one shard identifier for the first file from one or more shard identifiers configured for a virtual node corresponding to the first physical node, and create the first file in the first storage device (100).

9. 9. The system of claim 2, further comprising: when the second storage device (200) fails or when a link between the first storage device (100) and the second storage device (200) is disconnected, the first storage device (100) is further configured to restore the second file based on the second copy data of the data of the second file and take over services transmitted to the second storage device (200) by the client cluster.

10. 4. The system of claim 3, wherein the first storage device (100) is further configured to remove from the global view a virtual node corresponding to a computing resource of the second storage device (200).

11. 2. The system of claim 1, wherein the first storage device (100) further comprises a first file system and the second storage device (200) further comprises a second file system.

12. A data processing method performed by an active-active storage system, the active-active storage system comprising a first storage device and a second storage device, a first client connected to the first storage device and a second client connected to the second storage device having the same file system mounted thereon, the method comprising: receiving, by the first storage device, data of a first file sent by a client cluster to a file system, storing the data of the first file, and sending a first copy data of the data of the first file to the second storage device; receiving, by the second storage device, data of a second file sent by the client cluster to the file system, storing the data of the second file, and sending a second copy of the data of the second file to the first storage device; wherein both the first storage device and the second storage device store file data by using the same file system.

13. 13. The method of claim 12, wherein the active-active storage system further comprises a virtual node set, the virtual node set comprising a plurality of virtual nodes, and computing resources are allocated to each of the virtual nodes, the computing resources being derived from physical nodes within the first storage device or the second storage device.

14. The active-active storage system further comprises a management device, and the method further comprises: creating, by the management device, a global view, which is used to record a correspondence between each of the virtual nodes and the computing resources allocated to the virtual nodes; transmitting, by the management device, the global view to the first storage device and the second storage device; storing the global view by the first storage device and the second storage device; 14. The method of claim 13, further comprising:

15. When storing the data of the first file, the first storage device: determining a first virtual node corresponding to the first file based on an address of the data of the first file; determining computing resources allocated to the first virtual node based on the first virtual node and the global view; transmitting the data of the first file to a physical node based on the computing resource allocated to the first virtual node, so that the physical node corresponding to the computing resource stores the data of the first file in a memory of the physical node; The method of claim 14, wherein the method is configured to:

16. the first virtual node has at least one backup virtual node, and a physical node corresponding to the first virtual node and a physical node corresponding to the backup virtual node are located in different storage devices; The method comprises: determining, by the first storage device, the backup virtual node corresponding to the first virtual node; determining, by the first storage device, the physical node corresponding to the backup virtual node based on the backup virtual node and the global view; transmitting, by the first storage device, the first copy data to the physical node corresponding to the backup virtual node, so that the physical node corresponding to the backup virtual node stores the first copy data in the physical node; 16. The method of claim 15, further comprising:

17. 17. The method of claim 13, wherein files and directories contained in the file system are distributed across physical nodes corresponding to the plurality of virtual nodes in the set of virtual nodes.

18. 18. The method of claim 17, wherein one or more shard identifiers are configured for each of the virtual nodes in the set of virtual nodes, and each of the directories and files in the file system is assigned a shard identifier, and the physical nodes in the first storage device and the second storage device distribute the directories and files to physical nodes corresponding to the virtual node to which the shard identifier belongs based on the shard identifier of each of the directories and files.

19. The method comprises: receiving a request to create the first file by a first physical node in the first storage device; selecting a shard identifier for the first file from among one or more shard identifiers configured in a virtual node corresponding to the first physical node; and creating the first file in the first storage device.

20. The method of claim 18, further comprising:

20. The method includes, when the second storage device fails or a link between the first storage device and the second storage device is cut, restoring the second file by the first storage device based on the second copy data of the data of the second file; and taking over services transmitted by the client cluster to the second storage device.

20. The method of any one of claims 13 to 19, further comprising:

21. The method of claim 14 , further comprising removing, by the first storage device, a virtual node corresponding to a computing resource of the second storage device from the global view.

22. 22. The method of claim 13, wherein the first storage device further comprises a first file system and the second storage device further comprises a second file system.

Citation Information

Patent Citations

  • Failover method in remote-mirrored cluster file server

    JP2007328778A

  • Creating global aggregated namespaces for storage management

    US20140310278A1

  • Embedded synchronous replication for block and file objects

    US9880777B1

  • Storage system

    WO2015198449A1