Virtualização com KVM no Debian Jessie: mudanças entre as edições
Criou página com '== Introdução: sai Xen, entra KVM == Por muito tempo eu usei Xen. Hoje, só aconselho KVM + LibVirt. Os motivos são os seguintes: * As máquinas evoluíram e, hoje em dia...' |
Sem resumo de edição |
||
Linha 22: | Linha 22: | ||
Para uma visão geral sobre a LibVirt, leia a página principal do projeto em http://libvirt.org. | Para uma visão geral sobre a LibVirt, leia a página principal do projeto em http://libvirt.org. | ||
<br><br> | |||
== Instalação inicial == | |||
Na máquina real (que será a hospedeira), instale os pacotes ''kvm'', ''libvirt-bin'', ''virtinst'' e ''virt-top''. | |||
# apt-get install kvm libvirt-bin virtinst virt-top | |||
Com isso, o sistema estará pronto para uso. | |||
<br><br> | |||
== Criação de uma máquina virtual Debian == | |||
As máquinas virtuais poderão ser criadas facilmente com o comando ''virt-install''. Assim sendo, crie um script shell, denominado ''cria-vm.sh'', com o seguinte conteúdo: | |||
#!/bin/bash | |||
# Alterar, de acordo com a máquina a ser criada | |||
NOME=teste | |||
VCPUS=2 | |||
RAM=4096 | |||
MAC=52:54:00:00:00:01 | |||
# Não alterar a partir daqui | |||
virt-install -d \ | |||
--name=$NOME \ | |||
--vcpus=$VCPUS \ | |||
--ram $RAM \ | |||
--disk path=/vms/$NOME,bus=virtio,cache=none \ | |||
--network bridge=br-kvm,model=virtio,mac=$MAC \ | |||
--accelerate \ | |||
--extra-args="console=ttyS0,115200" \ | |||
--location=<nowiki>http://ftp.debian.org/debian/dists/jessie/main/installer-amd64</nowiki> | |||
No primeiro bloco, altere, de acordo com a necessidade, o nome da máquina (NOME), a quantidade de núcleos (VCPUS), a quantidade de memória RAM em gigabytes (RAM) e o endereço MAC a ser utilizado pela máquina (MAC). | |||
A seguir, crie um diretório ''/vms'' (poderá ser em outro local, diferente da raiz, se necessário). | |||
# mkdir /vms | |||
Dentro do ''/vms'', crie um arquivo para receber a máquina virtual (sim, a máquina ficará dentro de um arquivo). Esse arquivo deverá ter o mesmo nome da máquina a ser criada. Para um teste rápido ou para um servidor pequeno, como um DNS ou DHCP, poderá ser utilizado um arquivo de 10 GB. Use o comando ''dd'' para criar o arquivo. | |||
# dd if=/dev/zero of=/vms/teste bs=1G count=10 | |||
A linha ''--disk'' do script define que o arquivo será buscado em ''/vms''. | |||
Uma outra definição importante, provida pela linha ''--network'', refere-se à placa de rede da máquina real (em modo bridge) que será utilizada para o tráfego. | |||
Ao executar o script, a máquina será criada. Não esqueça de prover permissão de execução antes de rodar tal script: | |||
# chmod 750 cria-vm.sh | |||
# ./cria-vm.sh | |||
A rodar o script, o mesmo baixará dois pequenos arquivos de instalação do Jessie amd64. Veja que isso é definido na linha ''--location'' do script e pode ser mudado. |
Edição das 05h06min de 11 de dezembro de 2015
Introdução: sai Xen, entra KVM
Por muito tempo eu usei Xen. Hoje, só aconselho KVM + LibVirt. Os motivos são os seguintes:
- As máquinas evoluíram e, hoje em dia, possuem recursos de hardware para virtualização, acelerando processos.
- Xen é nativo no kernel mas é especialista em paravirtualização.
- A paravirtualização era um importante recurso na década de 2000, pois exigia pouco hardware. Hoje o hardware é muito mais potente e entende bem virtualização completa.
- Na para virtualização só é possível virtualizar o mesmo sistema do hospedeiro.
- A atualização de SO na paravirtualização é extremamente complexa e, geralmente, exige a parada total do sistema.
- O Xen demanda em mais de 500.000 linhas de código.
- KVM também é nativo do kernel e é especialista em virtualização completa.
- A virtualização completa permite qualquer SO sobre qualquer SO.
- Na virtualização completa as atualizações de software são fáceis e transparentes.
- O KVM demanda em, apenas, um pouco mais de 10.000 linhas de código.
- Mesmo realizando virtualização completa, o KVM demonstrou, em vários testes, ter performance superior ao Xen.
- A LibVirt é uma API específica para virtualização. Ela provê uma linguagem única para a gerência de vários virtualizadores, além de drivers específicos para a melhoria de performance.
Para dados mais consistentes e testes comparativos, leia os seguintes documentos:
- Common considerations when selecting your hypervisor, da Flexiant. É necessário se cadastrar para fazer o download. O artigo compara KVM, Xen, VMware e Hyper-V.
- Performance benchmarks: KVM vs. Xen, escrito por Major Hayden.
Para uma visão geral sobre a LibVirt, leia a página principal do projeto em http://libvirt.org.
Instalação inicial
Na máquina real (que será a hospedeira), instale os pacotes kvm, libvirt-bin, virtinst e virt-top.
# apt-get install kvm libvirt-bin virtinst virt-top
Com isso, o sistema estará pronto para uso.
Criação de uma máquina virtual Debian
As máquinas virtuais poderão ser criadas facilmente com o comando virt-install. Assim sendo, crie um script shell, denominado cria-vm.sh, com o seguinte conteúdo:
#!/bin/bash # Alterar, de acordo com a máquina a ser criada NOME=teste VCPUS=2 RAM=4096 MAC=52:54:00:00:00:01 # Não alterar a partir daqui virt-install -d \ --name=$NOME \ --vcpus=$VCPUS \ --ram $RAM \ --disk path=/vms/$NOME,bus=virtio,cache=none \ --network bridge=br-kvm,model=virtio,mac=$MAC \ --accelerate \ --extra-args="console=ttyS0,115200" \ --location=http://ftp.debian.org/debian/dists/jessie/main/installer-amd64
No primeiro bloco, altere, de acordo com a necessidade, o nome da máquina (NOME), a quantidade de núcleos (VCPUS), a quantidade de memória RAM em gigabytes (RAM) e o endereço MAC a ser utilizado pela máquina (MAC).
A seguir, crie um diretório /vms (poderá ser em outro local, diferente da raiz, se necessário).
# mkdir /vms
Dentro do /vms, crie um arquivo para receber a máquina virtual (sim, a máquina ficará dentro de um arquivo). Esse arquivo deverá ter o mesmo nome da máquina a ser criada. Para um teste rápido ou para um servidor pequeno, como um DNS ou DHCP, poderá ser utilizado um arquivo de 10 GB. Use o comando dd para criar o arquivo.
# dd if=/dev/zero of=/vms/teste bs=1G count=10
A linha --disk do script define que o arquivo será buscado em /vms.
Uma outra definição importante, provida pela linha --network, refere-se à placa de rede da máquina real (em modo bridge) que será utilizada para o tráfego.
Ao executar o script, a máquina será criada. Não esqueça de prover permissão de execução antes de rodar tal script:
# chmod 750 cria-vm.sh # ./cria-vm.sh
A rodar o script, o mesmo baixará dois pequenos arquivos de instalação do Jessie amd64. Veja que isso é definido na linha --location do script e pode ser mudado.