SCALE AND DISTRIBUTE NAMESPACES AND CLIENTS ACROSS MULTIPLE FILE SYSTEM REDIVERSION PROXYS
Patent Information
- Application Number
- DE102025100552
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-19
- Filing Date
- 2025-01-09
- Publication Date
- 2025-07-24
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
BACKGROUND
[0001] Clustering is often used in an enterprise environment. One version of clustering, failover clustering, allows multiple nodes to work together to increase node availability and scalability. In addition, one version of clustering provides file system data storage for clients. This version can include a hierarchy of nodes, each with a specific function for providing file system data storage. BRIEF DESCRIPTION OF THE DRAWINGS
[0002] Certain embodiments of the invention will be described with reference to the accompanying drawings. However, the accompanying drawings only illustrate certain aspects or implementations of the invention by way of example and are not intended to limit the scope of the claims. Fig. 1A shows a diagram of a system including a cluster according to one or more embodiments of the invention. Fig. 1B shows a diagram of a cluster server according to one or more embodiments of the invention. Fig. 1C shows a diagram of a file system redirection proxy (FSRP) node according to one or more embodiments of the invention. Fig. 1D shows a diagram of a global export table according to one or more embodiments of the invention. Fig. 2A shows a flowchart of a method for obtaining the domain names of the FSRPs in the cluster according to one or more embodiments of the invention. Fig. 2B shows a flowchart of a method for updating the global export tables of the FSRPs according to one or more embodiments of the invention. Fig. 3A illustrates a method for load balancing exports according to one or more embodiments of the invention. Fig. 3B shows an example of a file system storage process according to one or more embodiments of the invention. Fig. 3C shows an example of a fault instance according to one or more embodiments of the invention. Fig. 4 shows a diagram of a computing device according to one or more embodiments of the invention. DETAILED DESCRIPTION
[0003] Specific embodiments will now be described with reference to the accompanying drawings. In the following description, numerous details are cited as examples of the invention. It will be apparent to those skilled in the art that one or more embodiments of the present invention may be practiced without these specific details, and that numerous variations or modifications may be possible without departing from the scope of the invention. Certain details known to those skilled in the art have been omitted to avoid obscuring the description.
[0004] In the following description of the figures, each component described with respect to one figure in various embodiments of the invention may correspond to one or more like-named components described with respect to another figure. For the sake of brevity, the descriptions of these components are not repeated with respect to each figure. Therefore, each individual embodiment of the components of each figure is incorporated by reference and is understood to be optionally present in any other figure having one or more like-named components.Furthermore, any description of the components of an illustration according to various embodiments of the invention is to be interpreted as an optional embodiment that may be implemented in addition to, in conjunction with, or instead of the embodiments described with respect to a corresponding like-named component in another illustration.
[0005] In this application, elements of the figures may be labeled A through N. As used herein, the above labeling means that the element may include any number of elements and does not require that the element include the same number of elements as any other element 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 of the first data structure and the number of elements of the second data structure may be the same or different.
[0006] In general, embodiments of the invention relate to systems and methods for managing one or more file systems. More particularly, embodiments of the invention relate to a system comprising clients operating their file system in a first protocol (e.g., a version of the Network File System (NFS)), and further comprising a cluster that receives input / output (I / O) requests according to the first protocol and provides translation services for the received I / O requests into a second protocol readable by other nodes in the cluster. The cluster may include an extended file system redirection proxy (FSRP) node that includes functionality for translating the I / O requests from the first protocol to the second protocol before transmitting the translated requests to the other nodes for processing according to the second protocol.
[0007] Embodiments of the invention include methods for managing the distribution of workloads among the FSRP nodes in the cluster. In particular, a namespace of NFS exports can be distributed across the FSRP nodes so that each FSRP node manages a portion of the namespace. The assigned exports (also referred to as NFS exports or file system exports) can be distributed based on an even distribution of the file system exports across the FSRPs. Alternatively, the exports can be distributed based on the client workload.
[0008] Embodiments of the invention further include managing the scaling of the FSRP nodes through the use of a global event manager that monitors events occurring in the cluster, such as the startup or shutdown of an FSRP node. Based on changes to the FSRP nodes, the global event manager can initiate the update of a global export table maintained by each FSRP node to determine the most current distribution of exports among the FSRP nodes.
[0009] Fig. 1A shows a diagram of a system according to one or more embodiments of the invention. The system may include one or more NFS clients (102), a domain name server (104), a storage system (106), and at least one data cluster (110). The system may include any number of data clusters (110) without departing from the invention. For example, the system may include two data clusters (not shown) communicating over a network (100). The system may include additional, fewer, and / or different components without departing from the invention. Each of the components in the system may be connected to the operation via any combination of wireless and / or wired networks (100).
[0010] In one or more embodiments, the Domain Name Server (DNS) (104) includes the functionality to store and report the IP address of all FSRP node servers in the cluster. The DNS helps the NFS client determine the correct storage location for file system exports on the FSRPs in the cluster. The functionality of the DNS is described in Fig. 2A, where the NFS client obtains a list of domain names for all FSRPs in the cluster from DNS. Further details on DNS functionality can be found, for example, in Fig. 2A.
[0011] In one or more embodiments of the invention, the cluster (110) may include a plurality of cluster servers (e.g., 110A, 110N) and a global event manager (114) without departing from the invention. 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 by other means. The system may include additional, fewer, and / or different components without departing from the invention. Each of the components of the cluster may be connected to the operation via any combination of wireless and / or wired networks (100).
[0012] In one or more embodiments of the invention, the cluster (110) includes the functionality to provide data backup services for the NFS clients (102). The data backup services may include storing data using deduplication operations so that only unique data is stored in the storage system (106). In this way, the cluster (110) may be a deduplication-capable cluster. The cluster servers (110A, 110N) may include the functionality to provide and / or maintain other and / or additional services without departing from the invention. While Fig. 1A shows the cluster (110) as a separate component from the storage system (106), it may be a portion of the cluster (110) without departing from the invention.
[0013] In one or more embodiments, the cluster servers (110A, 110N) include functionality for receiving requests from the NFS clients (102A, 102N) associated with files in a file system. The requests may be, for example, read or write requests. The requests may conform to a version of an NFS (Network File System) protocol. For example, the requests may be NFSv4 requests. The requests may specify writing new files, mounting a directory (or other files), reading new files, and / or other instructions without departing from the invention. The requests may be serviced using data stored in the storage system (106). For example, in response to receiving the requests, the cluster servers (110A, 110N) may access the storage system (106) to read, write, and / or store data associated with the requests.
[0014] In one or more embodiments, the cluster (110) may include a second protocol for accessing data in the storage system (106). For example, a node in the cluster server (110) may operate in a protocol that differs from the NFS protocol of the NFS clients (100). The second protocol may, for example, be Data Domain Boost (DDBoost™). In this way, the cluster servers (110A, 110N) include nodes (in Fig. 1B), which include functions for translating the requests (in the NFS protocol) into cluster-readable requests (for example, in the DDBoost™ protocol) and for processing the cluster-readable requests according to the NFS requests. The translation and processing may be performed according to other methods without departing from the invention.
[0015] In one or more embodiments of the invention, each cluster server (110) is implemented as a computing device (see, for example, Fig. 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, memory (e.g., random access memory), and persistent storage (e.g., hard disks, SSDs, and so on). The computing device may include instructions stored on the persistent storage that, when executed by the processor(s) of the computing device, cause the computing device to perform the functionality of the cluster server (110A, 110N) as described in this application.
[0016] In one or more embodiments, the cluster (110) further comprises a global event manager (112) that maintains a list of all FSRP nodes in the system, as well as their status and availability. It monitors each FSRP node (described in Fig. 1B-1C) in the cluster. The global event manager (112) can be updated when an activity occurs in the system to maintain this list of FSRP nodes, as described in the methodology of Fig. 2B. In particular, upon detecting a change in the FSRP nodes in the clusters, the global event manager (112) may initiate the update of a global export table (described further below). Examples of changes include the up or down of an FSRP node. In one or more embodiments, an "UP" FSRP node refers to the FSRP node becoming available and being introduced into the cluster. The "UP" FSRP node may dedicate the compute resources to managing another export in the file system. When an FSRP node is "DOWN," this refers to the FSRP node becoming unavailable and therefore unable to manage a file system export. The unavailability may be caused, for example, by the unavailability of compute resources used for the FSRP node, the FSRP node being idle, or the FSRP node otherwise failing.The global event manager (112) can be directly connected to local event managers (see . Fig. 1B) to ensure that all FSRP nodes are informed about node availability on all cluster servers (110A, 110N) in the cluster (110).
[0017] In one or more embodiments of the invention, the global event manager (112) is implemented as a computing device. A 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, memory (e.g., random access memory), and persistent storage (e.g., hard disk drives, solid-state drives, and so on). The computing device may include instructions stored on the persistent storage that, when executed by the processor(s) of the computing device, cause the computing device to perform the functionality of a global event manager (112), as described in this application.
[0018] In one or more embodiments of the invention, the global event manager (112) is implemented as a logical device. The logical device can utilize the computing resources of any number of computing devices, thereby providing the functionality of the global event manager (112) as described in this application.
[0019] In one or more embodiments of the invention, the cluster (110) cooperates with a storage system (106) to store files and map information. The storage system (106) may include local storage / volumes located in one of the local storage devices of the storage system (106) or the nodes (see Fig. 1B) are stored in the cluster (110). In one or more embodiments of the invention, the storage system (106) may include storage that is not part of the cluster (110). The storage system (106) may also include external storage, including, for example, but not limited to, cloud storage and long-term storage such as tape drives, depending on the particular needs of the user and / or the system. The storage system (106) may include one or more processors, memory (e.g., random access memory), and persistent storage (e.g., hard disk drives, solid-state drives, and so on).
[0020] In one or more embodiments of the invention, the storage system (106) includes the functionality to provide storage services for the cluster (110), as explained above. The storage services may include: (i) receiving requests for data generated by the performance of computer-implemented services from the cluster (110), (ii) storing data and metadata associated with the files in a persistent store of the storage system (106), and (iii) making files available to the cluster (110A, 110N) for read / write and / or other purposes without departing from the invention. The storage services may include the functionality to provide and / or maintain other services without departing from the invention. The storage system (106) may include any number of storage devices without departing from the invention.
[0021] In one or more embodiments of the invention, the storage system (106) is implemented as a computing device. A 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, memory (e.g., random access memory), and persistent storage (e.g., hard disk drives, solid-state drives, and so on). The computing device may include instructions stored on the persistent storage that, when executed by the processor(s) of the computing device, cause the computing device to perform the functionality of a storage system (106), as described in this application.
[0022] In one or more embodiments of the 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, thereby providing the functionality of the storage system (106) as described in this application.
[0023] In one or more embodiments of the invention, the NFS clients (110) and the storage system (106) communicate with the cluster (110) over a network (100). The network (100) may take any form of network, including any combination of wireless and / or wired networks. The network (100) may be a local area network (LAN) or a wide area network (WLAN) that includes the Internet or a private enterprise network connecting more than one location. The network (100) may be any combination of the above-mentioned networks, other known networks, or any combination of network types.
[0024] In one or more embodiments of the invention, the network (100) enables the cluster (110) to communicate with other clusters (not shown) and external data processing devices, such as (but not limited to) a domain name server (e.g., 104) and a backup storage (e.g., 106). The various components of the cluster (110) may also communicate with each other via a network. The network may be an internal high-speed network and / or include a portion of an external network (108).
[0025] A network (e.g., network (100)) may refer to an entire network or any portion thereof (e.g., a logical portion of devices within a topology of devices). A network may include a data center network, a wide area network, a local area network, a wireless network, a cellular network, and / or any other suitable network that enables the exchange of information from one portion of the network to another. A network may be located at a single physical location or distributed across any number of physical locations. In one or more embodiments, a network may be coupled to, or at least partially overlap with, the Internet.
[0026] In one or more embodiments, the network (100), although in Fig. 1A, any number of devices within any components (e.g., 102, 104, 110, and 106) of the system, as well as devices external to or between such components of the system. In one or more embodiments, at least a portion of these 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 persistent storage (not shown), 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 that may provide connections (e.g., links) to other devices (e.g., computing devices, other network devices, and so on).In one or more embodiments, a network device also includes any number of additional components (not shown), such as network chips, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), indicator lights (not shown), fans (not shown), and so on. A network device may include any other components without departing from the invention. Examples of network devices include, but are not limited to, a network switch, a router, a multilayer switch, a Fibre Channel device, an InfiniBand® device, and so on. A network device is not limited to the specific examples above.
[0027] In one or more embodiments of the invention, a cluster (e.g., 110) may be implemented as one or more computing devices. A data cluster (e.g., 110) may include any number of computing devices without infringing the invention. The data cluster (e.g., 110) may include a different number of computing devices, a different amount and different types of computing resources, and perform different computer-implemented services without infringing the invention.
[0028] Fig. 1B shows a diagram of a cluster server according to one or more embodiments of the invention. The cluster server (130) of Fig. 1B may illustrate an embodiment of a cluster server (110, 112, Fig. 1A). The cluster server (130) may include one or more file system redirection proxy (FSRP) nodes (132, 134), one or more namespace access nodes (136, 138), and one or more deduplication service nodes (140, 142). The extended FSRP nodes (132, 134), the namespace nodes (136, 138), and the deduplication service nodes (140, 142) may collectively be referred to as cluster nodes of a cluster (e.g., 110, Fig. 1A).
[0029] While the cluster server (130) is illustrated as including cluster nodes, for example, extended 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 other cluster nodes without departing from the invention.
[0030] In one or more embodiments of the invention, the cluster nodes execute workloads and provide services to clients and / or other entities operating in the Fig. 1A. The cluster nodes may further include the functionality to provide computer-implemented services to users (e.g., NFS clients, 102, Fig. 1A) of the cluster (110). The computer-implemented services may include, for example, database services, email services, data processing services, and so on. The computer-implemented services may include other and / or additional types of services without departing from the invention.
[0031] During the performance of the aforementioned services, data may be generated and / or otherwise obtained. The cluster nodes include local storage (not shown), which may include multiple disks, and shared storage, which may include shared cluster disks (not shown). The data storage services may include other and / or additional services without departing from the invention. The data generated by the cluster nodes and stored on the shared storage may be valuable to the system's users and therefore protected.
[0032] In one or more embodiments, the FSRP nodes (132, 134) of the cluster nodes include functionality for receiving NFS requests from the NFS clients (102, Fig. 1A) and for translating the requests into cluster-readable requests for processing by the namespace access nodes (136, 138) and the deduplication service nodes (140, 142). Further details on the FSRP nodes can be found, for example, in Fig. 1C.
[0033] In one or more embodiments of the invention, one or more of the FSRP nodes (132, 134) are each implemented as a computing device (see, for example, Fig. 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, memory (e.g., random access memory), and persistent storage (e.g., hard drives, SSDs, and so on). The persistent storage may store computer instructions, such as computer code, that, when executed by the processor(s) of the computing device, cause the computing device to perform the functions of the FSRP nodes (132, 134) described in this application.
[0034] The FSRP nodes (132, 134) may each be implemented as a logical device without departing from the invention. The logical device utilizes computing resources of any number of physical computing devices to provide the functionality of the enhanced FSRP nodes (132, 134) described in this application.
[0035] In one or more embodiments, each of the namespace access nodes (136, 138) is assigned a portion of the file system for management. For example, each access node is assigned one or more objects (e.g., a directory, a document, a file, a drive, and so on) of the file system, so that all namespace access nodes (136, 138) in a cluster (e.g., 110, Fig. 1A) can be assigned jointly to all objects in a file system. The assignment of objects can be performed, for example, by one or more of the extended FSRP nodes (132, 134).
[0036] In one or more embodiments of the invention, one or more of the namespace access nodes (136, 138) are each implemented as a computing device (see, for example, Fig. 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, memory (e.g., random access memory), and persistent storage (e.g., hard drives, SSDs, and so on). Persistent storage may store computer instructions, such as computer code, that, when executed by the processor(s) of the computing device, cause the computing device to perform the functions of the namespace access nodes (136, 138) described in this application.
[0037] The namespace access nodes (136, 138) may each be implemented as a logical device without departing from the invention. The logical device utilizes computing resources of any number of physical computing devices to provide the functionality of the namespace access nodes (136, 138) described in this application.
[0038] In one or more embodiments, the deduplication service nodes (140, 142) include functionality for performing data storage services. The data storage services may, for example, include deduplication services. The deduplication services may include hashing an object (or the data associated with it or a portion of the data) to obtain a unique identifier of the object and / or the data and / or a portion of the data. The unique identifier is compared to a table maintained by the deduplication service node (140, 142) to determine whether such an object exists in a storage system (e.g., 106, Fig. 1A). This way, duplicate data is not stored and the storage system's resources are used efficiently.
[0039] In one or more embodiments of the invention, one or more of the deduplication service nodes (140, 142) are each implemented as a computing device (see, for example, Fig. 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, memory (e.g., random access memory), and persistent storage (e.g., hard drives, SSDs, and so on). The persistent storage may store computer instructions, such as computer code, that, when executed by the processor(s) of the computing device, cause the computing device to perform the functions of the deduplication service nodes (140, 142) described in this application.
[0040] The deduplication service nodes (140, 142) may each be implemented as a logical device without departing from the invention. The logical device utilizes computing resources of any number of physical computing devices to provide the functionality of the deduplication service nodes (140, 142) described in this application.
[0041] In one or more embodiments of the invention, the cluster nodes comprise local storage associated only with the data node assigned to it. The storage also comprises shared storage, such as a cluster shared volume (CSV). The storage may also comprise other types of shared volumes, such as active-passive shared volumes, which provide data storage services only for the cluster nodes on which they are active.
[0042] Fig. 1C shows a diagram of the FSRP node. The FSRP node (150) may be an embodiment of an extended FSRP node (132, 134, Fig. 1B) discussed above. The FSRP node (150) may include an NFS (Network File System) server (152), which may include a global FSRP export table (154) and an NFS referral attribute (156), a local event manager (158), a cluster file system manager (160), and a namespace node mapper (162). The enhanced FSRP node (150) may include additional, fewer, and / or different components without departing from the invention. Each of the aforementioned components of the enhanced FSRP node (150) is discussed below.
[0043] In one or more embodiments, the NFS server (152) includes functionality for processing NFS requests. In particular, the NFS server (152) can receive NFS requests from NFS clients and translate the NFS requests into a format readable by the other cluster nodes in the cluster. The cluster-readable request generated by the NFS server (152) can be provided to the cluster file system manager (154). The NFS server (152) can include a global FSRP export table (154) and an NFS referral attribute.
[0044] In one or more embodiments, the global FSRP export table (154) includes functionality for managing identifiers to easily locate all exports in each of the FSRPs in the cluster server (110). The global FSRP export table (154) is described in the description of Fig. 1D. Such identifiers are known, for example, as an NFS referral attribute (156). The NFS referral attribute (150) refers to an identification attribute of the NFS server (152) used by the NFS client (102) to identify information for accessing the FSRP node (150) and / or the NFS server (152).
[0045] In one or more embodiments, the NFS server (152) is implemented as a logical device without departing from the invention. The logical device utilizes computing resources of any number of physical computing devices to provide the functionality of the NFS server (152) described in this application.
[0046] In one or more embodiments, the local event manager (158) includes the functionality to manage all events occurring locally on the FSRP node (150) and communicates directly with the global event manager (112, Fig. 1A) of the cluster (110, Fig. 1A) to update the global event manager with all events that can occur on each individual FSRP node. The local event manager (158) can track all active FSRP nodes in the cluster and determine whether they are available or unavailable to process new file system export tasks. The local event manager (158) can Fig. The methodology presented in Figure 2B may help.
[0047] In one or more embodiments, the local event manager (158) is implemented as a logical device without departing from the invention. The logical device utilizes computing resources of any number of physical computing devices to provide the functionality of the local event manager (158) described in this application.
[0048] In one or more embodiments, the cluster file system manager (160) includes functionality for communicating with other cluster nodes in the cluster to serve requests (e.g., cluster-readable requests) based on the file system used by the cluster. The cluster file system manager (160) may communicate according to Fig. Perform 3B.
[0049] In one or more embodiments, the cluster file system manager (160) uses a namespace node mapping (162) to identify the namespace access node (above in Fig. 1B) that is associated with a file specified in a request. The namespace node mapping (162) may be a data structure that maps each namespace access node in the cluster to the associated mapped files of the file system. The cluster file system manager (160) may further update the namespace node mapping (162) based on the new mapping of files in the file system. The namespace node mapping may, for example, be according to Fig. 3A-3B can be used.
[0050] In one or more embodiments, the cluster file system manager (160) is implemented as a logical device without departing from the invention. The logical device utilizes computing resources of any number of physical computing devices to provide the functionality of the cluster file system manager (160) described in this application.
[0051] Fig. 1D shows a diagram of the global export table (170). The global export table (170) may be an embodiment of the global export table (154, Fig. 1C). 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 a plurality of entries (172A, 172N) of each instance of an FSRP in the cluster. Each entry may contain information such as an identifier of the FSRP (174), all managed exports for the FSRP (176), and the attributes of the FSRP (178). The global export table (170) may include additional, fewer, and / or different components or information about the file system export without departing from the invention. Each of the aforementioned components of the global export table (170) is discussed below.
[0052] In one or more embodiments, each entry (172A, 172N) represents an instance of an FSRP node in the cluster. Each entry in the global export table (170) includes the FSRP node (174) of the associated entry (172A, 172N), the managed exports (176) managed by the FSRP (174), and associated FSRP attributes (178). The managed exports (176) specified in an entry (172A, 172N) may be part of the namespace managed by the cluster and assigned to the associated FSRP (174). The FSRP attributes (178) may specify attributes, such as a domain name associated with the FSRP (174), an Internet Protocol (IP) address used to communicate with the FSRP (174), and / or other attributes, without departing from the invention.
[0053] Fig. Figure 2A shows a flowchart of a method for obtaining the domain names of all FSRP nodes in the cluster according to one or more embodiments of the invention. The method can be performed, for example, by an NFS client (102) and the Domain Name Server (DNS) (104). Other components of the Fig. 1A-1D, the whole process or part of it can be carried out according to Fig. 2A without departing from the invention.
[0064] While Fig. 2A is shown as a series of steps, any of the following methods may be used: 1A-1D may represent all or part of the method Fig. 2A without departing from the invention.
[0054] While Fig. 2A as a series of steps, any of the steps may be omitted, performed in a different order, include additional steps, and / or perform some or all of the steps in a parallel and / or partially overlapping manner without departing from the invention.
[0055] In step 200, the NFS client sends a query to the DNS for the domain names of all FSRP nodes in the cluster. In one or more embodiments, the NFS client may query individual or multiple domain names for the FSRP nodes.
[0056] In step 202, the NFS client retrieves the domain names of all FSRPs in the cluster from DNS. For example, the domain name of FSRP node 1 can be passed to the NFS client in the form of "fsrp1.domain.com." The domain names of the FSRP nodes are retrieved in list form and include all available FSRP nodes in the cluster.
[0057] In step 204, the domain names obtained from the Domain Name Server are stored by the NFS client. The domain names of all FSRP nodes in the cluster can be stored in the global FSRP export table in the NFS server client, but are not limited to this (see Fig. 1C, Fig. 152, Fig. 156).
[0058] The NFS client can also store any export locations received from the FSRP nodes. For example, the NFS client can request NFS referral attributes for a specific export and receive a response that identifies the export and the FSRP managing the given export. This information can be tracked by the NFS client, for example, by mounting the export and storing the relevant information to access the export.
[0059] Fig. Figure 2B shows a flowchart of a method for globally allocating all FSRP nodes in the cluster according to one or more embodiments of the invention. The method may be performed, for example, by the global and local event managers (112, Fig. 1A and Fig. 158, Fig. 1C). Other components of the Fig. 1A-1D, the whole process or part of it can be carried out according to Fig. 2B without departing from the invention.
[0070] While Fig. 2B as a series of steps, each of the steps can be performed by any combination of the steps shown in the Fig. 1A-1D can be performed using the components shown in 1A-1D. 1A-1D can be used to perform the procedure of Fig. 2B in whole or in part without departing from the invention.
[0060] While Fig. 2B as a series of steps, any of the steps may be omitted or performed in a different order, including additional steps, and / or some or all of the steps may be performed in parallel and / or partially overlapping, without departing from the invention.
[0061] In step 220, the global event manager on the cluster receives a notification that an event has occurred on an FSRP node in the cluster. This event may involve an FSRP node going "UP" or "DOWN" as described above.
[0062] In step 222, it is determined whether the event notification received from the global event manager applies to an FSRP node that is going UP or DOWN. If the notification indicates that an FSRP node has gone DOWN, the method continues to step 224; if the notification indicates that an FSRP node has gone UP, the method continues to step 232.
[0063] In step 224, after determining that one of the FSRP nodes has failed, a load balancing analysis is performed to reassign one or more export locations to different FSRP nodes in the cluster. The load balancing analysis may be based on a client workload. In one or more embodiments, the client workload relates to a rate of NFS requests sent by clients to a particular FSRP node. The load balancing analysis may include assigning the export location(s) to an FSRP node that has the lowest relative client workload. Alternatively, the load balancing analysis may be based on the current export workload. In one or more embodiments, the current export workload of an FSRP node may refer to a number of exports managed by the FSRP node.The load balancing analysis may include assigning the export location(s) to an FSRP node that manages the fewest number of exports. The load balancing analysis may further include distributing the export locations of the DOWN FSRP node among multiple other FSRP nodes without departing from the invention.
[0064] In step 226, each local event manager for each FSRP node in the cluster is notified of the FSRP node going down and is instructed to remove a corresponding entry from its global export table. Each local event manager is also notified of the reassignment of the file system export(s).
[0065] In step 228, the FSRP node that went DOWN is removed from the global export table by each FSRP's local manager. The FSRP node that went DOWN no longer exists in the global export table, and file system exports are not sent to it. The method continues with step 230.
[0066] In step 230, the global export table in the cluster is fully updated with all FSRP node changes, including changes to one or more export names, export paths, the clients allowed for each export, and reference information about the exports. For more information on these details, see the discussion of the global export table in Fig. 1D. The methodology ends after this step.
[0067] In step 232, after determining that the FSRP node has moved up, a load balancing analysis is performed to assign one or more export locations to the new FSRP node in the cluster. The load balancing analysis may result in a redistribution of export assignments across the FSRP nodes based either on client workloads or the current export workloads of all FSRP nodes.
[0068] In step 226, each local event manager for each FSRP node in the cluster is notified of the FSRP node that has gone up and is instructed to create a corresponding entry in the global export table. Each local event manager is also notified of the reassignment of the single or multiple file system exports to the new FSRP node.
[0069] In step 228, the FSRP node that has moved up is added to the global export table by the local manager of each FSRP. The FSRP node that has moved up is now present in the global export table, and file system exports are sent to it. The method continues with step 230.
[0070] Fig. Figure 3A shows a vertical flow diagram of a method for load balancing FSRP nodes in the cluster according to one or more embodiments of the invention. The method can be performed, for example, by the NFS client and any number of FSRP nodes (102, Fig. 1A and Fig. 150, Fig. 1C). Other components of the Fig. 1A-1D can complete the entire procedure according to Fig. 3A or any part thereof without departing from the invention.
[0071] While Fig. 3A as a series of steps, any of the steps may be omitted or performed in a different order including additional steps, and / or some or all of the steps may be performed in parallel and / or partially overlapping without departing from the invention. For the purposes of the descriptions of the Fig. 3A-3C All communication between the NFS clients and the FSRP nodes occurs according to the NFS protocol.
[0072] In step 300, the client requests the file handle (FH) for a specific file system export, exp2, from FSRP1. For the purposes of describing Fig. 3A, export2 is identified in an entry of a global export table (not shown) of FSRP1 as being linked to (e.g., managed by) “FSRP2”.
[0073] In step 302, FSRP1 consults its global export table to look for file system export 2 or "exp2". The global export table (see Fig. 1D) can include a list of all managed exports and attributes of the FSRP nodes that managed the file system exports. The global export table can also include any other information obtained from the domain name server.
[0074] In step 304, FSRP1 returns the file system location attribute of exp2 from its global export table. In this description, the location attribute for exp2 points to FSRP2. Since FSRP2 is the correct location for export2, the NFS client uses the obtained location attribute (i.e., the IP address of FSRP2) for export2 to initiate communication with FSRP2.
[0075] In step 306, the NFS client requests the file handle for the file system export exp2 from FSRP2. This request may include a request to confirm that export2 can be retrieved from FSRP2 via the NFS server.
[0076] In step 308, FSRP2 consults its global export table to determine that exp2 is managed by FSRP2.
[0077] In step 310, FSRP2 sends an acknowledgment to the NFS client that exp2 can be accessed via FSRP2.
[0078] In step 312, based on receiving the confirmation from step 310, the NFS client mounts exp2. The mounting causes the NFS client to save the relevant information associating exp2 and the IP address of FSRP2.
[0079] In step 314, the NFS client sends read and write requests for exp2 (for example, writing new files to exp2).
[0080] In step 316, FSRP2 accesses the associated namespace access node to read from and write to exp2 (and all associated files therein).
[0081] In step 318, the namespace access node acknowledges processing of the read / write request to the FSRP node in the cluster-readable log.
[0082] In step 320, the confirmation of the processing is provided to the NFS client by FSRP2 and in accordance with the NFS protocol.
[0083] To further describe steps 312-314, an example section is provided below. Example
[0084] The following section describes an example. Fig. The example shown in Figure 3B is not intended to limit the invention. Let us now consider the example, namely a scenario in which an NFS client uses a scalable cluster to perform file system storage services for an NFS. In the following example, the FSRP node (350) is FSPR2 of Fig. 3A.
[0085] In Fig. 3B shows a diagram of an example system. For the sake of brevity, Fig. 3B not all components of the example system are shown. The example system includes at least one NFS client (300), one domain name server (302), one cluster (310), and one storage system (306). The NFS client (300) uses the cluster (310) for file system storage services, for example, for storing and serving NFS data for the NFS client. The cluster includes one extended file system redirection proxy (FSRP) node (350), two namespace access nodes (336, 338), and three deduplication nodes (340, 342, 344).
[0086] The NFS client (300) mounts an NFS directory “ / data / coll / exp2” (in Fig. 3A also referred to as “exp2” and in this example as “the directory”) according to Fig. 3A. The NFS client (300) communicates with an NFS server (352) of the extended FSRP node (350) to send NFS requests to read, write, and / or otherwise use files in the directory.
[0087] For example, the NFS client (300) can send two NFS requests to the directory for two new files (i.e., File1 and File2). The NFS server (352) translates each of the two NFS requests into cluster-readable requests. The two cluster-readable requests are intended for a cluster file manager (354) of the FSRP node (350).
[0088] The cluster file system manager (354) consults the namespace node mapping (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) according to 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 a namespace node mapping (356) to determine the mapping of namespace access node A (336) to File1 and File2.
[0089] Following this allocation, the cluster file system manager (354) acts as a client for storing the data of File1 and File2 and communicates with Deduplication Node B (342) to request it to store the two files in the storage system (306). Deduplication Node B (342) performs deduplication services, 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 a local map (not shown) of the deduplication nodes (340, 342, 344), and sending the data to the storage system (306) for storage based on this determination. Similarly, Deduplication Node B (342) hashes the data of File2 to obtain a second unique hash value.Deduplication node B (342) determines that the second unique hash value is not determined in the local mappings and sends the data to the storage system (306) for storage based on this determination.
[0090] Deduplication node B (342) sends a storage acknowledgment to namespace access node A (336), which forwards this acknowledgment to the cluster file system manager (354). The NFS server (352) receives this acknowledgment and provides the acknowledgment to the NFS client (300). End of example
[0091] Fig. Figure 3C shows a vertical flow diagram of an example of a failure instance of an FSRP node in the cluster according to one or more embodiments of the invention. The method can be performed, for example, by the NFS client and any number of FSRP nodes (102, Fig. 1A, and Fig. 150, Fig. 1C). Other components of the Fig. 1A-1D, the entire procedure can be Fig. 3A or any part thereof without departing from the invention.
[0092] While Fig. 3C as a series of steps, any of the steps may be omitted or performed in a different order including additional steps, and / or some or all of the steps may be performed in parallel and / or partially overlapping without departing from the invention.
[0093] In step 340, an event occurs that causes FSRP2 to become unavailable or go "DOWN." This can be due to a system failure, planned maintenance, or a workload that is too high for the FSRP2 node to handle. FSRP2's local event manager reports this case to the global event manager so that all FSRP nodes in the cluster can update their associated global export tables. FSRP2 is no longer available, and the load previously on FSRP2 is distributed among other FSRP nodes available in the cluster. The global export table for the cluster is updated according to the consequences of this event, including the location of newly allocated file system exports. For more information about this process, see Fig. 2B.
[0094] In step 342, based on the Fig. 2B, the workload of FSRP2 is reassigned to FSRP3 in the event of an FSRP node failure. In one or more embodiments of this invention, the workload of a single FSRP node (e.g., multiple exports) may be distributed across multiple FSRP nodes. In the description of Fig. 3A only describes the reassignment of Export 2. As in Fig. 2B, the reallocation can be done in accordance with the relative current export workload of FSRP1 and FSRP3 and the client workload of FSRP1 and FSRP3.
[0095] In step 344, the NFS client attempts to Fig. 3B to send read / write requests to the failed FSRP2. However, a failed FSRP node cannot serve NFS requests from an NFS client.
[0096] In step 346, the NFS client receives a TIMEOUT notification confirming that FSRP2 is not available as an export location for the file system.
[0097] In step 348, based on the TIMEOUT notification, the NFS client retrieves the list of all FSRP nodes in the cluster from the domain name server to determine which FSRP will attempt to access exp2 next in the list. In this example, the next FSRP in the list is FSRP3.
[0098] In step 350, the NFS client requests the file handle for the file system export directory exp2 from FSRP3. Due to the process performed in step 342, the file handle for exp2 is now accessible via FSRP3.
[0099] In step 352, FSRP2 consults its global export table to search for the file system exp2. FSRP3's global export table includes the file system location attribute for exp2, thus confirming its location on FSRP3. FSRP3 confirms to the NFS client that exp2 is accessible on FSRP3, as opposed to its original location, the now-unavailable FSRP2.
[0100] In step 354, the NFS client mounts exp2 using the updated file system location attribute. Mounting causes the NFS client to save the relevant information that maps exp2 to the IP address of FSRP2.
[0101] In steps 356 and 358, the NFS client uses FSRP3 to service read / write requests for exp2.
[0102] As explained above, embodiments of the invention may be implemented using computing devices. Now to Fig. 4, Fig.4 shows a diagram of a computing device according to one or more embodiments of the invention. The device (400) may include one or more computer processors (402), non-persistent memory (404) (e.g., volatile memory, such as random access memory (RAM), cache memory), persistent storage (406) (e.g., a hard drive, an optical drive, such as a compact disk (CD) drive or DVD drive, flash memory, and so on), a communications interface (412) (e.g., a Bluetooth® interface, an infrared interface, a network interface, an optical interface, and so on), input devices (410), output devices (408), and numerous other elements (not shown) and functionalities. Each of these components is described below.
[0103] In one embodiment of the invention, the computer processor(s) (402) may be an integrated circuit for processing instructions. The computer processor(s) may, for example, be one or more cores or microcores of a processor. The computing device (400) may also include one or more input devices (410), for example, a touchscreen, a keyboard, a mouse, a microphone, a touchpad, an electronic pen, or another type of input device. Furthermore, the communication interface (412) may include an integrated circuit for connecting the computing device (400) to a network (not shown) (for example, a local area network (LAN), a wide area network (WAN) such as the Internet, a cellular network, or any other type of network) and / or to another device, for example, another computing device.
[0104] In one embodiment of the 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 touchscreen, a cathode ray tube (CRT) monitor, a projector, or other display device), a printer, external storage, or other output device. One or more of the output devices may be the same as or different from the input device(s). The input and output device(s) may be connected locally or remotely to the computer processor(s) (402), the non-persistent memory (404), and the persistent memory (406). There are many different types of computing devices, and the aforementioned input and output device(s) may take other forms.
[0105] One or more embodiments of the invention may be implemented using instructions executed by one or more processors of the cluster manager. Furthermore, such instructions may comprise computer-readable instructions stored on one or more non-transitory computer-readable media.
[0106] One or more embodiments of the invention may enhance the operation of one or more computing devices in a clustered environment. In particular, embodiments of the invention relate to a method for providing file system storage services over a network using, for example, a network file system protocol.
[0107] One or more embodiments of the invention relate to a method for leveraging existing cluster technology and its existing protocols to provide file system storage services using NFS protocols by clients. With this technology, no additional software may be required on the NFS clients when cluster nodes are added, removed, or otherwise scaled within the cluster. Furthermore, no protocol change is required within the nodes in the deduplication-enabled cluster. In this way, data transfer services are provided by the cluster to clients using one NFS protocol, even though the cluster is operating with a different protocol, such as DDBoost™. The NFS clients can remain neutral to changes in the cluster, thereby improving the user experience when using the deduplication-enabled cluster to manage its data.
[0108] The problems discussed above should be understood as examples of problems solved by embodiments of the invention disclosed herein, and the invention should not be limited to solving the same / similar problems. The disclosed inventions are broadly applicable to solving a range of problems beyond those discussed herein.
[0109] Although the invention has been described with respect to a limited number of embodiments, those skilled in the art having the benefit of this disclosure will understand that other embodiments may be developed that do not depart from the scope of the technology disclosed herein. Accordingly, the scope of the invention should be limited only 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, the cluster comprising a plurality of file system redirection 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 one of the plurality of FSRP nodes; and Notifying each of the plurality of FSRP nodes in the cluster, wherein the notifying results in an update of a global export table of each of the plurality of FSRP nodes of the assignment of the export location to the FSRP node, wherein the export location was assigned to another one of the plurality of FSRP nodes prior to the notification, and where the global export table is used to manage access to the file system export in the cluster by a client. [2] The method of claim 1, wherein the file system export is in a format readable in a network file system (NFS) protocol. [3] The method of claim 2, wherein the client manages a namespace in the NFS protocol, wherein the cluster manages a namespace in a protocol other than the NFS protocol, and wherein the client accesses the file system export using the plurality of FSRP nodes in the cluster. [4] The method of claim 3, wherein the client communicates with a Domain Name Server (DNS) to obtain a list of domain names from each of the plurality of FSRP nodes. [5] The method of claim 4, wherein, after the notification, the client communicates with one of 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 a domain name of the FSRP node. [6] Method according to claim 1, where the event is associated with a second FSRP node becoming unavailable, the method further comprising: Determine, prior to load balancing analysis, that the file system export was assigned to the second FSRP node before it became unavailable, and Based on the determination and after performing the load balancing analysis, instruct each FSRP node in the cluster to remove the second FSRP node from the global export table. [7] The method of claim 1, wherein the event associated with the FSRP node is introduced into the cluster. [8] The method of claim 1, wherein the load balancing analysis is based on the current export workload on each of the plurality of FSRP nodes. [9] The method of claim 1, wherein the load balancing analysis is based on the client workload on each of the plurality of FSRP nodes. [10] A system comprising: a cluster comprising a plurality of File System Redirection Proxy (FSRP) nodes and a global event manager running on a processor, where the global event manager is programmed to: receives a notification that an event has occurred on the cluster from a global event manager of the cluster, the cluster comprising 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 one of the plurality of FSRP nodes; and notify each of the plurality of FSRP nodes in the cluster, wherein the notification results in an update of a global export table of each of the plurality of FSRP nodes of the assignment of the export location to the FSRP node, wherein, prior to the notification, the export location was assigned to another one of the plurality of FSRP nodes, and where the global export table is used to manage access to the file system export in the cluster by a client. [11] The system of claim 10, wherein the file system export is in a format readable in an 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 a DNS to obtain a list of domain names from each of the plurality of FSRP nodes. [14] The system of claim 13, wherein, after the notification, the client communicates with one of 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 a domain name of the FSRP node. [15] System according to claim 10, where the event is associated with the unavailability of the FSRP node, where the global event manager is further programmed to: to determine, before load balancing analysis, that the file system export was assigned to the FSRP node before it 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 associated with the FSRP node is introduced into the cluster. [17] The system of claim 10, wherein the load balancing analysis is based on the current export workload on each of the plurality of FSRP nodes. [18] The system of claim 10, wherein the load balancing analysis is based on the client workload on each of 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, the cluster comprising a plurality of file system redirection 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 one of the plurality of FSRP nodes; and Notifying each of the plurality of FSRP nodes in the cluster, wherein the notifying results in an update of a global export table of each of the plurality of FSRP nodes of the assignment of the export location to the FSRP node, wherein, prior to notifying, the export location was assigned to another of the plurality of FSRP nodes, and where the global export table is used to manage access to the file system export in the cluster by a client. [20] A non-transitory computer-readable medium according to claim 19, where the file system export is in a format that is readable in an NFS protocol, wherein a 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, wherein the client communicates with a DNS to obtain a list of domain names from each of the plurality of FSRP nodes, and wherein, after the notification, the client communicates with one of 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 comprises the export location and a domain name of the FSRP node.