Virtualización · 5 min read · Jan 20, 2026

Virtualización Con KVM En Un Servidor OpenSUSE 12.1

Virtualización Con KVM En Un Servidor OpenSUSE 12.1

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 OpenSUSE 12.1. 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 la virtualización de hardware, por ejemplo, Intel VT o AMD-V.

¡No ofrezco ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

Estoy usando un servidor OpenSUSE 12.1 con el nombre de host server1.example.com y la dirección IP 192.168.0.100 aquí como mi host KVM.

Tambié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 OpenSUSE 12.1 aquí.

2 Instalando KVM

Host KVM OpenSUSE 12.1:

Primero verifica si tu CPU soporta la virtualización de hardware - si este es el caso, el comando

egrep '(vmx|svm)' --color=always /proc/cpuinfo

debe mostrar algo, por ejemplo, como esto:

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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv  
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 rep_good extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv  
server1:~ #

Si no se muestra nada, entonces tu procesador no soporta la virtualización de hardware, y debes detenerte aquí.

Una de las dependencias que se instala cuando instalamos KVM es Python 2.7, pero Python 2.7 entra en conflicto con el paquete patterns-openSUSE-minimal_base-conflicts. Por lo tanto, primero debemos desinstalar ese paquete. Para hacerlo, inicia YaST:

yast2

En YaST, ve a Software > Gestión de Software:

Escribe patterns-openSUSE-minimal_base-conflicts en el campo de búsqueda y presiona ENTER. El paquete debería estar listado como instalado ( i) en la ventana principal. Marca el paquete y presiona la tecla ENTER hasta que haya un signo menos ( -) delante del paquete (el menos significa desinstalar), luego presiona [Aceptar]:

Sal de YaST después.

Para instalar KVM y virtinst (una herramienta para crear máquinas virtuales), ejecutamos

yast2 -i kvm libvirt libvirt-python qemu virt-manager

Luego crea los enlaces de inicio del sistema para libvirtd…

systemctl enable libvirtd.service

… y comienza el daemon de libvirt:

systemctl start libvirtd.service

Para verificar si KVM se ha instalado correctamente, ejecuta

virsh -c qemu:///system list

Debería mostrar algo como esto:

server1:~ # virsh -c qemu:///system list  
WARNING: no socket to connect to  
 Id Name                 State  
----------------------------------  
  
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…

yast2 -i bridge-utils

… y configuramos un puente.

Para configurar el puente, crea el archivo /etc/sysconfig/network/ifcfg-br0 de la siguiente manera (asegúrate de usar la configuración IPADDR del archivo /etc/sysconfig/network/ifcfg-eth0):

vi /etc/sysconfig/network/ifcfg-br0

| STARTMODE='auto' BOOTPROTO='static' IPADDR='192.168.0.100/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_HELLOTIME='2' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' |

(Si recibes el mensaje No tienes un paquete binario vim válido instalado. Por favor, instala “vim”, “vim-enhanced” o “gvim”., ejecuta

yast2 -i vim

para instalar vi y vuelve a intentarlo.)

Modifica /etc/sysconfig/network/ifcfg-eth0 de la siguiente manera (configura IPADDR a 0.0.0.0 y cambia STARTMODE a hotplug):

vi /etc/sysconfig/network/ifcfg-eth0

| BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='0.0.0.0' MTU='' NAME='MCP77 Ethernet' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='hotplug' USERCONTROL='no' |

Luego reinicia la red:

systemctl restart network.service

Después, ejecuta

ifconfig

Ahora debería mostrar el puente de red ( br0):

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:39 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:4921 (4.8 Kb)  TX bytes:1708 (1.6 Kb)  
  
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:821 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:636 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:313341 (305.9 Kb)  TX bytes:108982 (106.4 Kb)  
          Interrupt:41 Base address:0x8000  
  
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:20 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:20 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:2720 (2.6 Kb)  TX bytes:2720 (2.6 Kb)  
  
server1:~ #

3 Instalando virt-manager En Tu Escritorio OpenSUSE 12.1

Escritorio OpenSUSE 12.1:

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 OpenSUSE 12.1.

Conviértete en root…

su

… y ejecuta…

yast2 -i virt-manager libvirt

… para instalar virt-manager.

(Si estás usando un escritorio Ubuntu 11.10, puedes instalar virt-manager de la siguiente manera:

sudo apt-get install virt-manager

)

4 Creando Un Invitado Debian Squeeze (Basado En Imágenes)

Host KVM OpenSUSE 12.1:

Ahora volvamos a nuestro host KVM OpenSUSE 12.1.

Echa un vistazo a

virt-install --help

para aprender cómo usarlo.

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 Netinstall de Debian Squeeze 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 --hvm

Por supuesto, también puedes crear una imagen ISO del CD de instalación Netinstall 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 OpenSUSE 12.1, 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.0-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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

La salida es la siguiente:

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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm  
WARNING: no socket to connect to  

Starting install...  
Allocating 'vm10.img'       |  12 GB     00:00  
Creating domain...          |    0 B     00:00  
Domain installation still in progress. You can reconnect to  
the console to complete the installation process.  
server1:~ #
Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.