Resource Reservation (Erl, Naserpour)
How can shared IT resources be protected from conflicts that can arise from concurrent access?
ProblemWhen two or more cloud service consumers attempt to instantiate the same shared IT resource, runtime conflicts can occur, including resource constraints due to lack of capacity.
SolutionA system is established whereby a portion of an IT resource (or one or more IT resources) is set aside exclusively for a given cloud service consumer.
ApplicationThe resource management system is used to define IT resource thresholds and to restrict access to reserved IT resources.
MechanismsAudit Monitor, Cloud Storage Device, Cloud Usage Monitor, Hypervisor, Logical Network Perimeter, Remote Administration System, Resource Management System, Resource Replication, Virtual Server
Compound PatternsBurst In, Burst Out to Private Cloud, Burst Out to Public Cloud, Elastic Environment, Infrastructure-as-a-Service (IaaS), Multitenant Environment, Platform-as-a-Service (PaaS), Private Cloud, Public Cloud, Resilient Environment, Software-as-a-Service (SaaS)
When applying the Shared Resources and Resource Pool patterns we can give multiple cloud service consumers access to the same IT resources. Depending on how IT resources are designed for shared usage and depending on their available levels of capacity, concurrent access can lead to a runtime exception condition called resource constraint.
A resource constraint is a condition that occurs when two or more cloud consumers have been allocated to share an IT resource that does not have the capacity to accommodate the entire processing requirements of the cloud consumers. As a result, one or more of the consumers will encounter degraded performance or be rejected altogether. The cloud service itself may go down, resulting in all cloud consumers being rejected.
Other types of runtime conflicts can occur when an IT resource (especially one not specifically designed to accommodate sharing) is concurrently accessed by different cloud service consumers. For example, nested and sibling resource pools introduce the notion of resource borrowing, whereby one pool can temporarily borrow IT resources from other pools. A runtime conflict can be triggered when the borrowed IT resource is not returned due to prolonged usage by the cloud service consumer that is borrowing it. This can inevitably lead back to the occurrence of resource constraints.
An IT resource reservation system is established to protect cloud service consumers ("tenants") sharing the same underlying IT resources from each other. This system essentially guarantees a minimum amount of an IT resource for each cloud consumer by putting it aside and making it exclusively available only to the designated cloud service consumer. Potential conflicts, such as resource constraints and resource borrowing, are avoided because the reserved IT resources are never actually shared.
Creating an IT resource reservation system requires the involvement of the resource management system mechanism that can be used to define IT resource usage thresholds for individual IT resources and resource pools. Reservations are created to lock the amount of IT resources that each pool must keep. The balance of IT resources within a pool can still be shared (and borrowed).
Figure 1 - A resource pool hierarchy to which an IT resource reservation system is applied (Part 1).
- A physical resource group is created.
- A parent resource pool is created from the physical resource group by applying the Resource Pool pattern.
- Two smaller child pools are created from the parent resource pool, and resource limits are defined using the resource management system mechanism.
- Cloud consumers are provided with access to their own exclusive resource pools.
Figure 2 - In the same resource pool hierarchy, more IT resources are being allocated to fulfill the increasing requests from Cloud Consumer A (1). Several IT resources are borrowed from Pool 2, up to a maximum amount that is pre-determined by the resource limit to ensure that Consumer B will not face resource constraints (Part 2).
- There is an increase in requests from Cloud Consumer A, resulting in more IT resources being allocated.
- Consequently, some IT resources are borrowed from Pool 2. The amount of borrowed resources, however, is pre-determined by the resource limit defined in Step 3, which ensures that Cloud Consumer B will not face resource constraints.
Figure 3 - A resource pool hierarchy to which an IT resource reservation system is applied (Part 3).
- Cloud Consumer B now imposes more requests and usage demands and may soon need to utilize all available IT resources in the pool.
- The resource management system forces Pool 1 to release the IT resources and move them back to Pool 2 to become available for Cloud Consumer B.
NIST Reference Architecture Mapping
This pattern relates to the highlighted parts of the NIST reference architecture, as follows: