Usando virtualizacion en Fedora
Fedora usa la familia de herramientas de libvirt como su solucion de virtualizacion. Por defecto libvirt en Fedora usara Qemu para ejecutar las instancias huespedes.
Para informacion sobre otras plataformas de virtualizacion, visita http://virt.kernelnewbies.org/TechComparison.
Qemu puede emular un sistema anfitrion mediante software, o con una CPU con soporte hardware (ver mas abajo) puede usar KVM para proveer una virutalizacion completa y rapida.
Otros productos de virtualizacion estan disponibles pero no estan cubiertos en esta guia.
Instalando y configurando Fedora para huespedes virtualizados
Esta seccion comprende la configuracion inicial de libvirt en tu sistema. Despues de completar satisfactoriamente esta seccion seraz capaz de crear sistemas operativos huespedes virtualizados.
Requerimientos del sistema
Los requerimientos del sistema habituales para Fedora son:
- Al menos 600MB de espacio en disco por huesped. Un sistema fedora minimo, solo con linea de comandos, necesita 600MB de almacenamiento. Una instalacion estandard de Fedora con escritorio requiere al menos 3GB de espacio.
- Al menos 256MB de RAM por huesped mas 256MB para el SO base. Al menos 756MB son recomendados para cada huesped que use un sistema operativo moderno. Una buena regla practica es pensar en cuanta memoria requeriria normalmente el sistema operativo y reservar esa cantidad para el huesped virtualizado.
KVM requiere una CPU con extensiones de virtualizacion, estas se pueden encontrar en la mayoria de las CPUs fabricadas en los ultimos anyos. Estas extensiones se denominan Intel VT o AMD-V. Para comprobar si tienes el soporte CPU adecuado, ejecuta el siguiente comando:
$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
Si NADA aparece por pantalla, tu sistema no soporta las extensiones relevantes. Todavia puedes usar QEMU/KVM, pero el emulador usara solo virtualizacion por software, lo cual es MUCHO, MUCHO mas lento.
Instalando el software de virtualizacion
Cuando instalamos Fedora, el software de virtualizacion puede ser instalado seleccionando Virtualizacion dentro de la opcion de Sistemas Base en el instalador.
Para instalaciones de Fedora existentes, QEMU, KVM, y otras herramientas de virtualizacion puede ser instaladas ejecutando el siguiente comando el cual instala el grupo de virtualizacion:
su -c "yum install @virtualization"
Esto instalara qemu-kvm
, python-virtinst
, qemu
, virt-manager
, virt-viewer
y todas las dependencias necesarias.
Por defecto, el servicio libvirtd se iniciara cada vez que el anfitrion se inicie, pero necesita ser iniciado manualmente despues de instalar el grupo mencionado anteriormente:
su -c "service libvirtd start"
Verifica que los modulos kvm del kernel se han cargado correctamente:
$ lsmod | grep kvm kvm kvm_intel
Si el comando no muestra kvm_intel o kvm_amd, KVM no esta correctamente configurado. Revisa Comprobando si un sistema admite KVM para consejos sobre la resolucion de problemas.
Configuracion de la red
Por defecto libvirt creara una red privada para nuestros huespedes en la maquina anfitrion. Esta red privada usara una subred 192.168.x.x y no sera directamente alcanzable desde la red en que la maquina anfitrion se encuentra, pero los huespedes virtuales pueden usar la maquina anfitrion como puerta de enlace y pueden conectar al exterior a traves de ella. Si necesita proveer servicios en sus anfitriones que sean alcanzables a traves de otras maquinas en la red del anfitrion puede usar reglas DNAT de iptables para el reenvio de puertos especificos, o puede configurar un entorno Bridged.
Vea pagina de libvirt sobre configuracion de redes para mas informacion en como configurar una red Bridged.
Creando un huesped Fedora
La instalacion de huespedes Fedora usando anaconda esta soportado. La instalacion puede ser iniciada en la linea de comandos via el programa virt-install
o usando el programa con interfaz grafica virt-manager
.
Creando un huesped con virt-install
virt-install
es una herramienta basada en la linea de comandos para crear huespedes virtualizados. Para iniciar el proceso de instalacion interactivo, ejecute el comando virt-install
con el parametro --prompt .
su -c "/usr/sbin/virt-install --prompt"
Las siguientes cuestiones para el nuevo huesped seran presentadas.
- Cual es el nombre de la maquina virtual? Esta es la etiqueta que identificara al SO huesped. Esta etiqueta es usada con los comandos
virsh
yvirt-manager
(Virtual Machine Manager). - Cuanta memoria RAM debe ser reservada (en megabytes)? Esta es la cantidad de memoria RAM para ser reservada para la instancia en megabytes (ejemplo, 256). Tenga en cuenta de que la instalacion con menos de 256 megabytes no esta recomendada.
- Donde ubicar el disco (path)? El path local y el nombre del fichero para servir como la imagen de disco para el huesped (ejemplo, /var/lib/libvirt/images/name.img). Este sera exportado como un disco completo al anfitrion. Lo mejor es especificar el directorio por defecto /var/lib/libvirt/images/ .
- Como de grande querria que fuera el disco (en gigabytes)? El tamaño del disco virtual para el huesped (solo aparece si el fichero especificado anteriormente no existe). 4.0 gigabytes es un tamaño razonable para una instalacion por defecto.
- Cual es la ubicacion del CDROM/ISO de instalacion o la URL? La ubicacion del arbol de instalacion de Fedora en el formato usado por anaconda. Localizaciones NFS, FTP, y HTTP son todas soportadas. Ejemplos:
nfs:my.nfs.server.com:/path/to/test2/tree/
http://my.http.server.com/path/to/tree/
ftp://my.ftp.server.com/path/to/tree
Estas opciones pueden ser usadas como opciones de linea de comandos, ejecuta virt-install --help
para los detalles.
virt-install
puede usar ficheros kickstart, por ejemplo:
virt-install -x ks=kickstart-file-name.ks
.
Si el entorno grafico esta habilitado, una ventana VNC se abrira y presentara el instalador grafico. Si el entorno grafico no esta habilitado, un instalador en formato texto aparecera. Procede con la instalacion de Fedora.
Creando un huesped con virt-manager
Inicie la interfaz grafica del "Virtual machine Manager" seleccionandola desde el menu "Aplicaciones-->Herramientas de sistema", o ejecutando el siguiente comando:
su -c "virt-manager"
Si encuentra algun error con el mensaje de "Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash", pruebe a ejecutar virt-manager
sin ser root (sin su -c
). La interfaz grafica pedira la contraseña de root.
- Abre una conexion al hypervisor seleccionando Fichero-->Agregar conexion...
- Selecciona "qemu" para KVM, o "Xen" para Xen.
- Selecciona "local" o selecciona un metodo para conectar el hypervisor remoto
- Despues de que la conexion se ha establecido, pulsa en el icono "nuevo" junto al hypervisor, o pulsa con el boton derecho sobre el hypervisor activo y selecciona "Nuevo" (Nota - El icono de "nuevo" va a ser mejorado para que sea mas facil de ver)
- Un asistente te presentara las mismas preguntas que aparecen con la utilidad de linea de comandos
virt-install
(ve las descripciones mas arriba). El asistente asume que una instalacion grafica es deseada y no muestra la opcion. - En la ultima pagina del asistente hay un boton "Finalizar". Cuando este es pulsado, el SO huesped es provisionado. Despues de unos momentos una ventana VNC deberia aparecer. Finaliza la instalacion como normalmente.
Gestion remota
Las siguientes opciones remotas estan disponibles:
- (La mas comoda) Si te conectas mediante SSH ,sin ser el usuario root, entonces las instrucciones de configuracion estan en: http://wiki.libvirt.org/page/SSHSetup
- Si te conectas mediante SSH mediante el usuario root, entonce crea las claves SSH, y usa
ssh-agent
yssh-add
antes de lanzarvirt-manager
. - Para usar TLS , instala un ceritificado local de autoridad y distribuye los certificados x509 a todos los servidores y clientes. Para informacion sobre como configurar esta opcion, consulta en http://wiki.libvirt.org/page/TLSSetup.
Administracion de sistemas huespedes
Cuando la instalacion del huesped este completa, este puede ser gestionada usando la interfaz grafica virt-manager
o mediante la linea de comandos usando virsh
.
Gestionando huespedes con virt-manager
Iniciq el "Virtual Machine Manager". "Virtual Machine Manager" se encuentra en el menu "Aplicaciones-->Herramientas de Sistema" menu, o ejecutq:
su -c "virt-manager"
{1} Si no es root, se le pedira que introduzca la clave de root. Elige Ejecutar sin privilegios
para operar en un modo solo lectura.
- Elige el anfitrion que desee gestionar y pulsa en "Conectar" en la ventana de dialogo "Abra Conexion".
- La lista de maquinas virtuales se mostrara en la ventana principal. Los huespedes que estan ejecutandose mostraran un icono ">". Los huespedes que no estan ejecutandose se mostraran difuminados.
- Para gestionar un huesped en particular, pulsa dos veces sobre el, o pulsa con el boton derecho y selecciona "Abrir".
- Una nueva ventana se abrira lo que permitira usar la consola, ver informacion sobre el hardware virtual e iniciar/parar/pausar el huesped.
Para mas informacion sobre virt-manager
consulta la pagina del proyecto
Los bugs en la herramienta virt-manager
deberan ser reportados en BugZilla seleccionado el componente 'virt-manager' .
Gestionando huespedes con virsh
La utilidad de linea de comandos virsh
te permite gestionar maquinas virtuales.
Los huespedes pueden ser gestionados mediante la linea de comandos mediante la utilidad virsh
. La utilidad virsh
esta construida alrededor de la API de gestion de libvirt:
virsh
tiene un conjunto de comandos estable cuya sintaxis y semantica son conservadas a lo largo de las actualizaciones subyacentes a la plataforma de virtualizacion.virsh
puede ser usado por un usuario sin privilegios para operaciones de solo lectura (ejemplo, listar dominios, listar estadisticas de dominios).virsh
puede gestionar dominios ejecutados bajo Xen, Qemu/KVM, esx u otros entornos sin diferencias apreciable para el usuario.
Para iniciar una maquina virtual:
su -c "virsh create <nombre de la maquina virtual>"
Para listar las maquinas virtuales que estan ejecutandose:
su -c "virsh list"
Para listar las maquinas virutales, se esten ejecutando o no:
su -c "virsh list --all"
Para apagar de modo seguro un huesped:
su -c "virsh shutdown <virtual machine (name | id | uuid)>"
Para apagar , sin modo seguro, un huesped:
su -c "virsh destroy <virtual machine (name | id | uuid)>"
Para grabar un copia de la maquina a un fichero:
su -c "virsh save <virtual machine (name | id | uuid)> <filename>"
Para restaurar una copia grabada anteriormente:
su -c "virsh restore <filename>"
Para exportar el fichero de configuracion de una maquina virtual:
su -c "virsh dumpxml <virtual machine (name | id | uuid)"
Para una lista completa de comandos disponibles para usar con virsh
:
su -c "virsh help"
O consulte la pagina del manual: man 1 virsh
Los bugs en la herramienta virsh
deben ser reportados en BugZilla usando el componente 'libvirt'.
Otras opciones de virtualizacion
QEMU/KVM sin Libvirt
QEMU/KVM puede ser invocado directamente sin libvirt, sin embargo no seras capaz de usar herramientas como virt-manager, virt-install, o virsh. QEMU simple (sin KVM) puede tambien virtualizar otras arquitecturas de procesador como ARM o PowerPC. Ver How to use qemu
Xen
Fedora puede funcionar como un huesped Xen, pero usar Fedora como un anfitrion Xen no esta actualmente soportado. Hay un repositorio experimental disponible en http://myoung.fedorapeople.org/dom0
OpenStack
OpenStack se compone de un número de servicios para el funcionamiento de las nubes IaaS. Ellos son los servicios Object Store (Swift), Compute (Nova) y Image (Glance) . Es una caracteristica de Fedora 16.
OpenNebula
OpenNebula es un kit de herramientas de código abierto para la virtualización del centro de datos.
oVirt
oVirt project es un proyecto de virtualización abierta que proporciona un sofisticado ,integral sistema de gestión de la virtualización de servidores con capacidades avanzadas para anfitriones e invitados, incluyendo alta disponibilidad, migración, administración de almacenamiento, programador de sistemas, y más
Resolucion de problemas, informar sobre bugs, y problemas conocides
Para una lista de problemas conocidos , asi como ayuda para la resolucion de problemas, por favor vea Como depurar problemas de virtualizacion