Mechanism for providing external access to a secured networked virtualization environment

Information

  • Patent Grant
  • 11310286
  • Patent Number
    11,310,286
  • Date Filed
    Monday, January 20, 2020
    4 years ago
  • Date Issued
    Tuesday, April 19, 2022
    2 years ago
Abstract
A method for providing external access into a secured networked virtualization environment, includes performing a leadership election amongst nodes of the secured networked virtualization environment to elect a leader node, assigning a cluster virtual IP address to the leader node and generating a reverse tunnel, using a processor, by the leader node to allow for an external entity to communicate with the secured networked virtualization environment.
Description
FIELD

This disclosure concerns a mechanism for providing external access to a secured networked virtualization environment.


BACKGROUND

A networked virtualization environment includes several nodes (e.g., servers, data centers, etc.) that are in communication with each other, each node hosting several user virtual machines. The networked virtualization environment, otherwise referred to as a cluster of nodes, is normally deployed for use within a secured environment, such that only internal accesses to the nodes within the cluster are allowed. In order to maintain security within the cluster of nodes, a firewall is typically provided to prevent external access into the cluster of nodes. Even where a firewall is not provided, the nodes within the cluster are provided private IP addresses such that the nodes cannot be externally accessed.


During operation of the cluster of nodes, a need may arise for an external entity to gain access into the cluster of nodes. This may occur where an external entity is needed to service or provide support to the cluster of nodes. Because the cluster of nodes are protected by a firewall or otherwise inaccessible to external entities, a mechanism is needed for providing external access to the secured networked virtualization environment (e.g., cluster of nodes).


SUMMARY OF THE INVENTION

Embodiments of the present invention provide a mechanism for providing external access to a secured networked virtualization environment. The method for providing external access to a secured networked virtualization environment includes performing a leadership election amongst nodes of the secured networked virtualization environment to elect a leader node, assigning a cluster virtual IP address to the leader node and generating a reverse tunnel, using a processor, by the leader node to allow for an external entity to communicate with the secured networked virtualization environment.


Further details of aspects, objects and advantages of the invention are described below in the detailed description, drawings and claims. Both the foregoing general description and the following detailed description are exemplary and explanatory, and are not intended to be limiting as to the scope of the invention.





BRIEF DESCRIPTION OF THE DRAWINGS

The drawings illustrate the design and utility of embodiments of the present invention, in which similar elements are referred to by common reference numerals. In order to better appreciate the advantages and objects of embodiments of the invention, reference should be made to the accompanying drawings. However, the drawings depict only certain embodiments of the invention, and should not be taken as limiting the scope of the invention.



FIG. 1 illustrates a networked virtualization environment for storage management according to some embodiments.



FIG. 2 is schematic diagram illustrating the prevention of external access to a secured networked virtualization environment.



FIG. 3 is a flow diagram illustrating a method for providing external access to a secured networked virtualization environment according to some embodiments.



FIG. 4 is a flow diagram illustrating a method for performing leadership election at the secured networked virtualization environment to provide access to the secured networked virtualization environment according to some embodiments.



FIG. 5 is a flow diagram illustrating a method for dynamically providing external access to the secured networked virtualization environment according to some embodiments.



FIGS. 6A to 6C are schematic diagrams illustrating a method for providing external access to a secured networked virtualization environment according to some embodiments.



FIG. 7 is a flow diagram illustrating a method for providing external access to the secured networked virtualization environment upon failure of the leader node in the secured networked virtualization environment according to some embodiments.



FIGS. 8A-8D are schematic diagrams illustrating a method for providing external access to the secured networked virtualization environment upon failure of the leader node in the secured networked virtualization environment according to some embodiments.



FIG. 9 is a block diagram of an illustrative computing system suitable for implementing an embodiment of the present invention.





DETAILED DESCRIPTION OF THE EMBODIMENTS OF THE INVENTION

Various embodiments are described hereinafter with reference to the figures. It should be noted that the figures are not necessarily drawn to scale. It should also be noted that the figures are only intended to facilitate the description of the embodiments, and are not intended as an exhaustive description of the invention or as a limitation on the scope of the invention. In addition, an illustrated embodiment need not have all the aspects or advantages shown. An aspect of or advantage described in conjunction with a particular embodiment is not necessarily limited to that embodiment and can be practiced in any other embodiments even if not so illustrated. Also, reference throughout this specification to “some embodiments” or “other embodiments” means that a particular feature, structure, material, or characteristic described in connection with the embodiments is included in at least one embodiment. Thus, the appearances of the phrase “in some embodiments” or “in other embodiments”, in various places throughout this specification are not necessarily referring to the same embodiment or embodiments.



FIG. 1 illustrates a networked virtualization environment for storage management according to some embodiments of the invention. The networked virtualization environment of FIG. 1 can be implemented for a distributed platform that contains multiple nodes (e.g., servers) 100a and 100b that manages multiple-tiers of storage. The multiple tiers of storage include storage that is accessible through a network 140, such as cloud storage 126 or networked storage 128 (e.g., a SAN or “storage area network”). Unlike the prior art, the present embodiment also permits local storage 122/124 that is within or directly attached to the node and/or appliance to be managed as part of the storage pool 160. Examples of such storage include Solid State Drives (henceforth “SSDs”) 125 or Hard Disk Drives (henceforth “HDDs” or “spindle drives”) 127. These collected storage devices, both local and networked, form a storage pool 160. Virtual disks (or “vDisks”) can be structure from the storage devices in the storage pool 160. As used herein, the term vDisk refers to the storage abstraction that is exposed by a Service/Controller VM to be used by a user VM. In some embodiments, the vDisk is exposed via iSCSI (“internet small computer system interface”) or NFS (“network file system”) and is mounted as a virtual disk on the user VM.


Each node 100a or 100b runs virtualization software, such as VMWare ESX(i), Microsoft Hyper-V, or RedHat KVM. The virtualization software includes a hypervisor 130/132 to manage the interactions between the underlying hardware and the one or more user VMs 102a, 102b, 102c and 102d that run client software.


A special VM 110a/110b is used to manage storage and I/O activities according to some embodiments of the invention, which is referred to herein as a “Service VM”. The term Service VM may also be referred to herein as a Controller VM. This is the “Storage Controller” in the currently described networked virtualization environment for storage management. Multiple such storage controllers coordinate within a cluster to form a single-system. The Controller VMs 110a/110b are not formed as part of specific implementations of hypervisors 130/132. Instead, the Controller VMs run as virtual machines above hypervisors 130/132 on the various servers 102a and 102b, and work together to form a distributed system 110 that manages all the storage resources, including the locally attached storage 122/124, the networked storage 128, and the cloud storage 126. Since the Controller VMs run above the hypervisors 130/132, this means that the current approach can be used and implemented within any virtual machine architecture, since the Controller VMs of embodiments of the invention can be used in conjunction with any hypervisor from any virtualization vendor.


Each Controller VM 110a-b exports one or more block devices or NFS server targets that appear as disks to the client VMs 102a-d. These disks are virtual, since they are implemented by the software running inside the Controller VMs 110a-b. Thus, to the user VMs 102a-d, the Controller VMs 110a-b appear to be exporting a clustered storage appliance that contains some disks. All user data (including the operating system) in the client VMs 102a-d resides on these virtual disks.


Significant performance advantages can be gained by allowing the virtualization environment to access and utilize local (e.g., server-internal) storage 122. This is because I/O performance is typically much faster when performing access to local storage 122 as compared to performing access to networked storage 128 across a network 140. This faster performance for locally attached storage 122 can be increased even further by using certain types of optimized local storage devices, such as SSDs 125.


Once the virtualization environment is capable of managing and accessing locally attached storage, as is the case with the present embodiment, various optimizations can then be implemented to improve system performance even further. For example, the data to be stored in the various storage devices can be analyzed and categorized to determine which specific device should optimally be used to store the items of data. Data that needs to be accessed much faster or more frequently can be identified for storage in the locally attached storage 122. On the other hand, data that does not require fast access or which is accessed infrequently can be stored in the networked storage devices 128 or in cloud storage 126.


Another advantage provided by this approach is that administration activities can be handled on a much more efficient granular level. Recall that the prior art approaches of using a legacy storage appliance in conjunction with VMFS heavily relies on what the hypervisor can do at its own layer with individual “virtual hard disk” files, effectively making all storage array capabilities meaningless. This is because the storage array manages much coarser grained volumes while the hypervisor needs to manage finer-grained virtual disks. In contrast, the present embodiment can be used to implement administrative tasks at much smaller levels of granularity, one in which the smallest unit of administration at the hypervisor matches exactly with that of the storage tier itself.


Yet another advantage of the present embodiment of the invention is that storage-related optimizations for access and storage of data can be implemented directly within the primary storage path. For example, in some embodiments of the invention, the Controller VM 110a can directly perform data deduplication tasks when storing data within the storage devices. This is far advantageous to prior art approaches that require add-on vendors/products outside of the primary storage path to provide deduplication functionality for a storage system. Other examples of optimizations that can be provided by the Controller VMs include quality of service (QOS) functions, encryption and compression. The networked virtualization environment massively parallelizes storage, by placing a storage controller—in the form of a Controller VM—at each hypervisor, and thus makes it possible to render enough CPU and memory resources to achieve the aforementioned optimizations.


Additional details regarding networked virtualization environments for storage management are described in related U.S. Pat. No. 8,601,473, issued on Dec. 3, 2013, entitled “Architecture for Managing I/O and Storage for a Virtualization Environment”, which is hereby incorporated by reference in its entirety.


A networked virtualization environment includes several nodes (e.g., servers, data centers, etc.) that are in communication with each other, each node hosting several user virtual machines. An example of such a networked virtualization environment is illustrated in FIG. 1. The networked virtualization environment, otherwise referred to as a cluster of nodes, is normally deployed for use within a secured environment, such that only internal accesses to the nodes within the cluster are allowed. In order to maintain security within the cluster of nodes, a firewall is typically provided to prevent external access into the cluster of nodes. Even where a firewall is not provided, the nodes within the cluster are provided private IP addresses such that the nodes cannot be externally accessed.



FIG. 2 is schematic diagram illustrating the prevention of external access to a secured networked virtualization environment. FIG. 2 illustrates an external entity 207 with a public IP address 209 and a cluster of nodes (i.e., networked virtualization environment), where each node is associated with a private IP address 203. A firewall 205 is provided between the external entity and the cluster of nodes 201 to prevent access to the cluster of nodes by the external entity.


By providing each node 201 within the cluster with a private IP address 203, internal communications between nodes 201 located in the cluster is allowed while external access to nodes 201 within the cluster is prevented because the external entity 207 is unable to access the private IP address 203 of the nodes 201 within the cluster. While the external entity 207 is prevented from accessing the nodes within the cluster, the nodes 201 within the cluster are allowed to communicate with the external entity 207 by way of the external entity's public IP address 209.


An additional layer of protection is also provided by the firewall 205. The firewall allows for nodes 201 within the cluster to communicate with the external entity 207, but prevents the external entity 207 from being able to access nodes 201 within the cluster, as illustrated by the unidirectional dashed arrows in FIG. 2.


During operation of the cluster of nodes, a need may arise for the external entity 207 to gain access into nodes 201 within the cluster. This may occur where the external entity 207 is needed to service or provide support to nodes 201 within the cluster. Because the nodes 201 within the cluster are protected by a firewall or otherwise inaccessible to external entities (e.g., due to their private IP addresses), a mechanism is needed for providing external access to the secured networked virtualization environment (e.g., cluster of nodes).



FIG. 3 is a flow diagram illustrating a method for providing external access to a secured networked virtualization environment according to some embodiments. The method of FIG. 3 provides for a single point of external access into the secured networked virtualization environment (e.g., cluster of nodes). This allows for nodes within the cluster to be accessed by an external entity through the single access point rather than requiring each individual node within the cluster to independently provide for external access.


Initially a leadership election is performed by the secured networked virtualization environment (e.g., cluster of nodes) to elect a leader node as shown at 301. The leader node will be responsible for providing external access to the cluster of nodes, and will also be utilized to direct the external communications from external entities to the appropriate nodes within the cluster. By electing a leader node, a single point of external access is provided for the cluster, rather than having each node within the cluster independently provide for external access. This allows for external entities looking to service or provide support to the cluster of nodes to communicate through a single end-point rather than having to separately communicate through multiple different endpoints, thereby streamlining the process for providing external access.


Various methods for leadership election exist for electing a leader node from the cluster of nodes. An example of a leadership election is described in FIG. 4. FIG. 4 is a flow diagram illustrating a method for performing leadership election at the secured networked virtualization environment to provide access to the secured networked virtualization environment according to some embodiments.


In the networked virtualization environment (e.g., cluster of nodes), a distributed configuration module may exist at each node. The distributed configuration module keeps track of various parameters related to the networked virtualization environment, including the health of nodes within the cluster. Each node may utilize its own instance of the distributed configuration modules, and the different distributed configuration modules may communicate amongst each other to track parameters for all nodes with the cluster.


One feature provided by the distributed configuration modules is heartbeat tracking. Each node may receive a request from its corresponding distributed configuration module requesting its health status. The node may respond with an indication of good health, or otherwise not respond, which indicates that it is in a failure state. The distributed configuration modules within the cluster may communicate amongst each other such that every node is aware of the health of every other node in the networked virtualization environment.


When leadership election is to occur for the cluster of nodes, the distributed configuration modules may receive heartbeat responses from their corresponding nodes as shown at 401. For the nodes that do provide heartbeat responses, a queue may be formed as shown at 403. This may be accomplished by placing the first node that provides a heartbeat response at the head of the queue, and placing each subsequent node that provides a heartbeat response in a respective location within the queue. The distributed configuration modules at each node may communicate amongst each other to determine the order of nodes within the queue.


The queue may be updated periodically, such as for each heartbeat request and heartbeat response. When a node currently located in the queue subsequently fails to provide a heartbeat response, it may be removed from the queue. Likewise, when a node that is not currently located in the queue subsequently provides a healthy heartbeat response, it is placed in the appropriate position in the queue.


After the queue is formed using nodes that provide a heartbeat response, the node located in the first position in the queue is elected as the leader node as shown at 405. As mentioned above, the elected leader node will be responsible for providing external access to the cluster of nodes, and will also be utilized to direct the external communications from external entities to the appropriate nodes within the cluster.


Once the leader node has been elected, a cluster virtual IP address is assigned to the leader node as shown at 303. By assigning a cluster virtual IP address to the leader node, a single IP address may be utilized for all external accesses into the cluster of nodes. Whenever the leader node fails, and a new leader node is elected, the new leader node may be assigned the same cluster virtual IP address such that external communication with the cluster through the new leader node may still be accomplished using the same cluster virtual IP address. This avoids the need to provide a different IP address each time a different leader node is elected for the cluster, thereby simplifying the process for providing external access to the cluster.


The nodes within the cluster may continue to communicate internally amongst each other using their individual private IP addresses. The cluster virtual IP address is only used to allow for external communication from an external entity into the cluster of nodes that utilizes.


After the leader node has been assigned the cluster virtual IP address, the leader node generates a reverse tunnel to allow for the external entity to communicate with the cluster as shown at 305. In order to generate a reverse tunnel, the leader node may first identify a port number at an external entity through which the external entity may communicate with the leader node. In some embodiments, the leader node may use a statically determined port (e.g., statically determined port number) at the external entity. In other embodiments, the leader node may use dynamically determined port (e.g., dynamically determined port number) at the external entity.


The external entity may be selected from a configured list of external entities assigned to and stored at the cluster of nodes. The configured list of external entities may be stored within the secured networked virtualization environment to allow for the secured networked virtualization environment to identify the external entity for providing external access. In some embodiments, the external entity is identified based on its ability to establish communication with the secured networked virtualization environment. For example, the external entity may be determined by iterating through the configured list of external entities until an external entity is encountered with which communication can be established and port numbers determined. This list of external entities may be periodically refreshed by communicating with an entity from the current list. For example, the list of external entities may be refreshed once daily. This allows for the configured list of external entities to be modified (e.g., new external entities added) without requiring a manual reset or a software package upgrade. Additionally, to enable load balancing different clusters may be assigned different lists of external entities based on their unique identifiers. Thus the reverse tunnels established across different clusters may be distributed among different external entities.



FIG. 5 is a flow diagram illustrating a method for dynamic port generation for providing external access to the secured networked virtualization environment according to some embodiments. Initially, the leader node requests the external entity for an available port number as shown at 501. The external entity may then examine its port availability to identify an available port to be used for accessing the cluster of nodes. Once the external entity identifies an available port to be used for accessing the cluster of nodes, it responds to the cluster's request by providing the available port number. At the same time, the external entity associates the port number with the requesting cluster. This is done so that the same port number may be assigned to the cluster where the leader node dies, a new leader node is elected, and the new leader is used to generate another reverse tunnel to the external entity to provide the external entity access to the cluster of nodes.


The leader node receives the available port number from the external entity as shown at 503 and then generates the reverse tunnel using the received available port number from the external entity as shown at 505, which will be discussed in greater detail below. By providing for dynamic port generation, the port utilized by the external entity for access into the secured cluster of nodes may be determined based on availability rather than having to statically provide a port for external access.


After identifying a port number at the external entity through which the external entity may communicate with the leader node (either statically or dynamically), the leader node may then perform a secured shell (SSH) command with the identified port number, the cluster virtual IP, and a public SSH key for the external entity. The command is performed by the leader node causing a tunnel to be created between the external entity and the leader node through which the external entity may communicate with the cluster. The external entity then communicates with the cluster via the tunnel formed between the external entity and the leader node.


The reverse tunnel is monitored at the cluster as shown at 307. While monitoring the reverse tunnel, the cluster may periodically check to see if the reverse tunnel remains operational as shown at 309. If the reverse tunnel becomes non-operational, the method returns to 301 where a new leader node is elected and another reverse tunnel is generated, which will be described in greater detail below. In some embodiments, the reverse tunnel may become non-operational when the leader node fails.


If the reverse tunnel remains operational, the method may return to 307 where the cluster continues to monitor the reverse tunnel. If the cluster of nodes decides that it no longer wants to provide access to external entities, it may terminate the reverse tunnel as shown at 311.



FIGS. 6A-6C are schematic diagrams illustrating a method for providing external access to a secured networked virtualization environment according to some embodiments. FIG. 6A-6C illustrate an external entity 607 with a public IP address 609 and a cluster of nodes (i.e., networked virtualization environment), where each node 601 is associated with a private IP address 603. A firewall 605 is provided between the external entity 607 and the cluster of nodes 601 to prevent access to the cluster of nodes 601 by the external entity 607.


As mentioned above, the external entity 607 may be selected from a configured list of external entities assigned to and stored at the cluster of nodes 611. The external entity that is provided with access to the cluster of nodes 601 may be determined by iterating through the configured list of external entities until the external entity 607 is encountered with which communication can be established and port numbers determined.


A leadership election is then performed by the secured networked virtualization environment (e.g., cluster of nodes) to elect a leader node 611 as illustrated in FIG. 6A. In FIG. 6A, node 1 of the cluster is elected as the leader node 611. The leadership election may be performed at the cluster in accordance with the method described in FIG. 4. However, it is important to note that various other leadership election schemes may be used to determine the leader node for the cluster.


The leader node 611 is responsible for providing external access to the cluster of nodes 601, and will also be utilized to direct the external communications from the external entity 607 to the appropriate nodes 601 within the cluster. By electing a leader node 611, a single point of external access is provided for the cluster, rather than having each node 601 within the cluster independently provide for external access. This allows for the external entity 607 looking to service or provide support to the cluster of nodes 601 to communicate through a single end-point rather than having to separately communicate through multiple different endpoints, thereby streamlining the process for providing external access.


Once the leader node 611 has been elected, a cluster virtual IP address 613 is assigned to the leader node 611 as illustrated in FIG. 6B. By assigning a cluster virtual IP address 613 to the leader node 611, a single IP address may be utilized for all external accesses into the cluster of nodes 601. Whenever the leader node 611 fails, and a new leader node is elected, the new leader node may be assigned the same cluster virtual IP address 613 such that external communication with the cluster through the new leader node may still be accomplished using the same cluster virtual IP address 613. This avoids the need to provide a different IP address each time a different leader node is elected for the cluster, thereby simplifying the process for providing external access to the cluster.


The nodes 601 within the cluster may continue to communicate internally amongst each other using their individual private IP addresses 603. The cluster virtual IP address 613 is only used to allow for external communication from the external entity 607 into the cluster of nodes 601.


After the leader node 611 has been assigned the cluster virtual IP address 613, the leader node 611 generates a reverse tunnel 615 to allow for the external entity 607 to communicate with the cluster as illustrated in FIG. 6C by the dashed arrows between the external entity 607 and the cluster virtual IP address 613. The reverse tunnel 615 may be generated by the leader node 611 in accordance with the methods described above in FIGS. 3 and 5.


Monitoring of the reverse tunnel 615 may then occur until the leader node 611 fails or the cluster otherwise decides to terminate the reverse tunnel 615 and discontinue external access. When the leader node 611 fails, external access from the external entity 607 into the cluster of nodes 601 is not lost. The cluster of nodes 601 may perform another leadership election to again generate a reverse tunnel for allowing the external entity to access the cluster of nodes.



FIG. 7 is a flow diagram illustrating a method for providing external access to the secured networked virtualization environment upon failure of the leader node in the secured networked virtualization environment according to some embodiments.


Initially, failure of the leader node is identified as shown at 701. As mentioned above, an instance of a distributed configuration module at each node keeps track of the health of nodes within the cluster. When the leader node fails to provide a heartbeat in response to a heartbeat request from its corresponding distributed configuration module, notification that the leader node has failed is propagated to the rest of the nodes in the cluster.


After identifying that the leader node has failed, leadership election is again performed to elect a new leader node as shown at 703. Election of the new leader node may occur in the same manner as election of failed leader node and as described above in FIG. 4. Alternatively, other leadership election schemes may be used to elect the new leader node. When leadership election is performed in the same manner as described above in FIG. 4, the next node in the queue may be elected as the new leader node. The elected new leader node will replace the failed leader node and take on the responsibility of providing external access to the cluster of nodes and directing external communications from external entities to the appropriate nodes within the cluster.


Once the new leader node has been elected, the cluster virtual IP address that was previously assigned to the failed leader node is assigned to the new leader node as shown at 705. By assigning the previously assigned cluster virtual IP address to the new leader node, external communication with the cluster through the new leader node may still be accomplished using the same cluster virtual IP address. This avoids the need to provide a different IP address each time a different leader node is elected for the cluster, thereby simplifying the process for providing external access to the cluster.


The nodes within the cluster may continue to communicate internally amongst each other using their individual private IP addresses. The cluster virtual IP address is only used to allow for external communication from an external entity into the cluster of nodes that utilizes.


After the new leader node has been assigned the cluster virtual IP address, the new leader node generates a reverse tunnel to allow for the external entity to communicate with the cluster as shown at 707. Because the previously elected leader node has failed, the reverse tunnel generated by the previously elected leader node is no longer operational. Thus, the newly elected leader node must generate another reverse tunnel to allow for external entities to communicate with the cluster. The newly elected leader node may generate the reverse tunnel in the same manner as described above for the previously elected leader node.


Because the newly elected leader node utilizes the same cluster virtual IP address as the previously elected leader node, the reverse tunnel generated by the newly elected leader node will utilize the same cluster virtual IP address as the reverse tunnel generated by the previously elected leader node. Similarly, because the newly elected leader node belongs to the same cluster as the previously elected leader node, the port number at the external entity through which the external entity may communicate with the newly elected leader node may remain the same as the port number used in conjunction with the previously elected leader node.


After the newly elected leader node has generated the reverse tunnel for allowing the external entity to communicate with the cluster, monitoring may continue to occur in the manner described above.



FIGS. 8A-8D are schematic diagrams illustrating a method for providing external access to the secured networked virtualization environment upon failure of the leader node in the secured networked virtualization environment according to some embodiments. FIGS. 8A-8D illustrate the failure of the leader node from the arrangement depicted in FIGS. 6A-6C.


In FIG. 8A, the leader node 611 fails and the reverse tunnel generated (e.g., cluster virtual IP address 613) by the leader node is no longer operational. The failure of the leader node 611 is identified in the manner described above in FIG. 7.


After identifying that the leader node 611 has failed, leadership election is again performed to elect a new leader node 801 (node 3) as illustrated in FIG. 8B. Election of the new leader node 801 may occur in the same manner as election of failed leader node 611 and as described above in FIG. 4. Alternatively, other leadership election schemes may be used to elect the new leader node 801. The newly elected leader node 801 will replace the failed leader node 611 and take on the responsibility of providing external access to the cluster of nodes and directing external communications from the external entity 607 to the appropriate nodes 601 within the cluster.


The cluster virtual IP address 613 that was previously assigned to the failed leader node 611 is then assigned to the new leader node 801 as illustrated in FIG. 8C. By assigning the previously assigned cluster virtual IP address 613 to the new leader node 801, external communication with the cluster through the new leader node 801 may still be accomplished using the same cluster virtual IP address 613. This avoids the need to provide a different IP address each time a different leader node is elected for the cluster, thereby simplifying the process for providing external access to the cluster.


Finally, the new leader node 801 generates another reverse tunnel 803 to allow for the external entity 607 to communicate with the cluster as illustrated in FIG. 8D and as depicted by the dashed arrows between the external entity 607 and the cluster virtual IP address 613. Because the previously elected leader node 611 has failed, the reverse tunnel 615 generated by the previously elected leader node 611 is no longer operational. Thus, the newly elected leader node 801 must generate another reverse tunnel 803 to allow for the external entity 607 to communicate with the cluster. The newly elected leader node 801 may generate the reverse tunnel 803 in the same manner as described above for the previously elected leader node 611.


Because the newly elected leader node 801 utilizes the same cluster virtual IP address 613 as the previously elected leader node 611, the reverse tunnel 803 generated by the newly elected leader node 801 will utilize the same cluster virtual IP address 613 as the reverse tunnel generated 615 by the previously elected leader node 611. Similarly, because the newly elected leader node 801 belongs to the same cluster as the previously elected leader node 611, the port number at the external entity through which the external entity 607 may communicate with the newly elected leader node 801 may remain the same as the port number used in conjunction with the previously elected leader node 611.


After the newly elected leader node 801 has generated the reverse tunnel 803 for allowing the external entity 607 to communicate with the cluster, monitoring may continue to occur in the manner described above.


System Architecture


FIG. 9 is a block diagram of an illustrative computing system 1400 suitable for implementing an embodiment of the present invention. Computer system 1400 includes a bus 1406 or other communication mechanism for communicating information, which interconnects subsystems and devices, such as processor 1407, system memory 1408 (e.g., RAM), static storage device 1409 (e.g., ROM), disk drive 1410 (e.g., magnetic or optical), communication interface 1414 (e.g., modem or Ethernet card), display 1411 (e.g., CRT or LCD), input device 1412 (e.g., keyboard), and cursor control.


According to one embodiment of the invention, computer system 1400 performs specific operations by processor 1407 executing one or more sequences of one or more instructions contained in system memory 1408. Such instructions may be read into system memory 1408 from another computer readable/usable medium, such as static storage device 1409 or disk drive 1410. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and/or software. In one embodiment, the term “logic” shall mean any combination of software or hardware that is used to implement all or part of the invention.


The term “computer readable medium” or “computer usable medium” as used herein refers to any medium that participates in providing instructions to processor 1407 for execution. Such a medium may take many forms, including but not limited to, non-volatile media and volatile media. Non-volatile media includes, for example, optical or magnetic disks, such as disk drive 1410. Volatile media includes dynamic memory, such as system memory 1408.


Common forms of computer readable media includes, for example, floppy disk, flexible disk, hard disk, magnetic tape, any other magnetic medium, CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, or any other medium from which a computer can read.


In an embodiment of the invention, execution of the sequences of instructions to practice the invention is performed by a single computer system 1400. According to other embodiments of the invention, two or more computer systems 1400 coupled by communication link 1415 (e.g., LAN, PTSN, or wireless network) may perform the sequence of instructions required to practice the invention in coordination with one another.


Computer system 1400 may transmit and receive messages, data, and instructions, including program, i.e., application code, through communication link 1415 and communication interface 1414. Received program code may be executed by processor 1407 as it is received, and/or stored in disk drive 1410, or other non-volatile storage for later execution


In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. For example, the above-described process flows are described with reference to a particular ordering of process actions. However, the ordering of many of the described process actions may be changed without affecting the scope or operation of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.

Claims
  • 1. A non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor causes a set of acts, the set of acts comprising: electing a leader node from a cluster of nodes within a secured networked virtualization environment, respective nodes of the cluster of nodes each having an IP address;assigning a cluster virtual IP address to the leader node, the cluster virtual IP address being different from the IP address of the leader node; andgenerating a reverse tunnel with at least the cluster virtual IP address, wherein the reverse tunnel gives a node external to the secured networked virtualization environment access to the secured networked virtualization environment.
  • 2. The computer readable medium of claim 1, wherein electing the leader node is performed by electing a first node corresponding to a first position in a queue as the leader node, wherein the queue is populated based on an order of receipt of heartbeat responses.
  • 3. The computer readable medium of claim 1, wherein the IP address for each of the respective nodes comprise a private IP address and communications within the secured networked virtualization environment utilize a corresponding private IP address.
  • 4. The computer readable medium of claim 1, wherein generating the reverse tunnel comprises identifying, by the leader node, a port number at the node external to the secured networked virtualization environment through which the node external to the secured networked virtualization environment is to communicate with the leader node.
  • 5. The computer readable medium of claim 1, wherein generating the reverse tunnel comprises identifying a port number at the node external to the secured networked virtualization environment by requesting the node external to the secured networked virtualization environment for an available port number and receiving the available port number from the node external to the secured networked virtualization environment.
  • 6. The computer readable medium of claim 1, wherein generating the reverse tunnel comprises performing a secured shell (SSH) command using a port number, the cluster virtual IP address and a public SSH key for the node external to the secured networked virtualization environment.
  • 7. The computer readable medium of claim 1, wherein the node external to the secured networked virtualization environment is identified by iterating over a list of external entities associated with the secured networked virtualization environment.
  • 8. The computer readable medium of claim 1, wherein a list of external entities associated with the secured networked virtualization environment is updated by requesting a current external entity from the list of external entities for an updated list of external entities and modifying the list of external entities to add or remove an external entity.
  • 9. The computer readable medium of claim 1, wherein a list of external entities associated with the secured networked virtualization environment is assigned to the secured networked virtualization environment based on a unique identifier for the secured networked virtualization environment.
  • 10. The computer readable medium of claim 1, wherein a node of the cluster of nodes present storage aggregated from a plurality of storage devices spread across the cluster of nodes.
  • 11. A method, comprising: electing a leader node from a cluster of nodes within a secured networked virtualization environment, respective nodes of the cluster of nodes each having an IP address;assigning a cluster virtual IP address to the leader node, the cluster virtual IP address being different from the IP address of the leader node; andgenerating a reverse tunnel with at least the cluster virtual IP address, wherein the reverse tunnel gives a node external to the secured networked virtualization environment access to the secured networked virtualization environment.
  • 12. The method of claim 11, wherein electing the leader node is performed by electing a first node corresponding to a first position in a queue as the leader node, wherein the queue is populated based on an order of receipt of heartbeat responses.
  • 13. The method of claim 11, wherein the IP address for each of the respective nodes comprise a private IP address and communications within the secured networked virtualization environment utilize a corresponding private IP address.
  • 14. The method of claim 11, wherein generating the reverse tunnel comprises identifying, by the leader node, a port number at the node external to the secured networked virtualization environment through which the node external to the secured networked virtualization environment is to communicate with the leader node.
  • 15. The method of claim 11, wherein generating the reverse tunnel comprises identifying a port number at the node external to the secured networked virtualization environment by requesting the node external to the secured networked virtualization environment for an available port number and receiving the available port number from the node external to the secured networked virtualization environment.
  • 16. The method of claim 11, wherein generating the reverse tunnel comprises performing a secured shell (SSH) command using a port number, the cluster virtual IP address and a public SSH key for the node external to the secured networked virtualization environment.
  • 17. The method of claim 11, wherein a list of external entities associated with the secured networked virtualization environment is updated by requesting a current external entity from the list of external entities for an updated list of external entities and modifying the list of external entities to add or remove an external entity.
  • 18. The method of claim 11, wherein a list of external entities associated with the secured networked virtualization environment is assigned to the secured networked virtualization environment based on a unique identifier for the secured networked virtualization environment.
  • 19. The method of claim 11, wherein a node of the cluster of nodes present storage aggregated from a plurality of storage devices spread across the cluster of nodes.
  • 20. The method of claim 11, wherein the node external to the secured networked virtualization environment is identified by iterating over a list of external entities associated with the secured networked virtualization environment.
  • 21. A system comprising: a memory to hold a sequence of instructions; anda processor to execute the sequence of instructions, which when executed cause a set of acts, the set of acts comprising: electing a leader node from a cluster of nodes within a secured networked virtualization environment, respective nodes of the cluster of nodes each having an IP address;assigning a cluster virtual IP address to the leader node, the cluster virtual IP address being different from the IP address of the leader node; andgenerating a reverse tunnel with at least the cluster virtual IP address, wherein the reverse tunnel gives a node external to the secured networked virtualization environment access to the secured networked virtualization environment.
  • 22. The system of claim 21, wherein electing the leader node is performed by electing a first node corresponding to a first position in a queue as the leader node, wherein the queue is populated based on an order of receipt of heartbeat responses.
  • 23. The system of claim 21, wherein the IP address for each of the respective nodes comprise a private IP address and communications within the secured networked virtualization environment utilize a corresponding private IP address.
  • 24. The system of claim 21, wherein generating the reverse tunnel comprises identifying, by the leader node, a port number at the node external to the secured networked virtualization environment through which the node external to the secured networked virtualization environment is to communicate with the leader node.
  • 25. The system of claim 21, wherein generating the reverse tunnel comprises identifying a port number at the node external to the secured networked virtualization environment by requesting the node external to the secured networked virtualization environment for an available port number and receiving the available port number from the node external to the secured networked virtualization environment.
  • 26. The system of claim 21, wherein a list of external entities associated with the secured networked virtualization environment is updated by requesting a current external entity from the list of external entities for an updated list of external entities and modifying the list of external entities to add or remove an external entity.
  • 27. The system of claim 21, wherein a list of external entities associated with the secured networked virtualization environment is assigned to the secured networked virtualization environment based on a unique identifier for the secured networked virtualization environment.
  • 28. The system of claim 21, wherein a node of the cluster of nodes present storage aggregated from a plurality of storage devices spread across the cluster of nodes.
  • 29. The system of claim 21, wherein generating the reverse tunnel comprises performing a secured shell (SSH) command using a port number, the cluster virtual IP address and a public SSH key for the node external to the secured networked virtualization environment.
  • 30. The system of claim 21, wherein the node external to the secured networked virtualization environment is identified by iterating over a list of external entities associated with the secured networked virtualization environment.
CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent application Ser. No. 14/708,091, filed on May 8, 2015, titled “MECHANISM FOR PROVIDING EXTERNAL ACCESS TO A SECURED NETWORKED VIRTUALIZATION ENVIRONMENT”, and claims the benefit of U.S. Provisional Application Ser. No. 61/991,195, filed on May 9, 2014, titled “MECHANISM FOR PROVIDING EXTERNAL ACCESS TO A SECURED NETWORKED VIRTUALIZATION ENVIRONMENT”, the content of the aforementioned applications are hereby incorporated by reference in its entirety. The present application is related to U.S. Pat. No. 8,601,473, entitled “ARCHITECTURE FOR MANAGING I/O AND STORAGE FOR A VIRTUALIZATION ENVIRONMENT”, issued on Dec. 3, 2013, and which is hereby incorporated by reference in its entirety.

US Referenced Citations (471)
Number Name Date Kind
5253252 Tobol Oct 1993 A
5276867 Kenley et al. Jan 1994 A
5664144 Yanai et al. Sep 1997 A
5870555 Pruett et al. Feb 1999 A
5884308 Foulston Mar 1999 A
6055543 Christensen et al. Apr 2000 A
6085234 Pitts et al. Jul 2000 A
6101508 Wolff Aug 2000 A
6212531 Blea et al. Apr 2001 B1
6289356 Hitz et al. Sep 2001 B1
6341340 Tsukerman et al. Jan 2002 B1
6363416 Naeimi et al. Mar 2002 B1
6442602 Choudhry Aug 2002 B1
6684397 Byer et al. Jan 2004 B1
6738801 Kawaguchi et al. May 2004 B1
6928589 Pomaranski et al. Aug 2005 B1
6963914 Breitbart et al. Nov 2005 B1
6968345 Muhlestein Nov 2005 B1
7120631 Vahalia et al. Oct 2006 B1
7356679 Le et al. Apr 2008 B1
7379419 Collins May 2008 B2
7409511 Edwards et al. Aug 2008 B2
7421578 Huang Sep 2008 B1
7461374 Balint et al. Dec 2008 B1
7606868 Le et al. Oct 2009 B1
7647427 Devarapalli Jan 2010 B1
7702843 Chen et al. Apr 2010 B1
7720864 Muth et al. May 2010 B1
7725671 Prahlad et al. May 2010 B2
7752492 Armangau et al. Jul 2010 B1
7774391 Le et al. Aug 2010 B1
7805469 Nagaralu et al. Sep 2010 B1
7805511 Panicker et al. Sep 2010 B1
7840533 Prahlad et al. Nov 2010 B2
7890529 Srinivasan et al. Feb 2011 B1
7934117 Kakivaya et al. Apr 2011 B2
7937453 Hayden et al. May 2011 B1
7937455 Saha et al. May 2011 B2
7941470 Le et al. May 2011 B2
7990962 Chang et al. Aug 2011 B2
8051252 Williams Nov 2011 B2
8051262 Ichikawa et al. Nov 2011 B2
8095810 Matsuzawa et al. Jan 2012 B2
8095931 Chen et al. Jan 2012 B1
8190588 Gupta et al. May 2012 B1
8219769 Wilk Jul 2012 B1
8352482 Hansen Jan 2013 B2
8352608 Keagy et al. Jan 2013 B1
8365167 Beaty et al. Jan 2013 B2
8392680 Natanzon et al. Mar 2013 B1
8407448 Hayden et al. Mar 2013 B1
8424003 Degenaro et al. Apr 2013 B2
8447728 Prahlad et al. May 2013 B2
8473462 Banerjee Jun 2013 B1
8473775 Helmick Jun 2013 B1
8484163 Yucel et al. Jul 2013 B1
8484356 Douglis et al. Jul 2013 B1
8539076 Nakano et al. Sep 2013 B2
8543790 Chen et al. Sep 2013 B2
8549518 Aron Oct 2013 B1
8601471 Beaty Dec 2013 B2
8601473 Aron Dec 2013 B1
8635351 Astete et al. Jan 2014 B2
8646089 Jayanthi et al. Feb 2014 B2
8688660 Sivasubramanian et al. Apr 2014 B1
8751515 Xing et al. Jun 2014 B1
8762335 Prahlad et al. Jun 2014 B2
8805951 Faibish et al. Aug 2014 B1
8838923 Prahlad et al. Sep 2014 B2
8850130 Aron et al. Sep 2014 B1
8863124 Aron Oct 2014 B1
8898668 Costea Nov 2014 B1
8914429 Pitts Dec 2014 B2
8935563 Rajaa et al. Jan 2015 B1
8949557 Kamei et al. Feb 2015 B2
8966188 Bardale Feb 2015 B1
8983952 Zhang et al. Mar 2015 B1
8996783 Huang et al. Mar 2015 B2
9009106 Aron et al. Apr 2015 B1
9032248 Petty May 2015 B1
9043567 Modukuri et al. May 2015 B1
9060014 Crowley Jun 2015 B2
9069708 Gill et al. Jun 2015 B2
9152628 Stacey et al. Oct 2015 B1
9154535 Harris Oct 2015 B1
9201698 Ashok et al. Dec 2015 B2
9201704 Chang et al. Dec 2015 B2
9201887 Earl et al. Dec 2015 B1
9213513 Hartz et al. Dec 2015 B2
9244674 Waterman et al. Jan 2016 B2
9244969 Love et al. Jan 2016 B1
9256475 Aron et al. Feb 2016 B1
9256612 Bhatt et al. Feb 2016 B1
9268586 Voccio et al. Feb 2016 B2
9274817 Fan et al. Mar 2016 B1
9286298 Gillett, Jr. Mar 2016 B1
9286344 Bhardwaj et al. Mar 2016 B1
9292327 Von Thenen et al. Mar 2016 B1
9336132 Aron et al. May 2016 B1
9348702 Hsu et al. May 2016 B2
9389887 Aron et al. Jul 2016 B1
9405566 Chawla et al. Aug 2016 B2
9411628 Bezbaruah et al. Aug 2016 B2
9448887 Ben Dayan et al. Sep 2016 B1
9497257 Love et al. Nov 2016 B1
9513946 Sevigny et al. Dec 2016 B2
9519596 Coppola et al. Dec 2016 B2
9535907 Stringham Jan 2017 B1
9563555 Flynn et al. Feb 2017 B2
9571561 Jang Feb 2017 B2
9619257 Aron et al. Apr 2017 B1
9634990 Lee Apr 2017 B2
9639588 Cheng May 2017 B2
9652265 Narayanasamy et al. May 2017 B1
9690670 Paulzagade et al. Jun 2017 B1
9740436 Fiebrich-Kandler et al. Aug 2017 B2
9740723 Prahlad et al. Aug 2017 B2
9747287 Bhardwaj et al. Aug 2017 B1
9772866 Aron et al. Sep 2017 B1
9832136 Gibson Nov 2017 B1
9846706 Basov et al. Dec 2017 B1
9853978 Tellvik et al. Dec 2017 B2
9870291 Bezbaruah et al. Jan 2018 B2
9893988 Agarwal et al. Feb 2018 B2
9898522 Cole et al. Feb 2018 B2
9940154 Ramani et al. Apr 2018 B2
9946573 Mcdermott Apr 2018 B2
10009215 Shorey Jun 2018 B1
10050862 Nambiar et al. Aug 2018 B2
10083022 Fukui et al. Sep 2018 B2
10084873 Dornemann Sep 2018 B2
10095506 Gopalapura Venkatesh et al. Oct 2018 B2
10101989 Sinha et al. Oct 2018 B2
10114706 Chougala et al. Oct 2018 B1
10127059 Astete et al. Nov 2018 B2
10140115 Fukui et al. Nov 2018 B2
10152233 Xu et al. Dec 2018 B2
10210048 Sancheti Feb 2019 B2
10210172 Konig et al. Feb 2019 B1
10248657 Prahlad et al. Apr 2019 B2
10367753 Schultze et al. Jul 2019 B2
10394547 Fukui et al. Aug 2019 B2
10419426 Bakshan et al. Sep 2019 B2
10523592 Byers et al. Dec 2019 B2
10530742 Shah et al. Jan 2020 B2
10534634 Yang et al. Jan 2020 B2
10540164 Bafna et al. Jan 2020 B2
10540165 Bafna et al. Jan 2020 B2
10540166 Arikatla et al. Jan 2020 B2
10719305 Sinha et al. Jul 2020 B2
10719306 Deshmukh et al. Jul 2020 B2
10719307 Kanada et al. Jul 2020 B2
10728090 Deshmukh et al. Jul 2020 B2
10809998 Gopalapura Venkatesh et al. Oct 2020 B2
10824455 Arikatla et al. Nov 2020 B2
10831465 Sharpe et al. Nov 2020 B2
10838708 Sinha et al. Nov 2020 B2
20020120763 Miloushev et al. Aug 2002 A1
20020133491 Sim Sep 2002 A1
20030115218 Bobbitt et al. Jun 2003 A1
20030163597 Hellman et al. Aug 2003 A1
20030195942 Muhlestein et al. Oct 2003 A1
20040054777 Ackaouy et al. Mar 2004 A1
20040210591 Hirschfeld et al. Oct 2004 A1
20040267832 Wong et al. Dec 2004 A1
20050094574 Han et al. May 2005 A1
20050120160 Plouffe et al. Jun 2005 A1
20050120180 Schornbach et al. Jun 2005 A1
20050125503 Iyengar et al. Jun 2005 A1
20050193245 Hayden et al. Sep 2005 A1
20050201272 Wang et al. Sep 2005 A1
20050210461 Srivastava et al. Sep 2005 A1
20050226059 Kavuri et al. Oct 2005 A1
20050228798 Shepard et al. Oct 2005 A1
20050268298 Hunt et al. Dec 2005 A1
20060010227 Atluri Jan 2006 A1
20060047685 Dearing et al. Mar 2006 A1
20060069912 Zheng et al. Mar 2006 A1
20060080657 Goodman Apr 2006 A1
20060136781 Lamport Jun 2006 A1
20060206901 Chan Sep 2006 A1
20060224918 Koike Oct 2006 A1
20060225065 Chandhok et al. Oct 2006 A1
20070022129 Bahar et al. Jan 2007 A1
20070038913 Allen et al. Feb 2007 A1
20070100905 Masters et al. May 2007 A1
20070171921 Wookey et al. Jul 2007 A1
20070271561 Winner et al. Nov 2007 A1
20070300220 Seliger et al. Dec 2007 A1
20080098194 Hashimoto et al. Apr 2008 A1
20080104589 Mccrory et al. May 2008 A1
20080133486 Fitzgerald et al. Jun 2008 A1
20080134178 Fitzgerald et al. Jun 2008 A1
20080189468 Schmidt et al. Aug 2008 A1
20080201414 Amir et al. Aug 2008 A1
20080201457 London Aug 2008 A1
20080208938 Lin et al. Aug 2008 A1
20080270677 Kolakowski Oct 2008 A1
20080320499 Suit Dec 2008 A1
20080320583 Sharma et al. Dec 2008 A1
20090006801 Shultz et al. Jan 2009 A1
20090100248 Kami Apr 2009 A1
20090113034 Krishnappa Apr 2009 A1
20090144720 Roush et al. Jun 2009 A1
20090158082 Jain et al. Jun 2009 A1
20090171971 Goddard et al. Jul 2009 A1
20090193272 Matsuzawa et al. Jul 2009 A1
20090216975 Halperin et al. Aug 2009 A1
20090248870 Kamei et al. Oct 2009 A1
20090249470 Litvin et al. Oct 2009 A1
20090271412 Lacapra et al. Oct 2009 A1
20090287887 Matsuki et al. Nov 2009 A1
20090288084 Astete et al. Nov 2009 A1
20090290572 Gonia et al. Nov 2009 A1
20100042869 Szabo et al. Feb 2010 A1
20100070725 Prahlad et al. Mar 2010 A1
20100082716 Agetsuma et al. Apr 2010 A1
20100082774 Pitts Apr 2010 A1
20100095289 Nguyen et al. Apr 2010 A1
20100110150 Xu et al. May 2010 A1
20100138921 Na et al. Jun 2010 A1
20100162226 Borissov et al. Jun 2010 A1
20100174745 Ryan et al. Jul 2010 A1
20100214908 Ralev Aug 2010 A1
20100241785 Chen et al. Sep 2010 A1
20100262717 Critchley Oct 2010 A1
20100275205 Nakajima Oct 2010 A1
20110022694 Dalal et al. Jan 2011 A1
20110022695 Dalal et al. Jan 2011 A1
20110022812 Van et al. Jan 2011 A1
20110022883 Hansen Jan 2011 A1
20110047340 Olson et al. Feb 2011 A1
20110078318 Desai et al. Mar 2011 A1
20110107135 Andrews et al. May 2011 A1
20110119763 Wade et al. May 2011 A1
20110125835 Soltis May 2011 A1
20110161299 Prahlad et al. Jun 2011 A1
20110173493 Armstrong et al. Jul 2011 A1
20110179414 Goggin et al. Jul 2011 A1
20110184993 Chawla Jul 2011 A1
20110185292 Chawla et al. Jul 2011 A1
20110225574 Khalidi et al. Sep 2011 A1
20110239213 Aswani et al. Sep 2011 A1
20110252208 Ali et al. Oct 2011 A1
20110255538 Srinivasan et al. Oct 2011 A1
20110265076 Thorat et al. Oct 2011 A1
20110271279 Pate Nov 2011 A1
20110276578 Allalouf et al. Nov 2011 A1
20110276963 Wu et al. Nov 2011 A1
20110283277 Castillo et al. Nov 2011 A1
20110289561 Ivanov et al. Nov 2011 A1
20110307729 Matsuzawa et al. Dec 2011 A1
20110320690 Petersen et al. Dec 2011 A1
20120017114 Timashev et al. Jan 2012 A1
20120023495 Machida Jan 2012 A1
20120030456 Wu et al. Feb 2012 A1
20120054736 Arcese et al. Mar 2012 A1
20120078948 Darcy Mar 2012 A1
20120081395 Adi et al. Apr 2012 A1
20120084381 Alladi et al. Apr 2012 A1
20120117555 Banerjee et al. May 2012 A1
20120166866 Rao et al. Jun 2012 A1
20120222089 Whelan Aug 2012 A1
20120233463 Holt et al. Sep 2012 A1
20120233608 Toeroe Sep 2012 A1
20120243795 Head et al. Sep 2012 A1
20120254342 Evans Oct 2012 A1
20120254445 Kawamoto et al. Oct 2012 A1
20120266162 Baron Oct 2012 A1
20120266231 Spiers Oct 2012 A1
20120272237 Baron Oct 2012 A1
20120290630 Aizman et al. Nov 2012 A1
20120310892 Dam et al. Dec 2012 A1
20120317142 Broecheler et al. Dec 2012 A1
20120324183 Chiruvolu et al. Dec 2012 A1
20130007741 Britsch et al. Jan 2013 A1
20130036323 Goose et al. Feb 2013 A1
20130046740 Li et al. Feb 2013 A1
20130054973 Fok Feb 2013 A1
20130055018 Joshi et al. Feb 2013 A1
20130061110 Zvibel Mar 2013 A1
20130061167 Rhodes et al. Mar 2013 A1
20130066930 Kamei et al. Mar 2013 A1
20130117744 Klein et al. May 2013 A1
20130132674 Sundrani May 2013 A1
20130138995 Sivaramakrishnan et al. May 2013 A1
20130151888 Bhattiprolu et al. Jun 2013 A1
20130152077 Leitman et al. Jun 2013 A1
20130152085 Amore et al. Jun 2013 A1
20130174246 Schrecker Jul 2013 A1
20130185716 Yin et al. Jul 2013 A1
20130198738 Reddin et al. Aug 2013 A1
20130212345 Nakajima Aug 2013 A1
20130219030 Szabo Aug 2013 A1
20130227379 Gupta et al. Aug 2013 A1
20130227550 Weinstein et al. Aug 2013 A1
20130227552 Reddin et al. Aug 2013 A1
20130227566 Higuchi et al. Aug 2013 A1
20130232491 Radhakrishnan et al. Sep 2013 A1
20130235774 Jo Sep 2013 A1
20130246705 Diare Sep 2013 A1
20130247036 Fujiwara Sep 2013 A1
20130262396 Kripalani et al. Oct 2013 A1
20130283267 Cooper et al. Oct 2013 A1
20130297869 Mills et al. Nov 2013 A1
20130304694 Barreto et al. Nov 2013 A1
20130332771 Salapura et al. Dec 2013 A1
20140006708 Huynh et al. Jan 2014 A1
20140025796 Vibhor et al. Jan 2014 A1
20140052877 Mao Feb 2014 A1
20140059392 Ren et al. Feb 2014 A1
20140068612 Torrey Mar 2014 A1
20140068711 Schweitzer, III Mar 2014 A1
20140089259 Cheng Mar 2014 A1
20140095544 Eshel et al. Apr 2014 A1
20140095555 Kim et al. Apr 2014 A1
20140095816 Hsu et al. Apr 2014 A1
20140101649 Kamble Apr 2014 A1
20140109172 Barton Apr 2014 A1
20140115182 Sabaa et al. Apr 2014 A1
20140123138 Lee et al. May 2014 A1
20140143831 Fieweger May 2014 A1
20140146055 Bala et al. May 2014 A1
20140149794 Shetty et al. May 2014 A1
20140149983 Bonilla et al. May 2014 A1
20140164831 Merriman et al. Jun 2014 A1
20140173199 Gupta et al. Jun 2014 A1
20140181116 Wang Jun 2014 A1
20140188808 Wolf et al. Jul 2014 A1
20140189685 Kripalani Jul 2014 A1
20140189686 Masters et al. Jul 2014 A1
20140196038 Kottomtharayil et al. Jul 2014 A1
20140201725 Tian et al. Jul 2014 A1
20140207824 Brandwine et al. Jul 2014 A1
20140222953 Karve et al. Aug 2014 A1
20140230024 Uehara et al. Aug 2014 A1
20140237464 Waterman et al. Aug 2014 A1
20140250300 Runkis et al. Sep 2014 A1
20140279909 Am et al. Sep 2014 A1
20140310710 Lubsey et al. Oct 2014 A1
20140359612 D'Amato et al. Dec 2014 A1
20150006788 Liu et al. Jan 2015 A1
20150007180 Sharp et al. Jan 2015 A1
20150026682 Singh et al. Jan 2015 A1
20150032690 Hoque et al. Jan 2015 A1
20150039763 Chaudhary et al. Feb 2015 A1
20150039837 Quan et al. Feb 2015 A1
20150058298 Earl et al. Feb 2015 A1
20150081644 Pitts Mar 2015 A1
20150095788 Thiele et al. Apr 2015 A1
20150106325 Cole et al. Apr 2015 A1
20150106802 Ivanov et al. Apr 2015 A1
20150142745 Tekade et al. May 2015 A1
20150142747 Zou May 2015 A1
20150178019 Hegdal et al. Jun 2015 A1
20150205618 Bailey et al. Jul 2015 A1
20150205639 Matsumoto et al. Jul 2015 A1
20150213032 Powell et al. Jul 2015 A1
20150220324 Arcese et al. Aug 2015 A1
20150242291 Chang et al. Aug 2015 A1
20150244802 Simoncelli Aug 2015 A1
20150278046 Zellermayer et al. Oct 2015 A1
20150293830 Bhide et al. Oct 2015 A1
20150293896 Runkis et al. Oct 2015 A1
20150301903 Mutha et al. Oct 2015 A1
20150032653 Cui et al. Nov 2015 A1
20150324217 Shilmover et al. Nov 2015 A1
20150326531 Cui et al. Nov 2015 A1
20150331757 Durge et al. Nov 2015 A1
20150347775 Bie et al. Dec 2015 A1
20160034555 Rahut et al. Feb 2016 A1
20160050118 Blanco et al. Feb 2016 A1
20160057009 Kadayam et al. Feb 2016 A1
20160070492 Cherubini et al. Mar 2016 A1
20160077936 Tang et al. Mar 2016 A1
20160078068 Agrawal et al. Mar 2016 A1
20160085480 Chiu et al. Mar 2016 A1
20160085574 Dornemann et al. Mar 2016 A1
20160087861 Kuan et al. Mar 2016 A1
20160110214 Vincent et al. Apr 2016 A1
20160110267 Earl et al. Apr 2016 A1
20160124665 Jain et al. May 2016 A1
20160162371 Prabhu et al. Jun 2016 A1
20160171241 Yun Jun 2016 A1
20160179419 Yamaguchi et al. Jun 2016 A1
20160188232 Ramachandran et al. Jun 2016 A1
20160188407 Bronnikov et al. Jun 2016 A1
20160202916 Cui et al. Jul 2016 A1
20160203008 Cui et al. Jul 2016 A1
20160204977 Cui et al. Jul 2016 A1
20160216993 Beckwith et al. Jul 2016 A1
20160224363 Joy Aug 2016 A1
20160301766 Ionescu et al. Oct 2016 A1
20160328226 Arya et al. Nov 2016 A1
20160335134 Gupta et al. Nov 2016 A1
20160359697 Scheib et al. Dec 2016 A1
20160359955 Gill et al. Dec 2016 A1
20160378528 Zamir Dec 2016 A1
20160378616 Wigmore et al. Dec 2016 A1
20170004131 Ben Dayan et al. Jan 2017 A1
20170005990 Birger et al. Jan 2017 A1
20170012904 Matzek et al. Jan 2017 A1
20170024152 Bhagi et al. Jan 2017 A1
20170024224 Bakke et al. Jan 2017 A1
20170039078 Chen et al. Feb 2017 A1
20170039218 Prahlad et al. Feb 2017 A1
20170048223 Anantha Padmanaban et al. Feb 2017 A1
20170068469 Shankar et al. Mar 2017 A1
20170075921 Benton et al. Mar 2017 A1
20170090776 Kowles Mar 2017 A1
20170091047 Bangalore et al. Mar 2017 A1
20170094002 Kumar et al. Mar 2017 A1
20170109184 Ramani et al. Apr 2017 A1
20170160983 Fiske et al. Jun 2017 A1
20170177638 Bhosale et al. Jun 2017 A1
20170206074 Arcese et al. Jul 2017 A1
20170206207 Bondurant et al. Jul 2017 A1
20170214738 Agarwal et al. Jul 2017 A1
20170220661 Cao et al. Aug 2017 A1
20170235507 Sinha et al. Aug 2017 A1
20170235562 Bafna et al. Aug 2017 A1
20170235563 Bafna et al. Aug 2017 A1
20170235589 Gopalapura Venkatesh et al. Aug 2017 A1
20170235590 Sinha et al. Aug 2017 A1
20170235591 Kanada et al. Aug 2017 A1
20170235653 Arikatla et al. Aug 2017 A1
20170235654 Deshmukh et al. Aug 2017 A1
20170235751 Gupta et al. Aug 2017 A1
20170235758 Gopalapura Venkatesh et al. Aug 2017 A1
20170235760 Sharpe et al. Aug 2017 A1
20170235761 Bafna et al. Aug 2017 A1
20170235762 Sharpe et al. Aug 2017 A1
20170235763 Gopalapura Venkatesh et al. Aug 2017 A1
20170235764 Sharpe et al. Aug 2017 A1
20170235950 Gopalapura Venkatesh et al. Aug 2017 A1
20170242599 Patnaik et al. Aug 2017 A1
20170262346 Pradhan et al. Sep 2017 A1
20170277556 Ishii et al. Sep 2017 A1
20170277903 Christodorescu et al. Sep 2017 A1
20170279674 Zhu Sep 2017 A1
20170286228 Redko et al. Oct 2017 A1
20170302589 Leafe et al. Oct 2017 A1
20180004766 Darling Jan 2018 A1
20180062993 Wu et al. Mar 2018 A1
20180129426 Aron et al. May 2018 A1
20180143845 Chawla et al. May 2018 A1
20180157521 Arikatla et al. Jun 2018 A1
20180157522 Bafna et al. Jun 2018 A1
20180157561 Venkatesh et al. Jun 2018 A1
20180157677 Bafna et al. Jun 2018 A1
20180157752 Arikatla et al. Jun 2018 A1
20180157860 Nair et al. Jun 2018 A1
20180159729 Deshmukh et al. Jun 2018 A1
20180159826 Yisan et al. Jun 2018 A1
20180173731 Nazari et al. Jun 2018 A1
20180205787 Ben Dayan et al. Jul 2018 A1
20180278602 Koushik et al. Sep 2018 A1
20180332105 Huang et al. Nov 2018 A1
20180357251 Kumarasamy et al. Dec 2018 A1
20190026101 Gopalapura Venkatesh et al. Jan 2019 A1
20190079747 Sinha et al. Mar 2019 A1
20190129808 Acharya et al. May 2019 A1
20190196718 Pai et al. Jun 2019 A1
20190207925 Anantha Padmanaban et al. Jul 2019 A1
20190286832 Szeto et al. Sep 2019 A1
20190332683 Thummala et al. Oct 2019 A1
20200007530 Mohamad Abdul et al. Jan 2020 A1
20200036647 Gupta et al. Jan 2020 A1
20200081704 Bafna et al. Mar 2020 A1
20200106669 Dhillon et al. Apr 2020 A1
20200274869 Tahenakos et al. Aug 2020 A1
Foreign Referenced Citations (8)
Number Date Country
103746997 Apr 2014 CN
110519112 Nov 2019 CN
1 229 443 Aug 2002 EP
WO 2010050944 May 2010 WO
WO 2011078646 Jun 2011 WO
WO 2014200564 Dec 2014 WO
WO 2016018446 Feb 2016 WO
WO 2020180291 Sep 2020 WO
Non-Patent Literature Citations (160)
Entry
Non-final Office Action dated Jul. 7, 2015 for related U.S. Appl. No. 14/278,363.
Non-final Office Action dated Jul. 16, 2015 for related U.S. Appl. No. 14/584,466.
International Search Report and Written Opinion dated Aug. 20, 2015, for related PCT Patent Application No. PCT/US15/31096, 8 pages.
International Search Report and Written Opinion dated Aug. 26, 2015, for related PCT Patent Application No. PCT/US15/31096, 8 pages.
Final Office Action dated Feb. 25, 2016 for related U.S. Appl. No. 14/584,466.
Final Office Action dated Mar. 23, 2016 for related U.S. Appl. No. 14/278,363.
Notice Of Allowance and Fee(s) due dated Jul. 19, 2016 for related U.S. Appl. No. 14/206,869.
Lamport, Leslie “Paxos Made Simple,” dated Nov. 1, 2001, 14 pages.
Alexander Shraer, et al., “Dynamic Reconfiguration of Primary/Backup Clusters,” dated 2011, 13 pages.
Notice of Allowance and Fee(s) due dated Oct. 30, 2015 for related U.S. Appl. No. 14/144,520.
Wikipedia, “Compare-and-swap,” Nov. 9, 2015, 6 pages.
International Search Report and Written Opinion dated Aug. 7, 2015, for corresponding PCT Patent Application No. PCT/US2015/030026, 10 pages.
Non-final Office Action dated Jul. 17, 2015 for related U.S. Appl. No. 14/206,869.
PCT International Search Report and Written Opinion dated Jun. 15, 2015 for related PCT Patent Application No. PCT/US2015/020139.
Final Office Action dated Jan. 25, 2016 for related U.S. Appl. No. 14/206,869.
Non-final Office Action dated Sep. 22, 2016 for related U.S. Appl. No. 14/584,466.
Citrix, “Citrix XenServer 6.0 Administrator's Guide”, Copyright 2012 Citrix Systems, Inc., 207 pages (PCM Nutanix-023 ref).
John L Hufferd, Hufferd Enterprises, SNIA, “IP Storage Protocols: iSCSI”, Copyright 2011 Storage Networking Industry Association, 46 pages (PCM Nutanix-032 ref).
Vmware, Technical White Paper, “Multipathing Configuration for Software iSCSI Using Port Binding”, Copyright 2012 Vmware, Inc., 15 pages (PCM Nutanix-032 ref).
Non-final Office Action dated Oct. 7, 2016 for related U.S. Appl. No. 14/278,363.
Notice of Allowance and Fee(s) due dated Oct. 24, 2016 for related U.S. Appl. No. 14/206,869.
Non-final Office Action dated Nov. 1, 2016 for related U.S. Appl. No. 14/708,091.
Notice of Allowance and Fee(s) due dated Apr. 5, 2017 for related U.S. Appl. No. 14/584,466.
Ajmani et al., “Scheduling and Simulation: How to Upgrade Distributed Systems,” HotOS IX: The 9th Workshop on Hot Topics in Operating Systems, USENIX, 2003, pp. 43-48.
Kochut, Andrzej and Alexei Karve, “Leveraging Local Image Redundancy for Efficient Virtual Machine Provisioning,” 2012 IEEE Network Operations and Management Symposium, Jun. 8, 2012, pp. 179-187.
Soules et al.; “Metadata Efficiency in a Comprehensive Versioning File System”, May 2002, CMU-CS-02-145, School of Computer Science, Carnegie Mellon University, Pittsburgh, PA 15213, 33 pages.
Notice of Allowance and Fee(s) due dated Apr. 10, 2017 for related U.S. Appl. No. 14/278,363.
Final Office Action dated Apr. 20, 2017 for related U.S. Appl. No. 14/708,091.
Notice of Allowance and Fee(s) due dated May 15, 2017 for related U.S. Appl. No. 15/069,961.
Non-Final Office Action dated Jan. 26, 2017 for related U.S. Appl. No. 15/069,961.
Non-Final Office Action dated Jul. 12, 2017 for related U.S. Appl. No. 14/610,285.
European Search Report dated May 5, 2017 for related EP Application No. 15792334.3, 13 pages.
European Search Report dated May 19, 2017 for related EP Application No. 15788922.1, 11 pages.
Non-Final Office Action dated Aug. 24, 2017 for related U.S. Appl. No. 14/708,091.
Final Office Action dated Jan. 9, 2018 for related U.S. Appl. No. 14/610,285.
European Extended Search Report dated Jan. 15, 2018 for related EP Application No. 15762234.1, 19 pages.
Final Office Action dated Feb. 27, 2018 for related U.S. Appl. No. 14/708,091.
Advisory Action dated May 18, 2018 for related U.S. Appl. No. 14/708,091.
Non-Final Office Action dated Jun. 7, 2018 for related U.S. Appl. No. 15/294,422.
Non-Final Office Action dated Jun. 29, 2018 for related U.S. Appl. No. 15/160,347.
Notice of Allowance dated Sep. 6, 2018 for related U.S. Appl. No. 14/708,091, 8 pages.
First Office Action dated Jul. 30, 2018 for related European Application No. 15762234.1, 6 pages.
Non-Final Office Action dated Nov. 14, 2018 for related U.S. Appl. No. 15/678,893, 7 pages.
Notice of Allowance dated Nov. 20, 2018 for related U.S. Appl. No. 15/294,422, 7 pages.
Intention to Grant dated Jan. 3, 2019 for related EP Application No. 15792334.3, 7 pages.
Final Office Action dated Jan. 28, 2019 for related U.S. Appl. No. 15/160,347, 16 pages.
Poitras, Steven. “The Nutanix Bible” (Oct. 15, 2013), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Poitras, Steven. “The Nutanix Bible” (Jan. 11, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Poitras, Steven. “The Nutanix Bible” (Jun. 20, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Poitras, Steven. “The Nutanix Bible” (Jan. 7, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Poitras, Steven. “The Nutanix Bible” (Sep. 4, 2015), from https://nutanixbible.com/.
Poitras, Steven. “The Nutanix Bible” (Jan. 12, 2016), from https://nutanixbible.com/.
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2016), from https://nutanixbible.com/.
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2017), from https://nutanixbible.com/.
Poitras, Steven. “The Nutanix Bible” (Jun. 8, 2017), from https://nutanixbible.com/.
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2018), from https://nutanixbible.com/.
Poitras, Steven. “The Nutanix Bible” (Jun. 25, 2018), from https://nutanixbible.com/.
Poitras, Steven. “The Nutanix Bible” (Jan. 8, 2019), from https://nutanixbible.com/.
Notice of Allowance dated Mar. 20, 2019 for related U.S. Appl. No. 15/678,893, 5 pages.
Notice of Allowance dated Mar. 26, 2019 for related U.S. Appl. No. 15/294,422, 7 pages.
Non-Final Office Action dated Sep. 6, 2019 for related U.S. Appl. No. 15/160,347.
Notice of Allowance dated Nov. 19, 2019 for related U.S. Appl. No. 14/708,091.
Notice of Allowance dated Dec. 27, 2019 for related U.S. Appl. No. 14/610,285.
Final Office Action dated Mar. 16, 2020 for related U.S. Appl. No. 15/160,347.
E.S., “Nutanix Two-Node Clusters”, (Jun. 18, 2018), from http://vpash.com/nutanix/nutanix-two-node-clusters/, pp. all.
Configuring a Witness (two-node cluster) (Jul. 16, 2018), 3 pages.
Gupta, Upasna. “Unlocking the ROBO/Edge IT Landscape with the Launch of Nutanix 1-node Cluster” (Jan. 19, 2018), 7 pages.
Liu, M. “Fine-Grained Replicated State Machines for a Cluster Storage System”, in the Proceedings of the 17th USENIX Symposium on Networked Systems Design and Implementation (NSDI '20), (Feb. 25-27, 2020).
Junqueira, F. P., “Zab: High-performance broadcast for primary-backup systems”, 2011 IEEE/IFIP 41st International Conference on Dependable Systems & Networks (DSN), (Jun. 27-30, 2011).
Redis, “Redis Sentinel Documentation”, (Jul. 23, 2012), date retrieved from google.
Rabbitmq, “Quorum Queues”, (Nov. 14, 2019), date retrieved from google.
Cao, W., “PolarFS: An Ultra-low Latency and Failure Resilient Distributed File System for Shared Storage Cloud Database”, Proceedings of the VLDB Endowment, vol. 11, No. 12, (Aug. 2018).
Alibaba Cloud, “AliSQL X-Cluster: An MySQL Database with Superior Performance and Strong Consistency”, (Dec. 8, 2019).
Cano, I. et al., “Curator: Self-Managing Storage for Enterprise Clusters”, 14th USENIX Symposium on Networked Systems Design and Implementation, NSDI '17, (Mar. 27, 2017).
Poitras, Steven. “The Nutanix Bible” (Jul. 9, 2019), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Poitras, Steven. “The Nutanix Bible” (Feb. 3, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Final Office Action dated Aug. 5, 2020 for U.S. Appl. No. 16/041,348.
Notice of Allowance dated Nov. 4, 2020 for related U.S. Appl. No. 15/160,347.
Mizrak, A. T et al., “VMWARE vCenter Server High Availability Performance and Best Practices”, VMware vCenter Server 6.5, Performance Study, VMware, (Nov. 2016).
VMware, “vSAN Planning and Deployment”, VMware vSphere 7.0, VMware vSAN 7.0, VMware, Inc., (Apr. 2, 2020).
VMware, “VMware Infrastructure, Automating High Availability (HA) Services with VMware HA”, VMware Technical Note, (Revised on Jun. 5, 2006).
VMware, “VMware® High Availability (VMware HA): Deployment Best Practices”, VMware® vSphere™ 4.1, Technical White Paper, (Dec. 10, 2010), date retrieved from google.
Potheri, M. et al., “VMware vCenter Server™ 6.0, Availability Guide”, Technical Marketing Documentation, Version 1.0, (May 2015).
McCarty, J., “VMware® Virtual SAN™ Stretched Cluster: Bandwidth Sizing Guidance”, Technical White Paper, VMware, (Jan. 26, 2016), date retrieved from google.
McCarty, J., “VMware® Virtual SAN™ 6.1 Stretched Cluster & 2 Node Guide”, Storage and Availability Business Unit, VMware, v 6.1.0c, version 0.20, (Jan. 2016).
Dell: “High Availability and Data Protection With Dell EMC Isilon Scale-Out NAS”, (Jul. 2018), Dell Inc.
Jcosta et al., “High Availability Setup Using Veritas Cluster Server and NetApp Synchronous SnapMirror—One button Failover-Failback with SnapMirror Sync and Veritas Cluster Server”, (Nov. 18, 2010), NetApp Community.
NetApp: “Preparing storage systems for SnapMirror replication”, (Jul. 2015), NetApp, Inc.
Bounds, J., “High-Availability (HA) Pair Controller Configuration Overview and Best Practices”, (Feb. 2016), NetApp, Inc.
Netapp, “Clustered Data ONTAP 8.2 File Access Management Guide for CIFS”, NetApp, Inc., (Feb. 2014).
Jung, Y . et al. “ Standard-based Virtual Infrastructure Resource Management for Distributed and Heterogeneous Servers”, ICACT, (Feb. 15, 2009).
Dell EMC, “Dell EMC Isilon OneFS Operating System, Scale-out NAS to maximize the data capital and business value of your unstructured data”, Data Sheet, (Jan. 31, 2019), date retrieved from google.
Dell EMC, “Dell EMC Isilon OneFS Operating System, Powering the Isilon Scale-Out Storage Platform”, White Paper, (Dec. 2019).
EMC, “EMC Isilon OneFS Operating System, Powering scale-out storage for the new world of Big Data in the enterprise”, Data Sheet, (Apr. 2013).
EMC, Isilon OneFS, Version 8.0.1, Web Administration Guide, EMC Corporation, (Oct. 2016).
NetApp, “Enabling or disabling SMB automatic node referrals”, ONTAP 9 Documentation Center, NetApp, Inc., (Updated Dec. 2020), from https://docs.netapp.com/ontap-9/index.jsp?topic=%2Fcom.netapp.doc.cdot-famg-cifs%2FGUID-AC7E8515-3A4C-4BB5-A8C8-38B565C952EO.html,.
NetApp, “Guaranteeing throughput with QoS”, ONTAP 9 Documentation Center, NetApp, Inc., (Updated Dec. 2020), from https://docs.netapp.com/ontap-9/index.jsp?topic=%2Fcom.Netapp.doc.pow-perf-mon%2FGUID-77DF9BAF-4ED7-43F6-AECE-95DFB0680D2F.html.
NetApp. “How to troubleshoot the ‘Autolocation’ feature in Clustered Data ONTAP”, Knowledgebase, NetApp, (Jun. 4, 2019).
NetApp. “How to troubleshoot the ‘Autolocation’ feature in Clustered Data ONTAP—Results”, Knowledgebase, NetApp, (Captured on Sep. 19, 2019).
Cloudian, “Hybrid Cloud Storage with Cloudian HyperStore and Amazon S3”, Solution Brief, Cloudian Inc., (Aug. 2015).
NetApp, “Improving client response time by providing SMB automatic node referrals with Auto Location”, NetApp, Inc., (May 2013), from https://library.netapp.com/ecmdocs/ECMP1196891/html/GUID-0A5772A4-A6D7-4A00-AC2A-92B868C5B3B5.html.
NetApp, “Managing Workloads”, ONTAP 9 Documentation Center, NetApp, Inc., (Updated Dec. 2020), from https://docs.netapp.com/ontap9/index.jsp?topic=%2Fcom.netapp.doc.pow-perf-mon%2FGUID-13D35FC5-AF37-4BBD-8A8E-B1OB41451A16.html.
Nutanix, “Nutanix AFS—Introduction & Steps For Setting Up”, (Jan. 3, 2018), from https://virtual building blocks. com/2018/01/03/nutanix-afs-introduction-steps-for-setting-up/.
NetApp, “Protect Your Data with NetApp Element Software”, Solution Brief, NetApp, (Oct. 11, 2020), date retrieved from google.
Kemp, E., “NetApp SolidFire SnapMirror Architecture and Configuration”, Technical Report, NetApp, (Dec. 2017).
Kleyman, B., “How Cloud Computing Changes Storage Tiering”, DataCenter Knowledge, (Nov. 12, 2015).
Poitras, Steven. “The Nutanix Bible” (Aug. 1, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown).
Virtuadmin, “Configure vCenter High Availability”, Virtubytes, (Sep. 14, 2017).
U.S. Appl. No. 17/129,425 titled “ Parallel Change File Tracking in a Distributed File Server Virtual Machine (FSVM) Architecture” filed Dec. 21, 2020.
U.S. Appl. No. 16/942,929 titled “Method Using Access Information in a Distributed File Server Virtual Machine (FSVM) Architecture, Including Web Access”; filed Jul. 30, 2020.
U.S. Appl. No. 16/944,323 titled “Actions Based On File Tagging in a Distributed File Server Virtual Machine (FSVM) Environment”, filed Jul. 31, 2020.
U.S. Appl. No. 17/091,758 titled “Virtualized File Server Distribution Across Clusters”, filed Nov. 6, 2020.
Non-Final Office Action dated Sep. 30, 2020 for related U.S. Appl. No. 16/177,126.
Notice of Allowance dated Mar. 3, 2021 for U.S. Appl. No. 16/041,348.
Notice of Allowance dated Mar. 10, 2021 for related U.S. Appl. No. 15/160,347.
Rivera, R., “VMware Virtual SAN: Witness Component Deployment Logic”, VMware vSphere Bloi, (Apr. 1, 2014).
Page, M. “EMC Vplex Witness Deployment Within VMware Vcloud Air”, White Paper, EMC, (Oct. 7, 2016).
EMC, “EMC Vplex Witness Deployment Within VMware Vcloud Air”, White Paper, EMC, (Jul. 2013).
“New VMware HCL category: vSphere Metro Stretched Cluster”, Virtual Geek, (Oct. 5, 2011).
Lakkapragada, S. et al., “Site Recovery Manager and Stretched Storage: Tech Preview of a New Approach to Active-Active Data Centers”, VMware, (Nov. 2014).
Epping, D., “Stretched vCloud Director Infrastructure”, VMware, (Jan. 23, 2013).
Bernasconi, A. et al., “IBM SAN and SVC Stretched Cluster and VMware Solution Implementation”, IBM Redbooks, (Apr. 2013).
Ashish, S. et al., “IBM SAN vol. Controller Stretched Cluster with PowerVM and PowerHA”, IBM Redbooks, (Jul. 2013).
Dell, “Multi-AZ (stretched cluster)”, Architecture Guide—VMware Cloud Foundation 3.10.01 on VxRail, Dell Technologies, (Oct. 2001).
Daveberm, “Step-By-Step: Configuring a 2-NODE Multi-Site Cluster On Windows Server 2008 R2—Part 1”, Clustering for Mere Mortals, (Sep. 15, 2009).
“Failover Clustering (III)”, Networks & Servers Blog, (Sep. 2011).
Sarmiento, E., “Force Start a Windows Server Failover Cluster without a Quorum to bring a SQL Server Failover Clustered Instance Online”, (Aug. 22, 2014).
Horenbeeck, M. V., “Spooky! the Curious Case of the ‘Ghost’ File Share Witness . . . ”, (Jul. 15, 2014).
VMware, “Administering VMware Virtual SAN: VMware vSphere 6.5, vSAN 6.6”, VMware, (Jun. 26, 2017).
Littman, M. L., “The Witness Algorithm: Solving Partially Observable Markov Decision Process”, Brown University, (Dec. 1994).
Oracle, “Deploying Microsoft SQL Server Always On Availability Groups”, Oracle White Paper, (Sep. 2018).
Enterprisedb, “EDB Failover Manager Guide: Failover Manager Version 2.0.3”, EnterpriseDB Corporation, (Dec. 18, 2015).
“Explaining the Stormagic SvSAN WITNESS”, White Paper, (Aug. 29, 2018).
“2016 Failover cluster using Azure blob as a cluster quorum”, Teckadmin, (Mar. 31, 2019).
Deschner, G. et al., “Calling the Witness: SMB3 Failover with Samba/CTDB”, Redhat, (Oct. 2, 2015).
Microsoft, “High Availability Solutions: SQL Server 2012 Books Online”, Microsoft (Jun. 2012).
Mitchell, D., “Introduction to VMware vSAN™ for VMware Cloud Providers™,” Version 2.9, VMware, (Jan. 2018).
Mitchell, D., “Introduction to VMware vSAN™ for VMware vCloud Air™ Network”, Version 2.7, VMware, (Feb. 2017).
Paderin, M. “Analysis of Server Clustering Its Uses and Implementation”, Bachelor's thesis Information Technology, (Dec. 2017).
VMware, “Virtualizing Microsoft Applications on VMware Virtual SAN”, Reference Architecture, VMware, (Apr. 2, 2015).
Deschner, G., “Implementing the Witness protocol in Samba”, Redhat, (Jun. 22, 2015).
Deschner, G., “Cluster improvements in Samba4”, Redhat, (May 30, 2016).
Ngyuen, L., “SMB 3 Transparent Failover for Hitachi NAS Platform 4000 Series”, Tech Note, Hitachi Data Systems, (Nov. 2016).
McCarty, J. “VMware Horizon 6 with App volumes and Virtual SAN Reference Architecture”, Storage and Availability Business Unit, VMware (Jan. 2016).
VMware, “VMware Horizon 6 with App volumes and Virtual SAN Reference Architecture”, Technical White Paper, VMware, (Apr. 9, 2011), date retrieved from google.
Feroce, D., “Leveraging VMware vSAN™ for Highly Available Management Clusters”, Version 2.9, VMware, (Jan. 2018).
VMware, “Deployment for Multiple Availability Zones”, VMware Validated Design for Software-Defined Data Center 4.3, VMware, (Jul. 17, 2018).
Hogan, C., “VMware Virtual SAN Health Check Guide”, Storage and Availability Business Unit, v 6.1.0, VMware, (Sep. 2015).
Banerjee, A. et al., “VMware Virtual SAN™ Stretched Cluster: Performance and Best Practices”, Technical White Paper, VMware, (Oct. 22, 2015).
Hosken, M., “VMware vSAN™ Two-Node Architecture VMware Cloud Provider™ Use Cases”, Version 2.9, VMware, (Jan. 2018).
“VMware Virtual SAN 6.2”, Licensing Guide, VMware, (Revised Jun. 2016).
Hunter, J., “VMware Virtual SAN 6.2”, PCI DSS Compliance Guide, (Revised Feb. 2016).
“VMware Virtual SAN: SAP Applications”, Solution Overview, VMware, (May 6, 2016).
Eckerle, A. et al., “What's New in VMware vSphere® 6.5”, Technical White Paper, (Nov. 15, 2016).
Notice of Allowance dated Jun. 24, 2021 for U.S. Appl. No. 16/041,348.
Notice of Allowance dated Aug. 4, 2021 for related U.S. Appl. No. 15/160,347.
Non-Final Office Action dated Feb. 4, 2020 for U.S. Appl. No. 16/041,348.
Final Office Action dated Apr. 26, 2021 for related U.S. Appl. No. 16/177,126.
Non-Final Office Action dated Sep. 7, 2021 for U.S. Appl. No. 16/947,444.
Related Publications (1)
Number Date Country
20200177639 A1 Jun 2020 US
Provisional Applications (1)
Number Date Country
61991195 May 2014 US
Continuations (1)
Number Date Country
Parent 14708091 May 2015 US
Child 16747272 US