Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y...
Transcript of Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y...
![Page 1: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/1.jpg)
Virtualización
Victor de la Fuente (2016)
![Page 2: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/2.jpg)
¿Por qué llegamos a virtualizar?
● Aprovechar mejor recursos (carga de trabajo o con variable en servidores) Compartición y asignación dinámica de recursos
● Simplificar la gestión de servidores Snapshots, migración, escalabilidad...
● Ejecutar simultáneamente diversos OS o diferentes versiones de un OS● Distribución o despliegue de entornos completos (para desarrollo o
explotación)● Entornos aislados por motivos de seguridad
![Page 3: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/3.jpg)
Tipos de virtualización (I)
● De red: VLANs, VPNs...● Otros dispositivos de E/S (p.ej. disco)● De aplicaciones (software portable)● A nivel de sistema operativo o hardware● De escritorio: VDI
![Page 4: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/4.jpg)
Redes Virtuales VLAN
![Page 5: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/5.jpg)
Redes Virtuales VPNs
![Page 6: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/6.jpg)
Virtualización de almacenamiento
![Page 7: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/7.jpg)
Virtualización de aplicaciones
![Page 8: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/8.jpg)
Virtualización a nivel OS vs. hardware
![Page 9: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/9.jpg)
Tipos de virtualización Hardware
Virtualización completa vs. Paravirtualización
![Page 10: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/10.jpg)
VDI
![Page 11: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/11.jpg)
Software y servicios de virtualización
● Citrix: Xen y XenServer (Usado por Amazon EC2)● Red Hat: KVM, oVirt y RHEV● VMware: vSphere, ESX…● Google Cloud● Microsoft: Hyper-V y Azure● Otros: QEMU, Proxmox, VirtualBox, OpenVZ....
Comparativa de características: https://en.wikipedia.org/wiki/Comparison_of_platform_virtualization_software
![Page 12: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/12.jpg)
Virtualización en la nube
● Calculadoras de precios de Amazon S3 y Microsoft Azure http://calculator.s3.amazonaws.com/index.html https://azure.microsoft.com/es-es/pricing/details/cloud-services/
● Comparativa online de servicios ofrecidos por cuatro de las principales empresas de servicios de virtualización en la nube http://cloudcomparison.rightscale.com/
● Telefónica● Existen también multitud de empresas que ofrecen estos servicios. Desde
Telefónica a pequeñas empresas del negocio del hosting● Llegaron los comparadores de precios al Cloud! https://www.cloudorado.com/
![Page 13: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/13.jpg)
Usos de VLAN, VPN, NAS y MV en la ETSISI
● VLANs para aislar segmentos de red o tráfico sensible (G.E., secretaría...)● Servicios críticos, o conexiones para backup solamente accesibles con
túnel SSH● NAS mediante NFS para carpetas compartidas entre servidores● NAS mediante SMB para carpetas compartidas en la red de Windows● ownCloud para documentos internos y gestión académica ● KVM para virtualización a nivel de servidores y VirtualBox en aulas
![Page 14: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/14.jpg)
Caso de uso: KVM + virt-manager ETSISI (I)
![Page 15: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/15.jpg)
Caso de uso: KVM + virt-manager ETSISI (II)
![Page 16: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/16.jpg)
Caso de uso: KVM + virt-manager ETSISI (III)
![Page 17: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/17.jpg)
Caso de uso: oVirt
![Page 18: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/18.jpg)
Caso de uso: oVirt + Thin client Rpi2
● oVirt (open source de RHEV)● Raspberry Pi 2 ● RPiTC2 v 1.4
![Page 19: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/19.jpg)
Operaciones típicas de gestión de MV
● Configuración de MV y uso de Snapshots● Importación de virtual appliances (imagen de disco + ficheros de conf.)● Asignación de recursos● Clonación : completa vs enlazada● Conexión de dispositivos, compartición de carpetas o redireccionamiento
de puertos● Conversión de formatos de disco de imagen al migrar entre hipervisores● Redimensionado de discos● Gestión de plantillas, pools de MV, migración entre hosts...
![Page 20: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/20.jpg)
VirtualBox
![Page 21: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/21.jpg)
Usando Virtual Box!
El camino lo hacemos andando… a practicar!
![Page 22: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/22.jpg)
VirtualBox: formatos del disco de la MV
● VDI -> Virtual Box● VHD -> Microsoft● VMDK -> VMWare● Otros existentes (algunos no soportados): HDD, QCOW, QED, RAW…
Podemos reservar todo el espacio del disco o que el gestor de la MV se encargue de ir haciendo crecer el fichero hasta el límite fijado (se puede modificar pero hay que recordar redimensionar particiones dentro del huésped).
Imágenes ya hechas de diversos entornos: https://virtualboxes.org/images/
![Page 23: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/23.jpg)
VirtualBox: Tipos de enlaces de red de la MV
● Bridged Network: se comparte acceso directo a la tarjeta física (suele emplearse para alojar servidores como MV)
● Host-only: Red interna a la que el anfitrión tiene acceso● Internal: Red interna no visible para las aplicaciones del anfitrión● Not attached: Hay dispositivo de red pero sin enlace. “No hay cable”● NAT: No hay ICMP, broadcast UDP...● NAT Network: Variante de la anterior con menos limitaciones
![Page 24: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/24.jpg)
VirtualBox: Instalar Guest additions
![Page 25: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/25.jpg)
VirtualBox: Carpetas compartidas
![Page 26: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/26.jpg)
VirtualBox: Instantáneas
![Page 27: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/27.jpg)
VirtualBox: Instantáneas (II)
Podemos mantener un árbol de
instantáneas de estado y recuperar
cualquiera de ellas que nos interese!!
![Page 28: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/28.jpg)
VirtualBox: Clonar una MV
![Page 29: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/29.jpg)
VirtualBox: Instantánea + clon enlazado
![Page 30: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/30.jpg)
Máquinas virtuales vs. Contenedores
![Page 31: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/31.jpg)
Contenedores
● En los sistemas de este tipo (p.ej. Docker) los contenedores que se ejecutan en la misma máquina comparten el kernel y añaden por encima sus aplicaciones y dependencias
● Los contenedores se ejecutan como procesos aislados en el host (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos)
● Las imágenes se construyen en sistemas de ficheros por capas y comparten ficheros comunes (p.ej. Empleando OverlayFS)
![Page 32: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/32.jpg)
Contenedores: estructura interna
![Page 33: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/33.jpg)
Docker: Introducción
![Page 34: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/34.jpg)
Docker: Contenedores, capas e imágenes (I)
La imágen no tiene estado y no cambia. Se compone de capas de sólo lectura que representan el sistema de ficheros raíz para el contenedor.
Un contenedor es una instancia en ejecución de una imágen.
Para interactuar con docker empleamos comandos:
![Page 35: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/35.jpg)
Docker: Contenedores, capas e imágenes (II)
![Page 36: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/36.jpg)
Docker: Contenedores, capas e imágenes (III)
![Page 37: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/37.jpg)
Docker: Contenedores, capas e imágenes (IV)
Las imágenes pueden compartir capas (p.ej. software adicional, actualizaciones de S.O., distintas configuraciones de un software...)
![Page 38: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/38.jpg)
Docker: Comandos básicos (I) hello-world
![Page 39: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/39.jpg)
Docker: Comandos básicos (II) whale-say
![Page 40: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/40.jpg)
Docker: Comandos básicos (III)
● Ayuda general o sobre comando concreto: docker [comando] --help● Lista las imágenes disponibles: docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest c54a2cc56cbb 4 months ago 1.848 kB
docker/whalesay latest 6b362a9f73eb 18 months ago 247 MB
● Información del sistema: docker info
![Page 41: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/41.jpg)
Docker: Comandos básicos (IV)
● Información a bajo nivel de una imágen/contenedor/tarea:○ docker inspect [IMAGEN|CONTENEDOR|TAREA]
● Búscar imágenes en Docker Hub https://hub.docker.com/explore/○ docker search [--no-trunc] <cadena de búsqueda>
● Descargar imágenes de Docker Hub: docker pull○ Ejemplo: docker pull httpd
● Ejecutar una imágen: docker run [opciones] <imagen> [comando] [args]○ Ejecución en segundo plano, interactiva y pseudo TTY: -d -i -t○ Conectar puertos y volúmenes con el contenedor: -p -v○ Conectar de forma privada dos contenedores: --link
![Page 42: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/42.jpg)
Docker: Ejecutando un contenedor httpd
Otros comandos:● docker stop ...● docker start ...● docker ps [-a]● docker rm ...● docker exec ...● docker commit ...
![Page 43: Virtualización - UPM · (p.ej. Docker sobre Linux emplea cgroups y namespaces para aislar y controlar el uso de recursos) Las imágenes se construyen en sistemas de ficheros por](https://reader034.fdocument.pub/reader034/viewer/2022050410/5f86d0991db8a515331f5372/html5/thumbnails/43.jpg)
Docker: Más información y recursos
● https://docs.docker.com/engine/userguide/● https://training.docker.com/self-paced-training
Docker, como la mayoría de las soluciones software que hemos mencionado, dispone de otros módulos y funcionalidades más avanzadas.
Dockerfiles, DockerHub, Registry, Machine, Swarm… ;-)