• No se han encontrado resultados

Finalidad del recurso efectivo

In document Jaime Mauricio Narváez Martínez (página 49-53)

1.2. El recurso efectivo en la jurisprudencia de la Corte Interamericana de Derechos

1.2.3. Finalidad del recurso efectivo

in different combinations, and each combination is a pattern. The finding of this chap- ter will be used in the following chapters for analyzing and building VM performance models. Next, the objectives of the works are described with an introduction to the vir- tualization technology. Afterward, the experimental setting and results are discussed, followed by the chapter conclusion.

3.2

Motivation and background

The objective of this work is to identify the effect of resource contention among co- located VMs. The virtualization of data-center provides some unique benefits like consolidation and live migration [125–127]. Analysis of VM resource contention will help to increase resource utilization through VM consolidation and migrations. The re- source consumption pattern of VMs changes depending on the consolidation environ- ment. Here, a virtualized server is used to investigate the VMs resource consumption pattern changes due to the change of co-located VMs number.

Initially, some benchmarks are run individually on one VM of a server and resource usages traces are collected. Then, a set of two VMs is placed on the server, and the resource usage pattern for two simultaneously running VMs are recorded. This process is repeated for sets of four, eight and fourteen co-located VMs. The objective is to observe the changes in resource usages pattern due to the change of the quantity of simultaneously running VMs.

These experimental stages are set up initially to observe how VMs react to con- solidation. This chapter describes what benchmarks are used in the experiments and types of data are collected. The experiments are primarily done to collect resource usages data and identify how the resource usages pattern varies. In later chapters, it is described how the resource usages pattern can be analyzed and used for predicting VM consolidation performances.

Linux scripts are used here to run nine different benchmarks on different sets of consolidated VMs; each set is having a different number of simultaneously running VMs. While the benchmarks were running, tools like Top and Iostat [201] are used to collect CPU, memory, and disk I/O utilization from all VMs and host. The tools collect a wide variety of system data; however, the collected data is raw and do not have any uniform value range. Thus, the data requires further processing. At first, the collected

3.2. MOTIVATION AND BACKGROUND 49

data is organized and refined, then, it is formatted and scaled for visualization. Once the refining and formatting process is done separate data files are produced for each set of co-located VMs. Also, sperate sets of files are also generated for the host machine data.

Next section gives an overview of the virtualization process used in the Cloud and data centers.

3.2.1

Application of virtualization in cloud

The virtualization is an absolute necessity for modern data centers especially after the advent of Cloud computing. There exist many different types of virtualization tech- nique today, however, for data centers the most popular virtualization technology is the type-1 virtualization. In type-1 virtualization, the virtualization layer is placed above the physical hardware and controls the hardware directly, unlike a non-virtualized sys- tem where the operating system controls the hardware. One of the primary purposes of the virtualization layer is to provide an alternate view of the physical resources to the VMs above it. Such abstraction is necessary for providing Cloud services.

The commercial Cloud lets the users deploy their application over the internet with- out much administrative supervision. Such deployments of the software raise serious security concerns. To run applications on the Cloud, most users require administrative privileges and a typical data center may have thousands of such users logged on at any given time. That is why, it is not realistic for the administrators of data centers to keep track of all administrative operations of the users, this is where virtualization is so useful.

The data centers rent out VMs, which has no access to the physical resources. Nonetheless, the VMs appear as fully functional self-contained autonomous units of execution to the Cloud user. A user can have administrative privilege on the rented VM allowing them to install and run any application. On the other hand, virtualization helps to protect the physical machines from the security risks. Thus, VMs allow users to install and run any application freely and at the same time it reliefs data center ad- ministrators from having to monitor every activity in those VMs. VMs can be created within a minute with couples of commands and once rented out then it is up to the user to decide how the VM is going to be operated.

3.2. MOTIVATION AND BACKGROUND 50

Once the user has finished running the applications the user can release the VM im- mediately. After the release, the VM can be either recycled or destroyed automatically by the Cloud management system without any human involvement. Thus, creating and destroying VMs on demand without the need for any human interaction saves many person-hours for the data center administrators.

The benefits of virtualization are not only limited to the public Cloud; it is also use- ful for private Cloud as well. A simple scenario would be like this where several teams are simultaneously developing different parts of a large-scale data analysis software for multi-core clusters. In this case, it is not possible for one team to have the whole machine for itself since such hardware is expensive and an organization may only have one such cluster. Such software may take some time to compile and in an Agile [202] software development environment all the teams need to compile their parts of soft- ware regularly. Obliviously with only one piece of hardware, it is not possible for multiple teams to compile simultaneously.

One solution is to virtualize the cluster and provide each team with own global space. Once all the teams have done compiling their parts of the software, then com- plete software can be compiled together to ensure the integrity of the software. In this way, all teams can independently compile their parts of software before compiling altogether with other teams. Thus, making sure that their parts compile correctly. It could save much time that would be otherwise wasted debugging the software.

A wide variety of operating systems is available today. Over the years many deriva- tives of Unix have been introduced like the Oracle Solaris, Berkeley Software Distri-

bution(BSD) [203] and IBM AIX [204]. In the case of Cloud, different users may have different operating system requirement and it is not always possible for a data center to maintain every type of OS for users. The VM can help in this situation too as it lets the users use the OS of their choice.

Another area where virtualization can be very useful in data centers is the fault tolerance. Servers in a data center may start to show signs of fatigue for various rea- sons, including extended hours of operation. The increase of temperature in a part of the data center also enhances the probability of machine failure in that area of the data center [123, 205]. It is indeed not possible to move around physical servers in a data center. In such cases, the one solution is to shut down the physical servers on the particular part of the data center to avoid a possible catastrophic failure; however, this would lead to online service interruptions. The hypervisor can also allow VMs to be

3.2. MOTIVATION AND BACKGROUND 51

migrated while they are being executed, through a process known as the live migra- tion. The live migration makes it possible to move the VMs of a physical server to other physical servers, which are located in a low-risk part of the data center.

The live migration also is necessary for other features like consolidation and energy efficiency. The virtualization allows public Clouds to have elaborated fault tolerance mechanism through live migration and replication of VMs; those are what makes pub- lic the Cloud enable to offer a high degree of availability of services to the users. Thus, virtualization is a useful technology.

The history of virtualization technology is almost as old as the modern comput- ers. Some may be fascinated to know that the virtualization technology was first de- veloped during the late sixties; thus, predating the microprocessor technology itself. Virtualization was originally introduced by IBM for their mainframe computers with the motivations similar to as it is today [13–22]. Mainframes were hugely expensive pieces of machinery; therefore, investors wanted the best possible utilization out of them. As a result, the virtualization introduced to the mainframes so that the batch tasks can be consolidated. Over the years the demand for mainframe fall as the market for x86 machines grew. Initially, the x86 platform was not designed for virtualiza- tion. Nonetheless, during the late nineties, the x86 servers became much powerful and widely used that virtualizing them became a realistic option. Despite similarities of goal, the modern virtualization architecture is significantly different from that of the mainframe. Today data centers are dominated by type-1, para-virtualization technol- ogy, which is relatively low overhead.

The motivations for using VMs in a data center are summarized below.

• Virtualization can increase resource sharing and utilization through VM consol- idation.

• Allows alien applications to run without the supervision from data center admin- istrators.

• Allows implementing sophisticated fault tolerance mechanism for data centers through the live migration and replication of VMs.

• Virtualization reduces the system maintenance and administration cost for the data center owners.

3.2. MOTIVATION AND BACKGROUND 52

From the above discussion, it is clear that virtualization is very relevant to the data centers of today. The potentials of virtualization are not still fully utilized in the area of high-performance computing. The next section discusses the main drawbacks of using virtualization in the field of high-performance computing.

3.2.2

Scheduling of parallel application and virtualization

To run a parallel application on VMs; the parallel application is first broken down into a set of smaller tasks. These tasks can be executed parallel; however, the dependencies among those tasks have to be taken into account. The task dependencies mean that the output of one task can be the input of one or more other tasks. A Task Graph is a directed acyclic graph, which presents the tasks as vertices and dependencies among them as edges. The task graphs have prime importance is modeling and analysis of parallel applications and architectures [206–209]. The task graph is also known as the

Activity Networkand based on the concept of individual task [210].

The concept of a task has not been formally defined; however, it refers to a set of instructions that can be thought of a unit of work and performed sequentially on a single processor using a fixed amount of resources [206]. In virtualized systems, a fixed amount of physical resources like CPU, memory and I/O can also be assigned to tasks like in a non-virtualized system. However, it is known that the performance of VMs does not always correspond to the assigned amount of resources [31, 40–42]. Therefore, to efficiently execute tasks on a virtualized system it is necessary to have a performance prediction model for VMs [32].

In the theory of activity network, the parallel applications or programs are consid- ered as complex activities, which consists of several individual tasks, and a precedence relationship interconnects them. The precedence relationship is also known as con- straints specify that specific tasks have to wait for some other task to finish, former is known as the child task while later is known as the parent task.

The relationship among all the tasks of complex activities can be presented in a directed graph called, the task graph. During scheduling process each task is mapped to an individual processor; hence, the tasks graphs are essential for any scheduling algorithm [209, 211–214]. Before a child task can be scheduled for the execution; the execution finish times of the parent tasks must be known. As mentioned earlier that in virtualized systems applications often suffer from an unexpected variance of

In document Jaime Mauricio Narváez Martínez (página 49-53)