IP Library › Granted Patent US 10,078,534
Granted Patent B2
US 10,078,534 · App. 14/836,004 · Granted Sep 18, 2018

Network-aware workload placement in a data center

Inventors: Padmanabhan Krishnan (Sunnyvale, CA); Rajesh Babu Nataraja (Sunnyvale, CA); Shyam Kapadia (San Jose, CA); Nader Lahouti (San Jose, CA); Viral Rajeshbhai Barot (Sunnyvale, CA); Jay Ajaykumar Gheewala (San Jose, CA)
Assignee: Cisco Technology, Inc.
G06F9/505H04L67/1008H04L67/1012H04L67/38G06F2209/501
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,078,534
App. No.
14/836,004
Granted
Sep 18, 2018
Kind
B2
Abstract

Embodiments include determining computing resources within one or more data centers onto which a virtual workload can be deployed. Network state data is determined for a plurality of network resources within a network fabric of a data center. For each of the plurality of computing resources, embodiments determine a respective suitability value describing a fitness of the respective physical server for deploying at least a portion of the virtual workload. Such a determination includes determining a respective at least one of the plurality of network resources within the at least one network fabric corresponding to the respective computing resource and determining a current workload of the at least one network resource, based on the network state data. Upon selecting one or more computing resources of the plurality of computing resources based on the determined suitability values, embodiments deploy the virtual workload onto the selected one or more computing resources.

Claims (42)

1. A computer-implemented method of virtual workload deployment based on computing resource hardware load and associated network hardware load, the computer-implemented method comprising:

for each of a plurality of computing resources within one or more data centers onto which a virtual workload can be deployed, determining a computing resource hardware load of the respective computing resource, maintaining network topology information for at least one network fabric of the one or more data centers, and determining, based on network state data for the network fabric, an associated network hardware load of a network device communicatively connected to the respective computing resource;

in response to the determining and the maintaining, automatically selecting one or more computing resources of the plurality of computing resources based on evaluating, for each of the plurality of computing resources and by operation of one or more computer processors, a predefined function of both (i) the computing resource hardware load of the respective computing resource and (ii) the associated network hardware load of the network device communicatively connected to the respective computing resource; and

deploying the virtual workload onto the automatically selected one or more computing resources, whereafter an indication that the virtual workload is deployed is outputted;

wherein the network device comprises at least one of (i) a Top of Rack (ToR) switch that is directly adjacent to the respective computing resource, in a network topology described by the network topology information and (ii) a spine network switch within the network fabric that is communicatively connected to the ToR switch;

wherein the associated network hardware load comprises at least one of (i) a measure of Media Access Control (MAC) table entries, (ii) a measure of Virtual Local Area Network (VLAN) availability, (iii) a measure of hardware network route availability, (iv) a measure of bandwidth subscriptions, (v) a measure of feature availability in one of the ToR switch and the spine network switch, (vi) a measure of server uplink subscriptions, and (vii) a measure of fabric link subscriptions.

2. The computer-implemented method of claim 1 , wherein the computing resources comprise a plurality of physical servers onto which the virtual workload can be deployed.

3. The computer-implemented method of claim 2 , wherein deploying the virtual workload onto the selected one or more computing resources further comprises deploying the virtual workload onto one or more of the plurality of physical servers.

4. The computer-implemented method of claim 1 , further comprising:

subsequent to deploying the virtual workload onto the automatically selected one or more computing resources, redeploying the virtual workload to a different one or more computing resources of the plurality of computing resources automatically selected based on reevaluating, for each of the plurality of computing resources, a predefined function of both (i) the computing resource hardware load of the respective computing resource and (ii) the associated network hardware load of the network device communicatively connected to the respective computing resource, whereafter an indication that the virtual workload is redeployed is outputted.

5. The computer-implemented method of claim 1 , wherein the virtual workload comprises one or more virtual machine images.

6. The computer-implemented method of claim 5 , wherein the virtual workload further comprises at least one of (i) a load balancing component, (ii) a firewall, (iii) a virtual host, and (iv) Multiprotocol Label Switching (MPLS) Virtual Private Network (VPN) services.

7. The computer-implemented method of claim 1 , further comprising:

receiving, via an Application Program Interface (API), a user request to deploy the virtual workload within one or more data centers.

8. The computer-implemented method of claim 1 , wherein the network device comprises, in respective instances, (i) the ToR switch that is directly adjacent to the respective computing resource and (ii) the spine network switch within the network fabric that is communicatively connected to the ToR switch.

9. The computer-implemented method of claim 8 , wherein the associated network hardware load comprises, in respective instances, (i) the measure of MAC table entries, (ii) the measure of VLAN availability, (iii) the measure of hardware network route availability, (iv) the measure of bandwidth subscriptions, (v) the measure of feature availability in each of the ToR switch and the spine network switch, (vi) the measure of server uplink subscriptions, and (vii) the measure of fabric link subscriptions.

10. The computer-implemented method of claim 9 , wherein the computing resources comprise a plurality of physical servers onto which the virtual workload can be deployed, wherein deploying the virtual workload onto the selected one or more computing resources further comprises deploying the virtual workload onto one or more of the plurality of physical servers.

11. The computer-implemented method of claim 10 , further comprising:

subsequent to deploying the virtual workload onto the automatically selected one or more computing resources, redeploying the virtual workload to a different one or more computing resources of the plurality of computing resources automatically selected based on reevaluating, for each of the plurality of computing resources, a predefined function of both (i) the computing resource hardware load of the respective computing resource and (ii) the associated network hardware load of the network device communicatively connected to the respective computing resource, whereafter an indication that the virtual workload is redeployed is outputted.

12. The computer-implemented method of claim 11 , wherein the virtual workload comprises one or more virtual machine images, wherein the virtual workload further comprises, in respective instances, (i) a load balancing component, (ii) a firewall, (iii) a virtual host, and (iv) Multiprotocol Label Switching (MPLS) Virtual Private Network (VPN) services.

13. The computer-implemented method of claim 12 , wherein the computing resource hardware load of each computing resource comprises, in respective instances, (i) processor utilization of the respective computing resource, (ii) memory utilization of the respective computing resource, (iii) storage utilization of the respective computing resource, and (iv) network utilization of the respective computing resource, wherein the computer-implemented method further comprises receiving, via an Application Program Interface (API), a user request to deploy the virtual workload within one or more multi-tenant data centers.

14. A system of virtual workload deployment based on computing resource hardware load and associated network hardware load, the system comprising:

one or more computer processors; and

a memory containing computer program code that, when executed by the one or more computer processors, performs an operation comprising:

for each of a plurality of computing resources within one or more data centers onto which a virtual workload can be deployed, determining a computing resource hardware load of the respective computing resource, maintaining network topology information for at least one network fabric of the one or more data centers, and determining, based on network state data for the network fabric, associated network hardware load of a network device communicatively connected to the respective computing resource;

in response to the determining and the maintaining, automatically selecting one or more computing resources of the plurality of computing resources based on evaluating, for each of the plurality of computing resources and by operation of one or more computer processors, a predefined function of both (i) the computing resource hardware load of the respective computing resource and (ii) the associated network hardware load of the network device communicatively connected to the respective computing resource; and

deploying the virtual workload onto the automatically selected one or more computing resources, whereafter an indication that the virtual workload is deployed is outputted;

wherein the network device comprises at least one of (i) a Top of Rack (ToR) switch that is directly adjacent to the respective computing resource, in a network topology described by the network topology information and (ii) a spine network switch within the network fabric that is communicatively connected to the ToR switch;

wherein the associated network hardware load comprises at least one of (i) a measure of Media Access Control (MAC) table entries, (ii) a measure of Virtual Local Area Network (VLAN) availability, (iii) a measure of hardware network route availability, (iv) a measure of bandwidth subscriptions, (v) a measure of feature availability in one of the ToR switch and the spine network switch, (vi) a measure of server uplink subscriptions and (vii) a measure of fabric link subscriptions.

15. The system of claim 14 , wherein the computing resources comprise a plurality of physical servers onto which the virtual workload can be deployed.

16. The system of claim 15 , wherein deploying the virtual workload onto the selected one or more computing resources further comprises deploying the virtual workload onto one or more of the plurality of physical servers.

17. The system of claim 14 , the operation further comprising:

subsequent to deploying the virtual workload onto the automatically selected one or more computing resources, redeploying the virtual workload to a different one or more computing resources of the plurality of computing resources automatically selected based on reevaluating, for each of the plurality of computing resources, a predefined function of both (i) the computing resource hardware load of the respective computing resource and (ii) the associated network hardware load of the network device communicatively connected to the respective computing resource, whereafter an indication that the virtual workload is redeployed is outputted.

18. The system of claim 14 , wherein the virtual workload further comprises at least one of (i) a load balancing component, (ii) a firewall, (iii) a virtual host, and (iv) Multiprotocol Label Switching (MPLS) Virtual Private Network (VPN) services.

19. The system of claim 14 , the operation further comprising:

receiving, via an Application Program Interface (API), a user request to deploy the virtual workload within one or more data centers.

20. A non-transitory computer-readable medium containing computer program code that, when executed, performs an operation for virtual workload deployment based on computing resource hardware load and associated network hardware load, the operation comprising:

for each of a plurality of computing resources within one or more data centers onto which a virtual workload can be deployed, determining a computing resource hardware load of the respective computing resource, maintaining network topology information for at least one network fabric of the one or more data centers, and determining, based on network state data for the network fabric, an associated network hardware load of a network device communicatively connected to the respective computing resource;

in response to the determining and the maintaining, automatically selecting one or more computing resources of the plurality of computing resources based on evaluating, for each of the plurality of computing resources and by operation of one or more computer processors when executing the computer program code, a predefined function of both (i) the computing resource hardware load of the respective computing resource and (ii) the associated network hardware load of the network device communicatively connected to the respective computing resource; and

deploying the virtual workload onto the automatically selected one or more computing resources, whereafter an indication that the virtual workload is deployed is outputted;

wherein the network device comprises at least one of (i) a Top of Rack (ToR) switch that is directly adjacent to the respective computing resource, in a network topology described by the network topology information and (ii) a spine network switch within the network fabric that is communicatively connected to the ToR switch;

wherein the associated network hardware load comprises at least one of (i) a measure of Media Access Control (MAC) table entries, (ii) a measure of Virtual Local Area Network (VLAN) availability, (iii) a measure of hardware network route availability, (iv) a measure of bandwidth subscriptions, (v) a measure of feature availability in one of the ToR switch and the spine network switch, (vi) a measure of server uplink subscriptions and (vii) a measure of fabric link subscriptions.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2015
From: KRISHNAN, PADMANABHAN; NATARAJA, RAJESH BABU; KAPADIA, SHYAM; LAHOUTI, NADER; BAROT, VIRAL RAJESHBHAI; GHEEWALA, JAY AJAYKUMAR
To: CISCO TECHNOLOGY, INC.
Reel/Frame 036425/0261 →
Continuity (2)
Provisional Application 62107200 · Jan 23, 2015
Related Publication 20160217010A1 · Jul 28, 2016