CABILDO TENERIFE ­ DIC 2012 Virtualización KVM + RHEL6
Indice●    Introducción a la Virtualización●    Introducción a la Virtualización con KVM●    Instalación de KVM sobre RHEL...
Introducción a la    Virtualización
¿Qué es la virtualización?
Un recurso físico, varios lógicos
Es la combinación de hardware y software que permite a una única   máquina comportarse como si        fueran varias máquinas
Características●    El término nace en los 60s y en los 70s IBM ya crea VM●    Desde 2005 Intel y AMD dan soporte hardware...
Arquitectura de virtualización
Arquitectura de virtualización
Hypervisores●    Es como se le conoce al software de virtualización●    Son los encargados de gestionar las diferentes VM●...
Tipos de virtualización●    Emulación●    Virtualización completa●    Paravirtualización●    Virtualización a nivel de Sis...
Emulación●    La máquina virtual simula el hardware completo●    Ventajas: Simular hardware no disponible●    Desventajas:...
Virtualización completa●    Parecido a emulación●    Se diferencia de la emulación en que los S.O. A virtualizar     están...
Paravirtualización●    La VM tiene la misma arquitectura●    Ventajas: rendimiento (ligero y rápido), escalabilidad, no   ...
Virtualización a nivel de S.O.●    La VM se hace con el mismo S.O. que lo aloja (sin     hypervisor)●    El S.O. Está modi...
Otras virtualizaciones●    Virtualización de bibliotecas: ejecución de API Win32. Wine●    Virtualización de aplicación: J...
Algunos términos●    P2V: Phisical to Virtual: Migrar de físico a virtual●    V2V: Virtual to Virtual: Migrar de virtual a...
KVM
KVM, el sistema oficial de virtualización                 del kernel de Linux.●    Es un módulo del kernel que convierte e...
KVM, basado en Qemu (emulación)       pero modificado para virtualización●    Necesidad de soporte en el procesador instru...
KVM, Kernel based Virtual Machine●    Seguridad       – Cada Virtual Machine es un proceso       – Cada CPU es un thread  ...
KVM, tipos de redes●    User networking●    Private virtual Bridge●    Public Bridge
KVM, tipos de formatos de imagen●    Raw      – Ocupa todo el tamaño total      – No soporta snapshots, compresión ni cifr...
KVM, tipos de formatos de imagen●    Vmdk      – Formato utilizado por VMWare Workstation●    VDI      – Formato soportado...
KVM, desventajas●    Proyecto relativamente jóven●    No hay herramientas sofisticadas para la gestión de     servidores y...
Libvirt
Libvirt●    Conjunto de herramientas con API para virtualización de     sistemas Linux●    Soporta los siguientes hypervis...
Libvirt arquitectura
Virsh, Libvirt y ficheros XML●    Virsh puede gestionar ficheros XML. Es muy útil para realizar     scripting avanzado par...
Libvirt, tipos de formatos de imagen●    Raw: fichero plano●    Iso: formato disco de CDROM●    Dmg: formato disco de Mac●...
Instalación de RHEL6 + KVM
Instalación de RHEL6
Instalación de KVM●    KVM, al utilizar el paradigma de virtualización completa, es     necesario realizar la comprobación...
Ubicación de las máquinas virtuales●    Local      – Dentro del sistema de ficheros, habitualmente en      – /var/lib/libv...
Instalación de paquetes KVM     Instalación nueva
Instalación de paquetes KVM     Instalación nueva
Instalación de paquetes KVM                   Instalación existente●    yum install qemu­kvm, qemu­kvm­tools, libvirt, lib...
Comprobación de acceso a KVM●    Añadir el usuario root al gruopo libvirt      – adduser ­G root libvirt●    Comprobamos q...
Creación de máquinas virtuales
Virt­install: creación de VM●    Comando que permita aprovisionar máquinas virtuales●    Herramienta de línea de comandos●...
Virt­install: creación de VM●    Virt­install       – Virt­install ­­name=ubuntu1204 ­­vcpus=1 ­­ram=1024             ­­fi...
Herramientas para la gestión de MV●    Hay 2 herramientas principales para la gestión de máquinas    virtuales:        – M...
Virt­manager●    Herramienta para gestionar las máquinas virtuales, consultar    consumo de recursos, acceder a consolas v...
Virt­manager
Virt­manager
Virt­manager
virsh●    Virsh es una herramienta de línea de comando para     administar a los huéspedes y al hipervisor●    Utiliza la ...
virsh●     virsh ­c qemu+ssh://root@host.to.con:22222/systemBienvenido a virsh, la terminal de virtualización interactiva....
virsh●     virsh ­c qemu+ssh://root@host.to.con:22222/systemBienvenido a virsh, la terminal de virtualización interactiva....
Opciones virsh
Creación de máquinas virtuales●    Virt­install       – Virt­install ­­network ­­name=ubuntu1204 ­­ram=1024             ­­...
Ficheros XML                          <domain type=kvm id=3>                             <name>ubuntu</name>            <u...
Virsh●    Arrancar máquina virtual       – virsh start <domain>●    Apagar máquina virtual       – virsh destroy <domain>●...
Virsh●    Suspender máquina virtual a RAM (consume RAM, pero no     CPU ni I/O)       – virsh suspend <domain>●    Restaur...
Virsh●    Listar máquinas virtuales        – virsh list●    Listar pools        – virsh pool­list●    Listar volúmenes    ...
Otros comandos●    Además de la shell virsh existen una multitud de comandos     que realizan tareas similares:      – Lis...
Otros comandos●    Listar el contenido de un fichero de una VM        – virt­cat●    Redimensionar una VM        – virt­re...
Otros comandos: virt­top
Administración de máquinas virtuales
Administración de máquinas virtuales●    Cambiar la memoria en caliente. Para poder realizar este     cambio la configurac...
Gestión de pools●    Los pools son orígenes de dispositivos de almacenamiento     en los que alojar los volúmenes (máquina...
Gestión de pools: tipos
Drivers
Drivers de dispositivos●    KVM soporta virtualización hibrida.       – IDE          ●            En los SO invitados: emu...
Drivers de dispositivos: Virtio●    VirtIO es una interfaz independiente del hypervisor●    Incluido en kernel > 2.6.25●  ...
VirtIO disk driver
VirtIO network driver
Virtual Networking
Virtual Networking●    Para la implementación de redes virtuales libvirt utiliza el     concepto de switches virtuales●   ...
Virtual Networking
Virtual Networking●    Por defecto      – Las VM reciben una IP por DHCP (dnsmasq)      – El anfitrión hace NAT (masquerad...
Virtual Networking: NAT
Virtual Networking●    Si se quiere que las máquinas tengan acceso a la LAN es     necesario crear un BRIDGE●    Tenemos u...
Virtual Networking: bridge●    Bridge en Linux       – Deshabilitar NetworkManager (no soporta bridge)          ●         ...
Virtual Networking: bridge●    Crear el Bridge (I)      – /etc/sysconfig/network­scripts/ifcfg­eth0           DEVICE=”eth0...
Virtual Networking: bridge●    Crear el Bridge (II)      – /etc/sysconfig/network­scripts/ifcfg­br0           DEVICE=”br0”...
Virtual Networking: bridge●    Confirmar que iptables no está trabajando en el bridge      – /etc/sysctl.conf             ...
Virtual Networking: bridge●    Reiniciar la red      – service network restart●    Verificar el bridge      – brctl show  ...
Virtual Networking: bridge
Virtual Networking: VLAN Tagging●    VLAN es una red local virtual.●    Se utilizan por su rendimiento, seguridad, facilid...
Virtual Networking: bridge●    Ajustamos los valores de la interfaz física       – /etc/sysconfig/network­scripts/ifcfg­et...
Virtual Networking: bridge●    Vamos a taggear todos los paquetes que salgan a través     de eth0 con el VLAN ID 3003.    ...
Migraciones de máquinas virtuales
Migraciones p2v●    Las migraciones p2v requieren realizar un proceso de     empaquetamiento del servidor físico en un fic...
Migraciones v2v●    Las migraciones v2v requieren básicamente que las     máquinas virtuales sean convertidas al formato K...
qemu­img●    Comando que permite       – chequear imagen en disco      – Realizar conversiones entre formatos de imagen   ...
Migraciones v2v: vmware2kvm●    Vmware es el hipervisor más utilizado en el mundo, por lo     que a menudo vamos a querer ...
Migraciones v2v: virtualbox2kvm●    Virtualbox es un hipervisor de software libre ampliamente     utilizado para la virtui...
Virt­maneger no detecta correctamente                 qcow2
Migraciones v2v: bootfail    ●        Virt­manager no detecta correctamente el formato qcow2         y lo considera raw. E...
Migraciones v2v: particiones ●      En ocasiones puede interesarnos conocer las particiones de      una máquina virtual   ...
Ojo con las máquinas Windows BSoD
Migraciones v2v: windows●    Las máquinas Windows tienen el problema de BsoD, ya que     memorizan el hardware sobre el qu...
Migraciones v2v: windows●    MergeIDE      – Es un script que mete una serie de parametros en el           Registro de Win...
Snapshots y backups
Snapshots y Backups●    Los snapshots y backups nos permitirán hacer una copia     que poder recuperar posteriormente. Los...
Snapshots: virt­clonate●    La función clonate de virsh no es un snapshot como tal, es     una copia de una máquina con el...
Snapshots: virt­clone●    Suspender la máquina       – virsh suspend vm1●    Clonar la máquina       – virt­clone ­­origin...
Snapshots: virsh snapshot●    Un snapshot no es una copia como tal, sino un recordar el     estado en un momento dado. Cua...
Snapshots: virsh snapshot●    Confirmar el formato de la imagen      – qemu­img info /var/lib/libvirt/images/vm1.img●    R...
Snapshots: virsh snapshot●    Restaurar un snapshot       – virsh snapshot­revert vm1 estado­inicial●    Eliminar un snaps...
Snapshots: LVM2●    Los snapshots nos permitirán hacer una copia que poder     recuperar posteriormente. Los snapshots son...
Almacenamiento
Almacenamiento
Almacenamiento●    KVM utiliza cualquier almacenamiento soportado por Linux      – Local          ●            IDE/SCSI/SA...
Almacenamiento●    No es aconsejable pasar dispositivos completos a VM      – Es mejor asignar /dev/sdb1 que /dev/sdb     ...
Almacenamiento●    En ocasiones el almacenamiento requiere ser visto por el     hypervisor, ser detectado. Bien porque es ...
Almacenamiento●    Supongamos que queremos añadir un USB a todas las     máquinas virtuales●    Añadiendo almacenamiento a...
Almacenamiento: LVM●    Mecanismo para crear grandes colecciones de espacio de     almacenamiento que se pueden asignar a ...
Almacenamiento: LVM●    Diseño:      –   Volume Group (VG) : El Volume Group es el mayor nivel de abstracción             ...
Almacenamiento: NFS
Almacenamiento: iSCSI●    Descubrimos el IQN objetivo del LUN      – iscsiadm ­m discover ­t st ­p <ip.address>●    Creamo...
Almacenamiento: Fibre Channel●    Tecnología de red utilizada para redes de almacenamiento●    Requiere de una tarjeta HBA...
Almacenamiento: Fibre Channel●    Pasos a realizar para habilitar el acceso      1.Crear un dispositivo de almacenamiento ...
Almacenamiento: Fibre Channel●    Tras los pasos anteriores fdisk muestra el nuevo dispositivo       4.Creamos una partici...
Almacenamiento: Fibre Channel●    Finalmente       7.Editamos /etc/fstab para añadirlo permanentemente          ●         ...
Almacenamiento: Fibre Channel●    virsh       –    virsh pool­define­as myfcpool dir ­ ­ ­ ­ /vm­images       –    virsh p...
Almacenamiento: Fibre Channel●    virt­manager
Rendimiento y Optimizaciones
Rendimiento●    KVM posee el mismo rendimiento y estabilidad que Linux●    KVM soporta MV hasta 16CPU virtuales y 256GB RA...
Optimizaciones●    Utilizar virt­manager es una buena idea porque:        – Se asegurará de que el huesped va a funcionar ...
Se específico!
Se específico!
Optimizaciones●    Utilizar drivers paravirtualizados en medida de lo posible     virtio        – Exiten drivers para Linu...
Piloto
Piloto●    Servidores de virtualización: RHEL 6 + KVM       –   Acceso a storage compartido iSCSI/NFS       –   Creación d...
Otras soluciones
Proxmox
RedHat Enterprise Virtualization
RedHat Enterprise Virtualization
RedHat Enterprise Virtualization
Citrix
Parallels + Plesk
Upcoming SlideShare
Loading in …5
×

Virtualizacion KVM + libvirt + HREL6

6,208 views

Published on

Conceptos y ejemplos de virtualización con KVM, libvirt y RHEL6. Aprendiendo KVM paso a paso.

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,208
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
205
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Virtualizacion KVM + libvirt + HREL6

  1. 1. CABILDO TENERIFE ­ DIC 2012 Virtualización KVM + RHEL6
  2. 2. Indice● Introducción a la Virtualización● Introducción a la Virtualización con KVM● Instalación de KVM sobre RHEL 6● Creación de máquinas virtuales● Administración de máquinas virtuales● Migraciones de máquinas virtuales● Backups & Snapshots● Almacenamiento● Rendimiento y Optimización
  3. 3. Introducción a la  Virtualización
  4. 4. ¿Qué es la virtualización?
  5. 5. Un recurso físico, varios lógicos
  6. 6. Es la combinación de hardware y software que permite a una única  máquina comportarse como si  fueran varias máquinas
  7. 7. Características● El término nace en los 60s y en los 70s IBM ya crea VM● Desde 2005 Intel y AMD dan soporte hardware para la  virtualización, mayor rendimiento.● Permite aislar aplicaciones y usuarios en la mísma máquina● Capacidad para ejecutar diferentes S.O. ● Permite reducir los costes totales de propiedad (TCO)● Minimiza el consumo de energía e infraestructura
  8. 8. Arquitectura de virtualización
  9. 9. Arquitectura de virtualización
  10. 10. Hypervisores● Es como se le conoce al software de virtualización● Son los encargados de gestionar las diferentes VM● Se encargan de aislar las diferentes VM● Ofrecen una interfaz única de acceso al hardware● Personalización extrema● Reducir el coste de desarrollo y mantenimiento● Reducir el coste de soporte y asistencia
  11. 11. Tipos de virtualización● Emulación● Virtualización completa● Paravirtualización● Virtualización a nivel de Sistema Operativo
  12. 12. Emulación● La máquina virtual simula el hardware completo● Ventajas: Simular hardware no disponible● Desventajas: bajo rendimiento y baja densidad (1000%)● Ejemplos: bochs, qemu
  13. 13. Virtualización completa● Parecido a emulación● Se diferencia de la emulación en que los S.O. A virtualizar  están diseñados para correr en la misma arquitectura● Ventajas: flexibilidad, ejecutar diferentes S.O.● Desventajas: no se pueden emular otras arquitecturas● Ejemplo: virtualbox, KVM, XEN + VT, Vmware, Hyper­V
  14. 14. Paravirtualización● La VM tiene la misma arquitectura● Ventajas: rendimiento (ligero y rápido), escalabilidad, no  requiere VT● Desventajas: requiere modificar el S.O. invitado.● Ejemplo: XEN, KVM, Hyper­V, VMware
  15. 15. Virtualización a nivel de S.O.● La VM se hace con el mismo S.O. que lo aloja (sin  hypervisor)● El S.O. Está modificado para permitir múltiples espacios de  usaurio aislados● Ventajas: muy rápido, rendimiento cercano al nativo● Desventajas: más dificil aislar completamente● Ejemplo: openVZ, virtuozzo, vserver, containers...
  16. 16. Otras virtualizaciones● Virtualización de bibliotecas: ejecución de API Win32. Wine● Virtualización de aplicación: Java Virtual Machine● Virtualización de almacenamiento: pool de discos. LVM● Virtualización de escritorio: escritorio como servicio. SunVDI● Virtualización de red: Crossbow
  17. 17. Algunos términos● P2V: Phisical to Virtual: Migrar de físico a virtual● V2V: Virtual to Virtual: Migrar de virtual a virtual (de un  hipervisor a otro)● V2P: Virtual to Phisical: Migrar de virtual a físico● Dominio: máquina virtual
  18. 18. KVM
  19. 19. KVM, el sistema oficial de virtualización  del kernel de Linux.● Es un módulo del kernel que convierte el SO Linux en un  hypervisor. Se ha portado a FreeBSD y Illumos.● Creado por Quramnet (comprado por RH en 2008)● Soporta x86 (32 y 64 bits), S/390, PowerPC, IA­64 y ARM en  proceso● Utiliza el API estándar del kernel● Sistema de virtualización oficial de RHEL
  20. 20. KVM, basado en Qemu (emulación)  pero modificado para virtualización● Necesidad de soporte en el procesador instrucciones Intel­ VT, AMD­V● Al cargarse el módulo KVM, se convierte en un hypervisor  “bare­metal”● Soporte de drivers paravirtualizados para mejorar el  rendimiento
  21. 21. KVM, Kernel based Virtual Machine● Seguridad – Cada Virtual Machine es un proceso – Cada CPU es un thread – Se aprovecha de modelo seguridad selinux/AppArmor – Svirt● Es software libre
  22. 22. KVM, tipos de redes● User networking● Private virtual Bridge● Public Bridge
  23. 23. KVM, tipos de formatos de imagen● Raw – Ocupa todo el tamaño total – No soporta snapshots, compresión ni cifrado – Mejor I/O● Qcow2 – Imagen ocupa tamaño real y aumenta según necesid – Soporta snapshots, compresión y cifrado
  24. 24. KVM, tipos de formatos de imagen● Vmdk – Formato utilizado por VMWare Workstation● VDI – Formato soportado por VirtualBbox
  25. 25. KVM, desventajas● Proyecto relativamente jóven● No hay herramientas sofisticadas para la gestión de  servidores y VM● KVM aun puede mejorar mucho – Ahora se está trabajando en almacenamiento VirtFS,  disponible en anfitrión y huesped. El huesped es  capaz de utilizar la caché del anfitrión, acelerando el acceso a ficheros.
  26. 26. Libvirt
  27. 27. Libvirt● Conjunto de herramientas con API para virtualización de  sistemas Linux● Soporta los siguientes hypervisores KVM/QEMU, XEN, LXC,  OpenVZ, UML, Virtualbox, Vmware ESX/GSX, Workstation,  Hyper­V● Almacenamiento IDE/SCSI/USB/, LVM, iSCSI, NFS..● Proyecto de Software Libre 
  28. 28. Libvirt arquitectura
  29. 29. Virsh, Libvirt y ficheros XML● Virsh puede gestionar ficheros XML. Es muy útil para realizar  scripting avanzado para grandes despliegues.● Puedes realizar tareas especiales de forma automatizada
  30. 30. Libvirt, tipos de formatos de imagen● Raw: fichero plano● Iso: formato disco de CDROM● Dmg: formato disco de Mac● Qcow2: formato disco qemu v2● Vmdk: formato disco VMWare● Vdi: formato disco Virtualbox● Vpc: formato disco VirtualPC
  31. 31. Instalación de RHEL6 + KVM
  32. 32. Instalación de RHEL6
  33. 33. Instalación de KVM● KVM, al utilizar el paradigma de virtualización completa, es  necesario realizar la comprobación previa de que los  equipos soportan virtualización (Intel­VT, AMD­V) – grep vmx|svm /proc/cpuinfo● Es necesario habilitarlo en la BIOS.
  34. 34. Ubicación de las máquinas virtuales● Local – Dentro del sistema de ficheros, habitualmente en – /var/lib/libvirt/images● Remoto – NFS, Samba.. – ISCSI, Fibre Channel...
  35. 35. Instalación de paquetes KVM Instalación nueva
  36. 36. Instalación de paquetes KVM Instalación nueva
  37. 37. Instalación de paquetes KVM Instalación existente● yum install qemu­kvm, qemu­kvm­tools, libvirt, libvirt­ python, libvirt­client, python­virtinst, virt­manager, virt­ viewer, virt­v2v, libguestfs, libguestfs­tools● Confirmar que están cargados los módulos – kvm – kvm_intel
  38. 38. Comprobación de acceso a KVM● Añadir el usuario root al gruopo libvirt – adduser ­G root libvirt● Comprobamos que podemos acceder – virsh ­c qemu:///system 
  39. 39. Creación de máquinas virtuales
  40. 40. Virt­install: creación de VM● Comando que permita aprovisionar máquinas virtuales● Herramienta de línea de comandos● Básicamente hay que indicar: – Nombre de la VM (­­name) – RAM (­­ram) – Almacenamiento (­­file,­­disk) – Método de instalación (­­cdrom,­­location)
  41. 41. Virt­install: creación de VM● Virt­install – Virt­install ­­name=ubuntu1204 ­­vcpus=1 ­­ram=1024  ­­file=/var/lib/libvirt/images/ubuntu1204.img ­­file­ size=6 ­­os­type linux ­­os­variant ubuntuprecise ­­vnc –cdrom=/opt/ubuntu.iso● También es posible crearlas con: – Virsh – virt­manager
  42. 42. Herramientas para la gestión de MV● Hay 2 herramientas principales para la gestión de máquinas virtuales: – Modo consola: virsh – Modo gráfico: virt­manager
  43. 43. Virt­manager● Herramienta para gestionar las máquinas virtuales, consultar consumo de recursos, acceder a consolas virtuales,  clonación de máquinas● Permite gestionar hypervisores QEMU, KVM, XEN● Permite conexiones locales y remotas● Muestra estadísticas de rendimiento● Permite gestión de pools de almacenamiento
  44. 44. Virt­manager
  45. 45. Virt­manager
  46. 46. Virt­manager
  47. 47. virsh● Virsh es una herramienta de línea de comando para  administar a los huéspedes y al hipervisor● Utiliza la API de libvirt
  48. 48. virsh● virsh ­c qemu+ssh://root@host.to.con:22222/systemBienvenido a virsh, la terminal de virtualización interactiva.Teclee:  «help» para ayuda con las órdenes         «quit» para salir ● Para que no pida contraseña – ssh­keygen ­t dsa – ssh­copy­id ­i ~/.ssh/id_rsa.pub root@somehost
  49. 49. virsh● virsh ­c qemu+ssh://root@host.to.con:22222/systemBienvenido a virsh, la terminal de virtualización interactiva.Teclee:  «help» para ayuda con las órdenes         «quit» para salir
  50. 50. Opciones virsh
  51. 51. Creación de máquinas virtuales● Virt­install – Virt­install ­­network ­­name=ubuntu1204 ­­ram=1024  ­­file=/var/lib/libvirt/images/ ­­file­size=6 ­­vnc – cdrom=/opt/ubuntu.iso● Virt­manager – Mediante la interfaz gráfica● Virsh – Mediante ficheros XML (http://libvirt.org/format.html)
  52. 52. Ficheros XML <domain type=kvm id=3>   <name>ubuntu</name>   <uuid>4e3350e1­7612­d9da­1569­4cdbb6a74915</uuid>   <memory unit=KiB>524288</memory>   <currentMemory unit=KiB>524288</currentMemory>   <vcpu placement=static>1</vcpu>   <os>     <type arch=x86_64 machine=rhel6.3.0>hvm</type>     <boot dev=hd/>   </os>   <clock offset=utc/>   <devices>     <emulator>/usr/libexec/qemu­kvm</emulator>     <disk type=file device=disk>       <driver name=qemu type=qcow2 cache=none/>       <source file=/var/lib/libvirt/images/ubuntu.qcow2/>       <target dev=vdb bus=virtio/>       <alias name=virtio­disk1/>      <address type=pci domain=0x0000 bus=0x00 slot=0x06 function=0x0/>     </disk>
  53. 53. Virsh● Arrancar máquina virtual – virsh start <domain>● Apagar máquina virtual – virsh destroy <domain>● Eliminar máquina virtual – virsh undefine <domain>
  54. 54. Virsh● Suspender máquina virtual a RAM (consume RAM, pero no  CPU ni I/O) – virsh suspend <domain>● Restaurar máquina virtual – virsh resume <domain>● Conocer el estado de una VM – Virsh domstate <domain>
  55. 55. Virsh● Listar máquinas virtuales – virsh list● Listar pools – virsh pool­list● Listar volúmenes – virsh vol­list <pool>
  56. 56. Otros comandos● Además de la shell virsh existen una multitud de comandos  que realizan tareas similares: – Listar el contenido de un directorio de una VM ● virt­ls – Listar el espacio de las particiones de una VM ● virt­df – Listar las particiones ● virt­list­partitions
  57. 57. Otros comandos● Listar el contenido de un fichero de una VM – virt­cat● Redimensionar una VM – virt­resize● Clonar VM – virt­clone
  58. 58. Otros comandos: virt­top
  59. 59. Administración de máquinas virtuales
  60. 60. Administración de máquinas virtuales● Cambiar la memoria en caliente. Para poder realizar este  cambio la configuración de memoria máxima permitida  tiene que permitirnoslo, sino hay que cambiarlo primero. – virsh setmen vm1 524288● Cambiar las CPU – virsh edit vm1
  61. 61. Gestión de pools● Los pools son orígenes de dispositivos de almacenamiento  en los que alojar los volúmenes (máquinas virtuales)● Estos pools pueden ser de diversos tipos: – Dir: directorio del sistema de ficheros – Disk: dispositivo de disco físico  – Fs: dispositivo de bloque – ISCSI: destino iSCSI – Logical: grupo de volumen LVM
  62. 62. Gestión de pools: tipos
  63. 63. Drivers
  64. 64. Drivers de dispositivos● KVM soporta virtualización hibrida.  – IDE ● En los SO invitados: emulación drivers.  ● Bajo I/O en dispositivos de bloques y red – VirtIO ●  En los SO invitados drivers paravirtualizados.  ● Alta I/O en dispositivos de bloques y red
  65. 65. Drivers de dispositivos: Virtio● VirtIO es una interfaz independiente del hypervisor● Incluido en kernel > 2.6.25● RedHat ha desarrollado drivers virtIO para Windows,  certificados por Microsoft.
  66. 66. VirtIO disk driver
  67. 67. VirtIO network driver
  68. 68. Virtual Networking
  69. 69. Virtual Networking● Para la implementación de redes virtuales libvirt utiliza el  concepto de switches virtuales● Un switch virtual es una implementación software de un  switch al que se le pueden conectar varias máquinas y su  tráfico se redirige a través de ese switch.● El anfitrión Linux representa un switch virtual como una  interfaz de red.● Default es un switch virtual representado por virbr0.
  70. 70. Virtual Networking
  71. 71. Virtual Networking● Por defecto – Las VM reciben una IP por DHCP (dnsmasq) – El anfitrión hace NAT (masquerading) – Tienen acceso de red a otras máquinas virtuales o al  host a través de 192.168.122.0● Tenemos una interfaz virbr0 que es la encargada de la  conectividad NAT
  72. 72. Virtual Networking: NAT
  73. 73. Virtual Networking● Si se quiere que las máquinas tengan acceso a la LAN es  necesario crear un BRIDGE● Tenemos una interfaz virbr0 que es la encargada de la  conectividad NAT. No utilizarla para crear el Bridge.● Estableceremos un bridge entre 2 interfaces del anfitrión – Dispositivo físico (eth0, eth1, bond0..) – Dispositvo virtual (vnet0...) – Para generar el bridge br0● La IP del anfitrión se la quedará br0
  74. 74. Virtual Networking: bridge● Bridge en Linux – Deshabilitar NetworkManager (no soporta bridge) ● chkconfig NetworkManager off ● chkconfig network off ● service NetworkManager stop ● service netwok start
  75. 75. Virtual Networking: bridge● Crear el Bridge (I) – /etc/sysconfig/network­scripts/ifcfg­eth0 DEVICE=”eth0” ONBOOT=”yes” BRIDGE=”br0”
  76. 76. Virtual Networking: bridge● Crear el Bridge (II) – /etc/sysconfig/network­scripts/ifcfg­br0 DEVICE=”br0” TYPE=”Bridge” ONBOOT=”yes” DELAY=”0” IPADDR=172.25.209.249 BOOTPROTO=none NETMASK=255.255.254.0 GATEWAY=172.25.208.1 DNS1=172.25.201.33 DNS2=172.16.2.2
  77. 77. Virtual Networking: bridge● Confirmar que iptables no está trabajando en el bridge – /etc/sysctl.conf net.bridge.bridge­nf­call­ip6tables = 0 net.bridge.bridge­nf­call­iptables = 0 net.bridge.bridge­nf­call­arptables = 0 – sysctl ­p /etc/systctl.conf – Service libvirtd reload
  78. 78. Virtual Networking: bridge● Reiniciar la red – service network restart● Verificar el bridge – brctl show bridge name     bridge id               STP enabled     interfaces virbr0          8000.000000000000       yes br0             8000.000e0cb30550       no              eth0
  79. 79. Virtual Networking: bridge
  80. 80. Virtual Networking: VLAN Tagging● VLAN es una red local virtual.● Se utilizan por su rendimiento, seguridad, facilidad de  gestión...● Requiere que esté el módulo cargado – modprobe 8021q
  81. 81. Virtual Networking: bridge● Ajustamos los valores de la interfaz física – /etc/sysconfig/network­scripts/ifcfg­eth0 DEVICE=”eth0” TYPE=”Ethernet” ONBOOT=”yes” BOOTPROTO=none
  82. 82. Virtual Networking: bridge● Vamos a taggear todos los paquetes que salgan a través  de eth0 con el VLAN ID 3003. – /etc/sysconfig/network­scripts/ifcfg­eth0.3003 DEVICE=”eth0.3003” ONBOOT=”yes” BOOTPROTO=static IPADDR=192.168.1.1 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 USERCTL=no VLAN=yes – service network restart
  83. 83. Migraciones de máquinas virtuales
  84. 84. Migraciones p2v● Las migraciones p2v requieren realizar un proceso de  empaquetamiento del servidor físico en un fichero virtual● Es recomendable darle 1GB más a la máquina virtual.● Se puede realizar con diversas herramientas – Clonezilla – Selfimage – Windows Backup● http://pve.proxmox.com/wiki/Migration_of_servers_to_Proxm ox_VE
  85. 85. Migraciones v2v● Las migraciones v2v requieren básicamente que las  máquinas virtuales sean convertidas al formato KVM. – Qemu­img – virt­v2v● Soporta una gran cantidad de formatos – RAW,  – QCOW2 (formato QEMU) – VDI (formato VirtualBox 1.1) – VMDK (formato VMWARE 3, 4 y 6)
  86. 86. qemu­img● Comando que permite  – chequear imagen en disco – Realizar conversiones entre formatos de imagen – Proporcionar información de la imágen – Gestionar las snapshots de una imagen – Redimensionar una imagen
  87. 87. Migraciones v2v: vmware2kvm● Vmware es el hipervisor más utilizado en el mundo, por lo  que a menudo vamos a querer hacer migraciones  vmware2kvm. – Qemu­img ● qemu­img convert ubuntu*.vmdk ­O raw ubuntu.raw ● qemu­img convert ubuntu*.vmdk ­O qcow2  ubuntu.qcow2 – Arrancar en virt­manager – Arrancar con virsh (vmware2libvirt del vmx)
  88. 88. Migraciones v2v: virtualbox2kvm● Virtualbox es un hipervisor de software libre ampliamente  utilizado para la virtuialización de escritorios. – VboxManage ● VBoxManage clonehd ­­format raw winXP.vdi  winXP.raw – Qemu­img ● qemu­img convert winXP.raw ­O qcow2  winXP.qcow2 – Arrancar en virt­manager
  89. 89. Virt­maneger no detecta correctamente  qcow2
  90. 90. Migraciones v2v: bootfail ● Virt­manager no detecta correctamente el formato qcow2  y lo considera raw. Eso hace que el sistema no arranque. ● Solución – Virt­manager ● Editar las propiedades de la máquina > IDE – virsh ● virsh edit <domain> <driver name=qemu type=raw/>       <driver name=qemu type=qcow2/>
  91. 91. Migraciones v2v: particiones ● En ocasiones puede interesarnos conocer las particiones de una máquina virtual – parted ­s /var/lib/libvirt/images/ubuntu.img printModel:  (file)Disk /var/lib/libvirt/images/ubuntu.img: 2147MBSector size (logical/physical): 512B/512BPartition Table: msdosNumero  Inicio  Fin     Tamaño  Typo      Sistema de ficheros  Banderas 1      1049kB  1611MB  1610MB  primary   ext4                 arranque 2      1612MB  2146MB  535MB   extended 5      1612MB  2146MB  535MB   logical   linux­swap(v1)
  92. 92. Ojo con las máquinas Windows BSoD
  93. 93. Migraciones v2v: windows● Las máquinas Windows tienen el problema de BsoD, ya que  memorizan el hardware sobre el que fue instalado y no  disponen del controlador IDE. – STOP 0x000007f.● Solución: – Desinstalar vmware­tools – Utilidad MergeIDE  http://www.inode64.com/doc_download/22­mergeide – Proceso habitual (vmware­vdiskmanager + gemu­img)
  94. 94. Migraciones v2v: windows● MergeIDE – Es un script que mete una serie de parametros en el  Registro de Windows y confirma la existencia de unos  drivers en Windows (%SystemRoot%System32Drivers) ● atapi.sys ● intelide.sys ● pciide.sys ● pciidex.sys
  95. 95. Snapshots y backups
  96. 96. Snapshots y Backups● Los snapshots y backups nos permitirán hacer una copia  que poder recuperar posteriormente. Los snapshots son  mucho más eficientes que un backup tradicional y más  sencillos de restaurar.● Herramientas más utilizadas: – Virt­clonate – Virsh snapshot – LVM2
  97. 97. Snapshots: virt­clonate● La función clonate de virsh no es un snapshot como tal, es  una copia de una máquina con el objetivo de crear clones, como si fuera una plantilla.● La clonación no se puede hacer en caliente, es necesario  parar la máquina● Es una copia exacta de la máquina (CPUs, memoria,  espacio en disco y contenido). Genera una nueva MAC  para evitar problemas.
  98. 98. Snapshots: virt­clone● Suspender la máquina – virsh suspend vm1● Clonar la máquina – virt­clone ­­original vm1 ­­name vm1­clone ­­file  /var/lib/libvirt/images/vm1­clone.img● Arrancar ambas máquinas – virsh resume vm1 – virsh start vm1­clone
  99. 99. Snapshots: virsh snapshot● Un snapshot no es una copia como tal, sino un recordar el  estado en un momento dado. Cuando se realiza un  snapshot no se copia y por tanto no ocupa. El snapshot va  ocupando según se va modificando la máquina original.● Requiere imágenes de tipo qcow2.
  100. 100. Snapshots: virsh snapshot● Confirmar el formato de la imagen – qemu­img info /var/lib/libvirt/images/vm1.img● Recomendable parar la máquina antes – virsh shutdown vm1● Tomamos el snapshot – virsh snapshot­create vm1● Confirmar el snapshot – virsh snapshot­list vm1
  101. 101. Snapshots: virsh snapshot● Restaurar un snapshot – virsh snapshot­revert vm1 estado­inicial● Eliminar un snapshot – virsh snapshot­delete vm1 estado­a­borrar
  102. 102. Snapshots: LVM2● Los snapshots nos permitirán hacer una copia que poder  recuperar posteriormente. Los snapshots son mucho más  eficientes que un backup y más sencillos de restaurar.● Formas de realizar un snapsot: – Virsh snapshot – Virsh clonate – LVM2
  103. 103. Almacenamiento
  104. 104. Almacenamiento
  105. 105. Almacenamiento● KVM utiliza cualquier almacenamiento soportado por Linux – Local ● IDE/SCSI/SATA/USB, LVM – Remoto ● NAS: NFS, Samba/CIFS ● SAN: iSCSIFibre Channel.. – Distribuido ● GFS2, OCFS, GlusterFS
  106. 106. Almacenamiento● No es aconsejable pasar dispositivos completos a VM – Es mejor asignar /dev/sdb1 que /dev/sdb – Sino el invitado puede crear particiones que afecten al  anfitrión
  107. 107. Almacenamiento● En ocasiones el almacenamiento requiere ser visto por el  hypervisor, ser detectado. Bien porque es nuevo, bien  porque cambia de tamaño. Cada sistema de  almacenamiento dispone de diferentes formas de hacerlo● RHEL provee de un script “universal” – /usr/bin/rescan­scsi­bus.sh – rpm ­ivh  http://mirror.centos.org/centos/6/os/x86_64/Packages/sg3_utils­1.28­4.el6.x86_64.rpm● Especialmente útil en sistemas como iSCSI, FC...
  108. 108. Almacenamiento● Supongamos que queremos añadir un USB a todas las  máquinas virtuales● Añadiendo almacenamiento adicional – virsh attach­disk vm1 /dev/sdb discoUSB ­­driver tap  ­­mode shareable● Puedes repetir el comando anterior en tantas VM como  quieras. Ojo! No hay control de escritura.
  109. 109. Almacenamiento: LVM● Mecanismo para crear grandes colecciones de espacio de  almacenamiento que se pueden asignar a diversos sistemas de ficheros (volúmenes) pequeños que a la vez permite  manejarlas como una entidad completa.● Nivel de abstracción entre: – las peticiones de almacenamiento o recuperación  – Los dispositivos físicos concretos donde están  almacenados esos datos.
  110. 110. Almacenamiento: LVM● Diseño: – Volume Group (VG) : El Volume Group es el mayor nivel de abstracción  en LVM. Agrupa una colección de Volúmenes Lógicos y Volúmenes  Físicos en una unidad administrativa. – Physical Volume (PV): Un Volumen Físico es típicamente un disco duro,  aunque puede ser cualquier dispositivo que “parezca” un disco duro  (ej. Un dispositivo RAID software). – Logical Volume (LV): El equivalente a una partición en un sistema no  LVM. El LV se ve como un dispositivo de bloques estándar que puede  contener un FS (ej. /home).
  111. 111. Almacenamiento: NFS
  112. 112. Almacenamiento: iSCSI● Descubrimos el IQN objetivo del LUN – iscsiadm ­m discover ­t st ­p <ip.address>● Creamos el nuevo pool – # virsh pool­define­as myiscsipool iscsi <targethost> ­  <targetiqn> ­ /dev/disk/by­path● Creamos el pool – # virsh pool­build myiscsipool
  113. 113. Almacenamiento: Fibre Channel● Tecnología de red utilizada para redes de almacenamiento● Requiere de una tarjeta HBA en el sistema anfitrión● Cada HBA tiene un identificativo único mundial (WWN)● Drivers nativos RHEL6 para FC – lpfc – qla2xxx – zfcp – mptfc
  114. 114. Almacenamiento: Fibre Channel● Pasos a realizar para habilitar el acceso 1.Crear un dispositivo de almacenamiento en la cabina ● Se crea a través de herramientas propias 2.Cargar el driver correspondiente ● modprobe qla2xxx 3.El anfitrión detecte el dispositivo presentado ● echo "1" > /sys/class/fc_host/host/issue_lip ● echo "­ ­ ­" > /sys/class/scsi_host/host0/scan
  115. 115. Almacenamiento: Fibre Channel● Tras los pasos anteriores fdisk muestra el nuevo dispositivo 4.Creamos una partición con todo el tamaño publicado ● fdisk /dev/sdb 5.Formateamos la partición ● mkfs.ext4 /dev/sdb1 6.Montamos la partición ● mount ­t ext4 /dev/sdb1 /vm­images
  116. 116. Almacenamiento: Fibre Channel● Finalmente 7.Editamos /etc/fstab para añadirlo permanentemente ● /dev/sdb1 /vm­images ext4 defaults 0 0 8.Añadimos un nuevo pool ● virt­manager ● virsh
  117. 117. Almacenamiento: Fibre Channel● virsh – virsh pool­define­as myfcpool dir ­ ­ ­ ­ /vm­images – virsh pool­build myfcpool – virsh pool­start myfcpool – virsh pool­autostart myfcpool
  118. 118. Almacenamiento: Fibre Channel● virt­manager
  119. 119. Rendimiento y Optimizaciones
  120. 120. Rendimiento● KVM posee el mismo rendimiento y estabilidad que Linux● KVM soporta MV hasta 16CPU virtuales y 256GB RAM● Rendimiento de SGBD Oracle, SAP, LAMP, MS Exchange  sobre KVM oscila entre 95% y 135%● Se han conseguido ratios de hasta 600 máquinas virtuales  en un servidor físico.
  121. 121. Optimizaciones● Utilizar virt­manager es una buena idea porque: – Se asegurará de que el huesped va a funcionar – Optimiza el huesped● Es importante ser lo más específico posible – Utilizará drivers adecuados
  122. 122. Se específico!
  123. 123. Se específico!
  124. 124. Optimizaciones● Utilizar drivers paravirtualizados en medida de lo posible  virtio – Exiten drivers para Linux y Windows.● Utiliza kernels > 3.0.0 si es posible ● Utiliza cache=writeback 
  125. 125. Piloto
  126. 126. Piloto● Servidores de virtualización: RHEL 6 + KVM – Acceso a storage compartido iSCSI/NFS – Creación de máquinas virtuales en nodo1 – Simulación de fallo y levantamiento de máquinas en nodo2● Configuración de switches● Servidores de almacenamiento: Openfiler 2.3 – Sincronización entre ellos modo pri/sec DRBD – Publicación de contenido mediante iSCSI/NFS – Simulación de fallo
  127. 127. Otras soluciones
  128. 128. Proxmox
  129. 129. RedHat Enterprise Virtualization
  130. 130. RedHat Enterprise Virtualization
  131. 131. RedHat Enterprise Virtualization
  132. 132. Citrix
  133. 133. Parallels + Plesk

×