KVM : Instalação

KVM é um virtualizador opensource onde podemos instalar várias vms virtuais e também amplamente utilizado pelo Openstack .

1) Introdução

Antes de começarmos a instalar o KVM é necessário verificar se o processador suportar virtualização.

[root@kvm ~]#  grep -E '(vmx|svm)' /proc/cpuinfo


... 
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon nopl xtopology tsc_reliable nonstop_tsc pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm tpr_shadow vnmi ept vpid tsc_adjust ibpb ibrs stibp arat spec_ctrl intel_stibp arch_capabilities

Caso o processador tenha suporte aparecerá o output no exemplo acima .

2) Instalação

Vamos configurar apenas uma bridge padrão para teste .

Arquivo /etc/sysconfig/network-scripts/ifcfg-ens33


[root@kvm network-scripts]# cat  ifcfg-ens33
TYPE=Ethernet
DEVICE=ens33
ONBOOT=yes
BRIDGE=br0
HWADDR=00:0c:29:00:00:00

Configuramos a brigde em uma rede de teste 10.0.0.0/24

Arquivo /etc/sysconfig/network-scripts/ifcfg-br0

[root@kvm network-scripts]# cat ifcfg-br0
DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
ONBOOT=yes
IPADDR=10.0.0.14
NETMASK=255.255.255.0
DELAY=0
GATEWAY=10.0.0.1

Reinicie o serviço de network e valide se a bridge está ativa

[root@kvm network-scripts]#  systemctl restart network 

[root@kvm network-scripts]# brctl show 
bridge name	bridge id		STP enabled	interfaces
br0		8000.000c29d244f3	no		ens33
virbr0		8000.525400bb5dca	yes		virbr0-nic


[root@kvm network-scripts]# ip -4 -o a s
...

3: br0    inet 192.168.15.114/24 brd 192.168.15.255 scope global noprefixroute br0\       valid_lft forever preferred_lft forever

Instalação dos pacotes via YUM.

[root@kvm ~]# yum install qemu-kvm libvirt libvirt-python libguestfs-tools virt-install -y 

Abra o arquivo /etc/syconfig/libvirt.conf e descomente as opções abaixo:

LIBVIRTD_ARGS=”listen”
listen_tls = 0
listen_tcp = 1

Inicie e habilite no boot o serviço

[root@kvm ~]# systemctl start libvirtd
[root@kvm ~]# systemctl enable libvirtd

Verifique se a rede padrão está ativa

[root@kvm network-scripts]# virsh net-list
 Name                 State      Autostart     Persistent
----------------------------------------------------------
 default              active     yes           yes

3) Criando vms

Segue abaixo exemplo de comandos para instalação da vm via comando virt-install.

Instalação a partir de uma ISO

virt-install \ 
  --name VMNAME \ 
  --memory 2048 \ 
  --vcpus 2 \ 
  --disk size=8 \ 
  --cdrom /path/to/ISONAME.iso \ 
  --os-variant VARIANTNAME

Instalação a partir da importação de um disco

virt-install \ 
  --name VMNAME \ 
  --memory 2048 \ 
  --vcpus 2 \ 
  --disk /path/to/imported/disk.qcow \ 
  --import \ 
  --os-variant VARIANTNAME 

Para configuração de várias vms via automação foi criada a role abaixo:

https://github.com/fabioabreureis/ansible-kvm-cloudinit-prosivion