En virtualización existen múltiples tipos de herramientas, pero todos poseen algo en comun, se trata de programas o herramientas que hacen creer a otros programas que son el HW y SW que necesitan.
La virtualización hace posible tener de uno a varios sistemas operativos sobre uno ya existente, permaneciendo este sin verse afectado y pudiendo arrancarlos de manera independiente.
La virtualización permite:
- Ahorra reinicio en caso de que tengamos que cambiar habitualmente de S.O.
- Permite lanzar varios sistemas operativos diferentes en una misma computadora.
- Facilita la administración de los sistemas operativos virtualizados.
- Tan puede ser ocupado para sistemas de pruebas.
- Migración dinámica de aplicaciones.
- Y también porque esta de moda o para aprender.
- La virtualización favorece en los siguientes punto:
- Ahorro de costes de HW y alojamiento de equipos
- Mantenimiento de cada servidor.
- Sistemas centralizados.
- Aprovechamiento de recursos.
- Sistemas de prueba.
- Simplicidad.
- Compatibilidad.
- Seguridad.
- Consumo de energía.
Tipos de virtualización
Solamente tenemos 3 tipo de virtualización:
- Emulación
- Virtualización completa
- Paravirtualización
Emulación
La emulación se basa en crear máquinas virtuales que emulan el hardware de una o varias plataformas hardware distintas. Este tipo de virtualización es la mas costosa y la menos eficiente, ya que obliga a simular completamente el comportamiento de la plataforma hardware a emular e implica también que cada instrucción que se ejecute en estas plataformas sea traducida al hardware real y es demasiado lento en su ejecución.En Linux existen varios emuladores pero los mas conocidos son: qemu, Bochs, VirtualBox y Virtuozzo.
Virtualización Completa.
Con este termino se denominan aquellas soluciones que permiten ejecutar sistemas operativos huésped (Guest), sin tener que modificarlos, sobre un sistema anfitrión (Host), utilizando en medio un Hypervisor o Virtual Machine Monitor que permite compartir el hardware real. Esta capa intermedia es la encargada de monitorizar los sistemas huésped con el fin de capturar determinadas instrucciones protegidas de acceso al hardware, que no pueden realizar de forma nativa al no tener acceso directo a el.Su principal ventaja es que los sistemas operativos pueden ejecutarse sin ninguna modificación sobre la plataforma, aunque como inconveniente frente a la emulación, el sistema operativo debe estar soportado en la arquitectura virtualizada.
Existen herramientas para poder hacer una virtualización completa XEN, KVM, Local Domains y VMWARE. Hay que tener en cuenta también que la virtualización completa no se refiere a todo el conjunto de hardware disponible en un equipo, sino a sus componentes principales, básicamente el procesador y memoria.
Paravirtualización
Paravirtualización surgió como una forma de mejorar la eficiencia de las máquinas virtuales y acercarlo al rendimiento nativo. Para ello se basa en que los sistemas virtualizados (huésped) deben estar basados en sistemas operativos especialmente modificados para ejecutarse sobre un hypervisor.Los sistemas virtualizados (huésped) deben estar basados en sistemas operativos especialmente modificados para ejecutarse sobre un hypervisor.
Con la paravirtualización, se puede alcanzar alto rendimiento incluso en arquitecturas (x86) que no suelen conseguirse con técnicas tradicionales de virtualización. A diferencia de las máquinas virtuales tradicionales, que proporcionan entornos basados en software para simular hardware.
Características KVM
KVM (Kernel-Based Virtual Machines), es una solución de virtualización completa sobre GNU/Linux que depende de la extensión de espiritualizaron de los procesador como INTEL VT” o AMD-V. KVM se incluyo oficialmente en el kernel 2.6.20 y consiste en un modulo para el kernel “kvm.ko” que ṕorṕorciona al nucleo la infrestructura de virtualizacion y tiene un modulo por cada tipo de procesador.
- INTEL “kvm-intel.ko”
- AMD “kvm-amd.ko”
Se completa con la version de QEMU que porciona toda funcionalidad de Hardware Virtual para los sistemas virtualizados. Todo la nuevas tecnologicas de desarrollo estan llevando acabo en KVM, ya que va hacer la solucion mas recomendada, soportada por varios sistemas operativos como GNU/Linux, BDS, Solaris, MAC y Windows. Tambien te mayor seguridad entre las maquinas virtuales y una configuracion mas amigable para los administradores, en varias distribuciones que van a cambiar a KVM por Xen entre estas ya estan debian, ubuntu, RHEL, Centos, Fedora, opensuse, mandriva y entre otras mas.
Ventajas de KVM:
- Esta diseñado para procesadores x86, centrando en un virtualizacion total.
- No se modifica el kernel de GNU/Linux.
- Solamente es un modulo que no necesita parches.
- Contiene soporte de paravirtualización.
- KVM funciona en todo tipo de máquinas, servidores, escritorio o laptop.
- Migración en caliente de máquinas virtuales.
- Tiene administarcion via web, grafica y consola.
- La administracion de las maquinas virtuales de hacen por medio de un usuario mortal.
- Podemos utilizar utilizar el comando kill para matar maquina virtuales ya con KVM son reconocidos como procesos.
- Maneja 3 tipos de configuracion de red, “Bridge, Route, NAT”.
- Permite ejecutar multitples maquinas virtuales cada una con su propia instancia.
Instalar KVM
Antes de poder instalar es necesario ver los requisitos:
- Como mínimo un 1 GB de memoria.
- Disco duro con buena capacidad.
- Procesador con soporte virtualización.
- Particiones independientes para el sistema ya de forma clásica o LVM:
/boot
/tmp
/
/swap
/home
/var
- Partición independiente para las máquinas virtuales:
/vm
- Instalación de la distribución debian Lenny y actualizada.
- Tarjetas de red de buen rendimiento.
Verificación del modulo virtualización
Antes de todo es necesario saber que si nuestro procesador tiene el modulo de virtualización integrado en el procesador. Para esto tendremos que saber si nuestro procesadores tiene soporte, para INTEL es vmx y Amd es svm. Ya sabiendo esto solo queda consultar, por medio del siguiente comando:
hades:~# egrep '(vmx|svm)' --color=always /proc/cpuinfo
Nos tiene que devolver la siguiente información:
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse
sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse
sse2 ss ht tm syscall nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm
Con esto indica que el procesador es del tipo INTEL, en caso de que no muestre ninguna información puede ser que el modulo este desactivado y lo tendrán que dar de alta desde el BIOS o no viene integrado con el modulo. Si KVM no detecta el modulo de virtualización asistida por Hardware entonces KVM trabajara de modo paravirtualización pero sin modificar el kernel de GNU/Linux.
Instalación de KVM
Ya que tenemos toda la información para poder iniciar la instalación, se requieren los siguientes paquetes:
- kvm: El paquete kvm instalar el modulo para el kernel en el cual permitirá tener máquina virtuales huésped
- libvirt-bin: La librería libvirt-bin es la encargada de la virtualizar a las máquinas huésped.
- virtinst: La herramienta virtinst nos ayudara a la instalación, administración y configuración de la máquinas huésped.
Con esto ya sabremos para que nos sirve cada paquete solo queda instalarlos.
hades:~# apt-get install kvm libvirt-bin virtinst
Usuario KVM
Cuando se termine la instalación, tendremos que asignar un usuario mortal el cual sera el encargado de instalar, administrar y configurar las máquinas virtuales, este usuario se ocupa como medida de seguridad ya que la configuración con XEN es por medio del usuario root y es muy peligroso. Por eso KVM usa un usuario mortal y que que pertenezca al grupo de libvirt.
hades:~# adduser administrador libvirt
Añadiendo al usuario `administrador' al grupo `libvirt' ...
Añadiendo al usuario administrador al grupo libvirt
Hecho.
Como podemos ver agregamos al usuario administrador al grupo libvirt.
Partición VM
Se recomienda tener las máquinas virtuales dentro de una partición del disco duro independiente o si se puede mejor en otro disco duro y partición se llamada /vm. La partición debe tener un tamaño superior y dependiendo de cuantas máquinas virtuales se van a alojar con su capacidad de cada disco virtual. Debe pertenecer al grupo libvirt con los siguientes permisos.
hades:~# chown root.libvirt /vm
hades:~# chmod 775 /vm
RED en KVM
Existen tres tipos de redes en la configuración KVM:
Pero se recomienda la configuración tipo bridge ya que es la fácil de configurar y la que mas se ocupa en los servidores.
Bridge
Este tipo de configuración nos permite crear un puente entre las tarjeta de red física y las virtuales, permitiéndonos conectarnos a la red local de la empresa como si fueran otras máquinas que estuvieran en la red local. Para pode tener este tipo de configuración es necesario instalar el siguiente paquete.
hades:~# apt-get install bridge-utils
Configuración modo Bridge
Como sabemos estamos ocupando la distribución debian lenny, por cual tendremos que configurar nuestro puente en el archivo /etc/network/interfaces. Abrimos el archivo con nuestro editor vim.
hades:~# vim /etc/network/interfaces
Dentro de este archivo de configuración encontraremos la interfaz loopbak o local “lo” y la interfaz de red “eth0”, por el cual obtendrá una IP Dinámica de nuestra red.
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
Con esta configuración no podremos hacer el puente, lo que tenemos que hacer es cambiar la configuración de la tarjeta de red “eth0”.
allow-hotplug eth0
iface eth0 inet dhcp
por
auto eth0
iface eth0 inet manual
Con esto hemos cambiado la interfaz eth0 a un modo de configuración especial en nuestro caso la vamos a hacer tipo puente.
Agregaremos dentro de mismo archivo la configuración la interfaz br0 la cual se encargara de crear y dejar funcionando nuestro puente entre las máquinas virtuales para que sean visibles dentro de nuestra red local.
auto br0
iface br0 inet static
address 192.168.1.244
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
bridge_maxwait 5
A esta interfaz tendremos que asignar una IP estática, mascara de red, segmento de red, broadcast, puerta de enlace, tarjeta física que esta permitiendo el puente. Con esto guardamos el archivo y reiniciamos el servicio de red de debian lenny.
hades:~# /etc/init.d/networking restart
Para comprobar que nuestra configuración quedo realizada ejecutamos el comando ifconfig, para que nos muestre las interfaces de red que tiene nuestro sistema.
hades:~# ifconfig
br0 Link encap:Ethernet HWaddr 00:b0:c4:00:35:c1
inet addr:192.168.1.244 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::2b0:c4ff:fe00:35c1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1319 errors:0 dropped:0 overruns:0 frame:0
TX packets:774 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1414607 (1.3 MiB) TX bytes:73115 (71.4 KiB)
eth0 Link encap:Ethernet HWaddr 00:b0:c4:00:35:c1
inet6 addr: fe80::2b0:c4ff:fe00:35c1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6541519 errors:0 dropped:0 overruns:0 frame:0
TX packets:3021817 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1286103822 (1.1 GiB) TX bytes:205104301 (195.6 MiB)
Interrupt:20 Base address:0xa000
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:10 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1008 (1008.0 B) TX bytes:1008 (1008.0 B)
Como podemos ver nos mostró 3 tres interfaces:
- interfaz lo: como interfaz loopback o local.
- interfaz eth0: configuración en modo puente.
- Interfaz br0: conexión a la red para la máquinas virtuales.
Con todos estos pasos hemos creado un puente para que las máquinas virtuales pertenezcan a la red local de nuestra empresa
NAT
Este tipo de configuración nos permitirá tener nuestra máquinas virtuales dentro de una red virtual, que nos ayudaría tener mayor seguridad para las MV. Para poder tener este tipo de configuración es necesario instalar el siguiente paquete.
lucifer:~# apt-get install uml-utilities
En este tipo de caso la máquina física toma la petición de algún servicio, la analiza y si se cuenta con el acceso a este mismo de una MV sera permitido conectarse de lo contrario la petición sera denegada, todas estas solicitudes serán analizadas por medio de un firewall.
Configuraron modo NAT
Para poder configurar este tipo de red, primero tendremos que checar que tipo de redes tenemos habilitadas dentro de nuestro KVM, para eso ejecutaremos el siguiente comando.
lucifer:~# virsh net-list --all
Name State Autostart
-----------------------------------------
En nuestro caso no tenemos configurada ninguna red dentro de KVM, por lo cual procederemos a crear nuestra red virtual. Por default KVM ya tiene configurado una red virtual controlada por un servidor DHCP integrado en KVM. Definimos nuestra red virtual que utilizara kvm.
Lucifer:~# virsh net-define /etc/libvirt/qemu/networks/default.xml
Network default defined from /etc/libvirt/qemu/networks/default.xml
Indicamos que cada vez que se inicie el sistema KVM levantara la red virtual.
Lucifer:~# virsh net-autostart default
Network default marked as autostarted
Iniciamos la red virtual.
lucifer:~# virsh net-start default
Network default started
Como va ser una configuración tipo NAT, es conveniente habilitar el reenvío de paquetes a la red virtual. Para esto editamos el archivo de configuración sysctl.conf.
lucifer:~# vim /etc/sysctl.conf
Buscamos el parámetro net.ipv4.ip_forward y lo modificamos.
net.ipv4.ip_forward = 0
por
net.ipv4.ip_forward = 1
Con esto ya tendremos configurada nuestra red virtual.
Configuración de Dnsmasq
Dnsmasq es un servidor que tiene agregado los servicios de DNS/DHCP, por lo cual puede resolver los nombres tus equipo, como también puede ser un servidor DNS Cache el cual almacenara las IP consultadas, con esto hacemos que sea mas rápido el acceso a internet. Lo que vamos hacer es permitir la resoluciones de dominios de las MV dentro de la red virtual. Para esto editaremos el archivo de configuración dnsmasq.conf.
lucifer:~# vim /etc/dnsmasq.conf
Modificaremos el parámetro listen-address, para indicarle en donde se encuentra escuchando el servicio.
listen-address=eth0
por
listen-address=127.0.0.1
Habilitaremos el parámetro bind-interfaces, obliga a escuchar en la tarjeta o la IP especificada.
#bind-interfaces
por
bind-interfaces
Reiniciamos el servicio.
lucifer:~# /etc/init.d/dnsmasq restart
Configuración de interfaces de red
También tendremos que configurar nuestra tarjeta de red vlan0, la cual se encargara del controlar la red virtual para eso tenemos que agregarla dentro del fichero interfaces.
lucifer:~# vim /etc/network/interfaces
Se recomienda que la tarjeta de red física siempre tenga una IP estática.
allow-hotplug eth0
iface eth0 inet dhcp
por
auto eth0
iface eth0 inet static
address 192.168.1.248
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
Agregaremos la configuración de la interfaz vlan0, encargada de la red virtual.
auto virbr0
iface virbr0 inet static
address 192.168.122.1
netmask 255.255.255.0
network 192.168.122.0
broadcast 192.168.122.255
Reiniciamos el servicio de red.
lucifer:~# /etc/init.d/networking restart
Para comprobar que nuestra configuración quedo realizada ejecutamos el comando ifconfig, para que nos muestre las interfaces de red que tiene nuestro sistema.
lucifer:~# ifconfig
eth0 Link encap:Ethernet HWaddr 00:08:54:b2:d9:74
inet addr:192.168.1.248 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::208:54ff:feb2:d974/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:17905 errors:0 dropped:0 overruns:0 frame:0
TX packets:3638 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2470005 (2.3 MiB) TX bytes:978871 (955.9 KiB)
Interrupt:20 Base address:0xa000
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:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:280 (280.0 B) TX bytes:280 (280.0 B)
virbr0 Link encap:Ethernet HWaddr 00:ff:20:05:7a:85
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
inet6 addr: fe80::502d:d9ff:fe75:474/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:107 errors:0 dropped:0 overruns:0 frame:0
TX packets:120 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9675 (9.4 KiB) TX bytes:9928 (9.6 KiB)
vnet0 Link encap:Ethernet HWaddr 00:ff:20:05:7a:85
inet6 addr: fe80::2ff:20ff:fe05:7a85/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:54 errors:0 dropped:0 overruns:0 frame:0
TX packets:4294 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:6108 (5.9 KiB) TX bytes:225566 (220.2 KiB)
Con este tipo de configuración deben aparecer 4 interfaces de red:
- interfaz lo: como interfaz loopback o local.
- interfaz eth0: configuración en modo puente.
- Interfaz virbr0: conexión a la red virtual.
- Interfaz vnet#: esta interfaz sera levantada cada ves que una MV se conecta a la red virtual.
Configuración del firewall
Debemos crear las reglas de iptables para poder permitir el acceso a los servicios que tienen alojados las MV, pero desde la IP física con el manejo de puertos. Ejemplos Todas la peticiones hacia el puerto 80 de la red local, redirigirlas hacia la red virtual con la MV con IP 192.168.122.10 al puerto 80.
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 80 -j DNAT --to 192.168.122.10:80
Todas la peticiones hacia el puerto 59345 de la red local, redirigirlas hacia la red virtual con la MV con IP 192.168.122.20 al puerto 22.
iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 59345 -j DNAT --to 192.168.122.20:22
Esta la configuración de KVM en modo NAT, en este diagrama se tienen varios servicios como 2 Servidores Apache, 1 FTP y conexión remota vía ssh a los 3 servidores virtuales.
Toda la peticiones serán analizadas en el servidor por el firewall, si una petición es verdadera entonces la redireccionara dentro de la red virtual hacia la MV que esta ofreciendo el servicio, de lo contrario denegara la petición.
Administración vía consola
La administración de Máquinas Virtuales, es muy importante dentro KVM, ya por medio de esta nosotros podremos:
| Instalar MV. |
Eliminar MV. |
Estado MV. |
| Características. |
Modificar recursos. |
Configuración de red. |
Para esto ocuparemos la herramienta virsh, esta herramienta funciona bajo la librería libvirt y funciona de modo de solo lectura para el usuario con permisos al grupo libvirt y el usuario administrador es el único que puede modificar los datos. Nos conectaremos de la siguiente manera:
administrador@hades:~$ virsh -c qemu:///system
Welcome to virsh, the virtualization interactive terminal.
Type: 'help' for help with commands
'quit' to quit
virsh #
Tendremos la habilidad de tener un interprete de comandos internos de la herramienta virsh, con los cuales administraremos las MV.
Instalación VM vía comandos
Para poder hacer la instalación desde consola de una MV, tendremos que ejecutar el comando virt-install.
virt-install [conexión][opciones]
En tipo de conexión siempre va hacer –connect qemu:/system y en opciones podremos poner los siguientes parámetros:
| Parámetro |
Descripción |
| -n |
Nombre la máquina virtual. |
| -r |
Memoria RAM virtual. |
| -f |
Ruta del Disco Duro Virtual. |
| -s |
Tamaño del disco duro |
| -c |
Unidad DVD/CDRom o imagen ISO. |
| -l |
Indicamos si la instalación va hacer vía red por medio de http, ftp o nfs. |
| –network=br0 |
Modo de conexión a la red física en puente. |
| -w network=default |
Modo de conexión a la red virtual en NAT. |
| -vcpus |
Numero de CPU virtuales. |
| –vnc |
Conexión tipo VNC. |
Ejemplos:
virt-install --connect qemu:///system -n Centos-db -r 512 -f /vm/centos-db.img
-s 20 -c CentOS-5.3-i386-bin-DVD.iso --network=br0
virt-install --connect qemu:///system -n mantis -r 512 -f /vm/mantis.img -s 20
-l [http://192.168.1.109/isos/centos] -w network=default
Con esto nos desplegara la pantalla de instalación de S.O a instalar, la instalación depende de cada S.O
Visualizar una MV
Cuando hayamos terminado de instalar o ya tengamos instalada una máquina virtual y queremos visualizar que esta pasando en un modo gráfico para esto nos sirve la herramienta virt-viewer, ver figura 2.1.
administrador@lucifer:~$ virt-viewer -c qemu:///system belzebu
Conectarse al hypervisor
Para poder conectarse al hypervisor para poder ejecutar comandos de administración en consola.
administrador@lucifer:~$ virsh -c qemu:///system
Listar Máquinas Virtuales
Para poder listar las máquinas virtuales que están encendidas.
virsh # list
Id Name State
----------------------------------
1 ascariote running
Podemos ver todas las máquinas de la siguiente manera:
virsh # list --all
Id Name State
----------------------------------
1 ascariote running
- belzebu shut off
Iniciado automáticamente de MV
Cuando nuestro sistema tienen un apagado físico y queremos que nuestras máquinas virtuales se enciendan automáticamente, tenemos que hacer lo siguiente:
virsh # autostart belzebu
Domain belzebu marked as autostarted
Si ya teníamos a nuestra máquina virtual en encendido automático y lo queremos desactivar.
virsh # autostart --disable ascariote
Domain ascariote unmarked as autostarted
Iniciando Máquina Virtual
Cuando nuestra máquina virtual le indicamos que no inicie en automático, entonces haremos un encendido manual de la máquina virtual.
virsh # start ascariote
Domain ascariote started
Suspender Máquina Virtual
También podemos suspender una máquina virtual, es como si pusiéramos en pausa la máquina virtual.
virsh # suspend belzebu
Domain belzebu suspended
Reanudar Máquina Virtual
Para poder reanudar una máquina virtual suspendida solamente tendremos que hacer lo siguiente:
virsh # resume belzebu
Domain belzebu resumed
Apagar Máquina Virtual
Apagar una máquina solamente tenemos que hacer lo siguiente:
virsh # shutdown belzebu
Domain belzebu is being shutdown
Reiniciar Máquina Virtual.
Reiniciar máquinas virtuales es de la siguiente manera:
virsh # reboot minos
Domain minos is being reboot
Matar Máquina Virtual
En caso de que nuestra máquina virtual no pueda apagarse, apagar o el sistema operativo este congelado.
virsh # destroy thanatos
Domain thanatos destroyed
Con esto obtendremos la información de la máquina virtual, como nombre, estado,CPU, Memoria ,etc.
virsh # dominfo minos
Estado de las máquinas virtuales
Por este comando sabremos el estado de la maquina, encendido, apagado, pausado, etc.
virsh # domstate belzebu
Muestra información relacionada de la máquina física, como del CPU, memoria.
virsh # nodeinfo
Capacidad de la Máquina física
Muestra la capacidad de las plataforma en KVM.
virsh # capabilities
Ver cuantos CPU virtuales tiene la máquina virtual.
virsh # vcpuinfo hypnos
Podemos editar la información de la máquina virtual de la siguiente manera.
virsh # edit hypnos
Memoria de intercambio de CPUS
Esta opción solamente nos funciona cuando tenemos de dos a mas procesadores ya que verifica la memoria que se esta ocupando entre la comunicación en los CPU.
virsh # freecell
Nombre la máquina física
Saber el nombre o como se llama la máquina física que aloja el servicio de KVM.
virsh # hostname
Consola de Máquina virtual
Dispositivo físico de salida para la consola tty en máquinas virtuales.
virsh # ttyconsole belzebu
Redes virtuales configuradas.
Veremos las redes virtuales configuradas en KVM
virsh # net-list
Información sobre la configuración y propiedades de una red virtual.
virsh # net-dumpxml default
Crea y inicia red virtual
Para poder crear una red virtual, se debe generar un archivo en formato xml y se recomienda que este almacenado en /etc/libvirt/qemu/networks y debe contener la siguiente información.
<network>
<name>factor</name>
<uuid>6cbbd170-c641-8d6c-ae79-6791b3288426</uuid>
<forward mode='nat'/>
<bridge name='virbr1' stp='on' forwardDelay='0' />
<ip address='192.168.200.1' netmask='255.255.255.0'>
<dhcp>
<range start='192.168.200.100' end='192.168.200.200' />
</dhcp>
</ip>
</network>
Ya creado el archivo solamente tenemos que ejecutar el siguiente desde la consola de virsh e indicando la ruta del archivo de configuración de la nueva red virtual.
virsh # net-create /etc/libvirt/qemu/networks/factor.xml
Crear red virtual
Crea una red virtual pero no la inicia, solamente se define dentro de KVM.
virsh # net-define /etc/libvirt/qemu/networks/linuxparatodos.xml
Iniciar red virtual.
Iniciando una red virtual.
virsh # net-start linuxparatodos
Iniciar automáticamente red virtual
Iniciar automáticamente una red virtual cuando la máquina física tenga un encendido.
virsh # net-autostart factor
Editar una red virtual
Desde la consola de virsh, podemos editar el archivo de configuración de una red virtual.
virsh # net-edit factor
Destruir una red virtual
Esta opción nos permite detener y destruir una red virtual.
virsh # net-destroy factor
Listar volúmenes de almacenamiento
Veremos en donde se encuentran almacenados los disco duros virtuales.
virsh # pool-list
Capacidad del volumen fisico
En nuestro caso el volumen vm es un partición por lo cual nos mostrara la información del tamaño de la partición, lo ocupado y disponible que tenemos en la misma.
virsh # pool-info vm
Editar del volumen fisico
Tenemos la propiedad de editar el volumen.
virsh # pool-edit vm
Lista del volúmenes virtuales
Listara todos los discos duros virtuales.
virsh # vol-list vm
Capacidad de volumen virtual
Muestra la capacidad del disco duro virtual, como espacio ocupado y libre.
virsh # vol-info /vm/mantis.img
Ayuda en linea
Cuando tenemos dudas sobre algún comando que están dentro de la herramienta virsh, solamente ejecutamos el comando help seguido del comando que tenemos duda.
virsh # help vol-list
Salir del administrador
Para poder salir del administrador de máquinas virtual, solamente tecleamos.
virsh # quit
Guardar el estado actual de una máquina virtual
virsh # save factor factor20120509.state
Restaurar una máquina virtual desde un estado previo
virsh # restore factor20120509.state
Administración Gráfica
La instalación de la Máquinas virtuales dentro de KVM, existen dos métodos por el cual lo podemos realizar.
- virt-manager: Que es una herramienta en modo gráfico que nos permite instalar la máquinas virtuales.
- virt-install: Este método es por medio de comando desde una terminal o interprete de comandos.
Estas 2 herramientas vienen dentro del paquete virt-manager, por lo cual procederemos a su instalación.
hades:~# apt-get install virt-manager
Terminada la instalación reiniciamos el servicio libvirt.
/etc/init.d/libvirt-bin restart
Con esto ya podremos instalar las máquinas virtuales.
Virt-Manager
Esta herramienta nos permitirá realizar las siguientes características:
- Instalación de Máquinas Virtual.
- Administración de la máquinas.
- Recursos de las máquinas virtuales “memoria,cantidad de procesadores virtuales, entre otros dispositivos de los mismos”.
- Uso de CPU, Memoria de la máquina física.
- Termine iniciar, pausar, reiniciar, apagar y forzar el apagado sencillamente.
- Permite ver el estado actual de las máquinas virtuales. Numero de proceso, Estado “Ejecutándose o Callar”, uso de CPU, procesadores virtuales y cantidad de memoria ocupada.
- Borrado de las máquinas virtuales.
- Configuración del almacenaje de los discos duros de las máquinas virtuales.
- Configuración de red interna por medio de DHCP.
- Tiempo de refresco de la información.
Instalando VM con Virt-Manager
Para poder ocupar la herramienta tendremos que ir al Menú Aplicaciones —> Administración —> Administración de máquinas virtuales Con esto nos abrirá la aplicación y nos mostrara en pantalla la palabra localhost, ver figura 4.1, el localhost es la máquina física, en la cual es la que esta alojando a la máquinas virtuales.
Para poder conectarnos a KVM tendremos que dar click derecho sobre localhost y nos permitirá conectarnos al dominio 0. Con esto podremos crear las máquinas virtuales, tendremos que dar click sobre el botón de Nuevo para iniciar el asistente de instalación.
Dentro del asistente nos preguntara los siguientes requisitos que necesita para la instalación de la máquina virtual:
- Nombre de la MV.
- Virtualización completa o Paravirtualización.
- Método de instalación.
- Ruta del Disco Duro virtual.
- Memoria y CPU.
- Configuración de la red virtual.
Primero nos pregunta el nombre de la máquina virtual. Esto nos sirve para tener un control de las máquinas virtuales ya que la administración de ellas, es por el nombre o ID. Con esto KVM puede iniciar, apagar, reiniciar, pausar en la máquinas virtuales. También por el nombre es controlado la administración de recursos como memoria, cpu, etc. Y su estado actual de la máquina virtual.
En el método de virtualización solamente tenemos dos opciones:
- Paravirtualización.
- Completamente virtual izado.
Podemos seleccionar la arquitectura del procesador de los cuales tenemos disponibles:
| 686 |
mips |
sparc |
| X86_64 |
mipsel |
ppc |
Método de hipervisor lo tenemos a qemu.
Tenemos a disposición varios métodos de instalación como:
- Imagen ISO o DVD/CDRom.
- Vía red por medio de HTTP, FTP o NFS.
- Booteo por medio de red PXE.
Nos permite seleccionar que sistema operativo se va a instalar:
| Linux |
Windows |
Genérico |
Unix |
Otros |
También nos pregunta que versión del sistema operativo deseamos instalar o su distribución que esta por instalar.
Ubicando el medio óptico para la instalación, en nuestro caso tenemos la imagen iso de la distribución de debian y en su caso contáramos con algún dispositivo DVD/CDRom podremos utilizarlo sin ningún problema. Este pantalla puede ser diferente dependiendo del método de instalación.
Asignación de espacio para la máquina virtual, tenemos dos opciones:
- Una partición del disco duro físico.
- Un archivo simple.
Indicamos la ruta en donde se encuentra el disco duro virtual para la instalación. Siempre se ha utilizado la opción de archivo simple para generar un disco duro es de la siguiente manera:
Con esto estamos creando un disco duro de 20 GB.Configuración de la red de las máquinas virtuales, tenemos la opciones de:
- Red virtual: Este método nos sirve si tenemos una vlan en modo route o nat.
- Dispositivo físico compartido: Este método nos permite conectarnos a nuestra red local de nuestra oficina o casa.
- Configuración por medio de MAC: Con esto ya tendremos configurado el método de red de las máquinas virtuales.
Configuramos la memoria virtual que tendrán la máquina virtual por default tenemos 512 MB y nos marca que tenemos un limite de 1.48 GB en memoria virtual para la máquina virtual. Podemos asignarle cuantos CPU virtuales puede tener nuestra máquina virtual, por default siempre es uno y tenemos en nuestro caso un máximo de 16 procesadores virtuales.
Este seria el ultimo paso y este nos genera un resumen total de toda la información solicitada por virt-manager para poder iniciar la instalación de la máquina virtual. Muestra las siguientes características:
| Nombre de la MV. |
Cantidad de CPU. |
| Método de virtualización. |
Sistema operativo y versión. |
| Memoria inicial y máxima. |
Ruta del disco duro virtual y tamaño. |
| Tipo de conexión red |
Sin sonido. |
Con todos estos pasos ya instalación comenzara sin ningún inconveniente.
Estado de las MV
Al abrir la aplicación de virt-manager, nos mostrara las MV que tenemos ya instaladas y configuradas. Pero con esta herramienta nos informa del estado actual de nuestra MV y sus características:
| Nombre de la MV |
Numero Identificador MV |
Ejecutando o apagado |
| Uso de CPU |
Cuantos VCPUS |
Uso de memoria |
Nos muestra información en tiempo real de lo que esta pasando en las MV. Pero también nos muestra la información de la máquina física, comúnmente llamada localhost.
Administración de MV
La administración de las MV por medio de la herramienta de virt-manager, no simplifica la manera de:
| Iniciar |
Apagar |
MatarPausar |
Reiniciar |
Nuestras MV instaladas dentro del servidor, por cual solamente tendremos que seleccionar la MV y dar click con el botón derecho y nos aparecerán todas las opciones anteriormente comentas. Con esto nosotros podemos iniciar, apagar, reiniciar, etc una MV con un simple click de ratón.
Propiedades de las MV
Para poder las propiedades de las MV virtuales tendremos que seleccionar la MV y dar en botón de abrir, mostrara una nueva pantalla con la información mas relevante del sistema.Obtendremos las siguientes características:
- Conexión a la consola o al ambiente gráfico del S.O.
- Repaso, encontraremos la información actual de la cantidad usada en CPU y Memoria.
- Hardware, tendremos toda la información del hardware de la MV.
- Tenemos las opciones de apagar, reiniciar, pausar, matar, etc.
- Podremos tomar fotos de la MV.
- Vista completa o escalada
- Entre mas opciones.
Configuraciones Máquina Física
Como obtener información y configuraciones de la máquina física, ya que es muy importante saber como se encuentra.. Para obtener esta información tendremos que ir al menú de editar —> Editar —> Connection Details, nos desplegara una pantalla con 3 pestañas:
- Repaso.
- Redes Virtuales.
- Grupos de Almacenaje.
Repaso
Esto mostrara el estado actual de nuestra información de la máquina física.
| Nombre la máquina física |
Cantidad de memoria física y ocupada |
Tipo de procesador físico y su estado |
Redes Virtuales
En este apartado nosotros podremos configurar nuestra red interna que tendrán nuestra MV, ya que el mismo KVM tiene por default integrado un servidor DHCP. Esta configuración nos permitirá tener una red del tipo NAT dentro del mismo KVM para las MV.
Grupos de Almacenaje
Esta ultima pestaña nos muestra la información en donde se encuentran los discos duros virtuales y la capacidad física de la misma como su porcentaje de utilizado. Para los discos duros virtuales nos mostrara:
- Nombre del disco duro virtual.
- Tamaño del disco duro virtual
- Ruta en donde se encuentran alojados los discos duros virtuales.