Virtualización. AdministraciónAvanzadadeSistemas JoséRamónMéndezReboredo



Documentos relacionados
Instalación de XEN Información de XEN Qué es XEN? Componentes de XEN:... 2

Maquinas virtuales Conceptos Básicos

Redes de Nueva Generación Área de Ingeniería Telemática. Virtualización

Virtualización en GNU/Linux

VIRTUALIZACIÓN DE SERVIDORES

Trabajo TICO Unidad 2: Sistemas Operativos. Guillermo Jarne Bueno.

- Qué es una Máquina Virtual?

Virtualización. Administración Avanzada de Sistemas Operativos. Eduardo Iniesta Soto

UT04 01 Máquinas virtuales (introducción)

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

Alta Disponibilidad y Virtualización con soluciones de bajo costo. Virtualización. Conceptos básicos

Guía de uso del Cloud Datacenter de acens

2. Antes de crear la maquina virtual, debemos tener en cuenta sus características.

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Sistemas Operativos. Curso 2013 Virtualización

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos

Software para virtualización

Cómo crear una máquina virtual?

Virtualización - Que es?

UNIVERSIDAD LUTERANA SALVADOREÑA FACULTAD DE CIENCIAS DEL HOMBRE Y LA NATURALEZA LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN

Módulos: Módulo 1. El núcleo de Linux - 5 Horas

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

II. HERRAMIENTAS DE VIRTUALIZACIÓN

Taller de Software Libre

IS23 Mantenimiento de Instalaciones Informáticas Práctica 6. Acceso remoto a ordenadores tipo PC

Soluciones de virtualización en sistemas Linux:

Análisis de aplicación: Virtual Machine Manager

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

Instalación del sistema operativo Microsoft Windows Server 2008 Standard Edition x86

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

MANUAL COPIAS DE SEGURIDAD

Informática 4º ESO Tema 1: Sistemas Informáticos. Sistemas Operativos (Parte 2)

Ficheros de configuración de Nagios (ejemplo con nrpe y snmp)

Una mirada práctica a los Micro-Kernels y los Virtual Machine Monitors François Armand, Michel Gien INFORMATICA III

Entorno ubicuo basado en virtualización para la docencia práctica. Entorno ubicuo basado en virtualización para la docencia práctica.

WINDOWS : TERMINAL SERVER

Tema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

LOS SERVIDORES VIRTU ALES

Almacenamiento virtual de sitios web HOSTS VIRTUALES

Notas para la instalación de un lector de tarjetas inteligentes.

Virtualización. Carlo López Armando Mejía Andrés Sánchez

IES Abyla. Departamento de Informática. Sistemas Operativos

Introducción a las redes de computadores

Symantec Backup Exec System Recovery 7.0 Server Edition. Recuperación de sistemas en cuestión de minutos, en lugar de en horas o días

Estructuras de Sistemas Operativos

Práctica 1 SISTEMAS OPERATIVOS. Introducción...

Virtualización. (y Software Libre) Lic. Marcelo Fernández - UNLuX. fernandezm@gmail.com -

Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX

UNIDAD DIDACTICA 13 INICIAR SESIÓN EN LINUX DE FORMA REMOTA

WINDOWS : COPIAS DE SEGURIDAD

Maquinas Virtuales - VirtualBox. Talleres ETSIIT Oficina de Software Libre Universidad de Granada José Antonio Serrano García

Actividad 2: Configurar e Instalar un Sistema Operativo virtual

Windows Server 2012: Infraestructura de Escritorio Virtual

Instalación de sistemas operativos Ubuntu.

Seguidamente se muestra una pantalla para seleccionar nuestra localización, y comprobamos que la hora y demás es correcto. Podemos hacerlo fácilmente

ANEXO III. Creación de plantillas e imagenes en CloudStack y subida de ficheros vhd e iso.

CONFIGURACIÓN DE LOS EQUIPOS PARA CONEXIÓN A LA RED INALÁMBRICA CON EL SISTEMA OPERATIVO LINUX

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

INTRODUCCION. Tema: Protocolo de la Capa de aplicación. FTP HTTP. Autor: Julio Cesar Morejon Rios

NOMBRE: Sánchez Sandoval Edgar Rafael GRUPO: 301 MATERIA: OPERAR EL EQUIPO DE COMPUTO PROFESOR: Joel rodríguez Sánchez FECHA DE CREACION: 24/09/2013

Instalación de Crystal Reports

Tipos de conexiones de red en software de virtualizacio n: VirtualBox y VMware

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Montando Web for Pentester en VirtualBox

Ubuntu Server HOW TO : SQUID. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar servidor proxi Squid.

Servicio de VPN de la Universidad de Salamanca

Iván Daniel Fiedoruk 12 de Marzo de 2013 Buenos Aires - Argentina

Manual de Usuario Servidor Cloud

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

CAPÍTULO 1 Instrumentación Virtual

Introducción a la Firma Electrónica en MIDAS

Instalación y uso de Check 2000 Client Server con ZENworks 2

Ingeniería de Software. Pruebas

Sugar en Windows. Creación de una máquina virtual con la imagen de Sugar. Autor. Versión Fecha Setiembre Ubicación

Instrucciones de instalación de IBM SPSS Modeler Server 16 para Windows

GlusterFS. Una visión rápida a uno de los más innovadores sistema de archivos distribuido

toda la potencia de un Dedicado con la flexibilidad del Cloud

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

Capítulo 5. Cliente-Servidor.

Virtualización. Esquemas populares

Creado dentro de la línea de sistemas operativos producida por Microsoft Corporation.

Trabajo TP6 Sistemas Legados

Implementación, aprovisionamiento y actualización de Windows Server con System Center

Conceptos Básicos de Software. Clase III

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.


Instrucciones de instalación de IBM SPSS Modeler (licencia de usuario autorizado)

Herramientas de. Sistemas Informáticos I.E.S. Virgen de la Paloma

CAPÍTULO 3: Resultados

VIRTUALBOX (MAQUINA VIRTUAL)

ANEXO 2. Manual de instalación y configuración del entorno Mininet. Sergio Rodríguez Santamaría

SISTEMAS OPERATIVOS. Instalación

e-commerce, es hacer comercio utilizando la red. Es el acto de comprar y vender en y por medio de la red.

CITRIX Citrix Application Streaming

Guía de instalación y configuración de IBM SPSS Modeler Social Network Analysis 16

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

Descripción. Este Software cumple los siguientes hitos:

Transcripción:

Virtualización Introducción Profundizando en la virtualización y las tecnologías Virtualización completa Virtualización con un host (anfitrión) Virtualización con hipervisor a nivel de kernel Paravirtualización Libvirt Configurar TLS para libvirt Virsh: gestión de los discos de las máquinas virtuales Virsh: gestión de dispositivos para las máquinas virtuales. Virsh: Dominios (máquinas virtuales) Virt Manager Virsh con otros hipervisores Ligbuestfs tools Otras aplicaciones concretas de virtualización Referencias 1

Introducción La tecnología de virtualización ha resultado popular durante la primera década del siglo XXI debido a que proporcionaba un mejor aprovechamiento de los enormes recursos que ha aportado el hardware durante esta época. No hay que olvidar que el siglo XX acabó con la popularidad de arquitecturas de hardware de gran rendimiento muy populares como SPARC (de Sun) o Alpha (de Digital) a la vez que la tecnología de Intel y AMD, que venía usando exclusivamente en entornos domésticos se empezó a usar cada vez más en entornos empresariales. La aparición de los servicios de VPS (y por supuesto Servidores dedicados) junto con los gastos que origina mantener infraestructura propia está acabando poco a poco con la popularidad de esta tecnología y con su aplicabilidad. No obstante, la virtualización es todavía útil en algunos entornos ya que en la actualidad se pueden crear máquinas virtuales en demanda y personalizar los servicios que se ofrecen en cada máquina virtual. Por ejemplo, sería posible (y posíblemente fácil) construir un entorno de máquinas virtuales para dar soporte a las distintas materias que se imparten en un centro Universitario. Ejercicio: Reflexionar cómo se organizaría la docencia de la Universidad con Virtualización. Actualmente la virtualización se realiza mediante distintos productos incluyendo: VMWare (en este texto se hará más énfasis en la plataforma ESXi o en productos más centrados en infraestructura y no en productos de escritorio) Xen Hipervisor (aunque a veces podemos encontrar soluciones a nivel de distribución entera como los productos de Citrix) VirtualBox (aunque típicamente es más empleado a nivel de escritorio) Quemu (muy empleado a nivel de escritorio y a menudo útil porque permite el trabajo con imágenes raw, más fáciles de gestionar y manejar) KVM Parallels Cada uno de los grupos que se ha mencionado antes en realidad no son productos sino hipervisores sobre los que se construyen productos que en algunos casos son soluciones de escritorio y en otros sistemas operativos enteros. Cada hipervisor (de los mencionados arriba) usa una técnica concreta para proporcionar la virtualización proporcionando distintos rendimientos (por ejemplo la paravirtualización que usa Xen). El problema principal de la existencia de todos estos hipervisores es el manejo de máquinas virtuales con distintas tecnologías y mediante una red TCP IP (Internet). La solución a estos problemas ha venido de la mano de libvirt, un toolkit (y librería) que permite la interacción con 2

máquinas virtuales e hipervisores de distintos fabricantes. Con mayor o menor rendimiento y con mayores o menores capacidades todos los hipervisores proporcionan la posibilidad de crear máquinas virtuales y configurar los mismos parámetros (discos, número de procesadores, interfaces de red ). Libvirt se aprovecha de estas características para permitir administrar e interactuar con distintos hipervisores en local o remoto. En este manual se enseñará a trabajar con las herramientas incluídas con libvirt y a manejar máquinas virtualizadas desde una perspectiva independiente del hipervisor. Profundizando en la virtualización y las tecnologías En este punto se mencionan varios conceptos y tecnologías de la virtualización los cuales serán aplicados a los hipervisores analizados: Virtualización completa En la virtualización completa, las instrucciones que no son críticas se ejecutan directamente en el hardware, mientras que las instrucciones críticas se descubren y reemplazan con intercepciones en el VMM para emularlas en software. Por qué solo las instrucciones críticas se interceptan en el VMM? Esto se debe a que la traducción binaria puede incurrir en una sobrecarga significativa en el rendimiento. Las instrucciones que no son críticas no controlan el hardware ni ponen en riesgo la seguridad del sistema, pero las instrucciones críticas sí lo hacen. Por lo tanto, al ejecutar las instrucciones que no son críticas en el hardware además de promover la eficiencia también protege el sistema. Esta opción la implementó VMware, VirtualBox y muchas otras empresas de software. El hipervisor examina el flujo de instrucciones e identifica las instrucciones privilegiadas críticas para el control y el comportamiento. Al identificar estas instrucciones, se interceptan en el hipervisor, que emula el comportamiento de estas instrucciones. El método que se emplea para la emulación se llama traducción binaria. Por lo tanto la virtualización completa combina la traducción binaria con la ejecución directa. El sistema operativo invitado está totalmente desacoplado del hardware subyacente. Por consiguiente, el sistema operativo invitado desconoce que fue virtualizado. Virtualización con un host (anfitrión) Una arquitectura para implementar la virtualización es instalar una capa de virtualización encima del sistema operativo host. Este sistema operativo host es responsable de administrar el hardware. Los sistemas operativos invitados se instalan encima del nivel de virtualización. Es posible ejecutar aplicaciones especializadas en las máquinas virtuales. También existen otras aplicaciones que se pueden ejecutar directamente con el sistema operativo host. 3

Esta arquitectura con un host tiene algunas ventajas marcadas. Primero, el usuario puede instalar esta arquitectura de máquina virtual sin modificar el sistema operativo host. El software de virtualización puede descansar en el sistema operativo host para entregar los controladores de dispositivos y otros servicios de bajo nivel. Esto simplifica el diseño de la máquina virtual y facilita la implementación. Segundo, el método con un host es atractivo para muchas configuraciones de máquinas host. Comparado con la arquitectura de hypervisor a nivel de kernel, el rendimiento de la arquitectura con un host también puede ser bajo. Cuando una aplicación solicita acceso al hardware involucra cuatro niveles de asignación, lo que reduce el rendimiento significativamente. Cuando el Internet Security and Acceleration (ISA) de un sistema operativo invitado es diferente del ISA del hardware subyacente hay que realizar una traducción binaria. Aunque la arquitectura con un host es flexible, el rendimiento es demasiado lento para poder usarlo en la práctica. Soluciones como VMWare, Parallels, Qemu o Virtualbox son soluciones con host. Virtualización con hipervisor a nivel de kernel El hipervisor permite la virtualización en el nivel de hardware en dispositivos sin sistema operativo, como CPU, memoria e interfaces de red. El software del hipervisor se ubica directamente entre el hardware físico y el sistema operativo. El hipervisor proporciona hiperllamadas para los sistemas operativos y las aplicaciones invitadas. Los hipervisores pueden adoptar una arquitectura de micronúcleo, como en el ejemplo de Microsoft Hyper V o Xen. También pueden tener una arquitectura monolítica, como por ejemplo VMware ESX para la virtualización de servidores. Un hipervisor de micronúcleo solo incluye las funciones básicas e inmutables (como la administración de la memoria física y la programación de los procesadores). Los controladores de los dispositivos y los otros componentes mutables se encuentran fuera del hipervisor. Los hipervisores monolíticos implementan todas las funciones mencionadas, entre ellos los controladores de los dispositivos. Por lo tanto, el tamaño del código del hipervisor es menor con un micronúcleo que en el caso monolítico. En esencia, el hipervisor debe ser capaz de convertir los dispositivos físicos en recursos virtuales disponibles para el uso de las máquinas virtuales. Paravirtualización La paravirtualización tiene que modificar el sistema operativo invitado. Una máquina virtual paravirtualizada proporciona API especiales que requieren de modificaciones considerables en las aplicaciones de usuario. La degradación del rendimiento es un problema fundamental de los sistemas virtualizados. Nadie quiere usar una máquina virtual que sea mucho más lenta que la 4

máquina física. El nivel de virtualización se puede insertar en diferentes lugares de la pila de software de la máquina. Pero la paravirtualización intenta reducir la sobrecarga de la virtualización y mejorar el rendimiento al modificar solo el núcleo del sistema operativo invitado. Al paravirtualizar los sistemas operativos invitados, reciben ayuda de un compilador inteligente que reemplaza las instrucciones del sistema operativo que no se pueden virtualizar con hiperllamadas. El procesador x86 tradicional ofrece cuatro anillos de ejecución de instrucciones: Los Anillos 0, 1, 2 y 3. Cuanto menor el número del anillo, mayor el privilegio de la instrucción que se ejecuta. El sistema operativo es el responsable de administrar el hardware y las instrucciones privilegiadas que se ejecutan en el Anillo 0, mientras que las aplicaciones de usuario se ejecutan en el Anillo 3. El mejor ejemplo de la paravirtualización es Kernel based Virtual Machine (KVM). Al virtualizar el procesador x86 se inserta un nivel de virtualización entre el hardware y el sistema operativo. De acuerdo con la definición de los anillos de x86, el nivel de virtualización también se debiera instalar en el Anillo 0. Diferentes instrucciones en el Anillo 0 podrían causar algunos problemas. Pero cuando el núcleo del sistema operativo invitado se modifica para la virtualización ya no se puede ejecutar directamente en el hardware. Aunque la paravirtualización reduce la sobrecarga, incurre en otros problemas. Primero, la compatibilidad y portabilidad se ponen en duda, ya que también tiene que funcionar con un sistema operativo que no ha sido modificado. Segundo, el costo de mantención de los sistemas operativos paravirtualizados es elevado, debido a que pueden requerir de cambios profundos en el núcleo del sistema operativo. Finalmente, la ventajas de la paravirtualización en el rendimiento varían considerablemente debido a las variaciones en las cargas de trabajo. Comparada con la virtualización completa, la paravirtualización es relativamente fácil y más práctica. El problema principal de la virtualización completa es el rendimiento bajo de la traducción binaria. Es difícil acelerar la traducción binaria. Es por eso que muchos productos de virtualización tienen una arquitectura de paravirtualización. Los productos populares Xen, KVM y VMware ESX son buenos ejemplos de esto. KVM es una herramienta de paravirtualización asistida por hardware que mejora el rendimiento y funciona con sistemas operativos sin modificar como Windows, Linux, Solaris y otras variantes de Unix gracias a las instrucciones de virtualización incluídas en los nuevos procesadores X86. Este es un sistema de paravirtualización de Linux; forma parte de la versión 2.6.20 del núcleo de Linux. El núcleo existente de Linux lleva a cabo la administración de la memoria y las actividades de programación. KVM se encarga del resto, lo que lo hace más sencillo que el hipervisor, que controla toda la máquina. 5

A diferencia de la arquitectura de virtualización completa que intercepta y emula las instrucciones privilegiadas y confidenciales en tiempo de ejecución, la paravirtualización se encarga de estas instrucciones en tiempo de compilación. El núcleo del sistema operativo invitado se modifica para reemplazar las instrucciones privilegiadas y confidenciales con hiperllamadas al hipervisor. Xen es un ejemplo de esta arquitectura paravirtualizada. Las instrucciones privilegiadas se implementan con hiperllamadas al hipervisor. Después de reemplazar las instrucciones con las hiperllamadas, el sistema operativo modificado emula el comportamiento del sistema operativo invitado original. En los sistemas Unix, las llamadas al sistema implican una interrupción o rutina de servicio. Las hiperllamadas aplican una rutina de servicio dedicada en Xen. Libvirt Libvirt es una librería y a la vez toolkit que permite el manejo sencillo de máquinas virtuales con distintos hipervisores y en distintos equipos. Inicialmente instalaremos libvirt, las utilidades para construir puentes de red (y así proveer de interfaces para las máquinas virtuales), y un visor de máquinas virtuales basado en VNC. Además se instalará kvm que es uno de los hipervisores más ligeros (al menos en cuanto a espacio usado). Para ello se empleará el siguiente comando: $sudoapt-getinstallkvmlibvirt-binbridge-utilsvirt-viewer [sudo]passwordformoncho: LeyendolistadepaquetesHecho Creandoárboldedependencias LeyendolainformacióndeestadoHecho Elpaqueteindicadoacontinuaciónseinstalódeformaautomáticayyanoesnecesarios. nvidia-settings-updates Utilice«apt-getautoremove»paraeliminarlos. Seinstalaránlossiguientespaquetesextras: cgroup-liteebtableskvm-ipxelibaio1libnuma1librados2librbd1libvirt0 libxenstore3.0qemu-commonqemu-kvmqemu-utilsseabiosvgabios Paquetessugeridos: radvdlvm2mol-drivers-macosxopenbios-sparcubuntu-vm-builderuml-utilities SeinstalaránlossiguientespaquetesNUEVOS: bridge-utilscgroup-liteebtableskvmkvm-ipxelibaio1libnuma1librados2 librbd1libvirt-binlibvirt0libxenstore3.0qemu-commonqemu-kvmqemu-utils seabiosvgabiosvirt-viewer 0actualizados,18seinstalarán,0paraeliminary0noactualizados. Necesitodescargar7.853kBdearchivos. Seutilizarán23,6MBdeespaciodediscoadicionaldespuésdeestaoperación. Deseacontinuar[S/n]?s Des:1http://es.archive.ubuntu.com/ubuntu/precise-updates/mainbridge-utilsi3861.5-2ubuntu7[32,0 Des:2http://es.archive.ubuntu.com/ubuntu/precise/mainlibaio1i3860.3.109-2ubuntu1[6.648B] Des:3http://es.archive.ubuntu.com/ubuntu/precise-updates/mainseabiosall0.6.2-0ubuntu2.1[70,5 Des:4http://es.archive.ubuntu.com/ubuntu/precise/mainvgabiosall0.6c-2ubuntu3[164 Des:5http://es.archive.ubuntu.com/ubuntu/precise-updates/mainqemu-commonall 1.0+noroms-0ubuntu14.11[22,2 6

Des:6http://es.archive.ubuntu.com/ubuntu/precise-updates/mainlibrados2i3860.41-1ubuntu2.1[817 Des:7http://es.archive.ubuntu.com/ubuntu/precise-updates/mainlibrbd1i3860.41-1ubuntu2.1[53,9 Des:8http://es.archive.ubuntu.com/ubuntu/precise-updates/mainqemu-utilsi386 1.0+noroms-0ubuntu14.11[383 Des:9http://es.archive.ubuntu.com/ubuntu/precise-updates/mainqemu-kvmi3861.0+noroms-0ubuntu14.11 [3.663 Des:10http://es.archive.ubuntu.com/ubuntu/precise/mainebtablesi3862.0.9.2-2ubuntu2[86,3 Des:11http://es.archive.ubuntu.com/ubuntu/precise-updates/mainkvmi386 1:84+dfsg-0ubuntu16+1.0+noroms+0ubuntu14.11[3.242B] Des:12http://es.archive.ubuntu.com/ubuntu/precise/mainkvm-ipxeall1.0.0+git-3.55f6c88-0ubuntu1 [327 Des:13http://es.archive.ubuntu.com/ubuntu/precise/mainlibnuma1i3862.0.8~rc3-1[23,5 Des:14http://es.archive.ubuntu.com/ubuntu/precise-updates/mainlibxenstore3.0i386 4.1.2-2ubuntu2.10[20,7 Des:15http://es.archive.ubuntu.com/ubuntu/precise-updates/mainlibvirt0i3860.9.8-2ubuntu17.13 [871 Des:16http://es.archive.ubuntu.com/ubuntu/precise-updates/maincgroup-liteall1.1.2[3.878B] Des:17http://es.archive.ubuntu.com/ubuntu/precise-updates/mainlibvirt-bini3860.9.8-2ubuntu17.13 [1.212 Des:18http://es.archive.ubuntu.com/ubuntu/precise/universevirt-vieweri3860.4.2-1[92,7 Descargados7.853kBen11seg.(698kB/s) Seleccionandopaquetebridge-utilspreviamentenoseleccionado (Leyendolabasededatos632755ficherosodirectoriosinstaladosactualmente.) Desempaquetandobridge-utils(de/bridge-utils_1.5-2ubuntu7_i386.deb) Seleccionandopaquetelibaio1previamentenoseleccionado Desempaquetandolibaio1(de/libaio1_0.3.109-2ubuntu1_i386.deb) Seleccionandopaqueteseabiospreviamentenoseleccionado Desempaquetandoseabios(de/seabios_0.6.2-0ubuntu2.1_all.deb) Seleccionandopaquetevgabiospreviamentenoseleccionado Desempaquetandovgabios(de/vgabios_0.6c-2ubuntu3_all.deb) Seleccionandopaqueteqemu-commonpreviamentenoseleccionado Desempaquetandoqemu-common(de/qemu-common_1.0+noroms-0ubuntu14.11_all.deb) Seleccionandopaquetelibrados2previamentenoseleccionado Desempaquetandolibrados2(de/librados2_0.41-1ubuntu2.1_i386.deb) Seleccionandopaquetelibrbd1previamentenoseleccionado Desempaquetandolibrbd1(de/librbd1_0.41-1ubuntu2.1_i386.deb) Seleccionandopaqueteqemu-utilspreviamentenoseleccionado Desempaquetandoqemu-utils(de/qemu-utils_1.0+noroms-0ubuntu14.11_i386.deb) Seleccionandopaqueteqemu-kvmpreviamentenoseleccionado Desempaquetandoqemu-kvm(de/qemu-kvm_1.0+noroms-0ubuntu14.11_i386.deb) Seleccionandopaqueteebtablespreviamentenoseleccionado Desempaquetandoebtables(de/ebtables_2.0.9.2-2ubuntu2_i386.deb) Seleccionandopaquetekvmpreviamentenoseleccionado Desempaquetandokvm(de/kvm_1%3a84+dfsg-0ubuntu16+1.0+noroms+0ubuntu14.11_i386.deb) Seleccionandopaquetekvm-ipxepreviamentenoseleccionado Desempaquetandokvm-ipxe(de/kvm-ipxe_1.0.0+git-3.55f6c88-0ubuntu1_all.deb) Seleccionandopaquetelibnuma1previamentenoseleccionado Desempaquetandolibnuma1(de/libnuma1_2.0.8~rc3-1_i386.deb) Seleccionandopaquetelibxenstore3.0previamentenoseleccionado Desempaquetandolibxenstore3.0(de/libxenstore3.0_4.1.2-2ubuntu2.10_i386.deb) Seleccionandopaquetelibvirt0previamentenoseleccionado Desempaquetandolibvirt0(de/libvirt0_0.9.8-2ubuntu17.13_i386.deb) Seleccionandopaquetecgroup-litepreviamentenoseleccionado Desempaquetandocgroup-lite(de/cgroup-lite_1.1.2_all.deb) Seleccionandopaquetelibvirt-binpreviamentenoseleccionado Desempaquetandolibvirt-bin(de/libvirt-bin_0.9.8-2ubuntu17.13_i386.deb) Seleccionandopaquetevirt-viewerpreviamentenoseleccionado Desempaquetandovirt-viewer(de/virt-viewer_0.4.2-1_i386.deb) Procesandodisparadoresparaman-db Procesandodisparadoresparaureadahead ureadaheadwillbereprofiledonnextreboot 7

Configurandobridge-utils(1.5-2ubuntu7) Configurandolibaio1(0.3.109-2ubuntu1) Configurandoseabios(0.6.2-0ubuntu2.1) Configurandovgabios(0.6c-2ubuntu3) Configurandoqemu-common(1.0+noroms-0ubuntu14.11) Configurandolibrados2(0.41-1ubuntu2.1) Configurandolibrbd1(0.41-1ubuntu2.1) Configurandoqemu-utils(1.0+noroms-0ubuntu14.11) Configurandoqemu-kvm(1.0+noroms-0ubuntu14.11) qemu-kvmstart/running Configurandoebtables(2.0.9.2-2ubuntu2) Configurandokvm(1:84+dfsg-0ubuntu16+1.0+noroms+0ubuntu14.11) Configurandokvm-ipxe(1.0.0+git-3.55f6c88-0ubuntu1) Configurandolibnuma1(2.0.8~rc3-1) Configurandolibxenstore3.0(4.1.2-2ubuntu2.10) Configurandolibvirt0(0.9.8-2ubuntu17.13) Configurandocgroup-lite(1.1.2) cgroup-litestart/running Configurandolibvirt-bin(0.9.8-2ubuntu17.13) Añadiendoelgrupo`libvirtd'(GID135) Hecho. libvirt-binstart/running,process3811 Settinguplibvirt-bindnsmasqconfiguration. Configurandovirt-viewer(0.4.2-1) Procesandodisparadoresparalibc-bin ldconfigdeferredprocessingnowtakingplace Una vez instalado el software necesario y con la finalidad de no usar sudo para todas las operaciones de virtualización, se añadirán los usuarios que deban poder realizar operaciones sobre los hipervisores al grupo libvirtd que se ha creado durante la instalación. Esta operación se hará mediante el siguiente comando: $sudousermod-a-glibvirtd<username> Al modificar grupos es necesario reiniciar bash para que se relean los permisos. Libvirt dispone de un demonio que permite la conexiones locales o remotas usando conexiones remotas TCP planas, conexiones remotas protegidas con SSL/TLS (opción por defecto), conexiones remotas protegidas con SSH y conexiones locales a través de sockets de UNIX (enttre otras). A mayores libvirt implementa el acceso para diversos hipervisores. Esta información (hipervisor y transporte) se configura mediante la URL. Ejemplos de URL de conexión son los siguientes: quemu+ssh://localhost/system#conexiónsshalhipervisorkvm(instanciadesistema) quemu+tls://localhost/system#igualquelasiguiente quemu://localhost/system # Conexión SSL/TLS al hipervisor KVM del equipo localhost (instancia de sistema) quemu:///system#conexiónlocalakvm(instanciadesistema) quemu:///session#conexiónlocalakvm(instanciadeusario) quemu+ssh://localhost/session#conexiónsshalhipervisorkvm(instanciadeusuario) vbox:///session#conexiónlocalavirtualbox(instanciadeusuario) Como se puede apreciar en la tabla anterior, el canal de comunicación usado por defecto es 8

SSL/TLS. A veces será necesario reiniciar el equipo después de la instalación de libvirt para que poder usar los comandos de conexión correctamente. El siguiente comando permite la interacción con un hipervisor, para listar, por ejemplo, las máquinas virtuales que se están ejecutando. $virsh-cqemu:///system WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-habn4n/pkcs11: No existe el archivo o el directorio Bienvenidoavirsh,laterminaldevirtualizacióninteractiva. Ingrese:'help'paraobtenerayudaconloscomandos 'quit'parasalir virsh#list IdNombre Estado ---------------------------------- virsh#quit Como se puede intuir, el comando virsh (incluído en libvirt) permitirá listar, arrancar, parar y reiniciar cualquier máquina virtual o dominio local o remoto. Sin embargo, antes de profundizar en la utilidad del comando virsh se debe configurar tls (que permitirá la interacción con las máquinas remotas) y aprender a crear máquinas virtuales. Configurar TLS para libvirt Cuando se intenta realizar una conesión a un equipo remoto, normalmente libvirt informa de que la configuración SSL/TLS no está configurada adecuadamente. $virsh-cqemu://localhost/system WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-habn4n/pkcs11: No existe el archivo o el directorio Error: No se puede leer CA certificate '/etc/pki/ca/cacert.pem': No existe el archivo o el directorio Error:Fallóalconectarconelhipervisor Como se puede ver no existen certificados para la autoridad certificadora (ni para los clientes). En los siguientes comandos se creará una Autoridad de Certificación completa y certificados para el cliente (en este caso libvirt). Para hacer este trabajo más sencillo se usará la herramienta certtool incluída en el paquete GnuTLS (https://help.ubuntu.com/community/gnutls) y se usarán los directorios por defecto de libvirt. $sudoapt-getinstallgnutls-bin LeyendolistadepaquetesHecho Creandoárboldedependencias LeyendolainformacióndeestadoHecho Elpaqueteindicadoacontinuaciónseinstalódeformaautomáticayyanoesnecesarios. nvidia-settings-updates Utilice«apt-getautoremove»paraeliminarlos. 9

SeinstalaránlossiguientespaquetesNUEVOS: gnutls-bin 0actualizados,1seinstalarán,0paraeliminary0noactualizados. Necesitodescargar186kBdearchivos. Seutilizarán706kBdeespaciodediscoadicionaldespuésdeestaoperación. Des:1 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main gnutls-bin i386 3.0.11+really2.12.14-5ubuntu3.4[186 Descargados186kBen0seg.(390kB/s) Seleccionandopaquetegnutls-binpreviamentenoseleccionado (Leyendolabasededatos633149ficherosodirectoriosinstaladosactualmente.) Desempaquetandognutls-bin(de/gnutls-bin_3.0.11+really2.12.14-5ubuntu3.4_i386.deb) Procesandodisparadoresparapython-central Procesandodisparadoresparaman-db Configurandognutls-bin(3.0.11+really2.12.14-5ubuntu3.4) $sudomkdir-p/etc/pki/ca $cd/etc/pki/ca $certtool--generate-privkey sudoteecakey.pem WARNING:gnome-keyring::couldn'tconnectto:/tmp/keyring-tAi1cH/pkcs11:Nosuchfileordirectory Generatinga2432bitRSAprivatekey -----BEGINRSAPRIVATEKEY----- MIIFegIBAAKCATEAp5vrcFqcryJgEbGz5v4+63j4tSqd7vDyDacQeK/Fr4bZrmkB l0xgifdldazawrmsxz+gljsr4+wugdi7m7tcpm074knrvtc+pi6ruhezhunfhlqq 5D7zHtMWbDHU4+fM/cUC/CZgQlL40tdn8tXBS14WjtLOFkiO5g+KfwRV2LDZ+QDZ JnYd3DmiLLTGSvoqH4ZMMhgMWgVxgBVh2rwhLi49/c9nuE4utDuxo+0PIMaj/NyR aa3da4mtyghh55inkwuy96hofx7tr2fwnp72pq1pa+mwcwcke/ydu0emyhhvwoso xvhuwe5rwxpiclg2ud8wh9zqtdov5t33hstl1692abj1vhwxb3ugugcbffovuq0p 3f0FI0LZjmwRnE/oIObyH23frbrhyCla40n5/wIDAQABAoIBMARIpOTTPAvx2fi5 zpplzzphdjvtigq4xkdhdle47lmfhc0qw+mnda6oohjyzvjtg2bctq1frejmyw3f WsoAhbJowk4EfzrHVa+JAfSYeUmB0NeombOJtFcGWB1dzK4if4fA4EmnhXBMhJWG 8d4v/me5uOPfmWrSYeyZWxXR+4u1QWzuy54DCNJXGsD/wc2qxSbXHN1u5enrDRq+ J6WRNYi4vKWWd+qhvf6EvDxF+b+XYsdQXZbjnXkWD87ryY/Pgdr49rRijpqycSAU Ad0S3C8dwL1qUg99fcML5PhGQzJOTqYXWTQ+h0VIT6gls3mwu50r4p/vYuduLh6M 981mEu68T0/WbQ1GZw1SMG9ieQvCUNiFK/M8l8tSv6MN77IbNqHPF/QFvo5zthK7 9I5JAqkCgZkAyRvepkRfCzCYkAw1DnBTsurfXAJxUG3Og6p2mauIkTA0eym6cUnc 75e9YBZ+jwMRUoRN6vwPTkGZ47BAKO1egACHu7BgklwQHrlf2kOTEwPaOuRtVkUL wckjmuau58qpx+hqiujba80vm0zxe/avlkqiajubwvexbvknzx8drnctq62trron aoe7zzzuizo1ji39+xzpjpscgzka1vtpr6cgklqmyggid1/ffr9ltoccshr1pgsv NXFyV5HBkw/QYJygiQo3AiD7qd8qNkT3aFL14hA/HyeHmVmdDqe762Xud5Xm3xsb id6oygk9sgs2zen6w8h47li1b9mhnz/pvxaugcqbs1o8rvpu3soqwquxmgaiabuk ujs6oa/itxljsdovugfoafoxqsn3qwcje6a75m0cgzhjuud+/hqgszozo/ytrbtt hi6m8gxpg2lahlxmkvnhmo+0s9c51gwdbxmvb8nibqx8hytd2jlwthc57buprbs4 QvmAUyKkpgH28al1oM6b6w6oBrUbKscrEr5Pgxnm+qECug29dSuUsySXwjakRg1l oeewz+i0aq65yf7dbbbkhbwfdfapzi5mrkeyt0ly5ff8jdp2pnvvvwkbmg+qbmg6 jrkapbai4sv3jar0ak/zivokkwioa/k4ktt6ezhiapdnik2whvg6sxyyq+ktv1lm cgik9r5bdgcwgh61cwjupgy6mkb6bqnpu/qxufokanjnyza/6woykxelbdtvcotv 6graNF+mDn4nblsCQn+wLXs2dRXrDcQ+7J3xMkSoVJ7DFU6uzDyco95jLeIKzjTr W+5RAoGYRnyKFeugSCqzQ3RlF8pEvUiPSDluWYWYFMhuI/8c+vpl7mdI8Nud5Bpp tyi6jow4km6pth0d83dfbgkcy2gbhjqybaiqih7wbx7cgcyvtm4wtozwjj+9qv6u 6J7XSbB+UrmXxK8WevhJO6zQxNck1MiLHopcpTsPQT95vf81CQfGNCwzgzmRSEQe WFHseO0zE8JGBrD7v0w= -----ENDRSAPRIVATEKEY----- $echo cn=uvigo sudotee-aca.info cn=uvigo $echo ca sudotee-aca.info ca $echo cert_signing_key sudotee-aca.info cert_signing_key $catca.info cn=uvigo ca cert_signing_key $ sudo certtool --generate-self-signed --load-privkey cakey.pem --template ca.info --outfile cacert.pem 10

Generatingaselfsignedcertificate X.509CertificateInformation: Version:3 SerialNumber(hex):5245b394 Validity: NotBefore:FriSep2716:34:28UTC2013 NotAfter:SatSep2716:34:28UTC2014 Subject:CN=UVIGO SubjectPublicKeyAlgorithm:RSA CertificateSecurityLevel:Normal Modulus(bits2432): 00:ed:64:26:af:1c:39:db:a9:8a:06:42:bb:2d:2d:b4 49:e9:45:89:06:a4:1e:8c:e1:9c:aa:bc:76:c2:d9:3e b2:d9:d3:d1:ce:0a:4b:e6:9f:25:b7:dc:53:2e:d0:ce 53:22:fe:56:a0:6f:e7:0e:d0:28:69:d2:56:fe:6a:28 6b:1f:1b:26:e0:1d:69:53:7d:ae:12:f4:d7:28:ed:08 94:b1:92:01:9e:a8:83:2a:10:b5:df:c8:0d:7c:3a:05 cd:cd:ef:18:f6:07:76:64:fb:e6:0f:d6:0a:21:ed:f1 c5:1d:c2:fe:c8:1d:c4:88:df:5e:c1:2f:20:45:a6:1e 21:84:91:f4:87:2b:49:0f:b7:6e:ed:2e:ac:f5:c1:ad bc:5e:2f:f9:e5:54:c4:fa:d0:95:dc:d4:f8:f5:3e:7a e2:c1:86:3c:71:32:42:54:ad:bd:08:9e:22:d1:90:d2 1f:1b:ca:22:25:5b:32:dc:0f:50:f4:3e:01:78:6b:19 da:84:a6:56:8c:f8:fa:ec:97:8a:b7:4d:29:42:60:03 9e:44:4c:7c:48:bb:1c:00:c5:f7:29:7b:e4:a7:c4:71 d0:92:92:53:77:e7:6a:f4:00:88:1f:89:9e:2d:72:6a a4:bc:fc:c2:f2:8f:6e:b0:9e:d7:53:53:68:d7:d2:48 dc:db:00:48:26:16:59:9c:4b:cd:26:19:21:4f:63:c4 c2:e0:76:e4:fa:6f:43:93:b1:e4:4b:b7:1e:b3:53:5e 27:d7:24:5f:a6:a0:bf:4c:07:ef:8c:f1:81:a2:47:58 d3 Exponent(bits24): 01:00:01 Extensions: BasicConstraints(critical): CertificateAuthority(CA):TRUE KeyUsage(critical): Certificatesigning. SubjectKeyIdentifier(notcritical): d653da3dca71c9e855b8d6cb05fa626a1de67eeb OtherInformation: PublicKeyId: d653da3dca71c9e855b8d6cb05fa626a1de67eeb Signingcertificate $ls cacert.pem ca.info cakey.pem $sudomkdir-p/etc/pki/libvirt/private $cd/etc/pki/libvirt $sudocerttool--generate-privkey sudoteeprivate/serverkey.pem WARNING:gnome-keyring::couldn'tconnectto:/tmp/keyring-tAi1cH/pkcs11:Nosuchfileordirectory Generatinga2432bitRSAprivatekey -----BEGINRSAPRIVATEKEY----- MIIFegIBAAKCATEAp5vrcFqcryJgEbGz5v4+63j4tSqd7vDyDacQeK/Fr4bZrmkB l0xgifdldazawrmsxz+gljsr4+wugdi7m7tcpm074knrvtc+pi6ruhezhunfhlqq 5D7zHtMWbDHU4+fM/cUC/CZgQlL40tdn8tXBS14WjtLOFkiO5g+KfwRV2LDZ+QDZ JnYd3DmiLLTGSvoqH4ZMMhgMWgVxgBVh2rwhLi49/c9nuE4utDuxo+0PIMaj/NyR aa3da4mtyghh55inkwuy96hofx7tr2fwnp72pq1pa+mwcwcke/ydu0emyhhvwoso xvhuwe5rwxpiclg2ud8wh9zqtdov5t33hstl1692abj1vhwxb3ugugcbffovuq0p 3f0FI0LZjmwRnE/oIObyH23frbrhyCla40n5/wIDAQABAoIBMARIpOTTPAvx2fi5 zpplzzphdjvtigq4xkdhdle47lmfhc0qw+mnda6oohjyzvjtg2bctq1frejmyw3f 11

WsoAhbJowk4EfzrHVa+JAfSYeUmB0NeombOJtFcGWB1dzK4if4fA4EmnhXBMhJWG 8d4v/me5uOPfmWrSYeyZWxXR+4u1QWzuy54DCNJXGsD/wc2qxSbXHN1u5enrDRq+ J6WRNYi4vKWWd+qhvf6EvDxF+b+XYsdQXZbjnXkWD87ryY/Pgdr49rRijpqycSAU Ad0S3C8dwL1qUg99fcML5PhGQzJOTqYXWTQ+h0VIT6gls3mwu50r4p/vYuduLh6M 981mEu68T0/WbQ1GZw1SMG9ieQvCUNiFK/M8l8tSv6MN77IbNqHPF/QFvo5zthK7 9I5JAqkCgZkAyRvepkRfCzCYkAw1DnBTsurfXAJxUG3Og6p2mauIkTA0eym6cUnc 75e9YBZ+jwMRUoRN6vwPTkGZ47BAKO1egACHu7BgklwQHrlf2kOTEwPaOuRtVkUL wckjmuau58qpx+hqiujba80vm0zxe/avlkqiajubwvexbvknzx8drnctq62trron aoe7zzzuizo1ji39+xzpjpscgzka1vtpr6cgklqmyggid1/ffr9ltoccshr1pgsv NXFyV5HBkw/QYJygiQo3AiD7qd8qNkT3aFL14hA/HyeHmVmdDqe762Xud5Xm3xsb id6oygk9sgs2zen6w8h47li1b9mhnz/pvxaugcqbs1o8rvpu3soqwquxmgaiabuk ujs6oa/itxljsdovugfoafoxqsn3qwcje6a75m0cgzhjuud+/hqgszozo/ytrbtt hi6m8gxpg2lahlxmkvnhmo+0s9c51gwdbxmvb8nibqx8hytd2jlwthc57buprbs4 QvmAUyKkpgH28al1oM6b6w6oBrUbKscrEr5Pgxnm+qECug29dSuUsySXwjakRg1l oeewz+i0aq65yf7dbbbkhbwfdfapzi5mrkeyt0ly5ff8jdp2pnvvvwkbmg+qbmg6 jrkapbai4sv3jar0ak/zivokkwioa/k4ktt6ezhiapdnik2whvg6sxyyq+ktv1lm cgik9r5bdgcwgh61cwjupgy6mkb6bqnpu/qxufokanjnyza/6woykxelbdtvcotv 6graNF+mDn4nblsCQn+wLXs2dRXrDcQ+7J3xMkSoVJ7DFU6uzDyco95jLeIKzjTr W+5RAoGYRnyKFeugSCqzQ3RlF8pEvUiPSDluWYWYFMhuI/8c+vpl7mdI8Nud5Bpp tyi6jow4km6pth0d83dfbgkcy2gbhjqybaiqih7wbx7cgcyvtm4wtozwjj+9qv6u 6J7XSbB+UrmXxK8WevhJO6zQxNck1MiLHopcpTsPQT95vf81CQfGNCwzgzmRSEQe WFHseO0zE8JGBrD7v0w= -----ENDRSAPRIVATEKEY----- $echo country=es sudotee-aserver.info country=es $echo state=spain sudotee-aserver.info state=spain $echo locality=ourense sudotee-aserver.info locality=ourense $echo organization=uvigo sudotee-aserver.info organization=uvigo $echo cn=localhost sudotee-aserver.info cn=localhost $echo tls_www_server sudotee-aserver.info tls_www_server $echo encryption_key sudotee-aserver.info encryption_key $echo signing_key sudotee-aserver.info signing_key $ sudo certtool --generate-certificate --load-privkey private/serverkey.pem --load-ca-certificate../ca/cacert.pem--load-ca-privkey../ca/cakey.pem--templateserver.info--outfileservercert.pem Generatingasignedcertificate X.509CertificateInformation: Version:3 SerialNumber(hex):5245c178 Validity: NotBefore:FriSep2717:33:44UTC2013 NotAfter:SatSep2717:33:44UTC2014 Subject:C=ES,O=UVigo,L=Ourense,ST=Spain,CN=localhost SubjectPublicKeyAlgorithm:RSA CertificateSecurityLevel:Normal Modulus(bits2432): 00:a7:9b:eb:70:5a:9c:af:22:60:11:b1:b3:e6:fe:3e eb:78:f8:b5:2a:9d:ee:f0:f2:0d:a7:10:78:af:c5:af 86:d9:ae:69:01:97:4c:60:88:50:cb:0d:ac:c0:c2:b9 92:c7:3f:a0:94:9b:2b:e3:ec:2e:80:32:3b:33:b4:c2 3e:6d:3b:e0:a3:6b:55:37:3e:a4:8e:ab:ba:11:19:85 49:df:84:ba:aa:e4:3e:f3:1e:d3:16:6c:31:d4:e3:e7 cc:fd:c5:02:fc:26:60:42:52:f8:d2:d7:67:f2:d5:c1 4b:5e:16:8e:d2:ce:16:48:8e:e6:0f:8a:7f:04:55:d8 b0:d9:f9:00:d9:26:76:1d:dc:39:a2:2c:b4:c6:4a:fa 2a:1f:86:4c:32:18:0c:5a:05:71:80:15:61:da:bc:21 2e:2e:3d:fd:cf:67:b8:4e:2e:b4:3b:b1:a3:ed:0f:20 12

c6:a3:fc:dc:91:68:0d:c3:6b:89:ad:c8:61:c7:e7:92 0d:91:6b:b2:f7:a1:ce:17:1e:ed:47:61:70:34:fe:f6 3d:0d:69:6b:e3:30:71:67:0a:13:f6:03:bb:41:0c:c8 78:6f:c0:eb:28:c5:51:ee:c0:4e:51:c1:7a:48:70:b1 b6:b9:df:16:1f:d6:50:b5:da:2f:e6:dd:f7:1e:c4:cb d7:af:76:69:b2:75:56:1c:17:07:75:20:52:07:01:7c 53:95:b9:0d:29:dd:fd:05:23:42:d9:8e:6c:11:9c:4f e8:20:e6:f2:1f:6d:df:ad:ba:e1:c8:29:5a:e3:49:f9 ff Exponent(bits24): 01:00:01 Extensions: BasicConstraints(critical): CertificateAuthority(CA):FALSE KeyPurpose(notcritical): TLSWWWClient. KeyUsage(critical): Digitalsignature. Keyencipherment. SubjectKeyIdentifier(notcritical): 653a6cf5959752c6c3bb21f71dd65dce35f50143 AuthorityKeyIdentifier(notcritical): d653da3dca71c9e855b8d6cb05fa626a1de67eeb OtherInformation: PublicKeyId: 653a6cf5959752c6c3bb21f71dd65dce35f50143 Signingcertificate $sudocerttool--generate-privkey sudoteeprivate/clientkey.pem Generatinga2432bitRSAprivatekey -----BEGINRSAPRIVATEKEY----- MIIFegIBAAKCATEAoDJBa5HYXG5J8eyt0w349YkGPemqa/XrOX+xi2hU8cz12Xbk 2wtbQz56s7CSVXn5nXEllX/O37Hvwq69uj9TuRsF5Z3yYvZvrXI7Jy/SRbZeNC76 +7yqYyQZbPSO19bva3njovnreJxCWfb30xpld8ZwMQsyD9V/MFc/Swe5w487H++R 1nctlU+XWOqYiqMhXn+4wibojRJFM5HnmU6wod+1eUCQWgf5bIiUPCb1d/5H9zGa i/bkfmvodftezd96+3q7qznu3n0jvudq+fzj5g/nsaftm8mvbc0ndt/1lfed8prl 1OOAC7vOGuKJJnp6+kaxQjhup2aHaqkEG2ynego1x0FJ1vmefR+w+svkXek1+Sm8 VVnEjIdDNSaPeWPcuBDyYN/izh5AIiD2m/mMxwIDAQABAoIBMCGAAPBG0pEZuzrt PLh7HonyOqzt1Wa4SZV/n5hAnCroqqzsURWBfXdFdJFpJmDbnhiPlcV6sb9TzYjP 0/tDzPVTslr/ObX6RQZncflS5c0QQwj0niXQoW0UGoEPb2OxneXC2pi1XMmfG70G ixlk/vcb11baqadrq8rnkmq9xfqj9fpmvhocwbr2rvcgmaal9w909cudz9nygisc KMu8PP5aamAKjwPmirhYNet+/5rR9WRqzmxJHWR9SF8y9qjgLttJPHTkBYeD/drX MSib1ZAEdbF5o0OZbVV7BP2o92fgMmKlA20SwYm7Gj2pMi7mBsFkk6YYynCB4Zpd Oux4y/PgoOKHVtFrzP4QYNyem+u2dfq8V0aj4QXcv0kfPP+SIHYD2SuVnpA0AIP1 vod7oqecgzkaxbl70gmaxc8azrh6s/10ko2rw+jg2h8fbnq9k/diubpuoeocckvu DyNtcRMajZy5yFZsK1emMxZ6utSWGX/CbL+GS+2eVK2BlongFoC2dxROQnXXOhHy 39lK74Z8Gx7GEzqZGKzpCpzNiIgucyCYrMJl2AihpD2aOEfqOESNehEJQ2n4+lg0 JvawtIYT77GZuo5an4KbzbcCgZkA0SgoTnqlKtakM2LK7S07ZFnZNCdGbV8N9g7y KlfRBcmNcrnihH6la44UgaIpro/oWi7hLGS3P3Lp8HBUrbO1zRvJZU1SXvd3uQQ/ CheiAxxdFuwOBTOlQapwM+0UBAKiUdm/iYUyLoNNz2OkvIKDayXAYveqqSKi53qf sgknwewzuqhoqbre0/ujgpyirml/cqr//p7koxecgzhspzqb1cbtswcd0o3dc17u JJ1k+lUDYTIk8qAp7Fio8ZhAHHg8SuxxmPoqyQQIlzOMYAE48BsE6uz3xLHUA85+ IEDwG44jauE2DIkTgxy3ohMN52XYXd45KwiOMCzE//kS1m97ysCfpi5kp+EUlzMR daoq/idvvvgsp66qp1xmxa7ce11qpluucw1fsxsoyf/goapzom3wawkbmcjuybma A8h7Io8NiEQJAoEysR5nVG5hkh4pCMmPXzTcBgsRktD+0FhQ4lv0RmLXoSqJ4FeE SenPCzBvHXjTjng+JnDqSVxUv0CVPaFAv9YPoXSqHIqTbH2HQmRAshmeUgXclnHI WOWPqI8GCtDqQbGXKxmm8+AU7Ox3mdltxB7cQWBeWLhXBo0mVvbxTE+i/nPLe/I/ GYdhAoGYNfQTuWuUn9ns8YegOXvAcMFgLCoAecyJ8QU4vgEtQOsP0EOrIgBG2H5m ppyvi0kehukoasg5g09fl+12iemgjbi66rjk9oo0zs2c3dhgbyx75kdi4kx93mlx vbjyn48kqnz9udge1eko5kqy61wxkkxhstcb7hsxjfyvdjgwfdrh1xsy6xrmstqo 13

qooime8jbgh4hnr7gbw= -----ENDRSAPRIVATEKEY----- $echo country=es sudotee-aclient.info country=es $echo state=spain sudotee-aclient.info state=spain $echo locality=ourense sudotee-aclient.info locality=ourense $echo organization=uvigo sudotee-aclient.info organization=uvigo $echo cn=localhost sudotee-aclient.info cn=localhost $echo tls_www_client sudotee-aclient.info tls_www_client $echo encryption_key sudotee-aclient.info encryption_key $echo signing_key sudotee-aclient.info signing_key $ sudo certtool --generate-certificate --load-privkey private/clientkey.pem --load-ca-certificate../ca/cacert.pem--load-ca-privkey../ca/cakey.pem--templateclient.info--outfileclientcert.pem Generatingasignedcertificate X.509CertificateInformation: Version:3 SerialNumber(hex):5245c6eb Validity: NotBefore:FriSep2717:56:59UTC2013 NotAfter:SatSep2717:56:59UTC2014 Subject:C=ES,O=UVigo,L=Ourense,ST=Spain,CN=localhost SubjectPublicKeyAlgorithm:RSA CertificateSecurityLevel:Normal Modulus(bits2432): 00:a0:32:41:6b:91:d8:5c:6e:49:f1:ec:ad:d3:0d:f8 f5:89:06:3d:e9:aa:6b:f5:eb:39:7f:b1:8b:68:54:f1 cc:f5:d9:76:e4:db:0b:5b:43:3e:7a:b3:b0:92:55:79 f9:9d:71:25:95:7f:ce:df:b1:ef:c2:ae:bd:ba:3f:53 b9:1b:05:e5:9d:f2:62:f6:6f:ad:72:3b:27:2f:d2:45 b6:5e:34:2e:fa:fb:bc:aa:63:24:19:6c:f4:8e:d7:d6 ef:6b:79:e3:a2:f9:eb:78:9c:42:59:f6:f7:d3:1a:65 77:c6:70:31:0b:32:0f:d5:7f:30:57:3f:4b:07:b9:c3 8f:3b:1f:ef:91:d6:77:2d:95:4f:97:58:ea:98:8a:a3 21:5e:7f:b8:c2:26:e8:8d:12:45:33:91:e7:99:4e:b0 a1:df:b5:79:40:90:5a:07:f9:6c:88:94:3c:26:f5:77 fe:47:f7:31:9a:8b:f0:4a:7e:6b:e8:75:f4:c4:65:df 7a:fb:7a:bb:a9:99:d4:de:7d:23:56:e7:50:f8:5c:e3 e6:0f:cd:b1:a7:d3:9b:c9:af:6c:2d:0d:0d:3f:f5:94 57:83:f2:9a:e5:d4:e3:80:0b:bb:ce:1a:e2:89:26:7a 7a:fa:46:b1:42:38:6e:a7:66:87:6a:a9:04:1b:6c:a7 7a:0a:35:c7:41:49:d6:f9:9e:7d:1f:b0:fa:cb:e4:5d e9:35:f9:29:bc:55:59:c4:8c:87:43:35:26:8f:79:63 dc:b8:10:f2:60:df:e2:ce:1e:40:22:20:f6:9b:f9:8c c7 Exponent(bits24): 01:00:01 Extensions: BasicConstraints(critical): CertificateAuthority(CA):FALSE KeyPurpose(notcritical): TLSWWWClient. KeyUsage(critical): Digitalsignature. Keyencipherment. SubjectKeyIdentifier(notcritical): d34910818ba80cd77f1ea37081f6f960bc280868 14

AuthorityKeyIdentifier(notcritical): d653da3dca71c9e855b8d6cb05fa626a1de67eeb OtherInformation: PublicKeyId: d34910818ba80cd77f1ea37081f6f960bc280868 Signingcertificate Una vez creado un certificado autofirmado se puede comprobar que es posible acceder a la máquina virtual A mayores será necesario activar el funcionamiento en red de libvirt en su configuración. Para esto se usarán los siguientes comandos: $grep"\-d" /etc/default/libvirt-bin libvirtd_opts="-d" $sudosed-i.bak-e"s/-d/-d-l/g" /etc/default/libvirt-bin $cat/etc/default/libvirt-bin #Defaultsforlibvirt-bininitscript(/etc/init.d/libvirt-bin) #ThisisaPOSIXshellfragment #Startlibvirtdtohandleqemu/kvm: start_libvirtd="yes" #optionspassedtolibvirtd,add"-l"tolistenontcp libvirtd_opts="-d-l" #passinlocationofkerberoskeytab #exportkrb5_ktname=/etc/libvirt/libvirt.keytab Finalmente sólo queda reiniciar libvirt y comprobar que todo funciona perfectamente: $sudoservicelibvirt-binrestart libvirt-binstop/waiting libvirt-binstart/running,process5040 $virsh-cqemu://localhost/system WARNING: gnome-keyring:: couldn't connect to: /tmp/keyring-tai1ch/pkcs11: No existe el archivo o el directorio Bienvenidoavirsh,laterminaldevirtualizacióninteractiva. Ingrese:'help'paraobtenerayudaconloscomandos 'quit'parasalir virsh#list IdNombre Estado ---------------------------------- virsh#quit Virsh: gestión de los discos de las máquinas virtuales 15

Una vez que se establece una conexión a un servidor libvirt se pueden crear: storage pools: Almacenes de imágenes de discos. Se pueden crear pools mediante directorios que contienen las imágenes (dir), Discos enteros gestionados en raw (disk), grupos LVM (logical) y otros (consultar documentación) storage volumes: imágenes de discos, cds, que se almacenan en un pool. Para empezar crearemos y activaremos un pool donde colocaremos las imágenes de los sistemas operativos. Esto se hace con los siguientes comandos: $sudomkdir/var/lib/libvirt/mypool $virsh-cqemu://localhost/system WARNING:gnome-keyring::couldn'tconnectto:/tmp/keyring-tAi1cH/pkcs11:Noexisteelarchivooel directorio Bienvenidoavirsh,laterminaldevirtualizacióninteractiva. Ingrese:'help'paraobtenerayudaconloscomandos 'quit'parasalir virsh#pool-list--all Nombre Estado Inicioautomático ----------------------------------------- virsh#pool-define-as--namemypool--typedir--target/var/lib/libvirt/mypool Sehadefinidoelgrupomypool virsh#pool-list--all Nombre Estado Inicioautomático ----------------------------------------- mypool inactivo no virsh#pool-startmypool Sehainiciadoelgrupomypool virsh#pool-autostartmypool Elgrupomypoolhasidomarcadocomoiniciableautomáticamente virsh#pool-infomypool Nombre: mypool UUID: 18fb95a5-8415-6d68-1112-ddb2b6ff128b Estado: ejecutando Persistente: si Autoinicio: si Capacidad: 50,75GB Ubicación: 23,15GB Disponible: 27,60GB virsh#pool-dumpxmlmypool <pooltype='dir'> <name>mypool</name> <uuid>18fb95a5-8415-6d68-1112-ddb2b6ff128b</uuid> <capacity>54497226752</capacity> <allocation>24858329088</allocation> <available>29638897664</available> <source> </source> <target> <path>/var/lib/libvirt/mypool</path> 16

<permissions> <mode>0700</mode> <owner>-1</owner> <group>-1</group> </permissions> </target> </pool> virsh#quit $ Una vez creado un pool, se pueden crear volúmenes dentro de los pool. Estos volúmenes podrán ser posteriormente asignados a máquinas virtuales. Veamos un ejemplo: $virsh-cqemu://localhost/system WARNING:gnome-keyring::couldn'tconnectto:/tmp/keyring-tAi1cH/pkcs11:Noexisteelarchivooel directorio Bienvenidoavirsh,laterminaldevirtualizacióninteractiva. Ingrese:'help'paraobtenerayudaconloscomandos 'quit'parasalir virsh#vol-list--poolmypool Nombre Camino ----------------------------------------- virsh#vol-create-as--poolmypool--namevm01.img--capacity1g--allocation1g--formatraw Sehacreadoelvolumenvm01.img virsh#vol-list--poolmypool Nombre Camino ----------------------------------------- vm01.img /var/lib/libvirt/mypool/vm01.img virsh#vol-dumpxml--poolmypoolvm01.img <volume> <name>vm01.img</name> <key>/var/lib/libvirt/mypool/vm01.img</key> <source> </source> <capacity>1073741824</capacity> <allocation>1073745920</allocation> <target> <path>/var/lib/libvirt/mypool/vm01.img</path> <formattype='raw'/> <permissions> <mode>0600</mode> <owner>0</owner> <group>0</group> </permissions> </target> </volume> virsh#vol-info--poolmypoolvm01.img Nombre: vm01.img Tipo: archivo 17

Capacidad: Ubicación: 1,00GB 1,00GB virsh#quit Virsh: gestión de dispositivos para las máquinas virtuales. De cara a gestionar las máquinas virtuales, la gestión de red resulta más complicada que la de volúmenes. En la actualidad esto sólo está soportado mediante ficheros. Por suerte incluye una configuración por defecto (default) que permite ser usada en cualquier número de máquinas virtuales. Si se desean emplear puentes directos habrá que crear un un puente con los siguientes comandos. http://wiki.libvirt.org/page/networking $sudostopnetwork-manager network-managerstop/waiting $echo"manual" sudotee/etc/init/network-manager.override $sudoifdowneth0 $vi/etc/network/interfaces autolo ifaceloinetloopback autobr0 ifacebr0inetdhcp bridge_portseth0 bridge_stpon bridge_maxwait0 bridge_fd0 $sudoifupbr0 InternetSystemsConsortiumDHCPClient4.2.4 Copyright2004-2012InternetSystemsConsortium. Allrightsreserved. Forinfo,pleasevisithttps://www.isc.org/software/dhcp/ ListeningonLPF/br0/94:de:80:42:f3:69 Sendingon LPF/br0/94:de:80:42:f3:69 Sendingon Socket/fallback DHCPDISCOVERonbr0to255.255.255.255port67interval3(xid=0x643467b2) DHCPDISCOVERonbr0to255.255.255.255port67interval6(xid=0x643467b2) DHCPDISCOVERonbr0to255.255.255.255port67interval11(xid=0x643467b2) DHCPREQUESTof192.168.1.182onbr0to255.255.255.255port67(xid=0x643467b2) DHCPOFFERof192.168.1.182from192.168.1.1 DHCPACKof192.168.1.182from192.168.1.1 boundto192.168.1.182--renewalin33818seconds. $echo supersededomain-name-servers8.8.8.8; >>/etc/dhcp/dhclient.conf $vi/etc/dhcp/dhclient.conf #eliminardomain-name-servers 18

$sudoecho net.bridge.bridge-nf-call-ip6tables=0 >>/etc/sysctl.conf $sudoecho net.bridge.bridge-nf-call-iptables=0 >>/etc/sysctl.conf $sudoecho net.bridge.bridge-nf-call-arptables=0 >>/etc/sysctl.conf $sudosysctl-p/etc/sysctl.conf net.bridge.bridge-nf-call-ip6tables=0 net.bridge.bridge-nf-call-iptables=0 net.bridge.bridge-nf-call-arptables=0 Al crear una máquina virtual con VirtManager se especificará el uso del dispositivo anfitrión eth0 (puente br0) y de este modo se usa directamente la interfaz del sistema. Virsh: Dominios (máquinas virtuales) A la hora de crear dominios, lo más cómodo es acudir al comando virt install. Virt install es completamente compatible con libvirt y permite cómodamente instalar máquinas virtuales. $sudoapt-getinstallvirtinst [sudo]passwordformoncho: LeyendolistadepaquetesHecho Creandoárboldedependencias LeyendolainformacióndeestadoHecho E:Nosehapodidolocalizarelpaquetevirtinstall moncho@moncho-laptop:~$sudoapt-getinstallvirtinst LeyendolistadepaquetesHecho Creandoárboldedependencias LeyendolainformacióndeestadoHecho Elpaqueteindicadoacontinuaciónseinstalódeformaautomáticayyanoesnecesarios. nvidia-settings-updates Utilice«apt-getautoremove»paraeliminarlos. Seinstalaránlossiguientespaquetesextras: python-libvirtpython-urlgrabber SeinstalaránlossiguientespaquetesNUEVOS: python-libvirtpython-urlgrabbervirtinst 0actualizados,3seinstalarán,0paraeliminary0noactualizados. Necesitodescargar357kBdearchivos. Seutilizarán2.676kBdeespaciodediscoadicionaldespuésdeestaoperación. Deseacontinuar[S/n]?s Des:1 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main python-libvirt i386 0.9.8-2ubuntu17.13[93,5 Des:2 http://es.archive.ubuntu.com/ubuntu/ precise/main python-urlgrabber all 3.9.1-4ubuntu2 [48,5 Des:3 http://es.archive.ubuntu.com/ubuntu/ precise-updates/main virtinst all 0.600.1-1ubuntu3.2 [215 Descargados357kBen1seg.(209kB/s) Seleccionandopaquetepython-libvirtpreviamentenoseleccionado (Leyendolabasededatos633172ficherosodirectoriosinstaladosactualmente.) Desempaquetandopython-libvirt(de/python-libvirt_0.9.8-2ubuntu17.13_i386.deb) Seleccionandopaquetepython-urlgrabberpreviamentenoseleccionado Desempaquetandopython-urlgrabber(de/python-urlgrabber_3.9.1-4ubuntu2_all.deb) Seleccionandopaquetevirtinstpreviamentenoseleccionado Desempaquetandovirtinst(de/virtinst_0.600.1-1ubuntu3.2_all.deb) Procesandodisparadoresparaman-db Configurandopython-libvirt(0.9.8-2ubuntu17.13) Configurandopython-urlgrabber(3.9.1-4ubuntu2) Configurandovirtinst(0.600.1-1ubuntu3.2) 19

Antes de proceder a la instalación de una máquina virtual será necesario contar con una imagen del CD de instalación del sistema operativo. Para pruebas se usará debian y se descargará la imagen netsinst que permite un disco de instalación mínima. La imagen iso del sistema se puede obtener de http://www.debian.org/cd/netinst/. Para instalar otros sistemas operativos diferentes (y ver el os type y os variant consulta la página man del comando). $sudomvdescargas/debian-7.1.0-amd64-netinst.iso$(pwd)/deb_sque.iso $ virt-install --connect qemu:///system --name vm01 --ram 1024 --os-type linux --os-variant debiansqueeze --disk vol=mypool/vm01.img --vnc --network network=nat --cdrom $(pwd)deb_sque.iso --bootcdrom Debido a un pequeño bug presente hasta la versión 1.0.2 no se puede hacer la instalación en remoto. Para reconectar con la máquina virtual se puede usar el comando virt viewer. $virt-viewer--conectqemu:///systemvm01 Cuidado con la versión del kernel. Hay que tener cuidado de bajar la imagen (amd64, i386 ). Ejercicio: Clonar la máquina virtual generada Virt-Manager Virt manager es un producto que, al igual que virt install y virsh permiten la creación, visualización y administración de máquinas virtuales. Sin embargo, Virt Manager hace todo esto de forma gráfica. Ejercicio: instalar y probar virt manager. Crear una nueva máquina virtual Debian. Ejercicio: Conectarse al equipo del compañero para administrar remotamente las máquinas con virt manager Ejercicio: Clonar una máquina virtual con virt manager Pregunta: Que pasa cuando se cierra la ventana de una máquina? Se deja de ejecutar? Que pasa cuando se cierra virtmanager y se abre de nuevo? Se detiene la virtualización? 20