Extending and distributing namespaces and clients across multiple file system redirection agents

Monitoring and updating file system export locations in the cluster through the global event manager solves the load balancing problem of file system redirection proxy nodes, and improves the system availability and scalability of the enterprise cluster environment.

CN120353570APending Publication Date: 2025-07-22DELL PROD LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510047638.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-01-19
Filing Date
2025-01-13
Publication Date
2025-07-22

AI Technical Summary

Technical Problem

The prior art is difficult to effectively manage the load balancing of file system redirection proxy nodes and the distribution of file system exports in enterprise cluster environments, resulting in limited system availability and scalability.

Method used

Monitor event changes in the cluster through the global event manager, perform load balancing analysis, and update the global export table, dynamically adjust the allocation of file system export locations to ensure load balancing and system stability.

Benefits of technology

It realizes efficient distribution and load balancing management of file system exports in a cluster environment, improves the availability and scalability of the system, and ensures the stability and response speed of the file system.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120353570A_ABST
    Figure CN120353570A_ABST
Patent Text Reader

Abstract

One or more embodiments of the present invention relate to a method of managing data in a cluster. The method includes receiving, by a global event manager of the cluster, a notification that an event has occurred on the cluster, wherein the cluster includes a plurality of file system redirection proxy (FSRP) nodes. In response to the notification, the global event manager performs a load balancing analysis on the cluster to assign an export location for file system export to an FSRP node of the plurality of FSRP nodes, and notifies each FSRP node of the plurality of FSRP nodes in the cluster of the event, wherein the notification results in an update of a global export table for each of the plurality of FSRP nodes with respect to the assignment of the export location to the FSRP node.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] In an enterprise environment, clusters are often used. One version of a cluster, namely a failover cluster, allows multiple nodes to work together to increase node availability and scalability. Additionally, one version of a cluster provides file system data storage for clients. This version may include a hierarchy of nodes, each with a designated function for serving the file system data storage. Brief Description of the Drawings

[0002] Certain embodiments of the present invention will be described with reference to the accompanying drawings. However, the drawings merely illustrate certain aspects or implementations of the present invention by way of example and are not meant to limit the scope of the claims.

[0003] Figure 1A A diagram showing a system including a cluster according to one or more embodiments of the present invention.

[0004] Figure 1B A diagram showing a cluster server according to one or more embodiments of the present invention.

[0005] Figure 1C A diagram showing a file system redirection proxy (FSRP) node according to one or more embodiments of the present invention.

[0006] Figure 1D A diagram showing a global export table according to one or more embodiments of the present invention.

[0007] Figure 2A A flowchart showing a method for obtaining the domain name of an FSRP in a cluster according to one or more embodiments of the present invention.

[0008] Figure 2B A flowchart showing a method for updating the global export table of an FSRP according to one or more embodiments of the present invention.

[0009] Figure 3A A diagram showing a method for load balancing exports according to one or more embodiments of the present invention.

[0010] Figure 3B An example of a file system storage process according to one or more embodiments of the present invention.

[0011] Figure 3C An example of a failure instance according to one or more embodiments of the present invention.

[0012] Figure 4 A diagram showing a computing device according to one or more embodiments of the present invention. Detailed Description

[0013] Specific embodiments will now be described with reference to the accompanying drawings. In the following description, numerous details are set forth as examples of the present invention. Those skilled in the art will understand that one or more embodiments of the present invention may be practiced without these specific details, and that numerous changes or modifications may be possible without departing from the scope of the present invention. Certain details known to those of ordinary skill in the art are omitted to avoid obscuring the description.

[0014] In the following description of the drawings, any component described with respect to one drawing may be equivalent to one or more similarly named components described with respect to any other drawing in various embodiments of the present invention. For the sake of brevity, the description of these components will not be repeated for each drawing. Accordingly, each embodiment of the components of each drawing is incorporated by reference and is assumed to optionally exist in each other drawing having one or more similarly named components. Additionally, according to various embodiments of the present invention, any description of the components of a particular drawing should be interpreted as an optional embodiment that may be implemented in addition to, in combination with, or in place of the embodiment described with respect to the corresponding similarly named components in any other drawing.

[0015] Throughout this application, the elements in the drawings may be labeled A through N. As used herein, the foregoing labels mean that an element may include any number of items, and there is no requirement that an element include the same number of elements as any other item labeled A through N. For example, a data structure may include a first element labeled A and a second element labeled N. This labeling convention means that the data structure may include any number of elements. A second data structure (also labeled A through N) may also include any number of elements. The number of elements in the first data structure may be the same as or different from the number of elements in the second data structure.

[0016] Generally speaking, embodiments of the present invention relate to systems and methods for managing one or more file systems. More specifically, embodiments of the present invention relate to a system that includes a client that operates its file system in a first protocol (e.g., a version of the Network File System (NFS)), and the system further includes a cluster that obtains input / output (I / O) requests according to the first protocol and provides a translation service of the obtained I / O requests into a second protocol that is readable by other nodes in the cluster. The cluster may include Enhanced File System Redirector Proxy (FSRP) nodes (also referred to as FSRP nodes) that include functionality to translate I / O requests from the first protocol into the second protocol and then transmit the translated requests to other nodes for processing according to the second protocol.

[0017] Embodiments of the present invention include methods for managing the distribution of workloads among FSRP nodes in a cluster. Specifically, an NFS exported namespace can be distributed across FSRP nodes such that each FSRP node manages a portion of the namespace. Assigned exports (also referred to as NFS exports or file system exports) can be distributed based on an even distribution of file system exports across the FSRP. Alternatively, exports can be distributed based on client workloads.

[0018] Embodiments of the present invention further include managing the expansion of FSRP nodes by using a global event manager that monitors events occurring in the cluster, such as an FSRP node going up or down. Based on changes to the FSRP nodes, the global event manager can initiate an update to the global export table managed by each FSRP node to specify the most current distribution of exports among the FSRP nodes.

[0019] Figure 1A A diagram showing a system according to one or more embodiments of the present invention. The system can include one or more NFS clients (102), a domain name server (104), a storage system (106), and at least one data cluster (110). Without departing from the present invention, the system can include any number of data clusters (110). For example, the system can include two data clusters (not shown) communicating via a network (100). Without departing from the present invention, the system can include additional, fewer, and / or other components. Each of the components in the system can be operatively connected via any combination of wireless and / or wired networks (100).

[0020] In one or more embodiments, the domain name server (DNS) (104) includes functionality for storing and reporting the IP addresses of all FSRP node servers in the cluster. The DNS helps NFS clients identify the correct location of file system exports on the FSRP in the cluster. The functionality of the DNS can be seen in Figure 2A where an NFS client obtains a list of the domain names of all FSRPs in the cluster from the DNS. Additional details of the functionality of the DNS can be found in, for example, Figure 2A

[0021] In one or more embodiments of the present invention, without departing from the present invention, the cluster (110) may include a plurality of cluster servers (e.g., 110A, 110N) and a global event manager (114). The cluster may include any number of cluster servers (110A, 110N). For example, the cluster (110) may include two cluster servers (110A, 110N) that communicate via an internal network or otherwise. Without departing from the present invention, the system may include additional, fewer, and / or other components. Each of the components of the cluster may be operatively connected via any combination of wireless and / or wired networks (100).

[0022] In one or more embodiments of the present invention, the cluster (110) includes functionality for providing data protection services to NFS clients (102). The data protection services may include using a deduplication operation to store data such that only unique data is stored in the storage system (106). In this way, the cluster (110) may be a deduplication-aware cluster. Without departing from the present invention, the cluster servers (110A, 110N) may include functionality for providing and / or obtaining other and / or additional services. Although Figure 1A the cluster (110) is shown as a component separate from the storage system (106), without departing from the present invention, it may be part of the cluster (110).

[0023] In one or more embodiments, the cluster servers (110A, 110N) include functionality for obtaining requests associated with files in a file system from NFS clients (102A, 102N). The requests may be, for example, read requests or write requests. The requests may be according to a version of the Network File System (NFS) protocol. For example, the requests may be NFSv4 requests. Without departing from the present invention, the requests may specify writing a new file, mounting a directory (or other file), reading a new file, and / or other instructions. The data stored in the storage system (106) may be used to service the requests. For example, in response to obtaining a request, the cluster servers (110A, 110N) may access the storage system (106) to read, write, and / or store data associated with the request.

[0024] In one or more embodiments, the cluster (110) may include a second protocol for accessing data in the storage system (106). For example, the nodes in the cluster server (110) may operate in a protocol different from the NFS protocol of the NFS client (100). The second protocol may be, for example, Data Domain Boost (DDBoost TM ). In this way, the cluster servers (110A, 110N) include nodes (in Figure 1Bdiscussed), the node includes functionality for translating a request (in the NFS protocol) into a cluster-readable request (e.g., in the DDBoost TM protocol) and servicing the cluster-readable request based on the NFS request. Without departing from the present invention, the translation and servicing may be performed according to any other method.

[0025] In one or more embodiments of the present invention, each cluster server (110) is implemented as a computing device (see, e.g., Figure 4 ). The computing device may be, for example, a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, a distributed computing system, or a cloud resource. The computing device may include one or more processors, a memory (e.g., random access memory), and a persistent storage device (e.g., a disk drive, a solid state drive, etc.). The computing device may include instructions stored on the persistent storage device that, when executed by a processor of the computing device, will cause the computing device to perform the functionality of the cluster servers (110A, 110N) as described throughout this application.

[0026] In one or more embodiments, the cluster (110) further includes a global event manager (112) that maintains a list of all FSRP nodes in the system and their respective status and availability. It monitors each FSRP node in the cluster (described in Figures 1B to 1C ). When any activity occurs in the system, the global event manager (112) may be updated to maintain this list of FSRP nodes, as seen in the method of Figure 2B . Specifically, when a change in an FSRP node in the cluster is detected, the global event manager (112) may initiate an update of the global export table (described further below). Examples of changes may include an FSRP node coming online or going offline. In one or more embodiments, if an FSRP node "comes online", this involves the FSRP node becoming available and being introduced into the cluster. The online FSRP node may provide computing resources to manage another export in the file system. If an FSRP node "goes offline", this involves the FSRP node becoming unavailable and thus unable to manage any file system exports. The unavailability may be caused by, for example, no available computing resources for the FSRP node, the FSRP node being in a dormant state, or other failures of the FSRP node. The global event manager (112) may communicate directly with the local event manager (discussed in Figure 1B ) to ensure that all FSRP nodes are aware of the node availability on all cluster servers (110A, 110N) in the cluster (110).

[0027] In one or more embodiments of the present invention, the global event manager (112) is implemented as a computing device. The computing device can be, for example, a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, a distributed computing system, or a cloud resource. The computing device can include one or more processors, a memory (e.g., random access memory), and a persistent storage device (e.g., a disk drive, a solid state drive, etc.). The computing device can include instructions stored on the persistent storage device that, when executed by the processor of the computing device, cause the computing device to perform the functionality of the global event manager (112) as described throughout this application.

[0028] In one or more embodiments of the present invention, the global event manager (112) is implemented as a logic device. The logic device can utilize the computing resources of any number of computing devices and thereby provide the functionality of the global event manager (112) as described throughout this application.

[0029] In one or more embodiments of the present invention, the cluster (110) works with the storage system (106) to store files and mapping information. The storage system (106) can include local storage devices or volumes stored in the local storage of the storage system (106) or in the nodes of the cluster (110) (see Figure 1B ). In one or more embodiments of the present invention, the storage system (106) can include storage devices that are not part of the cluster (110). The storage system (106) can also include off-site storage devices, including but not limited to cloud-based storage devices and long-term storage devices (such as tape drives), depending on the specific needs of the user and / or the system. The storage system (106) can include one or more processors, a memory (e.g., random access memory), and a persistent storage device (e.g., a disk drive, a solid state drive, etc.).

[0030] In one or more embodiments of the present invention, the storage system (106) includes functionality to provide storage services to the cluster (110) as discussed above. Without departing from the present invention, the storage services can include: (i) obtaining requests for data generated by performing computer-implemented services from the cluster (110), (ii) storing data and metadata associated with files in the persistent storage device of the storage system (106), and (iii) providing files to the cluster (110A, 110N) for read / write purposes and / or other purposes. Without departing from the present invention, the storage services can include functionality to provide and / or obtain other services. Without departing from the present invention, the storage system (106) can include any number of storage devices.

[0031] In one or more embodiments of the present invention, the storage system (106) is implemented as a computing device. The computing device can be, for example, a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, a distributed computing system, or a cloud resource. The computing device can include one or more processors, a memory (e.g., random access memory), and a persistent storage device (e.g., a disk drive, a solid state drive, etc.). The computing device can include instructions stored on the persistent storage device that, when executed by the processor of the computing device, cause the computing device to perform the functionality of the storage system (106) as described throughout this application.

[0032] In one or more embodiments of the present invention, the storage system (106) is implemented as a logical device. The logical device can utilize the computing resources of any number of computing devices and thereby provide the functionality of the storage system (106) as described throughout this application.

[0033] In one or more embodiments of the present invention, the NFS client (110) and the storage system (106) communicate with the cluster (110) via a network (100). The network (100) can take any form of network, including any combination of wireless and / or wired networks. The network (100) can be a local area network (LAN) or a wide area network (WLAN), including the Internet or a private enterprise network connecting more than one location. The network (100) can be any combination of the above networks, other known networks, or any combination of network types.

[0034] In one or more embodiments of the present invention, the network (100) allows the cluster (110) to communicate with other clusters (not shown) and external computing devices such as (but not limited to) a domain name server (e.g., 104) and a backup storage device (e.g., 106). The various components of the cluster (110) can also communicate with each other via the network. The network can be a high-speed internal network and / or include a portion of an external network (108).

[0035] A network (e.g., network (100)) can refer to the entire network or any portion thereof (e.g., the logical portion of a device within a device topology). The network can include a data center network, a wide area network, a local area network, a wireless network, a cellular phone network, and / or any other suitable network that facilitates the exchange of information from one part of the network to another. The network can be located at a single physical location or distributed across any number of physical locations. In one or more embodiments, the network can be at least partially coupled to or overlap with the Internet.

[0036] In one or more embodiments, although Figure 1Ashown separately, but network (100) can include any number of devices within any component of the system (e.g., 102, 104, 110, and 106), as well as devices located outside the system or between such components of the system. In one or more embodiments, at least a portion of such devices are network devices (not shown). In one or more embodiments, a network device is a device that includes and / or is operatively connected to a persistent storage device (not shown), a memory (e.g., random access memory (RAM)) (not shown), one or more processors (e.g., integrated circuits) (not shown), and at least two physical network interfaces, which can provide connections (i.e., links) to other devices (e.g., computing devices, other network devices, etc.). In one or more embodiments, the network device also includes any number of additional components (not shown), such as, for example, network chips, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), indicator lights (not shown), fans (not shown), etc. Without departing from the present invention, the network device can include any other components. Examples of network devices include, but are not limited to, network switches, routers, multilayer switches, Fibre Channel devices, devices, etc. Network devices are not limited to the above specific examples.

[0037] In one or more embodiments of the present invention, a cluster (e.g., 110) can be implemented as one or more computing devices. Without departing from the present invention, a data cluster (e.g., (110)) can include any number of computing devices. Without departing from the present invention, a data cluster (e.g., 110) can include different numbers of computing devices, different amounts and types of computer resources, and can perform different computer-implemented services.

[0038] Figure 1B FIG. showing a cluster server according to one or more embodiments of the present invention. Figure 1B The cluster server (130) can be an embodiment of the cluster servers ( Figure 1A 110, 112) discussed above. The cluster server (130) can include one or more file system redirect proxy (FSRP) nodes (132, 134), one or more namespace access nodes (136, 138), and one or more deduplication service nodes (140, 142). Collectively, the enhanced FSRP nodes (132, 134), namespace nodes (136, 138), and deduplication service nodes (140, 142) can be referred to as the cluster nodes of a cluster (e.g., Figure 1A 110).

[0039] While the cluster server (130) is shown as including cluster nodes such as enhanced FSRP nodes (132, 134), namespace access nodes (136, 138), and deduplication service nodes (140, 142), the cluster server (130) may include only one of these cluster nodes, additional cluster nodes, and / or different cluster nodes without departing from the present invention.

[0040] In one or more embodiments of the present invention, the cluster nodes execute workloads and provide services to clients and / or Figure 1A other entities not shown in the system shown. The cluster nodes may also include functionality for performing computer-implemented services for users of the cluster (110) (e.g., NFS clients, Figure 1A such as 102). The computer-implemented services may include, for example, database services, email services, data processing services, etc. Without departing from the present invention, the computer-implemented services may include other and / or additional types of services.

[0041] During the execution of the above services, data may be generated and / or otherwise obtained. The cluster nodes include local storage devices (not shown) that may include multiple volumes, and shared storage devices that may include cluster-shared volumes (not shown). Without departing from the present invention, the data storage services may include other and / or additional services. The data generated by the cluster nodes and stored on the shared storage device may be valuable to the users of the system and may therefore be protected.

[0042] In one or more embodiments, the FSRP nodes (132, 134) of the cluster nodes include functionality for obtaining NFS requests from NFS clients ( Figure 1A such as 102) and translating the requests into cluster-readable requests for processing by the namespace access nodes (136, 138) and the deduplication service nodes (140, 142). For additional details regarding the FSRP nodes, see, for example, Figure 1C .

[0043] In one or more embodiments of the present invention, one or more of the FSRP nodes (132, 134) are each implemented as a computing device (see, for example, Figure 4 ). The computing device may be, for example, a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, or a cloud resource. The computing device may include one or more processors, a memory (e.g., random access memory), and a persistent storage device (e.g., a disk drive, a solid state drive, etc.). The persistent storage device may store computer instructions, such as computer code, that when executed by the processor of the computing device cause the computing device to perform the functions of the FSRP nodes (132, 134) described in this application.

[0044] Without departing from the present invention, each of the FSRP nodes (132, 134) can be implemented as a logical device. The logical device utilizes the computing resources of any number of physical computing devices to provide the functionality of the enhanced FSRP nodes (132, 134) described throughout this application.

[0045] In one or more embodiments, each of the namespace access nodes (136, 138) is assigned a portion of the file system to manage. For example, each access node is assigned one or more objects (e.g., directories, documents, files, drives, etc.) of the file system such that all of the namespace access nodes (136, 138) in a cluster (e.g., Figure 1A 110) are collectively assigned to all of the objects in the file system. The assignment of objects can be performed by, for example, one or more of the enhanced FSRP nodes (132, 134).

[0046] In one or more embodiments of the present invention, one or more of the namespace access nodes (136, 138) are each implemented as a computing device (see, for example, Figure 4 ). The computing device can be, for example, a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, or cloud resources. The computing device can include one or more processors, a memory (e.g., random access memory), and a persistent storage device (e.g., a disk drive, a solid state drive, etc.). The persistent storage device can store computer instructions, such as computer code, which when executed by the processor of the computing device cause the computing device to perform the functions of the namespace access nodes (136, 138) described in this application.

[0047] Without departing from the present invention, each of the namespace access nodes (136, 138) can be implemented as a logical device. The logical device utilizes the computing resources of any number of physical computing devices to provide the functionality of the namespace access nodes (136, 138) described throughout this application.

[0048] In one or more embodiments, the deduplication service nodes (140, 142) include functionality for performing data storage services. The data storage services can include, for example, a deduplication service. The deduplication service can include hashing an object (or the associated data or data portion thereof) to obtain a unique identifier of the object and / or data and / or data portion. The unique identifier is compared with a table managed by the deduplication service nodes (140, 142) to determine whether the object is stored in the storage system (e.g., Figure 1A 106). In this way, duplicate copies of data are not stored, and the storage resources of the storage system are made efficient.

[0049] In one or more embodiments of the present invention, one or more of the deduplication service nodes (140, 142) are each implemented as a computing device (see, for example, Figure 4 ). The computing device can be, for example, a mobile phone, a tablet computer, a laptop computer, a desktop computer, a server, or cloud resources. The computing device can include one or more processors, a memory (e.g., random access memory), and a persistent storage device (e.g., a disk drive, a solid state drive, etc.). The persistent storage device can store computer instructions, such as computer code, which when executed by the processor of the computing device cause the computing device to perform the functions of the deduplication service nodes (140, 142) described in this application.

[0050] Without departing from the present invention, each of the deduplication service nodes (140, 142) can be implemented as a logical device. The logical device utilizes the computing resources of any number of physical computing devices to provide the functionality of the deduplication service nodes (140, 142) described throughout this application.

[0051] In one or more embodiments of the present invention, the cluster node includes a local storage device that is only associated with the data nodes to which it is assigned. The storage device also includes a shared storage device, such as a Cluster Shared Volume (CSV). The storage device can also include other types of shared volumes, including active-passive shared volumes that provide data storage services only to the cluster nodes on which they are active.

[0052] Figure 1C Diagram showing an FSRP node. The FSRP node (150) can be an embodiment of the enhanced FSRP nodes ( Figure 1B 132, 134) discussed above. The FSRP node (150) can include a Network File System (NFS) server (152) (which can include an FSRP global export table (154) and NFS reference attributes (156)), a local event manager (158), a cluster file system manager (160), and a namespace node mapping (162). Without departing from the present invention, the enhanced FSRP node (150) can include additional, fewer, and / or different components. Each of the foregoing components of the enhanced FSRP node (150) is discussed below.

[0053] In one or more embodiments, the NFS server (152) includes functionality for processing NFS requests. Specifically, the NFS server (152) can obtain NFS requests from an NFS client and perform translation of the NFS requests into a format readable by the remaining cluster nodes in the cluster. The cluster-readable requests generated by the NFS server (152) can be provided to the cluster file system manager (154). The NFS server (152) can include an FSRP global export table (154) and NFS reference attributes.

[0054] In one or more embodiments, the FSRP global export table (154) includes functionality for maintaining identifiers to easily locate all exports in each of the FSRPs in the cluster server (110). Figure 1D The FSRP global export table (154) is discussed in the description of Figure 1D . Such identifiers are referred to as NFS reference attributes (156). The NFS reference attribute (150) refers to an identification attribute of the NFS server (152) that is used by the NFS client (102) to identify information for accessing the FSRP node (150) and / or the NFS server (152).

[0055] In one or more embodiments, without departing from the present invention, the NFS server (152) is implemented as a logical device. The logical device utilizes the computing resources of any number of physical computing devices to provide the functionality of the NFS server (152) described throughout this application.

[0056] In one or more embodiments, the local event manager (158) includes functionality for managing all events that occur locally on the FSRP node (150) and communicates directly with the global event manager ( Figure 1A of 110) of the cluster ( Figure 1A of 112) in order to update the global event manager with any events that can occur on each individual FSRP node. The local event manager (158) can track all active FSRP nodes in the cluster and whether they are available or unavailable for handling new file system export tasks. The local event manager (158) can assist in the methods performed in Figure 2B the

[0057] In one or more embodiments, without departing from the present invention, the local event manager (158) is implemented as a logical device. The logical device utilizes the computing resources of any number of physical computing devices to provide the functionality of the local event manager (158) described throughout this application.

[0058] In one or more embodiments, the cluster file system manager (160) includes functionality for communicating with other cluster nodes in the cluster to service requests (e.g., cluster-readable requests) based on the file system utilized by the cluster. The cluster file system manager (160) may perform the communication according to Figure 3B Execute communication.

[0059] In one or more embodiments, the cluster file system manager (160) uses a namespace node mapping (162) to determine the namespace access nodes mapped to the files specified in the request (discussed above in Figure 1B ). The namespace node mapping (162) may be a data structure that maps each namespace access node in the cluster to the corresponding assigned files of the file system. The cluster file system manager (160) may further update the namespace node mapping (162) based on new assignments of files in the file system. The namespace node mapping may be used according to, for example, Figures 3A to 3B To use.

[0060] In one or more embodiments, without departing from the present invention, the cluster file system manager (160) is implemented as a logical device. The logical device utilizes the computing resources of any number of physical computing devices to provide the functionality of the cluster file system manager (160) described throughout this application.

[0061] Figure 1D A diagram showing the global export table (170). The global export table (170) may be an embodiment of the global export table ( Figure 1C 154) discussed above. As discussed above, the global export table (170) may maintain a list of all FSRP nodes in the cluster. The global export table (170) may include multiple entries (172A, 172N) for each instance of FSRP in the cluster. Each entry may contain information such as an identifier (174) of the FSRP, all the managed exports (176) of the FSRP, and the attributes (178) of the FSRP. Without departing from the present invention, the global export table (170) may include additional, fewer, and / or different components or information regarding file system exports. Each of the foregoing components of the global export table (170) is discussed below.

[0062] In one or more embodiments, each entry (172A, 172N) represents an instance of an FSRP node in a cluster. Each entry in the global export table (170) includes the FSRP node (174) corresponding to the entry (172A, 172N), the managed export (176) managed by the FSRP (174), and the corresponding FSRP attribute (178). The managed export (176) specified in the entry (172A, 172N) may be a portion of a namespace that is cluster-managed and assigned to the corresponding FSRP (174). Without departing from the present invention, the FSRP attribute (178) may specify an attribute, such as, for example, a domain name associated with the FSRP (174), an Internet Protocol (IP) address for communicating with the FSRP (174), and / or other attributes.

[0063] Figure 2A A flowchart illustrating a method for obtaining domain names of all FSRP nodes in a cluster according to one or more embodiments of the present invention. The method may be performed by, for example, an NFS client (102) and a Domain Name Server (DNS) (104). Without departing from the present invention, Figures 1A to 1D other components of the illustrated system may perform Figure 2A all or a portion of the method.

[0064] Although Figure 2A shown as a series of steps, without departing from the present invention, any of the steps may be omitted, may be performed in a different order, may include additional steps, and / or any or all of the steps may be performed in a parallel and / or partially overlapping manner.

[0065] In step 200, a query for the domain names of all FSRP nodes in the cluster is sent from the NFS client to the DNS. In one or more embodiments, the NFS client may query for individual domain names or multiple domain names of the FSRP nodes.

[0066] In step 202, the NFS client obtains the domain names of all FSRPs in the cluster from the DNS. For example, the domain name of FSRP node 1 may be given to the NFS client in the form of "fsrp1.domain.com". The domain names of the FSRP nodes will be obtained in the form of a list including all available FSRP nodes on the cluster.

[0067] In step 204, the NFS client stores the domain names obtained from the domain name server. The domain names of all FSRP nodes on the cluster may be stored (but not limited to) on the FSRP global export table in the NFS server client (see Figure 1C 152, 156).

[0068] The NFS client can further store any export locations obtained from the FSRP nodes. For example, the NFS client can request the NFS reference attributes for a given export and obtain a response specifying the export and the FSRP that manages the given export. The NFS client can track this information by, for example, mounting the export and storing the relevant information for accessing the export.

[0069] Figure 2B A flowchart showing a method for globally mapping all FSRP nodes in a cluster according to one or more embodiments of the present invention. The method may be performed by, for example, a global event manager and a local event manager ( Figure 1A 112 of Figure 1C and 158 of Figures 1A to 1D ). Without departing from the present invention, Figure 2B other components of the system shown may perform all or part of the

[0070] While Figure 2B is shown as a series of steps, any of the steps may be omitted, or may be performed in a different order, including additional steps, and / or any or all of the steps may be performed in a parallel and / or partially overlapping manner, without departing from the present invention.

[0071] In step 220, a global event manager on the cluster receives a notification that an event has occurred on an FSRP node in the cluster. As described above, this event may include an FSRP node "going online" or "going offline".

[0072] In step 222, it is determined whether the event notification received by the global event manager is for an FSRP node going online or going offline. If the notification indicates that the FSRP node has gone offline, the method proceeds to step 224; if the notification indicates that the FSRP node has gone online, the method proceeds to step 232.

[0073] In step 224, after determining that one of the FSRP nodes in the FSRP node has gone offline, perform a load balancing analysis to reassign one or more export locations to different FSRP nodes in the cluster. The load balancing analysis can be based on the client workload. In one or more embodiments, the client workload refers to the rate of NFS requests issued by the client to a given FSRP node. The load balancing analysis can include assigning the export location to the FSRP node with the lowest relative client workload. Alternatively, the load balancing analysis can be based on the current export workload. In one or more embodiments, the current export workload of an FSRP node can refer to the number of exports managed by the FSRP node. The load balancing analysis can include assigning the export location to the FSRP node that manages the lowest number of exports. Without departing from the present invention, the load balancing analysis can further include distributing the export locations of the offline FSRP node to multiple other FSRP nodes.

[0074] In step 226, notify each local event manager of each FSRP node in the cluster of the offline FSRP node and instruct the local event manager to remove the corresponding entry from its global export table. Also notify each local event manager of the reassignment of the file system export.

[0075] In step 228, each local manager of each FSRP removes the offline FSRP node from the global export table. The offline FSRP node will no longer exist in the global export table, and the file system export will not be sent to the node. The method proceeds to step 230.

[0076] In step 230, update the global export table in the cluster with all FSRP node changes, including changes to one or more export names, export paths, each allowed client for the export, and reference information about the export. More information about these details can be found in the discussion of the global export table in Figure 1D . After this step, the method ends.

[0077] In step 232, after determining that the FSRP node has come online, perform a load balancing analysis to assign one or more export locations to the new FSRP node in the cluster. The load balancing analysis can result in a redistribution of the export assignments among the FSRP nodes based on the client workload or the current export workload of all FSRP nodes.

[0078] In step 226, each local event manager of each FSRP node in the cluster is notified of the online FSRP node, and the local event manager is instructed to generate a corresponding entry in the global export table. Each local event manager is also notified of the reassignment of the single or multiple file systems exported to the new FSRP node.

[0079] Proceed to step 228, where the local manager of each FSRP adds the online FSRP node to the global export table. The online FSRP node will now exist in the global export table, and file system exports will be sent to that node. The method proceeds to step 230.

[0080] Figure 3A A vertical flowchart showing a method for load balancing FSRP nodes in a cluster according to one or more embodiments of the present invention. The method may be performed by, for example, an NFS client and any number of FSRP nodes ( Figure 1A 102 of Figure 1C 150). Without departing from the present invention, Figures 1A to 1D other components of the system shown may perform Figure 3A all or part of the method.

[0081] Although Figure 3A shown as a series of steps, any of the steps may be omitted, or may be performed in a different order, including additional steps, and / or any or all of the steps may be performed in a parallel and / or partially overlapping manner, without departing from the present invention. For purposes of description Figures 3A to 3C any communication between the NFS client and the FSRP node is in accordance with the NFS protocol.

[0082] In step 300, the client requests a file handle (FH) for a specific file system export exp2 from FSRP1. For purposes of description Figure 3A in the entry of the global export table (not shown) of FSRP1, export2 is specified as being associated with (e.g., managed by) "FSRP2".

[0083] In step 302, FSRP1 consults its global export table to search for file system export 2 or "exp2". The global export table (see Figure 1D ) may include a list of all managed exports and the attributes of the FSRP node managing the file system export. The global export table may also include any other information obtained from a domain name server.

[0084] In step 304, FSRP1 returns the file system location attribute of exp2 from its global export table. In this specification, the location attribute of exp2 points to FSRP2. Assuming that FSRP2 is the correct location of export2, the NFS client uses the obtained location attribute of export2 (i.e., the IP address of FSRP2) to initiate communication with FSRP2.

[0085] In step 306, the NFS client requests the file handle of file system export exp2 from FSRP2. This request may include a request to confirm that export2 can be obtained through the NFS server of FSRP2.

[0086] In step 308, FSRP2 consults its global export table to determine that exp2 is managed by FSRP2.

[0087] In step 310, FSRP2 sends a confirmation to the NFS client that exp2 can be accessed through FSRP2.

[0088] In step 312, based on the confirmation received in step 310, the NFS client mounts exp2. The mount causes the NFS client to store the relevant information mapping exp2 and the IP address of FSRP2.

[0089] In step 314, the NFS client sends read and write requests for exp2 (such as writing a new file to exp2).

[0090] In step 316, FSRP2 accesses the corresponding namespace access node to read from and write to exp2 (and any corresponding files therein).

[0091] In step 318, the namespace access node confirms serving read / write requests to the FSRP node in a cluster-readable protocol.

[0092] In step 320, FSRP2 provides a confirmation of the service to the NFS client according to the NFS protocol.

[0093] To further describe steps 312 to 314, the following provides an example section.

[0094] Example

[0095] The following section describes the example. Figure 3B The example shown is not intended to limit the present invention. Turning to the example, consider a scenario where an NFS client utilizes a scalable cluster to perform file system storage services for NFS. In the following example, the FSRP node (350) is Figure 3A the FSPR2.

[0096] Go to Figure 3B , Figure 3B A diagram of an example system is shown. Figure 3B All components of the example system are shown in FIG. The example system includes at least an NFS client (300), a domain name server (302), a cluster (310), and a storage system (306). The NFS client (300) uses the cluster (310) to perform file system storage services, such as storing NFS data and providing NFS data to the NFS client. The cluster includes an enhanced file system redirection proxy (FSRP) node (350), two namespace access nodes (336, 338), and three deduplication nodes (340, 342, 344).

[0097] NFS client (300) according to Figure 3A Mount the NFS directory " / data / col1 / exp2" (on Figure 3A The NFS client (300) communicates with the NFS server (352) of the enhanced FSRP node (350) to send NFS requests for reading, writing and / or otherwise using files in the directory.

[0098] For example, the NFS client (300) may send two NFS requests for two new files (i.e., file1 and file2) to a directory. The NFS server (352) translates each of the two NFS requests into a cluster readable request. The two cluster readable requests are provided to the cluster file manager (354) of the FSRP node (350).

[0099] The cluster file system manager (354) consults the namespace node map (356) to determine that the two files are not currently managed in the cluster. The two files can be assigned to one of the namespace access nodes (336) based on the availability of the two namespace access nodes (336, 338). Based on this availability, the cluster file system manager (354) assigns namespace access node A (336) to manage the two files. Based on this assignment, the cluster file system manager (354) updates the namespace node map (356) to specify the mapping of namespace access node A (336) to file1 and file2.

[0100] After this assignment, the cluster file system manager (354) acts as a client for storing the data of file1 and file2, and communicates with the deduplication node B (342) to request the deduplication node B to store these two files in the storage system (306). The deduplication node B (342) performs a deduplication service, such as hashing the data of file1 to obtain a first unique hash value, determining that the first unique hash value is not stored in the local mapping (not shown) of the deduplication nodes (340, 342, 344), and based on this determination, sending the data to the storage system (306) for storage. Similarly, the deduplication node B (342) hashes the data of file2 to obtain a second unique hash value. The deduplication node B (342) determines that the second unique hash value is not specified in the local mapping, and based on this determination, sends the data to the storage system (306) for storage.

[0101] The deduplication node B (342) sends an acknowledgement of the storage to the namespace access node A (336), and the namespace access node A forwards this acknowledgement to the cluster file system manager (354). The NFS server (352) obtains this acknowledgement and provides the acknowledgement to the NFS client (300).

[0102] End of example

[0103] Figure 3C A vertical flowchart showing an example of a failure instance of an FSRP node in a cluster according to one or more embodiments of the present invention. The method may be performed by, for example, an NFS client and any number of FSRP nodes ( Figure 1A 102 of Figure 1C and Figures 1A to 1D 150 of Figure 3A ). Without departing from the present invention,

[0104] Although Figure 3C is shown as a series of steps, any of the steps may be omitted, or may be executed in a different order, including additional steps, and / or any or all of the steps may be executed in a parallel and / or partially overlapping manner without departing from the present invention.

[0105] In step 340, an event occurs that causes FSRP2 to become unavailable or "offline". This can be due to a system failure, scheduled maintenance, or the FSRP2 node being overloaded with workload and unable to manage. The local event manager of FSRP2 reports this instance to the global event manager so that all FSRP nodes on the cluster can update their corresponding global export tables. FSRP2 is no longer available, and the load that previously existed on FSRP2 is redistributed across the other available FSRP nodes on the cluster. The global export table of the cluster is updated accordingly with the results of this event, including the location of the file system exports that have been reassigned. For more information on this process, please refer to Figure 2B .

[0106] In step 342, based on the method executed in Figure 2B for redistributing the workload in the case where an FSRP node goes offline, the workload of FSRP2 is reassigned to FSRP3. In one or more embodiments of the present invention, the workload of an individual FSRP node (e.g., multiple exports) can be redistributed across multiple FSRP nodes. In Figure 3A the description, only the reassignment of export 2 is described. As Figure 2B stated, the reassignment can be based on the relative current export workload of FSRP1 and FSRP3 and the client workload of each of FSRP1 and FSRP3.

[0107] In step 344, the NFS client attempts to send the read / write requests described above in Figure 3B to the now-offline FSRP2. However, the now-offline FSRP node cannot service NFS requests from the NFS client.

[0108] In step 346, the NFS client receives a timeout notification confirming that FSRP2 is not available as a file system export location.

[0109] In step 348, based on the timeout notification, the NFS client consults the domain name server to obtain a list of all FSRP nodes in the cluster in order to identify the next FSRP on the list to attempt to access exp2. In this example, the next FSRP in the list is FSRP3.

[0110] In step 350, the NFS client requests a file handle for the file system export exp2 from FSRP3. Based on the process carried out in step 342, the file handle for exp2 is now accessible through FSRP3.

[0111] In step 352, FSRP2 consults its global export table to search for exp2 in the file system. The global export table of FSRP3 includes the file system location attribute of exp2, so it confirms its location on FSRP3. Compared with the original location of exp2 (i.e., FSRP2 which is now unavailable), FSRP3 confirms to the NFS client that exp2 is accessible on FSRP3.

[0112] In step 354, the NFS client uses the updated file system location attribute to mount exp2. Mounting causes the NFS client storage to store relevant information that maps exp2 to the IP address of FSRP2.

[0113] In steps 356 and 358, the NFS client uses FSRP3 to service read / write requests for exp2.

[0114] As discussed above, embodiments of the present invention can be implemented using a computing device. Now turning to Figure 4 , Figure 4 FIG. showing a computing device according to one or more embodiments of the present invention. The computing device (400) may include one or more computer processors (402), a non-persistent storage device (404) (e.g., volatile memory such as random access memory (RAM), cache memory), a persistent storage device (406) (e.g., hard disk, optical disk drive such as a compact disc (CD) drive or a digital versatile disc (DVD) drive, flash memory, etc.), a communication interface (412) (e.g., interface, infrared interface, network interface, optical interface, etc.), an input device (410), an output device (408), and many other elements (not shown) and functions. Each of these components is described below.

[0115] In one embodiment of the present invention, the computer processor (402) may be an integrated circuit for processing instructions. For example, the computer processor may be one or more cores or micro-cores of a processor. The computing device (400) may also include one or more input devices (410), such as a touch screen, keyboard, mouse, microphone, touchpad, electronic pen, or any other type of input device. In addition, the communication interface (412) may include an integrated circuit for connecting the computing device (400) to a network (not shown) (e.g., local area network (LAN), wide area network (WAN) such as the Internet, mobile network, or any other type of network) and / or another device (such as another computing device).

[0116] In one embodiment of the present invention, the computing device (400) may include one or more output devices (408), such as a screen (e.g., a liquid crystal display (LCD), a plasma display, a touch screen, a cathode ray tube (CRT) monitor, a projector, or other display device), a printer, an external storage device, or any other output device. One or more of the output devices may be the same as or different from the input devices. The input and output devices may be connected locally or remotely to a computer processor (402), a non-persistent storage device (404), and a persistent storage device (406). There are many different types of computing devices, and the input and output devices mentioned previously may take other forms.

[0117] One or more embodiments of the present invention may be implemented using instructions executed by one or more processors of a cluster manager. Additionally, such instructions may correspond to computer-readable instructions stored on one or more non-transitory computer-readable media.

[0118] One or more embodiments of the present invention may improve the operation of one or more computing devices in a cluster environment. Specifically, embodiments of the present invention relate to a method of providing file system storage services across a network using, for example, a network file system protocol.

[0119] One or more embodiments of the present invention relate to a method of using existing cluster technology and its existing protocols for a client to provide file system storage services using the NFS protocol. Using this technology, no additional software is required on the NFS client to respond to the addition, removal, or otherwise scaling of cluster nodes in the cluster. Additionally, no protocol changes are required within the nodes of the deduplication-aware cluster. In this way, the cluster provides a data transfer service to clients operating using the NFS protocol, even though the cluster operates using a different protocol (such as DDBoost TM ). The NFS client can remain agnostic to changes in the cluster, thereby improving the user experience when using a deduplication-aware cluster to manage their data storage.

[0120] The problems discussed above should be understood as examples of the problems solved by the embodiments of the present invention disclosed herein, and the present invention should not be limited to solving the same / similar problems. The disclosed invention is widely applicable to solving a range of problems other than those discussed herein.

[0121] Although the present invention has been described with respect to a limited number of embodiments, those skilled in the art who have benefited from this disclosure will understand that other embodiments may be envisioned without departing from the scope of the technology disclosed herein. Accordingly, the scope of the present invention should be defined solely by the appended claims.

Claims

1. A method for managing data in a cluster, the method comprising: Receiving, by a global event manager of the cluster, a notification that an event has occurred on the cluster, wherein the cluster includes a plurality of File System Redirector Proxy (FSRP) nodes; In response to the notification: Performing a load balancing analysis on the cluster to assign an export location of a file system export to an FSRP node among the plurality of FSRP nodes; And Notifying each FSRP node among the plurality of FSRP nodes in the cluster, wherein the notification causes the global export table of each FSRP node among the plurality of FSRP nodes to be updated with respect to the assignment of the export location to the FSRP node, wherein prior to the notification, the export location was assigned to another FSRP node among the plurality of FSRP nodes, and wherein the global export table is used to manage client access to the file system export in the cluster.

2. The method according to claim 1, wherein the file system export is in a format that can be read by the Network File System (NFS) protocol.

3. The method according to claim 2, wherein the client manages a namespace using the NFS protocol, wherein the cluster manages a namespace using a protocol different from the NFS protocol, and wherein the client accesses the file system export using the plurality of FSRP nodes in the cluster.

4. The method according to claim 3, wherein the client communicates with a Domain Name Server (DNS) to obtain a list of domain names of each FSRP node among the plurality of FSRP nodes.

5. The method according to claim 4, wherein after the notification, the client communicates with one FSRP node among the plurality of FSRP nodes using the list of domain names to obtain attribute information associated with the file system export, and wherein the attribute information includes the export location and the domain name of the FSRP node.

6. The method according to claim 1, wherein the event corresponds to a second FSRP node becoming unavailable, wherein the method further comprises: Before the load balancing analysis, determining that the file system export was assigned to the second FSRP node before the second FSRP node became unavailable, and Based on the determination and after performing the load balancing analysis, instructing each FSRP node in the cluster to remove the second FSRP node from the global export table.

7. The method according to claim 1, wherein the event corresponds to an FSRP node being introduced into the cluster.

8. The method according to claim 1, wherein the load balancing analysis is based on the current export workload on each FSRP node among the plurality of FSRP nodes.

9. The method according to claim 1, wherein the load balancing analysis is based on the client workload on each FSRP node among the plurality of FSRP nodes.

10. A system, comprising: A cluster, the cluster including a plurality of File System Redirection Proxy (FSRP) nodes and a global event manager executed on a processor, wherein the global event manager is programmed to: receive, by the global event manager of the cluster, a notification that an event has occurred on the cluster, wherein the cluster includes a plurality of FSRP nodes; in response to the notification: perform a load balancing analysis on the cluster to assign an export location of a file system export to an FSRP node among the plurality of FSRP nodes; and notify each FSRP node among the plurality of FSRP nodes in the cluster, wherein the notification causes an update to a global export table of each FSRP node among the plurality of FSRP nodes with respect to the assignment of the export location to the FSRP node, wherein prior to the notification, the export location was assigned to another FSRP node among the plurality of FSRP nodes, and wherein the global export table is used to manage client access to the file system export in the cluster.

11. The system of claim 10, wherein the file system export is in a format that can be read in the NFS protocol.

12. The system of claim 11, wherein the client manages a namespace in the NFS protocol, wherein the cluster manages a namespace in a protocol different from the NFS protocol, and wherein the client accesses the file system export using the plurality of FSRP nodes in the cluster.

13. The system of claim 12, wherein the client communicates with DNS to obtain a list of domain names of each FSRP node among the plurality of FSRP nodes.

14. The system of claim 13, wherein after the notification, the client communicates with one FSRP node among the plurality of FSRP nodes using the list of domain names to obtain attribute information associated with the file system export, and wherein the attribute information includes the export location and the domain name of the FSRP node.

15. The system of claim 10, wherein the event corresponds to an FSRP node becoming unavailable, wherein the global event manager is further programmed to: prior to the load balancing analysis, determine that the file system export was assigned to the FSRP node before the FSRP node became unavailable, and based on the determination and after performing the load balancing analysis, instruct each FSRP node in the cluster to remove the FSRP node from the global export table.

16. The system of claim 10, wherein the event corresponds to an FSRP node being introduced into the cluster.

17. The system of claim 10, wherein the load balancing analysis is based on the current export workload on each FSRP node among the plurality of FSRP nodes.

18. The system of claim 10, wherein the load balancing analysis is based on the client workload on each FSRP node among the plurality of FSRP nodes.

19. A non-transitory computer-readable medium comprising computer-readable program code that, when executed by a computer processor, enables the computer processor to perform a method for managing data in a cluster, the method comprising: Receiving, by a global event manager of the cluster, a notification that an event has occurred on the cluster, wherein the cluster includes a plurality of file system redirect proxy (FSRP) nodes; In response to the notification: Performing a load balancing analysis on the cluster to assign an export location of a file system export to an FSRP node among the plurality of FSRP nodes; And Notifying each FSRP node among the plurality of FSRP nodes in the cluster, Wherein the notification causes the global export table of each FSRP node among the plurality of FSRP nodes to be updated with respect to the assignment of the export location to the FSRP node, Wherein, prior to the notification, the export location was assigned to another FSRP node among the plurality of FSRP nodes, and Wherein the global export table is used to manage client access to the file system export in the cluster.

20. The non-transitory computer-readable medium according to claim 19, Wherein the file system export is in a format readable by the NFS protocol, Wherein a client manages a namespace using the NFS protocol, wherein the cluster manages a namespace using a protocol different from the NFS protocol, and wherein the client accesses the file system export using the plurality of FSRP nodes in the cluster, Wherein the client communicates with DNS to obtain a list of domain names of each FSRP node among the plurality of FSRP nodes, and Wherein, after the notification, the client communicates with one FSRP node among the plurality of FSRP nodes using the list of domain names to obtain attribute information associated with the file system export, and wherein the attribute information includes the export location and the domain name of the FSRP node.