Network virtualization con OpenSolaris USE
IMPROVE
EVANGELIZE
Ezequiel Singer Sun Campus Ambassador Argentina http://blogs.sun.com/argentina_ambassador
[email protected]
Agenda Sun y OpenSource OpenSolaris Proyecto Crossbow Zones Demo
Sun -> OpenSource...???
Raices de Sun en Open Source
UNIX SVR4
1980
1990
2000
2006
OpenSolaris
Licencia CDDL, aprobada por OSI
Un poco de historia ●
● ●
Solaris es un sistema operativo UNIX de Sun Microsystems. Ampliamente reconocido por su estabilidad El código fue liberada en Junio de 2005 bajo la licencia CDDL como OpenSolaris
●
OpenSolaris :: Linux+GNU
●
Código disponible en opensolaris.org
10M de Lineas de Código Fuente kernel, rctl_action, dtrace_probe pool_bind_kmem_enable, zone_enter, chip_t, mutex_exit, ”Core Operating System” ddi_fm_capable, priv_set_t, putnext, lgrp_mem_rename, syscall_mstate, vmem_xfree tcp, dhcp, ipsec, nfs, dlpi, dns, ldap, nis, nis+, ppp, ipqos, ip multicast, Sistema Red ip multipathing, ipv4, ipv6,de rpc, udp, snmp, sctp, packet filtering libc, libumem, libsysevent, librt, libnsl, libproc, libsocket, libscf, libw, Librerías Sistema libkstat, librpcsvc, libxnet, libcurses,del libbsm, libnvpair, libsendfile, libadm Kstat, ifconfig, zoneadm, svcadm, traceroute,ppriv, prctl, mdb, pfexec, Comandos lofiadm, lari, ifconfig,fmadm, dispadmin, cputrack, crle, ptree
¿Por qué OpenSolaris? ●
Es tecnológico!
●
ZFS
●
Dtrace
●
Zones
●
●
Compatibilidad binaria garantizada .. y mucho más
Solaris ≅ GNU/Linux
Mozilla Firefox, Mozilla Thunderbird, OpenOffice.org, ... GNOME X Window System UNIX utilities
GNU utilities POSIX+ extensions
System libraries
Linux kernel
POSIX Solaris kernel
Hardware
10
Que puedo hacer en Solaris?
Compiz + Emerald
Proyecto crossbow
Virtualización de redes Network virtualization se centra en simular una red completa, compuesta de software y hardware. Network virtualization combina virtualización de plataforma y recursos, y puede ser interna o externa. ●
Externa, llevando varias redes a una sola, por ejemplo VLANs ●
Interna permite armar redes en una caja usando containers y virtual NICs con un sistema como OpenSolaris Crossbow ●
Que es Crossbow Crossbow provee la construcción de bloques para la virtualización de redes y recursos para virtualizar el stack completo y NIC's alrededor de cualquier servicio (HTTP, HTTPS, FTP, NFS, etc.), protocolo o Virtual machine. ●
Se compone de 4 elementos: ● Virtual NICs ● Flow management ● Soporte de Hardware support processing ● Modelo administración
●
para
flow
VNICs
Una única NIC física puede ser subdividda en múltiples VNICs, las que pueden ser asignadas a diferentes zones o instancians Xen corriendo en el mismo sistema. VNICs son manejadas usando el comando dladm.
Flow Managment Crossbow crea el concepto de flow (flujo), implica una clase de tráfico y una política de manejo (limite ancho de banda, prioridad, etc.) Un flujo puede por ejemplo corresponder a un protocolo particular, servicio o virtual machine. Las squeues que fueron introducidas en Solaris 10, son extendidas para controlar los recursos utilizados por los flujos. Esto se logra reemplazando el procesamiento de paquetes por interrupción, por un mecanismo de polling donde squeue busca paquetes directamente en el hardware
Soporte Hardware para Flow Processing Hard de NICs modernos proveen la capacidad de clasificar el tráfico en la red según el contenido de los paquetes, como IP, MAC addresses, puertos de protocolos superiores, etc. Esta clasificación permite dividir el tráfico entrante en distintos dispositivos receptores de llamadas (DMA channels, FIFOs). Éstas llamadas son asociadas con flujos, que corresponden a servicios o máquinas virtuales, controladas por squeues
Modelo Administración
Dladm permite configurar las VNICs de manera sencilla y similar que otros dispositivos(create, destroy, modify, show). flowadm(1M) configura los flujos (create, destroy, modify, show). Cada flujo es asociado a una sola VNIC. Cada VNIC tiene un solo flujo cuando es creada.
Crossbow
Se agregará oficialmente al OpenSolaris en Noviembre 2008 Disponible una imagen ISO para testear en http://www.opensolaris.org/os/project/crossbow/
Esquema Crossbow
Solaris Zones
¿Qué son las zonas y los containers? Zones Instancias aisladas de Solaris, con un filesystem aislado o compartido, root propio, identidad propia en la red
+ Resource Management Agrupa un conjunto de procesadores en pool, provee “fair-share scheduling”
= Containers Un sistema liviano de virtualización de Sistemas Operativos
Solaris Containers (Zones) ●
Entornos aislados para aplicaciones con una simple instancia de Solaris –
●
Cada instancia, un sistema operativo separado
Aislamiento de name space, seguridad y aislamiento de falla
●
No requiere hardware dedicado
●
Las aplicaciones no cambian
●
Solaris containers son zones agrupadas con manejo de recursos
Las Zones son buenas para... ●
●
Permitir a estudianes o inexpertos tener su propio entorno UNIX para poder practicar (incluyendo root access...) Crear “sandboxes” de desarrollo para construir e instalar
●
Probar nuevos entornos para nuevas aplicaciones
●
Compartir recursos con un equipo de trabajo
●
●
Consolidar muchos servidores en uno solo, en forma segura VIRTUALIZAR REDES COMPLEJAS, EN UN SOLO EQUIPO
Zones: algunos detalles... ●
Default global zone
●
Sparse-root or Whole-root filesystem
●
Zones requieren 85 MB de disco(sparse-root) y 40 MB de memoria adicional, < 1% performance hit (ver www.sap.com/benchmarks)
●
En teoría > 8000 zones permitidas*
●
No necesitan rebooteos globales
●
Cada zone puede tener su propio IP
●
Cada zone tiene su propio root
●
Zones pueden tener copia local de directorios
●
Zones pueden proveer servicios HTTP, ssh, NIS, sendmail
BrandZ, correr Linux en Solaris ●
●
Las BrandZ zones permiten correr binarios Linux sin modificarlos dentro de Solaris. Esto permite a Solaris, ser un container para aplicaciones Linux The lx brand no es una distribución Linux y no contiene software Linux. BrandZ permite el software de user-level de Linux correr en una máquina con Solaris, incluyendo las herramientas necesarias para instalar the tools necessary to install a CentOS or Red Hat Enterprise Linux distribution inside a zone on a Solaris system.
Solaris Containers (www.sap.com/benchmarks)
4700/4780 = 0,983263598 menos de 1,7% de overhead!!
El unico otro particionamiento auditado en SAP es la LPAR de un IBM p670 pero nunca auditaron la opcion sin particion...
Solaris Zones: CLI % poolcfg – Crea processor sets y resource pools % pooladm – Instancia configuración de recursos % priocntl – Cambia el scheduling para procesadores % zonecfg – Crea y configura zonas % zoneadm – Instala y bootea zonas % zlogin – Login en zonas
Solaris Zones/Containers Demo Global Zone 1 Processor Share 192.168.1.128
Web Zone 3 Processor Shares 192.168.1.150
/usr, /platform, /sbin, /lib /etc, /var
Software Zone 2 Processor Shares 192.168.1.151
(r/o)
/etc, /var (r/w)
(r/o) /etc, /var (r/w)
/usr/local
/usr/local (r/w)
/cdrom
/cdrom
Ultra 20, AMD Single-Core Opteron, Solaris 10 x86 (resource management becomes much more fun on multi-processor machines)
Demo
Configurando VNIC's Listar Links en el sistema # dladm show-link LINK CLASS MTU STATE OVER e1000g0 phys 1500 up -Crear una VNIC # dladm create-vnic -d e1000g0 a1 : Listar VNIC: # dladm show-vnic
Configurar una Zone con VNIC # zonecfg -z a1-zone a1-zone: No such zone configured Use 'create' to begin configuring a new zone. zonecfg:a1-zone> create zonecfg:a1-zone> set zonepath=/export/a1-zone zonecfg:a1-zone> set autoboot=false
Configurar una Zone con VNIC zonecfg :a1-zone> s et ip-type=exclus ive zonecfg:a1-zone> add net zonecfg :a1-zone:net> s et phys ical=a1 zonecfg:a1-zone:net> end zonecfg:a1-zone> verify zonecfg:a1-zone> commit zonecfg:a1-zone> exit # zoneadm -z a1-zone install Preparing to install zone
.
Manejo de flows Creación de flujo para favorecer tráfico https: # flowadm add-flow -l e1000g0 -a transport=TCP,local_port=443 https-1 Ver reglas vigentes # flowadm show-flow https-1 Algunas propiedades para administrar: priority maxBW minBW cpus fanout
Virtualizar una red
Virtualizar una red
Fast Track Your Career with Free Training from Sun Entrenamiento Web disponible: ● Java ● Solaris 10 ● Java Enterprise System ● XML, Perl y mas
●
http://learningconnection.sun.com
Network virtualization con OpenSolaris USE
IMPROVE
EVANGELIZE
Ezequiel Singer [email protected] http://blogs.sun.com/argentina_ambassador Sun Campus Ambassador