Mudanças entre as edições de "Virtualização com KVM no Debian Jessie"

De Eriberto Wiki
Ir para navegação Ir para pesquisar
(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...')
 
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 04h06min 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:

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.