#4sysadmins

Inicio » GNU/Linux » Crear máquina virtual con KVM/QEMU desde línea de comandos

Crear máquina virtual con KVM/QEMU desde línea de comandos

Últimas Entradas

Follow #4sysadmins on WordPress.com

Llevamos algo mas de un mes aprendiendo las diferentes formas de virtualizar máquinas, así como las diferentes arquitecturas de virtualización. Hemos aprendido los conceptos, virtualizado con VirtualBox, con VMWare, Cygwin, Vagrant, Wine, KVM y aun nos falta Xen, pero antes vamos a ver como crear máquinas virtuales mediante KVM/QEMU pero esta vez desde la línea de comandos mediante la herramienta Virsh

Deshabilitar SELinux

[root@localhost opt]# vi /etc/sysconfig/selinux
SELINUX=disabled

Instalación de Virsh

Si hemos seguido la entrada anterior donde aprendimos a virtualizar con KVM/QEMU pero en modo gráfico, tendremos ya prácticamente todos los paquetes necesarios instalados a falta de virt-install, de lo contrario los instalaremos:

[root@localhost ~]# yum install virt-install libvirt bridge-utils

Esto instalará las siguientes dependencias:

libvirt-client
libvirt-python
virt-manager-common
libvirt-daemon
libvirt-daemon-config-network
libvirt-daemon-config-nwfilter
libvirt-daemon-driver-interface
libvirt-daemon-driver-lxc
libvirt-daemon-driver-network
libvirt-daemon-driver-nodedev
libvirt-daemon-driver-nwfilter
libvirt-daemon-driver-qemu
libvirt-daemon-driver-secret
libvirt-daemon-driver-storage

Iniciamos el demonio:

[root@localhost ~]# service libvirtd start

Conectamos con el hipervisor:

[root@localhost ~]# virsh -c qemu:///system
Bienvenido a virsh, la terminal de virtualización interactiva.
virsh #

Listamos las máquinas (evidentemente no existirá ninguna):

virsh # list
 Id Nombre Estado
----------------------------------------------------

Salimos de la consola Virsh:

virsh # quit

 

Crear máquina virtual

Lo primero es asegurarnos de que disponemos de una iso en nuestro sistema anfitrión. Nosotros tenemos nuestra ISO en el directorio:

[root@localhost opt]# ls /var/lib/libvirt/iso
linuxmint-17.1-cinnamon-64bit.iso

Y lo segundo es crear un directorio donde almacenar nuestras futuras imágenes, es decir nuestras máquinas virtuales (si no existiese):

[root@localhost opt]# mkdir /var/lib/libvirt/images

Lanzamos la instalación de la máquina

[root@localhost iso]# virt-install --connect qemu:///system --name myserver \
--memory 512 --disk path=/var/lib/libvirt/images/myserver.qcow2,size=10 \
--vcpus=1 -c /var/lib/libvirt/iso/linuxmint-17.1-cinnamon-64bit.iso \
--vnc --os-type linux --network bridge=virbr0 --noautoconsole \
--hvm --keymap es

Iniciando la instalación...
Asignando 'myserver.img' | 10 GB 00:00:00 
Creando dominio... | 0 B 00:00:00 
La instalación del dominio continúa en curso. Puede reconectarse a 
la consola para completar el proceso de instalación.
[root@localhost opt]#

Donde:

--connect : conectar con el hipervisor
--name : indicamos el nombre de la máquina
--memory : ram en MB
--disk : especificar el disco de la nueva máquina. Se pueden combinar opciones por ejemplo --disk path=[ruta],size=10,cache=none
--vcpus : indicar el número de cpus virtuales. Igualmente podemos encadenar opciones como --vcpus 5,maxcpus=10 para definir un rango o incluso ser mas específicos con --vcpus sockets=2,cores=4,threads=2
-c :  también podemos usar --cdrom y como podemos imaginar se usan para indicar el medio de instalación
--vnc : habilitamos escritorio vnc para poder conectar desde un cliente
--os-type : tipo de sistema operativo que va a ser instalado en la máquina virtual
--network : indicamos la interfaz de red, en nuestro caso tenemos configurado un puente a una red virtual mediante la interfaz virbr0
--noautoconsole : hará que el proceso continúe en segundo plano. Luego podremos continuar en modo
gráfico a través de virt-manager
--hvm : la máquina virtual tendrá una arquitectura full-virtualization. Para utilizar la para-virtualización deberíamos de utilizar --paravirt
--keymap : el teclado será configurado para el Español

Nota: Podemos conocer mas parámetros si utilizamos la opción –help:

$ virt-install --help

Ahora podemos abrir virt-manager desde el anfitrión y seguir con la instalación del sistema:

[root@localhost ~]# virt-manager

virsh1

 

Iniciar, suspender, reanudar, reiniciar y apagar la máquina virtual

  • Conectar con el hipervisor: virsh -c qemu:///system
  • Iniciar la máquina virtual: start myserver
  • Suspender la máquina virtual: suspend myserver
  • Reanudad la máquina virtual: resume myserver
  • Reiniciar la máquina virtual: reboot myserver
  • Apagar una máquina virtual: shutdown myserver

Otros comandos

  • “Matar” la máquina virtual: destroy myserver
  • Listar máquinas virtuales running: virsh list
  • Listar todas las máquinas: virsh list –all
  • Obtener información sobre una máquina: dominfo myserver
  • Ver CPU máquina: vcpuinfo hypnos
  • Ver el estado de la máquina virtual: domstate myserver
  • Listar volúmenes de almacenamiento: pool-list
  • Obtener información sobre el volumen físico: pool-info myvol
  • Editar las características del volumen: pool-edit myvol
  • Listar todos los discos virtuales: vol-list myvol
  • Hacer que una máquina inicie automáticamente: virsh autostart myserver
  • Hacer que una máquina deje de iniciar al inicio: virsh  –disabled autostart myserver
  • Editar información de la máquina virtual: edit myserver
  • Ver redes virtuales configuradas: net-list
  • Obtener información sobre las redes: net-dumpxml <red>
  • Crear una red virtual: net-create /etc/libvirt/qemu/networks/myred.xml    ## Este archivo debe de existir, al final del post dejo una plantilla
  • Definir/elegir una red virtual: net-define /etc/libvirt/qemu/networks/myotrared.xml
  • Iniciar la red virtual: net-start myotrared
  • Iniciar automáticamente una red virtual: net-autostart myred
  • Editar una red virtual: net-edit myotrared
  • Destruir una red virtual: net-destroy myred

 

Plantilla de red

[root@localhost opt]# vi /etc/libvirt/qemu/networks/myred.xml
<network> 
<name>myred</name> 
<uuid>6cbbd170-c641-8d6c-ae79-6791b3288426</uuid> 
<forward mode='nat'/> 
<bridge name='virbr0' stp='on' forwardDelay='0' /> 
<ip address='192.168.122.1' netmask='255.255.255.0'> 
<dhcp> 
<range start='192.168.122.100' end='192.168.122.200' /> 
</dhcp> 
</ip> 
</network>

 

Convertir una imagen

Convertir una imagen con formato raw a qcow2:

[root@localhost opt]# qemu-img convert -f raw -O qcow2 -o preallocation=metadata /ruta_imagen/nombre_imagen.img /ruta_imagen/nombre_imagen.qcow2

ó

[root@localhost opt]# qemu-img convert -f raw imagen.raw -O qcow2 imagen.qcow2
Anuncios

3 comentarios

  1. Cyberthrone dice:

    Reblogueó esto en .

    Me gusta

  2. Ivan dice:

    Excelente trabajo, se te agradece ampliamente!!

    Me gusta

Deja un comentario, Gracias!

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: