A task-oriented virtual resource can be dynamically mapped to multiple physical resource types in order to better align resource allocation mechanisms. Mappings between the task-oriented virtual resource and the physical resource types may be managed in accordance with a workload associated with an underlying task being performed by the network on behalf of a user. The number of physical resource units that are mapped to the task-oriented virtual resource may be varied in accordance with one or more workload conditions using a finite state machine. The finite state machine can include nodes representing static or dynamic states for each physical resource type. The nodes may be interconnected via relationships, which can be governed by the workload conditions. relationships between nodes may be modeled using hybrid graphs.
|
1. A method for sharing resources in a network, the method comprising:
creating, by an abstraction layer, a single virtual resource corresponding to a task to be performed by the network on behalf of a customer;
mapping, by a network device, the single virtual resource to two or more different types of physical resources, in a resource pool, required to perform the task, the single virtual resource being mapped to a respective number of physical resource units for each of the different types of physical resources;
detecting a variation in a workload associated with the task; and
dynamically updating numbers of physical resource units for the different types of physical resources mapped to the single virtual resource in accordance with the variation in the workload associated with the task.
13. A non-transitory computer program product comprising a computer readable storage medium storing programming, the programming including instructions to:
create a single virtual resource corresponding to a task to be performed by a network on behalf of a customer;
map the single virtual resource to two or more different types of physical resources, in a resource pool, required to perform the task, the single virtual resource being mapped to a respective number of physical resource units for each of the different types of physical resources;
detect a variation in a workload associated with the task; and
dynamically update numbers of physical resource units for the different types of physical resources mapped to the single virtual resource in accordance with the variation in the workload associated with the task.
16. A non-transitory computer program product comprising a computer readable storage medium storing programming, the programming including instructions to:
create a single virtual resource corresponding to a task to be performed by a network on behalf of a customer;
map the single virtual resource to multiple physical resources in a resource pool of the network; and
create a finite state machine for managing the single virtual resource, the instructions to create the finite state machine including instructions to:
identify a physical resource type classifying a number of physical resource units being mapped to the single virtual resource;
create a static state and a dynamic state for the physical resource type, wherein the number of physical resource units being mapped to the single virtual resource is held constant when the finite state machine operates in the static state, and wherein the number of physical resource units being mapped to the single virtual resource is varied when the finite state machine operates in the dynamic state; and
create a relationship between the static state and the dynamic state in accordance with a workload assigned to the task.
9. A method for sharing resources in a network, the method comprising:
creating, by an abstraction layer, a single virtual resource, the single virtual resource corresponding to a task to be performed by the network on behalf of a customer;
mapping, by a network device, the single virtual resource to multiple physical resources in a resource pool of the network; and
creating a finite state machine for managing the single virtual resource, wherein creating the finite state machine for managing the single virtual resource comprises:
identifying, by the abstraction layer, a physical resource type classifying a number of physical resource units being mapped to the single virtual resource;
creating, by the abstraction layer, a static state and a dynamic state for the physical resource type, wherein the number of physical resource units being mapped to the single virtual resource is held constant when the finite state machine operates in the static state, and wherein the number of physical resource units being mapped to the single virtual resource is varied when the finite state machine operates in the dynamic state; and
creating, by the abstraction layer, a relationship between the static state and the dynamic state in accordance with a workload assigned to the task.
2. The method of
3. The method of
4. The method of
mapping the single virtual resource to a number of physical processing resource units and a number of physical memory resource units in accordance with an initial value of the workload associated with the task.
5. The method of
6. The method of
dynamically updating the number of physical processing resource units mapped to the single virtual resource or the number of physical memory resource units mapped to the single virtual resource in accordance with the variation in the workload associated with the task.
7. The method of
mapping the single virtual resource to physical resources in accordance with a hybrid graph, the hybrid graph modeling relationships between workloads associated with the task, the single virtual resource, and the multiple physical resources.
8. The method of
10. The method of
11. The method of
identifying, by the abstraction layer, a first physical resource type classifying a first type of physical resource units being mapped to the single virtual resource;
identifying, by the abstraction layer, a second physical resource type classifying a second type of physical resource units being mapped to the single virtual resource;
creating, by the abstraction layer, a first dynamic state for the first physical resource type, wherein a number of first type physical resource units being mapped to the single virtual resource is varied when the finite state machine operates in the first dynamic state;
creating, by the abstraction layer, a second dynamic state for the second physical resource type, wherein a number of second type physical resource units being mapped to the single virtual resource is varied when the finite state machine operates in the second dynamic state; and
creating, by the abstraction layer, a relationship between the first dynamic state and the second dynamic state in accordance with a workload parameter of the task associated with the single virtual resource.
12. The method of
14. The non-transitory computer program product of
map the single virtual resource to physical resources in accordance with a hybrid graph, the hybrid graph modeling relationships between workloads assigned to the task, the single virtual resource, and the multiple physical resources.
15. The non-transitory computer program product of
17. The non-transitory computer program product of
18. The non-transitory computer program product of
19. The non-transitory computer program product of
map the single virtual resource to a number of physical processing resource units and a number of physical memory resource units in accordance with an initial value of the workload associated with the task.
20. The non-transitory computer program product of
dynamically update a number of physical processing resource units mapped to the single virtual resource or a number of physical memory resource units mapped to the single virtual resource in accordance with the variation in the workload associated with the task.
|
The present invention relates generally to managing the allocation of resources in a network, and in particular embodiments, to techniques and mechanisms for mapping task-oriented virtual resources to physical resources.
In modern network environments, physical resources can be shared amongst multiple users. For example, a local network (LAN) established in a community work environment may allow physical resources (e.g., storage, processing, printing, etc.) of one or more network devices (e.g., servers, printers, routers, etc.) to be shared amongst multiple local users. Advancements in telecommunication technology have permitted resource sharing to be extended to remotely located users, which has birthed various new service industries, e.g., cloud computing, etc.
Various resource allocation, assignment and management concepts have been employed to improve resource utilization in shared network environments. One such concept is resource virtualization, which maps many virtual resources to comparatively fewer physical resources to exploit oversubscription and increase resource utilization. In traditional virtualization environments, oversubscription is achieved by mapping multiple virtual resource units to a single physical resource unit to increase the pool of allocable resources. For instance, eight virtual processing resource units may be mapped to each physical processing resource unit to increase the amount of allocable processing resources by a factor of eight. This practice of oversubscription relies on the theory that statistically few users will attempt to fully utilize their allocated resources simultaneously. While resource virtualization and other allocation concepts have improved the effectiveness in which physical resources are shared amongst users, new and innovative strategies for achieving more equitable and efficient resource sharing are desired.
Technical advantages are generally achieved, by embodiments of this disclosure which describe mechanisms for resource identification.
In accordance with an embodiment, a method for sharing network resources is provided. In this example, the method includes creating a virtual resource corresponding to a task to be performed by the network on behalf of a customer, and mapping the virtual resource to multiple physical resources in a resource pool of the network. An apparatus for performing this method is also provided.
In accordance with another embodiment, a computer program product is provided. In this example, the computer program product includes a computer readable storage medium that storing programming. The programming includes instructions to create a virtual resource corresponding to a task to be performed by a network on behalf of a customer, and to map the virtual resource to multiple physical resources in a resource pool of the network.
For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following descriptions taken in conjunction with the accompanying drawings, in which:
Corresponding numerals and symbols in the different figures generally refer to corresponding parts unless otherwise indicated. The figures are drawn to clearly illustrate the relevant aspects of the embodiments and are not necessarily drawn to scale.
The making and using of embodiments of this disclosure are discussed in detail below. It should be appreciated, however, that the concepts disclosed herein can be embodied in a wide variety of specific contexts, and that the specific embodiments discussed herein are merely illustrative and do not serve to limit the scope of the claims. Further, it should be understood that various changes, substitutions and alterations can be made herein without departing from the spirit and scope of this disclosure as defined by the appended claims.
Conventional virtualization techniques create virtual resource types that mirror physical resource types. For example, a conventional virtualized network having physical processing, physical memory, and physical storage resources may also include corresponding virtual processing, virtual memory, and virtual storage resources. As such, users consume virtual resources in the same way they would physical resources. By way of example, users in virtualized networks may purchase a terabyte of virtual storage in much the same way as retail customers would purchase a terabyte of physical storage. Moreover, conventional virtualization techniques typically adjust the ratio of virtual resources to physical resources by monitoring performance criteria of network components responsible for providing the physical resources. For example, a network operator may increase the ratio of virtual processing resources to physical processing resources if it is determined that a central processing unit is being underutilized.
This conventional technique of manipulating the ratio of virtual resources to physical resources based on the performance criteria of network components may inefficiently and/or inequitably allocate shared resources because the manipulation is designed to optimize network component utilization, rather than to meet task-oriented performance metrics. More specifically, end users may not care how many resources are allocated (or available) to them so long as the available resources are sufficient to perform their task(s) in a manner that meets the users' performance metrics, e.g., quality and/or timeliness constraint. For example, consider a customer that purchases X number of virtual resources for the purpose of processing electronic sales transactions for the customer's electronic business (e-business), e.g., online store, etc. From the customer's perspective, it is likely unimportant that X number of resources are actually available upon demand. Instead, the customer's primary concern may be that the amount of available resources is sufficient to process his sales transactions in a timely manner. Hence, the customer may not notice (or care) that fewer than X number of physical resources are available upon demand so long as the number of available resources are adequate for processing the current month's sales transactions. Thus, manipulating the ratio of virtual resources to physical resources may only indirectly effect the network's ability to perform a specific task or collection of tasks, and therefore may be an inefficient and/or inequitable mechanism for allocating shared-resources in virtualized network environments.
Aspects of this disclosure provide task-oriented virtual resources in order to better align resource allocation mechanisms with the task-oriented performance metrics. More specifically, each task-oriented virtual resource is dynamically mapped to multiple physical resource types based on a workload associated with the underlying task. For example, a task-oriented virtual resource named “sales transaction processing” may be created for the e-business customer to perform the task of processing electronic sales transactions. The “sales transaction processing” virtual resource may be directly mapped to multiple physical resource types based on a workload associated with the task of processing electronic sales transactions. Additionally, the number of physical resource units that are mapped to a task-oriented virtual resource may be varied in accordance with one or more workload conditions. For instance, additional physical processing resources units may be mapped to the “sales transaction processing” virtual resource if the number of electronic sales transactions is increased. In some embodiments, the number of physical resource units mapped to a task-oriented virtual resource may be managed using a finite state machine, which may include nodes representing static or dynamic states for each physical resource type. The nodes may be connected via relationships, which may be governed by workload conditions. In some embodiments, relationships between nodes may be modeled using hybrid graphs. These and other aspects of this disclosure are described in greater detail below.
Some resource sharing networks may implement virtualization techniques in order to exploit oversubscription.
Notably, the conventional virtualization environment 200 maps virtual resource types (e.g., CPU, memory, storage, etc.) directly to corresponding physical resource types. Moreover, the conventional virtualization environment 200 varies the ratio of virtual to physical resources based on the performance of the underlying network components/devices responsible for providing the physical resources 220, 230, 240. For example, the conventional virtualization environment 200 may vary the number of virtual CPU resources 221, 222, . . . 228 mapped to the physical CPU resource 220 based on performance parameters of a processor (e.g., central processing unit (CPU), etc.) responsible for providing the physical CPU resource 220. In this example, if it is determined that the physical CPU resource 220 is under-utilized, the conventional virtualization environment 200 may map additional virtual CPU resources 221, 222, . . . 228 to the physical CPU resource 220. Alternately, it is determined that the physical CPU resource 220 is over-utilized, the conventional virtualization environment 200 may reduce the number of virtual CPU resources 221, 222, . . . 228 mapped to the physical CPU resource. As mentioned above, varying the oversubscription rate alone may be an inequitable and/or inefficient mechanism for managing the allocation of shared resources, as increasing/decreasing the oversubscription rate may not directly affect the network's ability to perform a task in a manner that meets the customer's performance requirements (e.g., timeliness constraints, etc.).
Aspects of this disclosure provide embodiment virtualization environments in which task-oriented virtual resources are mapped to multiple physical resources using an abstraction layer.
An abstraction layer may be used to map task-oriented virtual resources in a virtual resource pool to physical resources in a physical resource pool.
In some embodiments, mappings between physical and task-oriented virtual resources may be managed using a finite state machine. In some embodiments, the number of physical resource units mapped to the task-oriented virtual resource may be managed independently for each physical resource type.
In some embodiments, the number of physical resource units mapped to a task-oriented virtual resource may be inter-dependent.
In some embodiments, multiple task-oriented virtual resources can be mapped to the same physical resource.
In some embodiments, hybrid graphs may be used to model the relationships between nodes in the finite state machine. For example, hybrid graphs can be used to create, represent, and manage how workloads conditions define and/or affect relationships. Thus, hybrid graphs can be used as a tool for managing the mappings between task-oriented virtual resources and physical resources in a manner that permits dynamic resource allocation to efficiently and equitably satisfy changing workloads. Hybrid graphs may include nested, digraph, and undirected graph combinations to represent the relationships and the abstractions between workloads, task-oriented virtual resources, and physical resource components. Hybrid graphs may allow for relationships between each the task-oriented virtual resources and the corresponding physical resources to be separated from one another, thereby granting a separate life cycle to each resource type. By employing separate life cycles, task-oriented virtual resources can be managed independently from physical resources in both a temporal and spatial sense.
In some embodiments, hybrid graphs may be modeled in accordance with the following equation: G=N/E, where G represents the Graph and its context, N represents the composite workload and/or workload components, and E represents the relationships (e.g., constraints, logic between translation and application, and the allocation requirements to satisfy the necessary final relationships between the virtual and physical resources).
Hybrid graphs can include nodes and edges with representations applied to each depending on the location in the overall graph composite (level of the graph in view). Hybrid graphs may be nested within one another to allow higher granularity amongst the capabilities allocated to the relationships and without loss of granularity as abstraction is applied. Nodes in hybrid graphs may represent the workloads, virtual resources, physical resources and pools. The edges represent the functional relationships and/or logic between nodes, thereby establishing temporal and spatial relationships. The use of nested hybrid graphs for resource definition, resource allocation, and workload definitions allows for abstraction between the lower layer nested graphs and the upper layer parent graphs representing. The lower layer graphs may represent relationships between virtual resource pools and physical resource pools. The upper layer parent graphs may represent point in time services that are being provided to task-oriented virtual resources, as well as a mapping between workloads and task-oriented virtual resources. In some embodiments, a task-oriented virtual resource may be managed with a different lifecycle, a different semantic, and/or a different syntax than the corresponding physical resource counterparts.
Hybrid graphs may include ‘edges’ that link task-oriented virtual resources to physical resources. These edges may only need to be completed at the times of resource consumption and/or strict reservation. For example, consider a LAMP stack, which is a combined application having a ‘Linux’ operating system, an ‘Apache’ web service tier, a ‘mySQL’ database, and a ‘PHP’ application/scripting. The LAMP stack can be removed from a physical implementation and be virtualized for use in the ‘Cloud’. Each of these components can exist on or in independent geographic regions, systems, or data centers, and under disparate management domains without loss of ‘local’ presence.
In a hierarchical sense, the utilization of some embodiment hybrid graphs may enable and/or provide the following scenario. A highest level of the hybrid graph representing the characterization of the cumulative workload, where the cumulative workload is a composite of multiple applications. The multiple applications may be geographically diverse with varying resource requirements. Nodes or vertices of the hybrid graphs may represent a component of the workload that is being virtualized. For example, the nodes may represent details specific to a LAMP stack. At the highest level, the graph may represent a cumulative workload consisting of four primary components. The ‘Edges’ of the graph may represent specific logic and relationship constraints between the nodes, e.g., preferred paths, time of day constraints, socket connections, database sizing and location, etc. The next level of graph represents the relationships between the individual nodes in the higher graph and their corresponding virtual resource services and requirements. In some embodiments, the edges of these graphs may present service level agreement (SLA) constraints, the virtual resource specific semantics and syntax for management, the preferential relationships between the Workload Nodes and the virtual resource Nodes. This structure allows the entire Workload to be managed with its virtual resource context and all associated SLA information independent of the base physical resources.
The next level hybrid graphs present the runtime or reservation time relationships between the virtual resources and their physical resource counterparts. Since there may not be an inextricable binding between resource types, the allocation units, performance metrics, and other management metrics, the syntax and semantic can be different with the edges of the graph providing the necessary logic for mapping. The use of this structured hybrid/nested graph composite breaks the constraints that force virtual and physical resources to be of the same type or definition. The mapping relationships using the edges and associated logic allows multiple physical resources from disparate geographic areas (storage across the globe say) to be represented as a local physical single unit to the virtual resource and/or SLA measurement mechanisms.
Hybrid graphs may have various levels or tiers.
In some embodiments, nodes of a hybrid graph can represent physical resources.
In some embodiments, nodes of a hybrid graph may represent users, physical resources, devices responsible for providing physical resources, applications, or combinations thereof.
In some embodiments, nodes in a hybrid graph may have a hierarchical relationship.
Although the description has been described in detail, it should be understood that various changes, substitutions and alterations can be made without departing from the spirit and scope of this disclosure as defined by the appended claims. Moreover, the scope of the disclosure is not intended to be limited to the particular embodiments described herein, as one of ordinary skill in the art will readily appreciate from this disclosure that processes, machines, manufacture, compositions of matter, means, methods, or steps, presently existing or later to be developed, may perform substantially the same function or achieve substantially the same result as the corresponding embodiments described herein. Accordingly, the appended claims are intended to include within their scope such processes, machines, manufacture, compositions of matter, means, methods, or steps.
Patent | Priority | Assignee | Title |
10218776, | Oct 14 2014 | Nokia of America Corporation | Distribution of cloud services in a cloud environment |
10241842, | Sep 29 2016 | Intel Corporation | Cloud container resource binding and tasking using keys |
Patent | Priority | Assignee | Title |
8972983, | Apr 26 2012 | International Business Machines Corporation | Efficient execution of jobs in a shared pool of resources |
20110119748, | |||
20120060168, | |||
20130332927, | |||
CN101241476, | |||
WO2012113336, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Oct 10 2013 | WHEELER, JEFF | FUTUREWEI TECHNOLOGIES, INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 032847 | /0169 | |
Feb 05 2014 | Futurewei Technologies, Inc. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Sep 28 2020 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Sep 05 2020 | 4 years fee payment window open |
Mar 05 2021 | 6 months grace period start (w surcharge) |
Sep 05 2021 | patent expiry (for year 4) |
Sep 05 2023 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 05 2024 | 8 years fee payment window open |
Mar 05 2025 | 6 months grace period start (w surcharge) |
Sep 05 2025 | patent expiry (for year 8) |
Sep 05 2027 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 05 2028 | 12 years fee payment window open |
Mar 05 2029 | 6 months grace period start (w surcharge) |
Sep 05 2029 | patent expiry (for year 12) |
Sep 05 2031 | 2 years to revive unintentionally abandoned end. (for year 12) |