NIVELACIÓN Consulta sobre los
3. CAPITULO ESTADO DEL ARTE
We present our framework of adaptive distributed resource allocation mechanis- m using container-based VMs. In our framework, we introduce a new scheduler and two kinds of containers, pallet container and execution container, which decouple the resource management and task execution for each application. Unlike Hypervisor based VM place- ment, the number of execution containers and their demands on physical resources are dynamically determined based on not only the applications’ workload but also resource usage status in the data center.
Figure 21: Overview of adaptive resource allocation framework
Figure 21 illustrates the overview for adaptive distributed resource allocation frame- work using container based virtualization. As shown in Figure 21, when deploying an ap- plication or service in the DC, resources are allocated to the application or service as con- tainers distributed on multiple physical machines. Especially, each application or service has a pallet container and one or multiple execution containers. A pallet container has four main functions including making resource allocation decisions, requesting resources for execution containers, tracking task status on execution containers, and managing the life cycle of execution containers. Execution containers complete all the tasks of the application.
needed to serve current workload without violating SLA. Based on the estimated amount of resources, it gradually queries and requests available resources from a small scale to large scales. Then it starts execution containers and dispatchs tasks to each container. Based on diversity requirements of different applications, the aim of allocating resources and building execution containers could be load balancing, or reducing latency. Driv- ing by these aims, pallet containers determine the number of execution containers, the demands of each execution container on physical resource, and the amount of tasks dis- patched to them. We discuss the detail of these algorithms in Section 5.2,.
Execution containers work mainly on completing the assigned tasks. It also report- s to pallet container about the status of task execution comparing with expected status. If it is behind schedule, pallet container could try to allocate more resources for this contain- er, or balance its workload among active execution containers or migrate this container to another physical machine with enough resources.
Both pallet container and execution containers are located on physical machines. Figure 22 depicts the architecture in a physical machine. As shown in this figure, on a bare physical machine, a host operation system is installed and configured. Upon the host OS, a container engine is running for resource isolation and security of the containers running simultaneously on the host OS. The container engine maintains the operating environment for containers, assists the execution of commands to build, run containers and preserves the isolation between containers. In the container engine, a scheduler is used to manage pallet containers life cycle. When receives a service request, the scheduler creates a pallet container and assigns resources to the pallet container based on the service’s requirements
Figure 22: Components in a physical machine
and the resource usage status. It may forward the application activate request to other schedulers, if the application’s demands on resources cannot be satisfied with resources on this physical machine.
Some common supporting libraries and bins are installed in advance and shared by the containers that need these functions. In addition, the libraries and bins can be built in layers to save the time and memory space of embedding containers using those libraries and bins.
Figure 23 illustrates a main work flow of deploying an application in a data center. When the request of deploying a new application or active an inactive application (step (1) and (2)), the container scheduler of this service initiates a pallet container for the appli- cation and assigns some resources for the pallet container (step (3)). The pallet container analyzes requirements of the application, makes resource allocation decisions. The pallet
Figure 23: Work flow of adaptive resource allocation for activating an application
container requests resources on local or other physical machines for containers based on the decision (step (4)). If the request has been approved by the scheduler, resources are provisioned and execution containers are created (step (5) and (6)). Tasks are assigned to the execution containers according to the resource allocation decisions. Later, execu- tion containers work on the tasks and update execution status to the pallet container (step (7)). Based on real time workload of the application, the pallet container may dynamical- ly adjust the number, location and assigned resources of execution containers. When the application is deactivated, pallet container is terminated and its used resources would be collected by the scheduler.
Using this framework, the allocated resources for each application could be shrank or expend based on the application’s requirements, real time workload and the status of available resources in the data center. The resource allocation decision is made by each pallet container in a distributed manner to be scalable. Besides the demands on scalable, the resource usage efficiency over the entire data center is desired to be improved too. To achieve the goal, we model resource allocation strategy on pallet containers as an optimization problem and present a solution to the problem in Section 5.2.
5.2 System Model and Algorithm