480 likes | 627 Views
Un entorno completo de trabajo basado en un cliente ligero. J.A. Marín Beltrán L. Meléndez Aganzo Servicio de Informática Universidad de Córdoba. Aulas de informática. Características. Grandes despliegues de equipos Poco personal para mantenerlos Entorno cambiante Usuarios heterogéneos
E N D
Un entorno completo de trabajo basado en un cliente ligero J.A. Marín Beltrán L. Meléndez Aganzo Servicio de Informática Universidad de Córdoba
Aulas de informática. Características • Grandes despliegues de equipos • Poco personal para mantenerlos • Entorno cambiante • Usuarios heterogéneos • Dispersión geográfica
Alternativas de diseño • Equipos autónomos. S.O. local • Equipos autónomos. Replicación de discos. • Equipos autónomos sin disco. • Terminales de aplicaciones • Entornos mixtos
Equipos autónomos S.O y APPS
Entornos mixtos. Objetivos • ¿Hay recursos locales aprovechables? Aprovechémoslos. • ¿Se pueden ejecutar aplicaciones localmente? Ejecutémoslas. • ¿No es posible la replicación outband? Reduzcamos la imagen.
Thinclients basados en linux • NO se usan distribuciones estándar. • Usan file systems en memoria. • Usan kernels e imágenes initrd de “huella pequeña” (small footprint). • Incluyen la inmensa mayoría de drivers. • No usan aplicaciones ni servicios superfluos • Están orientados a la internacionalización.
LTSP (Linux Terminal Server Project) • www.ltsp.org • Basado en NFS • Swap con menos de 4Mb • Root file system • Básicamente da soporte X • Permite compartir algunos dispositivos • Permite algunos clientes locales • No demasiado configurable
PXES • Proyecto casi unipersonal • Derivado a comercial • Comprado por empresa 2X • Similar a ThinStation • Generador de imágenes gráfico pero menos versatil que TS. • Poca contribución de los usuarios
ThinStation • Idea original 2001: Netstation (Francisco Castro) • 5/5/2003: ThinStation en SourceForge • 11/8/2003: ThinStation 1.0 • 5/5/2004: Thinstation 2.0 • 19/7/2004: TS-O-MATIC • 16/9/2005: ThinStation 2.1.3 (stable) • 21/10/2006: ThinStation 2.2 …
ThinStation: Características • Kernel 2.4.28 • Initrd mínimo de 3 Mb. • RootFS en formato squashfs • Clientes MultiX o con WM • Soporta la totalidad de Clientes libres • Soporta Clientes X locales • Soporta todo tipo de hardware local
Componentes de TS • Servidor de arranque (DHCP y TFTP) • Se permiten arranques locales de CD, HD, PenDrive, flash disk, etc. • Protocolo de arranque (en la ROM del NIC) • PXE • Etherboot (rom-o-matic) • Imagen de arranque (3 a 16 Mb) • Kernel (vmlinuz) • Initrd • Empaquetamiento NBI
Componentes de TS II • Sistema de generación de imágenes • Ficheros “build.conf” y comando build • TS-O-MATIC (http://ts-o-matic.aaskov.dk ) • Entorno de desarrollo • Mini distribución de linux chroot’d • Para generación de binarios y kernel • Ficheros de configuración • Thinstation.hosts y ficheros group
Proceso de generación y prueba Edición de build.conf y ejecución de build Copiado de bootimages/ a /tftpboot Entrada en DHCP y generación de ficheros de configuración Configuración del NIC para PXE y arranque
Paquetes (packages) • Cierta analogía con rpm’s • Incluyen dos tipos de información • Estática en el momento de build • Dinámica tras el arranque • Tipos • Básicos (base, x-commons, etc). Core de linux • Opcionales: Clientes de conexión, clientes de red, servidores de red, utilidades, clientes locales
Proceso de arranque Arranque de PXE Descarga de thinstation.nbi.zpxe y/o de thinstation.nbi Arranque de vmlinuz e initrd Descarga de ficheros de configuración
Ficheros de configuración • Thinstation.hosts • Nombre, MAC y grupos • Thinstation.network • Generales para todos los equipos • Thinstation.”MAC” • Específicos para cada MAC • Thinstation.conf.group-XXXXX
Ficheros Thinstation Group • Ejemplos por tipo de hardware: • Thinstation.conf.group-17pulgadas • Thinstation.conf.group-14pulgadas • Ejemplos por aula: • Thinstation.conf.group-AULA_S2 • Thinstation.conf.group-AULA_P3
Aula A Aula B 14pul 17pul
Sesiones • Sesión: Ejecución de un cliente, normalmente de conexión. SESSION_0_TITLE="LINUXLOCAL" SESSION_0_TYPE=uco SESSION_0_SCREEN=0 SESSION_1_TITLE="LUCANO" SESSION_1_TYPE=x SESSION_1_X_SERVER=gongora.uco.es SESSION_1_X_OPTIONS="-query" SESSION_1_SCREEN=1 SESSION_2_TITLE="WINDOWS" SESSION_2_TYPE=ica SESSION_2_ICA_APPLICATION_SET="ESCRITORIO_MED" SESSION_2_ICA_SERVER="medwts02.uco.es" SESSION_2_SCREEN=2
Hacia donde cambiar • Dos alternativas: • Windows local, resto remoto • Linux local, resto remoto • Paradoja de los servicios de terminal • Unix (xwindows) pensado desde sus orígenes para trabajo en entornos de terminal, pero: • KDE, Gnome colapsan los servidores • No pensado para líneas de baja velocidad • Windows pensado desde sus orígenes para trabajo en local, pero: • Servicios de terminal permite gran escalabilidad • Tremendamente eficiente en líneas de baja velocidad.
Modificaciones a ThinStation • Dotar de soporte de múltiples usuarios • Dotar de sistema de login • Dotar de un repositorio por NFS • Uso del disco local si existe para swap
Estructura de un paquete • /bin, /lib, /etc • Armado del paquete en dos fases • Build: Incorporación en la imagen initrd de los elementos estáticos de solo lectura (/etc, / …) • Arranque: Copia y modificación de los elementos dinámicos (/var, /usr …) • Scripts en /etc/init.d y /etc/rcX.d
Arranque de los paquetes • Los ficheros estáticos de /, /etc … se enlazan a directorios del tmp (en memoria) • Los scripts se “parsean” mediante “sed” para sustituir las variables de los ficheros de configuración por sus literales • Se arrancan los “demonios” y/o programas necesarios
PAM_LDAP • TS original solo usa /etc/passwd • Incorporamos librería pam-ldap, librerías nss y ficheros de configuración • Nueva variable: • LDAP_SERVER = “server”
RPC_STATD • Soporte de lockd y statd para ficheros en NFS • Necesario para determinadas aplicaciones • Eclipse • OpenOffice • Etc, etc.
MOUNT_HOMES • No introducimos automounter para evitar complejidad. • Montaje con: • Mount –t nfs • Smbmount • Variables • FORCE_USE_SMB=“ON/OFF” • NFS_HOME_PATH=“server:path” • SMB_HOME_PATH=“server” (\\server\usuario)
XDM_LOCAL • TS original soporta XDM pero con “query” a servidor remoto • Recompilamos XDM con soporte PAM • Creamos al vuelo ficheros de configuración • Xserver • Xsession • Xdm-config • Xstartup, xreset • Nueva variable: • NFS_LOCAL=“server:export”
PREPARE_HD • Permite usar el disco si se tiene • Partición de arranque (lilo y rom de etherboot) • Swap • Caché de NFS (futuro) • Paquete “inteligente” • PREPARE_HD=“ON/FORCE/OFF” • Instalación de equipos sin soporte PXE
Bases del diseño I • TS es rápido, nuestra modificación debe serlo: • No usamos escritorios pesados como KDE o GNOME, usamos ROX • No usamos clientes pesados como Ximian o Thunderbird, usamos sylpheed • No activamos más demonios de los necesarios, los usados son los más ligeros.
Bases del diseño II • Si disponemos de elementos modernos • Glib 2 • Gtk 2 • Xorg • Qt 4 • OpenOffice, Eclipse, DrScheme, Gimp • /usr/local reproduce la estructura de /
Procedimiento de despliegue • No es recomendable instalar en /usr/local mientras se usa, dos entornos: • TSEXP: Explotación • TSDEV: Desarrollo • Controlados por la variable NFS_LOCAL • Checkpoints en la NAS • TSDEV: 1.01, 1.02, 1.03, etc • TSEXP: 1.1, 1.2, 1.3, etc
Archive Boa constructor Clips Ddd DrScheme Eclipse Firefox Freepascal Gcc Gimp Glade Gqview Oracle Jdev Mrxvt MySql Nano, pico, emacs, nedit Openssh, Openssl OpenOffice 1.3, 2.0 Pcsc Perl, Python Planner Protege Pyro Qt3, QT4 Rox Sylpheed Tomcat Tora Algunas aplicaciones disponibles
El futuro ... • Thinstation es un estándar “de facto” en el mundo de los thinclients • Ambitos universitarios y empresariales • Dispositivos hardware comercializados con soporte para él • Nosotros aportamos nuestros desarrollos a la comunidad. Aparecerán plasmados en la versión 2.2 • Proyectos de crear entornos de administración para usuarios “no linux” • Idéntica imagen para servidores de acceso remoto. • Integración con sistema de imágenes windows basado en partimage y deepfreeze mediante grub
Conclusiones • No se puede abordar un entorno de múltiples usuarios con múltiples aplicaciones y S.O. sin acudir a soluciones ThinClient • Dentro de sus limitaciones, los thinclients nos aseguran la mayor tasa de disponibilidad de servicio al menor coste • Con poco esfuerzo y excelente rendimiento, hemos conseguido desplegar linux en las aulas sin romper con el anterior entorno windows. • Los usuarios se abstraen del S.O. subyacente y se centran en las aplicaciones, familiarizándose de una forma natural con otros sistemas operativos.