USING A ROUTING PROTOCOL FOR NETWORK PORT FAILOVER
20230318968 · 2023-10-05
Inventors
Cpc classification
H04L12/66
ELECTRICITY
H04L45/645
ELECTRICITY
International classification
H04L12/66
ELECTRICITY
Abstract
Using a routing protocol for network port failover. A network stack, which does not perform reverse path forwarding, includes a first interface as a loopback interface that is assigned a first internet protocol (IP) address, a second interface to a first network port, and a third interface to a second network port. The routing protocol is configured to communicate over the second interface with a first port at remote network device(s), and to communicate over the third interface with a second port at the remote network device(s). A route comprising the first IP address is announced to the remote network device(s), and default route of the network stack is configured to egress IP packets via the second interface. Later, the routing protocol indicates that there is a forwarding failure associated with the second interface, and the default route is configured to egress IP packets via the third interface.
Claims
1. A method, implemented at a computer system that includes a processor and a plurality of network ports, for using BGP (border gateway protocol) for network port failover in a single network stack environment having a single default route, the method comprising: identifying a plurality of interfaces configured at a network stack that does not perform reverse path forwarding, including identifying at least: a first interface provided by the network stack as a loopback interface, and that is assigned a first IP (internet protocol) address corresponding to a first IP subnet, a second interface provided by the network stack as an interface to a first network port of the plurality of network ports, and that is assigned a second IP address corresponding to a second IP subnet that is different than the first IP subnet, and a third interface provided by the network stack as an interface to a second network port of the plurality of network ports, and that is assigned a third IP address corresponding to a third IP subnet that is different than each of the first IP subnet and the second IP subnet; configuring BGP to communicate over the second interface with a first port at one or more remote network devices, and to communicate over the third interface with a second port at one or more remote network devices; announcing, to the one or more remote network devices, a route comprising the first IP address; configuring a default route of the network stack to egress IP packets via the second interface; after configuring the network stack to route IP packets via the second interface, determining, based on BGP, that there is a forwarding failure associated with the second interface; and based on determining that there is a forwarding failure associated with the second interface, configuring the default route of the network stack to egress IP packets via the third interface.
2. The method of claim 1, wherein, based on the network stack not performing reverse path forwarding, the network stack assigns the first IP address as a source address for one or more IP packets being egressed via the second interface or the third interface.
3. The method of claim 2, wherein: configuring the routing protocol to communicate over the second interface with the first port at one or more remote network devices comprises configuring a fourth IP address of the first port as a neighbor of the second IP address; and configuring the routing protocol to communicate over the third interface with a second port at one or more remote network devices comprises configuring a fifth IP address of the second port as a neighbor of the third IP address.
4. The method of claim 1, wherein the computer system is a VMware ESX host or a VMware ESXi host.
5. The method of claim 1, wherein a service running at the computer system is externally accessible at the first IP address.
6. The method of claim 1, further comprising configuring the network stack to disable reverse path forwarding.
7. The method of claim 1, wherein: configuring the default route of the network stack to egress IP packets via the second interface comprises assigning a fourth IP address of the first port as a default gateway for the network stack, the fourth IP address corresponding to the second IP subnet; and configuring the default route of the network stack to egress IP packets via the third interface comprises assigning a fifth IP address of the second port as the default gateway for the network stack, the fifth IP address corresponding to the third IP subnet.
8. The method of claim 1, further comprising configuring one or more of the first interface, the second interface, or the third interface.
9. A computer system for using an OSI (open systems interconnection) model layer-three protocol for network port failover in a single network stack environment having a single default route, comprising: a processor; a plurality of network ports; and a computer storage medium that stores computer-executable instructions that are executable by the processor to cause the computer system to at least: identify a plurality of interfaces configured at a network stack that does not perform reverse path forwarding, including identifying at least: a first interface provided by the network stack as a loopback interface, and that is assigned a first IP (internet protocol) address corresponding to a first IP subnet, a second interface provided by the network stack as an interface to a first network port of the plurality of network ports, and that is assigned a second IP address corresponding to a second IP subnet that is different than the first IP subnet, and a third interface provided by the network stack as an interface to a second network port of the plurality of network ports, and that is assigned a third IP address corresponding to a third IP subnet that is different than each of the first IP subnet and the second IP subnet; configure an OSI model layer-three routing protocol to communicate over the second interface with a first port at one or more remote network devices, and to communicate over the third interface with a second port at one or more remote network devices; announce, to the one or more remote network devices, a route comprising the first IP address; configure a default route of the network stack to egress IP packets via the second interface; after configuring the network stack to route IP packets via the second interface, determine, based on the OSI model layer-three routing protocol, that there is a forwarding failure associated with the second interface; and based on determining that there is a forwarding failure associated with the second interface, configure the default route of the network stack to egress IP packets via the third interface.
10. The computer system of claim 9, wherein, based on the network stack not performing reverse path forwarding, the network stack assigns the first IP address as a source address for one or more IP packets being egressed via the second interface or the third interface.
11. The computer system of claim 9, wherein the OSI model layer-three routing protocol is one of BGP (border gateway protocol), OSPF (open shortest path first), or RIP (routing information protocol).
12. The computer system of claim 9, wherein the computer system is a VMware ESX host or a VMware ESXi host.
13. The computer system of claim 9, wherein a service running at the computer system is externally accessible at the first IP address.
14. The computer system of claim 9, the computer-executable instructions also including instructions that are executable by the processor to cause the computer system to configure the network stack to disable reverse path forwarding.
15. The computer system of claim 9, wherein: configuring the default route of the network stack to egress IP packets via the second interface comprises assigning a fourth IP address of the first port as a default gateway for the network stack, the fourth IP address corresponding to the second IP subnet; and configuring the default route of the network stack to egress IP packets via the third interface comprises assigning a fifth IP address of the second port as the default gateway for the network stack, the fifth IP address corresponding to the third IP subnet.
16. The computer system of claim 9, the computer-executable instructions also including instructions that are executable by the processor to cause the computer system to configure one or more of the first interface, the second interface, or the third interface.
17. A computer program product comprising a computer storage medium that stores computer-executable instructions that are executable by a processor to cause a computer system to use a routing protocol for network port failover in a single network stack environment having a single default route, the computer-executable instructions including instructions that are executable by the processor to cause the computer system to at least: identify a plurality of interfaces configured at a network stack that does not perform reverse path forwarding, including identifying at least: a first interface provided by the network stack as a loopback interface, and that is assigned a first IP (internet protocol) address corresponding to a first IP subnet, a second interface provided by the network stack as an interface to a first network port of a plurality of network ports of the computer system, and that is assigned a second IP address corresponding to a second IP subnet that is different than the first IP subnet, and a third interface provided by the network stack as an interface to a second network port of the plurality of network ports, and that is assigned a third IP address corresponding to a third IP subnet that is different than each of the first IP subnet and the second IP subnet; configure a routing protocol to communicate over the second interface with a first port at one or more remote network devices, and to communicate over the third interface with a second port at one or more remote network devices; announce, to the one or more remote network devices, a route comprising the first IP address; configure a default route of the network stack to egress IP packets via the second interface; after configuring the network stack to route IP packets via the second interface, determine, based on the routing protocol, that there is a forwarding failure associated with the second interface; and based on determining that there is a forwarding failure associated with the second interface, configure the default route of the network stack to egress IP packets via the third interface.
18. The computer program product of claim 17, wherein the routing protocol is one of BGP (border gateway protocol), OSPF (open shortest path first), or RIP (routing information protocol).
19. The computer program product of claim 17, wherein the routing protocol is an OSI (open systems interconnection) model layer-three protocol.
20. The computer program product of claim 17, wherein in the computer system is a VMware ESX host or a VMware ESXi host.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0013] In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
[0014]
[0015]
[0016]
[0017]
DETAILED DESCRIPTION
[0018]
[0019] Computer architecture 100 also includes network device(s) 108 (e.g., a single network device, or a plurality of network devices) to which the computer system 101 is interconnected via network hardware 105. For example, network device(s) 108 are shown as including a plurality of physical network ports 121 (i.e., port 121a to port 121n), with port 114a at computer system 101 being interconnected/uplinked to port 121a at network device(s) 108, and port 114n at computer system 101 being interconnected/uplinked to port 121n at network device(s) 108. In embodiments, network device(s) 108 comprise one or more switches, one or more other computer systems, and the like.
[0020] The storage media 104 is illustrated as storing computer-executable instructions corresponding to one or more of an operating system (OS) 109, a network failover component 111, a routing protocol component 112a (e.g., implementing BGP, OSPF, RIP), or service(s) 113. As shown, the OS 109 comprises a network stack 110, and potentially comprises a hypervisor 122, though in some embodiments in which the hypervisor 122 is present the hypervisor 122 is separate from the OS 109. When the hypervisor 122 is present, in embodiments the computer system 101 is a virtualization host, such as a VMware ESX or ESXi host. Regardless of whether or not the computer system 101 is a virtualization host, in embodiments the computer system 101 provides service(s) 113, which can include one or more network-facing services.
[0021]
[0022] In embodiments, within the foregoing environment, the network failover component 111 operates to use an OSI model layer-three routing protocol (e.g., BGP, OSPF, RIP), combined with loose reverse path forwarding by the network stack 110, and assignment of an IP address to loopback interface 119, to detect forwarding failures (e.g., by network device(s) 108) and handle failover between available physical network ports (e.g., between port 114a and port 114n).
[0023]
[0024] The components of the network failover component 111, as illustrated in
[0025] Returning to
[0026] Regardless of how they are created/configured, in embodiments network interfaces 118 include the loopback interface 119 that is assigned an IP address that will be used externally for service(s) 113. For example, in
[0027] In embodiments, the interface identification component 202 identifies available network interfaces from network interfaces 118, including identifying at least the loopback interface 119 and two or more port interfaces (e.g., port interface 120a and port interface 120n). In embodiments, the interface identification component 202 also identifies parameters of those interfaces, such as assigned IP addresses, subnets, and the like. Thus, in embodiments, the interface identification component 202 identifies loopback interface 306 and port interfaces 305a, 305b, along with their IP configuration as just described. In some embodiments, the interface identification component 202 also identifies the IP configuration of port 302a and port 302b at network device 301.
[0028] In embodiments, the routing protocol configuration component 203 uses the routing protocol component 112a to establish ongoing routing protocol connections between two or more physical ports at computer system 101 (e.g., port 114a to port 114n) and different ports at the network device(s) 108 (e.g., port 121a to port 121n). Thus, the routing protocol configuration component 203 uses the routing protocol component 112a to establish at least (a) a first ongoing connection over an external uplink between a first network port (e.g., port 114a) at computer system 101 and a first remote network port (e.g., port 121a) at network device(s) 108, and (b) a second ongoing connection over an external uplink between a second network port (e.g., port 114n) at computer system 101 and a second remote network port (e.g., port 121n) at network device(s) 108. In embodiments, the routing protocol component 112a implements an OSI model layer-three routing protocol, such as BGP, OSPF, or RIP.
[0029] In one example, the routing protocol component 112a at computer system 101 implements BGP, and a routing protocol component 112b at network device(s) 108 also implements BGP. In this example, these ongoing connections communicate BGP control plane data. Referring to
TABLE-US-00001 neighbor 192.168.20.1 { router-id 192.168.20.5; local-address 192.168.20.5; local-as 65532; peer-as 65534; } neighbor 10.77.77.1 { router-id 192.168.20.5; local-address 10.77.77.2; local-as 65532; peer-as 65534; }
[0030] Additionally, the routing protocol configuration component 203 may also provide a suggested configuration for a routing protocol component 112b at network device(s) 108. In some embodiments, the routing protocol configuration component 203 may also apply this suggested configuration to the routing protocol component 112b (e.g., via establishing a remote console connection to the network device(s) 108). Continuing the BGP example, this configuration may be as follows: [0031] router bgp 65534 [0032] no synchronization [0033] bgp log-neighbor-changes [0034] network 10.77.77.0 [0035] network 192.168.20.0 [0036] network 192.168.10.0 [0037] redistribute connected [0038] neighbor 10.77.77.2 remote-as 65532 [0039] neighbor 192.168.20.5 remote-as 65532 [0040] maximum-paths 8 [0041] no auto-summary
[0042] In embodiments, the route announcement component 204 announces an IP address of the loopback interface 119 as a route to the network device(s) 108. In embodiments, the route announcement component 204 does so using the routing protocol component 112b. In embodiments, based on having announced the IP address of the loopback interface 119 to the network device(s) 108, those devices update their own routing table (e.g., routing table 116b). In embodiments, announcing this route to network device(s) 108 enables the network device(s) 108 to route IP packets destinated to the IP address of loopback interface 119 into one of the computer system's network ports (e.g., port 114a to port 114n). In the context of
[0043] In embodiments, the route selection component 205 selects an interface for IP packet egress from computer system 101 from among the available port interfaces (e.g., port 121a to port 121n), and configures the default route 117 to use that interface (e.g., based on issuing a request to network stack 110). In embodiments, based on using the routing protocol component 112a, the forwarding failure detection component 206 detects when the interface being used as the default route is experiencing an IP packet forwarding failure, and the route selection component 205 dynamically updates the default route to use a different interface (e.g., one that is not experiencing IP packet forwarding failures). For example, in
[0044]
[0045]
[0046] Example operation of the network failover component 111 is now further described in connection with
[0047] As mentioned, in some embodiments, computer system 101 is a virtual machine host, such as a VMware ESX or ESXi host. Thus, in some embodiments of method 400, the computer system is a VMware ESX host or a VMware ESXi host.
[0048] The following discussion now refers to a number of methods and method acts. Although the method acts may be discussed in certain orders, or may be illustrated in a flow chart as occurring in a particular order, no particular ordering is required unless specifically stated, or required because an act is dependent on another act being completed prior to the act being performed.
[0049] Referring to
[0050] Act 401—including each of act 401a, act 401b, and act 401c—is shown in broken lines, indicating that any of act 401a to act 401c may be optional. Additionally, act 401a, act 401b, and act 401c are shown with no ordering requirement among the acts, meaning that they could be performed serially (in any order) or in parallel.
[0051] In some embodiments, act 401a comprises configuring a first interface provided by a network stack as a loopback interface. For example, the network stack configuration component 201 creates and/or configures loopback interface 119 (e.g., loopback interface 306 in
[0052] In some embodiments, act 401b comprises configuring one or more of: a second interface provided by the network stack as an interface to a first network port, or a third interface provided by the network stack as an interface to a second network port. For example, the network stack configuration component 201 creates and/or configures port interface 120a (e.g., port interface 305a in
[0053] In some embodiments, act 401c comprises configuring the network stack to disable reverse path forwarding. In an example, the network stack configuration component 201 configures network stack instance 115 to disable a reverse path forwarding setting, resulting in the network stack instance 115 applying loose reverse path forwarding, meaning that the network stack will spoof a source address of outbound IP packets to have an IP address of the loopback interface (first interface).
[0054] Method 400 comprises an act 402 of identifying a loopback interface and two or more network port interfaces. In some embodiments, act 402 comprises identifying a plurality of interfaces configured at a network stack that does not perform reverse path forwarding. In embodiments, act 402 includes identifying at least (a) a first interface provided by the network stack as a loopback interface, and that is assigned a first IP address corresponding to a first IP subnet, (b) a second interface provided by the network stack as an interface to a first network port of the plurality of network ports, and that is assigned a second IP address corresponding to a second IP subnet that is different than the first IP subnet, and a (c) third interface provided by the network stack as an interface to a second network port of the plurality of network ports, and that is assigned a third IP address corresponding to a third IP subnet that is different than each of the first IP subnet and the second IP subnet. In an example, the interface identification component 202 identifies a first interface comprising loopback interface 119 (e.g., loopback interface 306 in
[0055] Method 400 also comprises an act 403 of configuring a routing protocol to communicate with remote device(s) over each network port interface. In some embodiments, act 403 comprises configuring a routing protocol to communicate over the second interface with a first port at one or more remote network devices, and to communicate over the third interface with a second port at one or more remote network devices. In an example, the routing protocol configuration component 203 configures the routing protocol component 112b to establish a first routing protocol connection that communicates via port interface 120a (e.g., port interface 305a in
[0056] In embodiments, the routing protocol component 112a implements an OSI model layer-three routing protocol, such as BGP, OSPF, or RIP. Thus, in some embodiments of act 403, the routing protocol is an OSI model layer-three protocol. Additionally, in some embodiments of act 403, the routing protocol is one of BGP, OSPF, or RIP. In some embodiments, the routing protocol component 112a implements BGP, and configuring the routing protocol includes configuring ports at a remote device as neighbors (e.g., as demonstrated supra). Thus, in embodiments of act 403 the routing protocol is BGP, and configuring the routing protocol to communicate over the second interface (e.g., port interface 305a) with the first port (e.g., port 302a) at one or more remote network devices comprises configuring a fourth IP address (e.g., 192.168.20.1) of the first port as a neighbor of the second IP address (e.g., 192.168.20.5); and configuring the routing protocol to communicate over the third interface (e.g., port interface 305b) with a second port (e.g., port 302b) at one or more remote network devices comprises configuring a fifth IP address (e.g., 10.77.77.1) of the second port as a neighbor of the third IP address (e.g., 10.77.77.2).
[0057] Method 400 also comprises an act 404 of configuring a default route to egress via one of the network port interfaces. In some embodiments, act 404 comprises configuring a default route of the network stack to egress IP packets via the second interface. In an example, the route selection component 205 selects port interface 120a (e.g., port interface 305a in
[0058] In embodiments, when configuring the second interface (e.g., port interface 305a) as the default route, act 404 assigns an IP address of that interface's corresponding remote port (e.g., port 302a) as the default gateway, Thus, in embodiments of act 404, and as shown in default route 308a of
[0059] Method 400 also comprises an act 405 of announcing an IP of the loopback interface as a route to remote device(s). In some embodiments, act 405 comprises announcing, to the one or more remote network devices, a route comprising the first IP address. In an example, the route announcement component 204 announces a route to an IP address of loopback interface 119 (loopback interface 306 in
[0060] Notably, act 404 and act 405 are shown with no ordering requirement among the acts, meaning that they could be performed serially (in any order) or in parallel.
[0061] Since the network stack instance 115 applies loose reverse path forwarding, a source address of IP packets egressing via the second interface (e.g., port interface 120a/port interface 305a) is spoofed by the network stack instance 115 to include the first address assigned to the first interface (e.g., loopback interface 119/loopback interface 306). As such, in embodiments, based on the network stack not performing reverse path forwarding, the network stack assigns the first IP address as a source address for one or more IP packets being egressed via the second interface. Additionally, because the route announcement component 204 advertised this first address as a route in act 405, IP packets destined to the first IP address are routable to computer system 101/computer system 303. As such, a service (e.g., service(s) 113) running at the computer system is externally accessible at the first IP address.
[0062] Method 400 also comprises an act 406 of, using the routing protocol, detecting a forwarding failure. In some embodiments, act 406 comprises, after configuring the network stack to route IP packets via the second interface, determining, based on the routing protocol, that there is a forwarding failure associated with the second interface. In an example, referring to
[0063] Method 400 also comprises an act 407 of adjusting the default route to fail over to another network port interface. In some embodiments, act 407 comprises, based on determining that there is a forwarding failure associated with the second interface, configuring the default route of the network stack to egress IP packets via the third interface. In an example, referring to
[0064] In embodiments, when configuring the third interface (e.g., port interface 305b) as the default route, act 407 assigns an IP address of that interface's corresponding remote port (e.g., port 302b) as the default gateway, Thus, in embodiments of act 407, configuring the default route of the network stack to egress IP packets via the third interface comprises assigning a fifth IP address (e.g., 10.77.77.1) of the second port (e.g., port 302b) as a default gateway for the network stack, the fifth IP address corresponding to the third IP subnet (e.g., 10.77.77.0/24).
[0065] Since the network stack instance 115 applies loose reverse path forwarding, a source address of IP packets now egressing via the third interface (e.g., port interface 120n/port interface 305b) is spoofed by the network stack instance 115 to include the first address assigned to the first interface (e.g., loopback interface 119/loopback interface 306). As such, in embodiments, based on the network stack not performing reverse path forwarding, the network stack assigns the first IP address as a source address for one or more IP packets being egressed via the third interface. Additionally, because the route announcement component 204 advertised this first address as a route in act 405, IP packets destined to the first IP address are routable to computer system 101/computer system 303. As such, a service (e.g., service(s) 113) running at the computer system remains externally accessible at the first IP address after the default route change.
[0066] A broken arrow, which connects act 407 and act 406, indicates that these acts can repeat to detect and respond to further IP packet forwarding failures. For example, referring to
[0067] Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or acts described above, or the order of the acts described above. Rather, the described features and acts are disclosed as example forms of implementing the claims.
[0068] Embodiments of the present invention may comprise or utilize a special-purpose or general-purpose computer system (e.g., computer system 101) that includes computer hardware, such as, for example, one or more processors (e.g., processor(s) 102) and system memory (e.g., memory 103), as discussed in greater detail below. Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general-purpose or special-purpose computer system. Computer-readable media that store computer-executable instructions and/or data structures are computer storage media (e.g., storage media 104). Computer-readable media that carry computer-executable instructions and/or data structures are transmission media. Thus, by way of example, and not limitation, embodiments of the invention can comprise at least two distinctly different kinds of computer-readable media: computer storage media and transmission media.
[0069] Computer storage media are physical storage media that store computer-executable instructions and/or data structures. Physical storage media include computer hardware, such as RAM, ROM, EEPROM, solid state drives (“SSDs”), flash memory, phase-change memory (“PCM”), optical disk storage, magnetic disk storage or other magnetic storage devices, or any other hardware storage device(s) which can be used to store program code in the form of computer-executable instructions or data structures, which can be accessed and executed by a general-purpose or special-purpose computer system to implement the disclosed functionality of the invention.
[0070] Transmission media can include a network and/or data links which can be used to carry program code in the form of computer-executable instructions or data structures, and which can be accessed by a general-purpose or special-purpose computer system. A “network” is defined as one or more data links that enable the transport of electronic data between computer systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer system, the computer system may view the connection as transmission media. Combinations of the above should also be included within the scope of computer-readable media.
[0071] Further, upon reaching various computer system components, program code in the form of computer-executable instructions or data structures can be transferred automatically from transmission media to computer storage media (or vice versa). For example, computer-executable instructions or data structures received over a network or data link can be buffered in RAM within a network interface module (e.g., network hardware 105), and then eventually transferred to computer system RAM and/or to less volatile computer storage media at a computer system. Thus, it should be understood that computer storage media can be included in computer system components that also (or even primarily) utilize transmission media.
[0072] Computer-executable instructions comprise, for example, instructions and data which, when executed at one or more processors, cause a general-purpose computer system, special-purpose computer system, or special-purpose processing device to perform a certain function or group of functions. Computer-executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, or even source code.
[0073] Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computer system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, PDAs, tablets, pagers, routers, switches, and the like. The invention may also be practiced in distributed system environments where local and remote computer systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. As such, in a distributed system environment, a computer system may include a plurality of constituent computer systems. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
[0074] Those skilled in the art will also appreciate that the invention may be practiced in a cloud computing environment. Cloud computing environments may be distributed, although this is not required. When distributed, cloud computing environments may be distributed internationally within an organization and/or have components possessed across multiple organizations. In this description and the following claims, “cloud computing” is defined as a model for enabling on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services). The definition of “cloud computing” is not limited to any of the other numerous advantages that can be obtained from such a model when properly deployed.
[0075] A cloud computing model can be composed of various characteristics, such as on-demand self-service, broad network access, resource pooling, rapid elasticity, measured service, and so forth. A cloud computing model may also come in the form of various service models such as, for example, Software as a Service (“SaaS”), Platform as a Service (“PaaS”), and Infrastructure as a Service (“laaS”). The cloud computing model may also be deployed using different deployment models such as private cloud, community cloud, public cloud, hybrid cloud, and so forth.
[0076] Some embodiments, such as a cloud computing environment, may comprise a system that includes one or more hosts that are each capable of running one or more virtual machines. During operation, virtual machines emulate an operational computing system, supporting an operating system and perhaps one or more other applications as well. In some embodiments, each host includes a hypervisor that emulates virtual resources for the virtual machines using physical resources that are abstracted from view of the virtual machines. The hypervisor also provides proper isolation between the virtual machines. Thus, from the perspective of any given virtual machine, the hypervisor provides the illusion that the virtual machine is interfacing with a physical resource, even though the virtual machine only interfaces with the appearance (e.g., a virtual resource) of a physical resource. Examples of physical resources including processing capacity, memory, disk space, network bandwidth, media drives, and so forth.
[0077] The present invention may be embodied in other specific forms without departing from its essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope. When introducing elements in the appended claims, the articles “a,” “an,” “the,” and “said” are intended to mean there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.