Virtualização com KVM no Linux – iMasters
1 de 10
Abril.com
Mais sites Abril
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
Grupo Abril
COLETIVOS AGENDA PORTAL
Abril Mídia
IMASTERS MULTIMÍDIA PRO BOX CODE JOBS
Distribuição
Gráfica
Abril Educação
Assine
Loja
Faça Login / Cadastre-se
FÓRUM
Pesquisar...
Linux
Linux
Virtuali Linux Terça-feira, 31/01/2012 às 09h00, por developerWorks Brasil
Virtualização significa a utilização de um sistema operacional real sobre uma máquina virtual. Isto é, qualquer sistema operacional pode ser instalado sobre uma máquina virtual emulando o comportamento de uma máquina real. Assim, o sistema operacional funciona sem conhecimento, na maioria das vezes, de que está sobre uma camada de software, e não diretamente sobre o hardware. A virtualização está em evidência atualmente. Um dos motivos para sua ascensão é a evolução da capacidade de processamento e memória dos servidores, que permite executar máquinas virtuais em praticamente qualquer hardware disponível atualmente. Outro motivo é a necessidade de economia de energia, espaço e custo nos Data Centers, que a virtualização permite através da consolidação em um único hardware de servidores que no passado precisariam de suas próprias máquinas físicas. Embora virtualização seja uma palavra da moda hoje em dia, o conceito já existe há muito tempo. Algumas máquinas IBM foram pioneiras em sua utilização, ainda na década de 70. O conceito de virtualização é simples, embora a implementação contenha aspectos de difícil entendimento, uma vez que um sistema computacional precisa ser completamente emulado. Na arquitetura que apresentamos aqui, esta emulação é feita por um software chamado Qemu, que em conjunto com o KVM (Kernel Virtual Machine), que é um módulo de kernel, provê a pilha de software necessária para a virtualização em Linux. No mundo da virtualização, a máquina que prove a virtualização é chamada de hospedeiro, ou host, enquanto a máquina virtualizada tem o nome de guest. A máquina guest, no caso do Qemu, é sempre vista como um (ou mais) processos na maquina host.
Casos
de
uso
A virtualização de sistemas operacionais tem inúmeras utilidades, entre elas: Flexibilidade: Algumas vezes é necessário utilizar um software que só existe para uma determinada plataforma (por exemplo o Windows 2000, ou XP). Neste caso, pode-se manter uma máquina virtual com o SO específico instalado e ligá-la somente quando houver necessidade; Consolidação: No caso de possuir várias máquinas físicas diferentes, pode-se substituí-las por somente um servidor mais potente com várias máquinas virtuais, economizando o custo com hardware, eletricidade e espaço físico; além de facilitar a
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
2 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
administração; Segurança: Ao invés de concentrar vários serviços (banco de dados, web server, servidor de e-mail) em um só servidor, spode-se criar uma máquina virtual para cada um, garantindo, assim, que caso ocorra uma invasão os outros serviços permanecerão intactos; Testes e desenvolvimento de software: Um desenvolvedor web, por exemplo, pode usar máquinas virtuais para testar um site em vários sistemas operacionais e navegadores diferentes sem precisar reiniciar o computador ou trocar de máquina.
Virtualização
no
L
Atualmente, existem inúmeros softwares que permitem a criação de máquinas virtuais, sendo os mais conhecidos VMWare, VirtualBox, e o Kernel Based Virtual Machine (KVM) no Linux. Neste artigo descreveremos o KVM, um ótimo virtualizador gratuito disponível para inúmeros tipos de uso, inclusive em ambientes corporativos com alta demanda de processamento e disponibilidade. O KVM é um subsistema do Linux que, quando utilizado com o Qemu, permite a criação de máquinas virtuais que executam com baixo overhead, isto é, o sistema operacional na máquina virtual funciona em uma velocidade próxima da real (caso estivesse na máquina física).
Ferramentas
de
ge
O sistema de virtualização do KVM conta com um sistema de gerenciamento chamado de Virt-manager, que provê um ambiente gráfico através do qual se pode criar, configurar e alterar os parâmetros da máquina virtual a ser usada, incluindo memória, configurações de rede e disco.
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
3 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
Há também uma série de utilitários adicionais para efetuar algumas tarefas auxiliares: virt-install - criação de máquinas virtuais novas; virt-clone - criação de uma cópia de uma máquina virtual existente; virt-img - criação de uma nova imagem de disco, a ser usado para simular um disco virtual; virt-viewer - possibilita a interação com a interface gráfica da máquina virtual.
Configurando
um
Para configurar um ambiente com máquinas virtuais no Linux iremos utilizar um host Linux Ubuntu Server Edition versão 10.04. O processo de instalação para hosts Ubuntu Desktop é exatamente o mesmo e pode ser realizado desta mesma forma.
Requisitos
mínimo
A priori, não existe uma configuração de hardware mínima para que seja possível rodar máquinas virtuais em um host Linux, porém, uma vez que o host irá abrigar outros sistemas operacionais, é aconselhável que ele tenha as seguintes configurações mínimas para que o sistema seja minimamente utilizável: - Processador Dual Core 1.5 GHz ou maior - 2 GB ou mais de memória RAM
Existem alguns processadores que possuem suporte à virtualização nativa. Neste caso, o desempenho dos guests chega a ser comparado com o do host. Para checar se um processador possui este suporte, execute o comando abaixo, e verifique se a saída contém a flag vmx. #egrep '(vmx|svm)' --color=always /proc/cpuinfo flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
Instalação
dos
pac
Para instalar o sistema KVM na sua máquina, basta executar os comandos abaixo: # apt-get install kvm # apt-get install libvirt virt-manager
O Ubuntu Server não possui interface gráfica, o que é um problema porque o virt-manager não pode rodar em modo texto. Este problema pode ser solucionado basicamente de duas formas:
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
4 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
1. Instalando um gerenciador gráfico e logando localmente no host: # apt-get install gdm
A instalação do pacote GDM irá instalar vários outros pacotes para tornar possível o login gráfico. Após a instalação, faça login no host e abra no menu principal o virt-manager. 2 - Instalando o servidor de login remoto SSH e logando remotamente no host: # apt-get install openssh-server
Neste caso, o acesso deverá ser feito de um outro terminal que possua interface gráfica. Deve ser aberto um shell neste terminal e conectar-se remotamente através do comando: ssh -X @. Após a autenticação, deve ser aberto o virt-manager através do comando: virt-manager.
Criação
da
máquin
O primeiro passo para a criar uma máquina virtual é conectar no host.
Os passos seguintes são simples e diretos conforme as figuras abaixo:
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
5 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
Após o último passo, o sistema operacional guest começará a instalação. Assim, os procedimentos seguintes dependem to tipo do sistema operacional guest (Linux, Windows, etc).
Acessando
a
inter
Para acessar a máquina virtual a partir do virt-manager, basta clicar duas vezes sobre a máquina virtual na aba principal, e então, abrirá uma nova janela que mostrará o conteúdo da tela da máquina virtual, tanto o modo console quanto a interface gráfica (quando apropriado). A próxima figura mostra com detalhes este procedimento.
De mais, basta clicar com o botão direito sobre o nome da máquina virtual para mudar o estado da máquina, como por exemplo, iniciá-la. Fora isso, também é possível acessar a máquina virtual através de uma conexão segura, como é o caso do SSH ou mesmo através do protocolo VNC. Para acessá-la via VNC é necessário instalar um servidor VNC na máquina virtual, iniciar o daemon vncd e então conectar-se a ela com um cliente VNC, como por exemplo o vncviewer.
Utilizando
o
Qemu
Além do virt-manager, é possível executar a virtualização no Linux utilizando somente a
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
6 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
linha de comando. Para tanto, é necessário ter instalado o qemu-kvm, assim como compilar o kernel do sistema operacional com a flag CONFIG_KVM habilitada. O Qemu-kvm deve ser obtido no site do KVM e compilado seguindo sua documentação. Além do mais, é necessário instalar o módulo kvm.ko, que é gerado quando o flag CONFIG_KVM é habilitado, conforme o exemplo: # modprobe kvm
Quando o módulo kvm é instalado, deve-se verificar se não há erro no 'dmesg'. Uma vez que o módulo pode ser carregado e mesmo assim apresentar algum problema. O próximo passo é criar a imagem de disco. Para tanto, é necessário utilizar a ferramenta qemu-img e passar as opções desejadas, como por exemplo o tamanho da imagem, o formato e o nome. # qemu-img create
Note que podem-se criar outros tipos de imagem, tais como qcow, qcow2, cow, vdi, vmdk entre outras, passando a opção -f. Uma vez carregado este módulo, é necessário passar o parâmetro "–enable-kvm" para o Qemu, para que o Qemu consiga gerenciar a máquina virtual de maneira eficiente, tirando proveito das características de emulação dos processadores modernos, denominadas VT-d e VT-X. Outra alternativa é a utilização do comando qemu-kvm que já assume essa opção, conforme o exemplo a seguir: # qemu-kvm -hda -m
Caso apareça a mensagem "open /dev/kvm: No such file or directory ", significa que o módulo kvm não foi habilitado corretamente. Em alguns casos, para o módulo ser carregado corretamente, deve-se habilitar a opção de virtualização na BIOS do computador em questão. Caso seja necessário passar alguma imagem adicional, basta utilizar os parâmetros -hd acompanhado de uma letra, como -hdb, -hdc, etc. Caso queria tornar a imagem um CD-ROM, basta utilizar a opção -cdrom.
Conclusão Este artigo explicou os conceitos de virtualização, assim como a implementação no Linux utilizando uma das melhores ferramentas para tal, o KVM. Também foi mostrado, passo a passo, como configurar uma máquina virtual utilizando o aplicativo virt-manager, além de uma configuração manual, somente com o módulo KVM e o Qemu. Em um próximo artigo, será descrito como configurar acesso à rede e como tornar sua máquina virtual mais segura.
Referências 1. Linux KVM 2. Manage Virtual Machines with Virt-managers 3. Qemu site 4. Virtualization on Red Hat Enterprise Linux 5. Intel Virtualization and Technology
Sobre
os
autores:
Breno Leitao é engenheiro de software no Linux Technology Center (LTC) onde atual como desenvolvedor especializado nas áreas de performance,
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
7 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
device drivers e virtualização.
Pedro Scarapicchia Junior atualmente trabalha na Totvs, trabalhando na equipe de desenvolvimento das aplicações para ambiente Linux. Além disso já trabalhou com desenvolvimento de device drives para virtualização em máquinas Power. Formado em Engenharia de Computação pela Universidade Federal de São Carlos (2006) e pós-graduado em Sistemas Distribuídos e Redes pela Universidade Federal de São Carlos (2009) também pela Universidade Federal de São Carlos, Erlon Cruz atua atualmente na área de pesquisa e desenvolvimento na área de arquitetura de computadores junto ao FIT Flextonics Instituto de Tecnologia. Pratip é graduado em ciência da computação e trabalha como egenheiro de software junto ao FIT.
Só a TECLA tem Cloud Computing verdadeiramente elástico, com atendimento acessível e capacitado.
developerWorks é a parte brasileira do portal de tecnologia da IBM para profissionais de TI de todo o mundo. Colabore, crie aplicativos inovadores e compreenda tecnologias avançadas. Acesse mais artigos e tutoriais em www.ibm.com/developerworks/br/ Página
do
autor
Br
Em
Leia os últimos artigos publicados por developerworks_brasil Reutilização bem-sucedida do código com desenvolvimento e modelagem centrados no código Projetando um banco de dados para multilocação na nuvem Fazendo mágica com o ImageMagick Integrando MediaWiki com LDAP JavaScript funcional com CoffeeScript e Node
1
COMENTÁRIO COMENTE
TA
Essa dica foi maravilhosa! No meu Q8200 2 Quad não conseguia rodar máquinas 64bits com o virtualbox, mas utilizando o KVM e suas ferramentas rodou tranquilo. Há 2 meses · Responder
QUAL
A
SUA
OPINIÃO?
Escreva seu comentário aqui...
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
8 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
ÚLTIMAS
NOTÍCIAS
13/03 às 9h20
Linux Mint liberado
12
"L
29/02 às 14h30
Service Pack 2 p Enterprise Serv disponível 28/02 às 9h20
Oracle libera Ks Enterprise 5.0 e 23/01 às 11h40
Primeiro release Linux 3.3 é liber 16/01 às 11h40
Mageia 2 Alpha disponível para VER
MAIS
CURSOS
Gestão
NOTÍCIAS
ONLINE
de
conteúdo
Ensinar ao participante como planejar, instalar e configurar um site completo com o Joomla!, aproveitando ao máximo os recursos oferecidos pelo CMS.
Desenvolvimento
de
Aprenda a desenvolver aplicações para iPhones e iPads de uma maneira simples e prática. Abordaremos o uso das ferramentas essenciais para que no final, você esteja capacitado para atender boa parte das demandas de aplicativos da AppStore.
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
9 de 10
Criação
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
de
Loja
Virtu
Gerencie sua loja virtual com Magento E-commerce, instalando módulos e templates, deixando-a com a sua cara e necessidades.
Encontre-nos no Facebook
iMasters Curtir 11,424 pessoas curtiram iMasters.
Bruno
Douglas
Marcelo
Agatangelo
Micael
Cristiano
Marcelo
Phelipe
Diogo
Anderson
Plug-in social do Facebook
PARCEIROS
16-04-2012 13:42
Virtualização com KVM no Linux – iMasters
10 de 10
http://imasters.com.br/artigo/23448/linux/virtualizacao-com...
© 2001 iMasters FFPA Informática Ltda Todos os direitos reservados. Sobre o iMasters Política de privacidade Anuncie Fale conosco
16-04-2012 13:42