Virtualização de hardware

Documentos relacionados
MÁQUINAS VIRTUAIS EM SISTEMAS DISTRIBUÍDOS. Luiz C. Vieira

Servidores. Um Servidor, em redes de computadores, nada mais é que um host da rede capaz de oferecer um determinado serviço a outros hosts da redes.

Virtualização. Eduardo Ferreira dos Santos. Novembro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 43

Sistema Operacionais II. Aula: Virtualização

Virtualização. Pedro Cruz. EEL770 Sistemas Operacionais

Estruturas de Sistemas Operacionais

Sistemas Operacionais Aula 3

Tópicos Especiais em Redes de Telecomunicações

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 07

Nuvem e Virtualização Redes Programáveis

Introdução aos Sistemas Operacionais. Virtualização

Sistemas Operacionais

Sistemas Operacionais II

Conceitos básicos e serviços dos Sistemas Operacionais

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Informática. Estruturas de Servidores Físicos e Virtualizados. Professor Márcio Hunecke.

Redes de Computadores. Fundamentos de Sistemas Operacionais - 2º Período

Virtualização: VMWare e Xen

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

INTRODUÇÃO A SISTEMAS OPERACIONAIS

Computação Distribuída

Sistemas Operacionais

Sistemas Operacionais

Computadores e Programação (DCC/UFRJ)

Perguntas e respostas

AULA 08: Sistemas Operacionais FUNPRESP JUDICIÁRIO

Sistemas Operacionais. Introdução

Fundamentos de Sistemas Operacionais de Arquitetura Aberta. CST em Redes de Computadores

Processos ca 3 pítulo

Trabalho de Conclusão de Curso

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES II AULA 04: PROCESSAMENTO PARALELO: MULTICOMPUTADOR

Barramento. Prof. Leonardo Barreto Campos 1

Introdução a Computação em Nuvem

Matéria: Sistema Computacional - SC. Prof.: Esp.: Patrícia Dias da Silva Peixoto

Marcelo Araujo, Agosto de 2015 Automation & Power World Brasil System 800xA Virtualização Proteção e Segurança para seu Investimento

Sistemas Distribuídos

MÁQUINAS VIRTUAIS VIRTUALIZAÇÃO AULA 04 Sistemas Operacionais Gil Eduardo de Andrade

Sistemas Operacionais. Visão Geral

Projeto Integrador II

Sistemas Operacionais

Virtualização do System302 em ambiente VMWARE

Sis i te t mas a O perac a i c o i nai a s um p ouco c d a a h is i tó t ria i. a... SO His i t s ó t r ó ic i o

Um Estudo sobre o Desempenho de Virtualização nos Hypervisors VMware e KVM

Quando Distribuir é bom

Sistema Operacional. Prof. Leonardo Barreto Campos. 1/30

Introdução a Computação em Nuvem

Capítulo 13: Sistemas de E/S. Operating System Concepts 8 th Edition

Algoritmos e Lógica de Programação Sistemas Operacionais

Sistema Operacional. Etapa

Computação em nuvem (Cloud Computing)

Sistemas Operacionais. Estrutura do Sistema Operacional

Sistemas Operacionais. Conceitos de Hardware e Arquitetura de computadores

Sistemas Operacionais Estrutura do Sistema Operacional. Arquiteturas do Kernel

Curso: Redes de Computadores

16/8/2010. A arquitetura de um sistema computacional representa o modelo da organização e funcionamento de um sistema de processamento

Arquitetura de Sistemas Operacionais

Introdução à Computação

Introdução aos Sistemas Distribuídos

AULA 01: APRESENTAÇÃO

Engenharia de Software

QFlow: Um Sistema com Garantia de Isolamento e Oferta de Qualidade de Serviço para Redes Virtualizadas

Estrutura do Sistema Operacional

Estrutura do SO. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Sistemas operacionais INTRODUÇÃO

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Sistemas Distribuídos. Ricardo Ribeiro dos Santos

Hardware para Virtualização Construindo uma solução física para uma infraestrutura virtualizada

Conceitos de Sistemas Distribuídos

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistemas Operacionais

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Aula 2. Prof: Carlos Eduardo de Carvalho Dantas

ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I AULA 02: INTRODUÇÃO

Aula 2: Tipos de Sistemas Operacionais. Instituto Federal da Bahia Campus Salvador INF009 - Sistemas Operacionais Profª Flávia Maristela

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Introdução à Ciência da Computação

Componente de aplicação. Figura 1 - Elementos funcionais de uma aplicação sendo executados de forma distribuída

Introdução a Sistemas Operacionais. Adão de Melo Neto

Aula 00 (Prof. Celson Junior)

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

ARQUITETURA DE SISTEMAS OPERACIONAIS. VISÃO GERAL DE UM SISTEMA OPERACIONAL Prof. André Luís Alves E. M. DR. LEANDRO FRANCESCHINI

Sistemas Operacionais Distribuídos

DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO BACHARELADO EM INFORMÁTICA SISTEMAS OPERACIONAIS I 1 0 SEM/05 Teste 1 Unidade I DURAÇÃO: 50 MINUTOS

SSC510 Arquitetura de Computadores 1ª AULA

SISTEMAS OPERACIONAIS

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ESTRUTURA DE UM SISTEMA OPERACIONAL PROFESSOR CARLOS MUNIZ

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Informática I. Aula Aula 18-19/06/06 1

Sistemas Operacionais. Maria de Fátima de Freitas Bueno Marcílio

Sistemas Operacionais. Aula 1

ARQUITETURA DE SISTEMAS DISTRIBUÍDOS

Aula 5 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MULTI PLAYER. Marcelo Henrique dos Santos

Quando Distribuir é bom

Sistemas Distribuídos

Um guia passo a passo para colocar aplicativos COBOL na nuvem. Implante em ambientes virtuais e na nuvem com o Visual COBOL

SSC0611 Arquitetura de Computadores

Segurança da Informação

Organização de Sistemas Computacionais Processadores: Organização da CPU

Transcrição:

Virtualização de hardware João Vitor dos Santos Martins Maciel da Silva Rocha Wander Luiz de Oliveira Rocha Resumo A virtualização é uma tecnologia que combina ou divide os recursos computacionais. Atualmente, o conceito de virtualização tem sido lembrado como uma possível solução de baixo custo para oferecer isolamento, confiabilidade e escalabilidade a alguns sistemas. Este artigo apresenta os fundamentos conceituais sobre máquinas virtuais, discute as vantagens e desvantagens no uso de máquinas virtuais. Abstract Virtualization is a technology that combines or divides computing resources. Actually, the concept of virtualization has been remembered as a possible low-cost solution to provide isolation, reliability and scalability to some systems. This article presents the conceptual fundamentals about virtual machines, discusses the advantages and disadvantages of using virtual machines. 1. Introdução O conceito de máquina virtual existia desde 1960, quando foi desenvolvido pela IBM para fornecer acesso simultâneo e interativo a um computador mainframe. Cada máquina virtual (VM) costumava ser uma instância da máquina física que deu aos usuários uma ilusão de acessar a máquina física diretamente. Foi uma forma elegante e transparente de permitir o compartilhamento de tempo e o compartilhamento de recursos no hardware altamente econômico. Cada VM era uma cópia totalmente protegida e isolada do sistema subjacente. Os usuários podem executar, desenvolver e testar aplicativos sem nunca ter medo de causar uma falha aos sistemas usados por outros usuários no mesmo computador. A virtualização foi assim utilizada para reduzir o custo de aquisição de hardware e melhorar a produtividade, permitindo que mais número de usuários trabalhasse simultaneamente. À medida que o hardware se tornava mais barato e os sistemas operacionais de multiprocessamento emergiam, as VMs estavam quase extintas nos anos 1970 e 1980. Com o surgimento de grandes variedades de hardware baseado em PC e sistemas operacionais em 1990, as idéias de virtualização estavam em demanda novamente. O principal uso para as VMs era permitir a execução de uma série de aplicativos, originalmente direcionados para hardware e sistemas operacionais diferentes, em uma determinada máquina. A "virtualidade" difere da "realidade" apenas no mundo formal, enquanto possui uma essência ou efeito semelhante. No mundo do computador, um ambiente virtual é percebido o mesmo que o de um ambiente real por programas de aplicação e o resto do mundo, embora os mecanismos subjacentes sejam formalmente diferentes. Na maioria das vezes, o ambiente virtual (ou máquina virtual)

apresenta uma imagem enganosa de uma máquina (ou recurso) que tem mais (ou menos) capacidade em comparação com a máquina física (ou recurso) abaixo por várias razões. Um sistema de computador típico já usa muitas dessas tecnologias. Um exemplo é a implementação de memória virtual em qualquer sistema operacional moderno que permite que um processo use a memória normalmente muito mais do que a quantidade de memória física que seu computador tem para oferecer. Essa (memória virtual) também permite que a mesma memória física seja compartilhada entre vários processos. Da mesma forma, a multitarefa pode ser pensada como outro exemplo onde uma única CPU é particionada em uma maneira de tempo compartilhado para apresentar algum tipo de CPU virtual para cada tarefa. Em uma configuração diferente, um cluster de processadores de média velocidade pode ser agrupado para apresentar um único processador virtualizado que tem uma velocidade de clock muito alta. Existem muitos e muitos exemplos no mundo de hoje que exploram tais métodos. O guarda-chuva de tecnologias que ajudam a construir esses objetos virtualizados pode ser dito para alcançar tarefas que têm um fenômeno comum, a virtualização. (NANDA & CHIUEH, 2005) 2. Terminologia em virtualização Nesse segmento pretende-se descrever de forma detalhada os termos mais relevantes e os mais utilizados para que se possa estabelecer uma base comum para descrição destas matérias. Da empresa NOVEEL (2006), serão utilizados os seguintes conceitos: Máquina Virtual (Virtual Machine VM) é uma cópia totalmente protegida e isolada de um sistema físico. Refere-se ao pedido que é feito à máquina real de um hardware e de um sistema operativo que são virtualizados e uma interface com um ambiente diferente da emulação que reflete todos os estados internos do ambiente ao mesmo tempo. Esta máquina virtual pode executar qualquer tipo de software como um servidor, um cliente ou um desktop; Servidor de Máquina Virtual (Virtual Machine Server- VMServer) refere-se ao hardware físico e ao software de virtualização que, quando conciliados, formam uma máquina denominada por virtual host. É o principal componente da virtualização, uma vez que é o responsável por criar e distribuir os recursos necessários para a criação de várias máquinas virtuais. Para além de host, é também designada dom0, virtual0 ou domínio privilegiado; Tecnologia de Virtualização (Virtualization Technology) refere-se ao hardware que suporta a tecnologia de virtualização, como Intel VT ou AMD Virtualization. Os sistemas Hardware VT trabalham em conjunto com o software de virtualização de modo a permitir uma virtualização completa dos dispositivos de hardware, possibilitando a execução de um sistema operativo sem alterações. Quando se pretende trabalhar em modo full virtualization é necessário utilizar esta tecnologia; Computador Padrão (Standard Computer) refere-se a um hardware que não possui suporte especial da tecnologia de virtualização e não consegue executar sistemas operativos que requeiram o modo full virtualization; Hypervisor também conhecido por Virtual Machine Monitor (VMM) ou Monitor de Máquina Virtual refere-se a um ambiente de máquina virtual que é criado por um monitor de máquinas virtuais, também denominado sistema operativo para sistemas operativos [KELEM, 1991]. Não é mais que uma camada de software que se encontra entre o host e as VMs. Isola o sistema operativo e as aplicações dos seus recursos físicos. O Hypervisor tem o seu próprio kernel, corre diretamente sobre o hardware do host e cria a ilusão de que cada sistema guest tem um hardware exclusivo para ele.

3. Definições e Conceitos Segundo Mattos (2008), os primeiros conceitos que devemos ter em relação à virtualização são de instruções privilegiadas e não privilegiadas. Essas instruções fazem parte do conjunto de instruções da arquitetura em questão, neste trabalho a arquitetura considerada é x86. As instruções não privilegiadas são aquelas que não modificam a alocação ou o estado de recursos compartilhados por vários processos simultâneos, tais como processadores, memória principal e registradores especiais. Em oposição a essas instruções, temos as instruções privilegiadas, que podem alterar o estado e a alocação desses recursos. Um computador pode operar em dois modos distintos, o modo de usuário ou o de supervisor. O modo de usuário, também chamado de espaço de aplicação, é modo no qual as aplicações normalmente são executadas. Neste modo, não é possível executar as instruções privilegiadas, que são restritas ao modo de supervisor. O modo de supervisor tem o controle total sobre a CPU, podendo executar todas as instruções do conjunto de instruções do processador em questão, tanto as não privilegiadas como as privilegiadas. O sistema operacional é executado neste modo. Antes de o sistema operacional passar o controle da CPU para uma aplicação do usuário, o bit de controle de modo é configurado para o modo de usuário. Vale lembrar que na arquitetura em questão, x86, existem quatro níveis de privilégio, que são chamados de rings. Os rings são numerados de 0 a 3, nos quais o nível 0 é o que tem maior privilégio na execução de instruções, por isso, os sistemas operacionais são executados com esse nível de privilégio. Já em um ambiente virtualizado, temos que definir mais dois conceitos, os de sistema operacional hospedeiro e o de sistema operacional visitante. O primeiro, sistema operacional hospedeiro (Host Operating System), refere-se ao sistema operacional nativo da máquina na qual ocorrerá a virtualização, ou seja, este é o sistema operacional que é executado diretamente sobre o hardware físico. O segundo, sistema operacional visitante (Guest Operating System), refere-se ao sistema operacional que é executado sobre o hardware virtualizado, isto é, o sistema operacional que é executado na máquina virtual. Uma máquina na qual é feita a virtualização pode contar com apenas um SO hospedeiro sendo executado por vez. No entanto, podem ser executados diversos SOs visitantes simultaneamente. O próximo conceito a ser discutido é de vital importância para o entendimento da virtualização. O conceito em questão é o do Virtual Machine Monitor (VMM), ou seja, Monitor de Máquina Virtual, também conhecido por Hypervisor. O Virtual Machine Monitor é um componente de software que hospeda as máquinas virtuais. O VMM é responsável pela virtualização e controle dos recursos compartilhados pelas máquinas virtuais, tais como, processadores, dispositivos de entrada e saída, memória, armazenagem. Também é função do VMM escalonar qual máquina virtual vai executar a cada momento, semelhante ao escalonador de processos do Sistema Operacional. O VMM é executado no modo de supervisor, no entanto as máquinas virtuais são executadas em modo de usuário. Como as máquinas virtuais são executadas em modo de usuário, quando estas tentam executar uma instrução privilegiada, é gerada uma interrupção e o VMM se encarrega de emular a execução desta instrução.

Figura 1 Relacionamento das Máquinas Virtuais e do VMM 4. Vantagens e Desvantagens Principais vantagens na virtualização: a) Segurança: Usando máquinas virtuais, pode ser definido qual é o melhor ambiente para executar cada serviço, com diferentes requerimentos de segurança, ferramentas diferentes e o sistema operacional mais adequado para cada serviço. Além disso, cada máquina virtual é isolada das demais. Usando uma máquina virtual para cada serviço, a vulnerabilidade de um serviço não prejudica os demais. b) Confiança e disponibilidade: A falha de um software não prejudica os demais serviços. c) Custo: A redução de custos é possível de ser alcançada com a consolidação de pequenos servidores em outros mais poderosos. Essa redução pode variar de 29% a 64%. d) Adaptação às diferentes cargas de trabalho: Variações na carga de trabalho podem ser tratadas facilmente. Ferramentas autônomas podem realocar recursos de uma máquina virtual para a outra. e) Balanceamento de carga: Toda a máquina virtual está encapsulada no VMM. Sendo assim é fácil trocar a máquina virtual de plataforma, a fim de aumentar o seu desempenho. f) Suporte a aplicações legadas: Quando uma empresa decide migrar para um novo Sistema Operacional, é possível manter o sistema operacional antigo sendo executado em uma máquina virtual, o que reduz os custos com a migração. Vale ainda lembrar que a virtualização pode ser útil para aplicações que são executadas em hardware legado, que está sujeito a falhas e tem altos custos de manutenção. Com a virtualização desse hardware, é possível executar essas aplicações em hardwares mais novos, com custo de manutenção mais baixo e maior confiabilidade. Principais desvantagens na virtualização são: a) Segurança: Segundo Neil MacDonald, especialista de segurança da Gartner, hoje em dia, as máquinas virtuais são menos seguras que as máquinas físicas justamente por causa do VMM. Este ponto é interessante, pois se o sistema operacional hospedeiro tiver alguma vulnerabilidade, todas as máquinas virtuais que estão hospedadas nessa máquina física estão vulneráveis, já que o VMM é uma camada de software, portanto, como qualquer software, está sujeito a vulnerabilidades.

b)gerenciamento: Os ambientes virtuais necessitam ser instanciados, monitorados, configurados e salvos. Existem produtos que fornecem essas soluções, mas esse é o campo no qual estão os maiores investimentos na área de virtualização, justamente por se tratar de um dos maiores contratempos na implementação da virtualização. c) Desempenho: Atualmente, não existem métodos consolidados para medir o desempenho de ambientes virtualizados. No entanto, a introdução de uma camada extra de software entre o sistema operacional e o hardware, o VMM ou hypervisor, gera um custo de processamento superior ao que se teria sem a virtualização. Outro ponto importante de ressaltar é que não se sabe exatamente quantas máquinas virtuais podem ser executadas por processador, sem que haja o prejuízo da qualidade de serviço. 5. Conclusão A virtualização é uma técnica que assumiu um papel importante e preponderante na área das Tecnologias de Informação e Comunicação (TIC). Isso vem sendo revelado através do número crescente de empresas que implementam ferramentas de virtualização, e pelo aumento sucessivo de investimentos na área. Essa tecnologia não é recente, mas com o aumento do poder computacional veio dar novo destaque. Com o intuito de aproveitar recursos disponíveis, a ideia da virtualização ganhou uma nova vida na área das TIC. Embora a técnica da virtualização pareça ser a solução para grande parte dos problemas de infraestrutura de TIC, sua aplicação deve ser estudada e devem ser avaliados os transtornos que podem ser gerados. Quando se opta pela implementação de virtualização, o seu impacto provoca uma mudança de paradigmas e de conceitos; desta forma deve ser encarada como um projeto a longo prazo. A sua adoção implicará na mudança de política de compras e instalação de novos sistemas. Quando se pensa na virtualização destaca-se imediatamente as inúmeras vantagens que esta técnica traz. Entretanto, como todo sistema computacional, traz também algumas desvantagens. O facto de se optar pela implementação da virtualização, deve ter sempre como grande objetivo aliviar, melhorar e aproveitar recursos que se tornaram ociosos com base num conjunto de decisões, que deve ter em linha de conta os riscos e benefícios a obter. Portanto, o mais correto é assumir a virtualização como um projeto a longo prazo e que seja implementada em pequenos passos. Para finalizar, esta é uma área que está em crescimento e que novos produtos surgem a todo o momento. Referências Nanda, S. and Chiueh, T. (2005). A survey on virtualization technologies. Technical report, University of New York at Stony Brook. Mattos, DMF. (2008). Virtualização:VMWare e Xen. Smith, JE. and Nair, R. (2005). The architecture of Virtual Machines.