Virtualización · 6 min read · Dec 22, 2025
Virtualización Con KVM En Un Servidor Scientific Linux 6.3
Virtualización Con KVM En Un Servidor Scientific Linux 6.3
Versión 1.0
Autor: Falko Timme
Sígueme en Twitter
Esta guía explica cómo puedes instalar y usar KVM para crear y ejecutar máquinas virtuales en un servidor Scientific Linux 6.3. Te mostraré cómo crear máquinas virtuales basadas en imágenes y también máquinas virtuales que utilizan un volumen lógico (LVM). KVM es la abreviatura de Kernel-based Virtual Machine y hace uso de la virtualización de hardware, es decir, necesitas una CPU que soporte virtualización de hardware, por ejemplo, Intel VT o AMD-V.
¡No emito ninguna garantía de que esto funcione para ti!
1 Nota Preliminar
Estoy usando un servidor Scientific Linux 6.3 con el nombre de host server1.example.com y la dirección IP 192.168.0.100 aquí como mi host KVM.
Tenía SELinux deshabilitado en mi sistema Scientific Linux 6.3. No lo probé con SELinux activado; podría funcionar, pero si no, es mejor que también apagues SELinux:
vi /etc/selinux/configEstablece SELINUX=disabled…
| # Este archivo controla el estado de SELinux en el sistema. # SELINUX= puede tomar uno de estos tres valores: # enforcing - La política de seguridad de SELinux se aplica. # permissive - SELinux imprime advertencias en lugar de aplicar. # disabled - No se carga ninguna política de SELinux. SELINUX=disabled # SELINUXTYPE= puede tomar uno de estos dos valores: # targeted - Los procesos objetivo están protegidos, # mls - Protección de Seguridad de Múltiples Niveles. SELINUXTYPE=targeted |
… y reinicia:
rebootTambién necesitamos un sistema de escritorio donde instalemos virt-manager para que podamos conectarnos a la consola gráfica de las máquinas virtuales que instalamos. Estoy usando un escritorio Fedora 17 aquí.
2 Instalando KVM
Host KVM Scientific Linux 6.3:
Primero verifica si tu CPU soporta virtualización de hardware; si este es el caso, el comando
egrep '(vmx|svm)' --color=always /proc/cpuinfodebe mostrar algo, por ejemplo, así:
[root@server1 ~]# 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 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall
nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#Si no se muestra nada, entonces tu procesador no soporta virtualización de hardware, y debes detenerte aquí.
Ahora importamos las claves GPG para los paquetes de software:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Para instalar KVM y virtinst (una herramienta para crear máquinas virtuales), ejecutamos
yum install kvm libvirt python-virtinst qemu-kvmLuego inicia el demonio de libvirt:
/etc/init.d/libvirtd startPara verificar si KVM se ha instalado correctamente, ejecuta
virsh -c qemu:///system listDebería mostrar algo como esto:
[root@server1 ~]# virsh -c qemu:///system list
Id Name State
----------------------------------
[root@server1 ~]#Si muestra un error en su lugar, entonces algo salió mal.
A continuación, necesitamos configurar un puente de red en nuestro servidor para que nuestras máquinas virtuales puedan ser accedidas desde otros hosts como si fueran sistemas físicos en la red.
Para hacer esto, instalamos el paquete bridge-utils…
yum install bridge-utils… y configuramos un puente. Crea el archivo /etc/sysconfig/network-scripts/ifcfg-br0 (por favor usa los valores IPADDR, PREFIX, GATEWAY, DNS1 y DNS2 del archivo /etc/sysconfig/network-scripts/ifcfg-eth0); asegúrate de usar TYPE=Bridge, no TYPE=Ethernet:
vi /etc/sysconfig/network-scripts/ifcfg-br0| DEVICE="br0" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.0.100 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System br0" |
Modifica /etc/sysconfig/network-scripts/ifcfg-eth0 de la siguiente manera (comenta BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1 y DNS2 y agrega BRIDGE=br0):
vi /etc/sysconfig/network-scripts/ifcfg-eth0| DEVICE="eth0" #BOOTPROTO=none NM_CONTROLLED="yes" ONBOOT=yes TYPE="Ethernet" UUID="73cb0b12-1f42-49b0-ad69-731e888276ff" HWADDR=00:1E:90:F3:F0:02 #IPADDR=192.168.0.100 #PREFIX=24 #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 #DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" BRIDGE=br0 |
Reinicia la red…
/etc/init.d/network restart… y ejecuta
ifconfigAhora debería mostrar el puente de red (br0):
[root@server1 ~]# ifconfig
br0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet addr:192.168.0.100 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:460 (460.0 b) TX bytes:2298 (2.2 KiB)
eth0 Link encap:Ethernet HWaddr 00:1E:90:F3:F0:02
inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:18455 errors:0 dropped:0 overruns:0 frame:0
TX packets:11861 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:26163057 (24.9 MiB) TX bytes:1100370 (1.0 MiB)
Interrupt:25 Base address:0xe000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:5 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2456 (2.3 KiB) TX bytes:2456 (2.3 KiB)
virbr0 Link encap:Ethernet HWaddr 52:54:00:AC:AC:8F
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@server1 ~]#3 Instalando virt-viewer O virt-manager En Tu Escritorio Fedora 17
Escritorio Fedora 17:
Necesitamos un medio para conectarnos a la consola gráfica de nuestros invitados; podemos usar virt-manager para esto. Asumo que estás usando un escritorio Fedora 17.
Conviértete en root…
su… y ejecuta…
yum install virt-manager libvirt qemu-system-x86 openssh-askpass… para instalar virt-manager.
(Si estás usando un escritorio Ubuntu 12.04, puedes instalar virt-manager de la siguiente manera:
sudo apt-get install virt-manager)
4 Creando Un Invitado Debian Squeeze (Basado En Imágenes) Desde La Línea De Comandos
Host KVM Scientific Linux 6.3:
Ahora volvamos a nuestro host KVM Scientific Linux 6.3.
Echa un vistazo a
man virt-installpara aprender cómo usar virt-install.
Crearemos nuestras máquinas virtuales basadas en imágenes en el directorio /var/lib/libvirt/images/ que se creó automáticamente cuando instalamos KVM en el capítulo dos.
Para crear un invitado Debian Squeeze (en modo puente) con el nombre vm10, 512MB de RAM, dos CPUs virtuales y la imagen de disco /var/lib/libvirt/images/vm10.img (con un tamaño de 12GB), inserta el CD de instalación de Debian Squeeze Netinstall en la unidad de CD y ejecuta
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmPor supuesto, también puedes crear una imagen ISO del CD de instalación de Debian Squeeze (por favor créala en el directorio /var/lib/libvirt/images/ porque más adelante te mostraré cómo crear máquinas virtuales a través de virt-manager desde tu escritorio Fedora, y virt-manager buscará imágenes ISO en el directorio /var/lib/libvirt/images/)…
dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso… y usar la imagen ISO en el comando virt-install:
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmLa salida es la siguiente:
[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.5-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm
Iniciando la instalación...
Asignando 'vm10.img' | 12 GB 00:00
Creando dominio... | 0 B 00:00
La instalación del dominio aún está en progreso. Puedes reconectar a
la consola para completar el proceso de instalación.
[root@server1 ~]#Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.