Instalar KVM en Centos 7 64 bits
Lo más complicado de este giro es encontrar información en nuestro idioma (español), porque todo esta en ingles. Pero mi pequeña meta es poder aportar documentación en español de cosas que uso, como este caso KVM.
KVM (Kernel-based Virtual Machine) es una solución de virtualización completa para Linux en hardware x86 que contiene extensiones de virtualización Intel VT or AMD-V
Usando KVM uno puede ejecutar multiples máquinas virtuales ejecutando imágenes de Linux o Windows. Cada máquina virtual tiene hardware virtualizado privado como tarjeta de red, disco, gráficos, etc...
Esta instalación la hice en:
Nota: Esto es una instalación de KVM sin interfaz gráfica y todo será vía consola y comandos. Por lo que todo lo hago con root.
También se debe modificar el nivel de SELinux a permissive, aquí el como.
Hay que instalar los siguientes paquetes:
De manera personal prefiero hacer primero el disco, con el siguiente comando:
Lo que hace el comando es crear un disco con el formato raw con la capacidad de 10 gigabytes en la carpeta (path) "/srv/vm" y el archivo se llama "centos-7.raw"
Ahora debemos crear una bridge en la red para que las máquinas virtuales la usen para tener salida a internet, la configuración de la red puede ser de diferentes maneras sin embargo es preferible hacerlo así para que si tienen varias interfaces de red físicas puedan usarlas todas con este "bridge"
Ahora debemos modificar los scripts que hay en la siguiente carpeta "/etc/sysconfig/network-scripts/"
En mi caso es el archivo ifcfg-Conexión_Ethernet_1 porque internamente hace mención a la interfaz de red
Y ahora hay que crear la interfaz virtual "ifcfg-virbr0"
Ahora vamos a reiniciar las interfaces
Antes de crear la máquina virtual podremos ver una lista de sistemas operativos que "soporta" KVM, en el sentido que ya tiene per-configuraciones de hardware para soportar ciertos sistemas operativos, haciendo el siguiente comando:
Y ahora creamos la VM (Máquina virtual)
Esto creara la máquina y para continuar con la instalación hay que seguir por VNC, así que usando cualquier cliente VNC. Podemos ejecutar el siguiente comando en la consola del hipervisor
Nota: KVM usa los puertos estándares de VNC para las máquinas virtuales creadas entonces será la [IP del hipervisor]:59XX
Con estos sencillos pasos habremos creado la máquina virtual.
KVM (Kernel-based Virtual Machine) es una solución de virtualización completa para Linux en hardware x86 que contiene extensiones de virtualización Intel VT or AMD-V
Usando KVM uno puede ejecutar multiples máquinas virtuales ejecutando imágenes de Linux o Windows. Cada máquina virtual tiene hardware virtualizado privado como tarjeta de red, disco, gráficos, etc...
Esta instalación la hice en:
- ThinkServer TS100
- RAM: 8GB
- HDD: 500GB
- SOCKET: 1
- Cores: 4
- Sistema Operativo: Centos 7 64 bits (Linux hypervisor 3.10.0-693.5.2.el7.x86_64)
Nota: Esto es una instalación de KVM sin interfaz gráfica y todo será vía consola y comandos. Por lo que todo lo hago con root.
También se debe modificar el nivel de SELinux a permissive, aquí el como.
Hay que instalar los siguientes paquetes:
yum install qemu-kvm \
qemu-img \
libvirt \
libvirt-python \
libvirt-client \
virt-install \
bridge-utils \
virt-top
De manera personal prefiero hacer primero el disco, con el siguiente comando:
qemu-img create -f raw -o size=10G /srv/vm/centos-7.raw
Lo que hace el comando es crear un disco con el formato raw con la capacidad de 10 gigabytes en la carpeta (path) "/srv/vm" y el archivo se llama "centos-7.raw"
Ahora debemos crear una bridge en la red para que las máquinas virtuales la usen para tener salida a internet, la configuración de la red puede ser de diferentes maneras sin embargo es preferible hacerlo así para que si tienen varias interfaces de red físicas puedan usarlas todas con este "bridge"
echo "net.ipv4.ip_forward = 1"|sudo tee /etc/sysctl.d/99-ipforward.conf
sysctl -p /etc/sysctl.d/99-ipforward.conf
net.ipv4.ip_forward = 1
Ahora debemos modificar los scripts que hay en la siguiente carpeta "/etc/sysconfig/network-scripts/"
En mi caso es el archivo ifcfg-Conexión_Ethernet_1 porque internamente hace mención a la interfaz de red
TYPE=Ethernet
NAME=$'Conexi\703\663n Ethernet 1'
UUID=12a5eec5-372c-4d0d-905f-d0970055cec1
DEVICE=enp3s0
ONBOOT=yes
BRIDGE_UUID=4ed49abd-849d-4f6d-9991-0d6b722c1e27
BRIDGE=virbr0
ZONE=public
Y ahora hay que crear la interfaz virtual "ifcfg-virbr0"
DEVICE=virbr0
STP=yes
DELAY=2
BRIDGING_OPTS=priority=32768
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
IPADDR=192.168.100.30
PREFIX=24
GATEWAY=192.168.100.1
DNS1=8.8.8.8
DNS2=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV4_DNS_PRIORITY=100
IPV6INIT=no
NAME=virbr0
UUID=4ed49abd-849d-4f6d-9991-0d6b722c1e27
ONBOOT=yes
ETHTOOL_OPTS=
ZONE=public
Ahora vamos a reiniciar las interfaces
/etc/init.d/network restart
Antes de crear la máquina virtual podremos ver una lista de sistemas operativos que "soporta" KVM, en el sentido que ya tiene per-configuraciones de hardware para soportar ciertos sistemas operativos, haciendo el siguiente comando:
osinfo-query os
Y ahora creamos la VM (Máquina virtual)
virt-install --connect qemu:///system \
--name centos-7 \
--ram 2048 \
--vcpus=2 \
--check-cpu \
--disk path=/srv/vm/centos-7.raw,size=10,bus=virtio,cache=none \
--graphics vnc,listen=0.0.0.0 \
--noautoconsole \
--os-type linux \
--os-variant centos7.0 \
--accelerate \
--network=bridge:virbr0 \
--hvm \
--cdrom /data/isos/linux/CentOS-7-x86_64-Minimal-1611.iso
Esto creara la máquina y para continuar con la instalación hay que seguir por VNC, así que usando cualquier cliente VNC. Podemos ejecutar el siguiente comando en la consola del hipervisor
netstat -tln|grep :59
Nota: KVM usa los puertos estándares de VNC para las máquinas virtuales creadas entonces será la [IP del hipervisor]:59XX
Con estos sencillos pasos habremos creado la máquina virtual.
Comentarios