PROPUESTAS DE MEJORAS Y ACTUALIZACIÓN DEL SERVICIO DE CORREO ELECTRÓNICO DE LA DE LA UNIVERSIDAD DE LOS ANDES R. Calderón1, J. L. Chávez2, G. Díaz3, Centro de Tecnologías de la Información (CTI) Corporación Parque Tecnológico de Mérida (CPTM) Septiembre 2.010 1 calderon@ula,ve 2 juanluis@ula.ve 3 gilberto@ula.ve Plataforma de alta disponibilidad y alto rendimiento para servicios de correo electrónico. Conceptos Básicos Antes de realizar la descripción de la arquitectura propuesta se definen los distintos elementos que actúan en el proceso de envío y recepción de correo electrónico: - Mail User Agent (MUA). - Mail Transfer Agent (MTA). - Mail Submission Agent (MSA). - Mail Delivery Agent (MDA). Para una comprensión inicial de cada elemento observemos el esquema que se muestra en la siguiente figura: Mail User Agent Mail (MUA) Comúnmente conocido también como cliente de correo cliente de correo, es un programa utilizado de forma directa por los usuarios para gestionar su correo electrónico. Es aquel programa que se utiliza para: leer, redactar, responder y eliminar mensajes. Generalmente está activo cuando el usuario lo ejecuta. Así mismo, podemos encontrar varios MUAs en el mismo computador. Dentro de los MUA más conocidos tenemos: Thunderbird, Eudora, Outlook, Pine, Aplicaciones webmail. Las tareas más importantes que realiza un cliente de correo electrónico son: - Búsqueda y descarga de Mensajes: Búsqueda y descarga de Mensajes: Generalmente el MUA se conecta al buzón del usuario que se encuentra localizado en un servidor remoto. La conexión al buzón se puede hacer utilizando dos protocolos: • Post Office Protocol (POP): Este protocolo permite descargar los mensajes del buzón de correo y almacenarlos localmente. POP descarga uno por uno los mensajes de correo y elimina el mensaje del servidor sólo si éste se descargó correctamente. Es posible descargar los mensajes y conservar una copia en el servidor y posteriormente descargarlos con otro MUA. • Internet Message Access Protocol (IMAP): Mantiene una conexión activa entre el MUA y el buzón de correo. Los mensajes se mantienen en el buzón ubicado en el servidor. - Envío de Mensajes: Puede introducir mensajes de correo electrónico al sistema para ser enviado a otro sitio remoto. Para ello, el MUA se contecta a un servidor de correo el cual puede ser un MSA o un MTA. Estos dos últimos elementos son los dos tipos de servidores que manejan el protocolo SMTP (Simple Mail Transport Protocol). El MUA debe colocar rápidamente el mensaje en el sistema de transporte sin necesidad de preocuparse de a donde tiene que ser enviado el mensaje. El MUA siempre se conecta al mismo servidor configurado como preferido. Utiliza el Puerto 25 para MTA o el 587 para MSA. Mail Delivery Agent (MDA) Es un programa que se encarga de colocar los mensajes de correo electrónico en los buzones de los usuarios una vez que el servidor los acepta. Los MDAs más utilizados actualmente son: Procmail y Maildrop. El MDA es invocado por el MTA para realizar la entrega del mensaje. Las funciones de un MDA además de la entrega de mensajes son: filtrar los mensajes y ordenar los mensajes en carpetas. Buzón de Correo Los buzones de correo (mailbox mailbox) son el sitio donde se almacenan los mensajes una vez que fueron aceptados por el servidor (MTA). Los buzones de correo tienen actualmente dos formatos: Mbox Mbox: donde se almacenan todos los mensajes en un archivo y Maildir Maildir: donde se utiliza un directorio donde se guardan múltiples archivos. Cada archivo es un mensaje. Mail Transfer Agent (MTA) Es un programa que se encarga de transferir mensajes de correo electrónico entre computadores. Los MTAs más utilizados actualmente son: Sendmail y Postfix. Un servidor de correo puede recibir mensajes desde un MUA o desde otro MTA. Caracterización del Servicio El servicio de correo electrónico tiene características particulares que deben ser consideradas en el proceso de implantación del servicio. Estas características son: - Intensivo en IO: Elevado Este servicio realiza grandes cantidades de operaciones de Entrada/Salida pues los buzones son guardados en medios de almacenamiento de gran capacidad (discos duros). Así mismo, los archivos que se manejan tienen un tamaño relativamente pequeño (aproximadamente 500KB en promedio). - Intensivo en procesamiento: Cada mensaje necesita ser revisado para determinar la existencia de virus o verificar si éste representa un correo no deseado (spam). - Archivos Adjuntos: Actualmente es muy común encontrar mensajes de correo contentivos de documentos adjuntos. Esto ha incrementado el tamaño promedio de los mensajes y por ende el tiempo de procesamiento pues tales adjuntos deben ser revisados en busca de virus. - Interfaz Web: En la actualidad los usuarios están utilizando cada vez más los servicios ubicuos, por esto prefieren hacer uso del correo electrónico a través de una interfaz web (webmail). Propuesta Esta sección describe la plataforma propuesta para ofrecer un servicio de correo electrónico eficiente capaz de manejar grandes cantidades de usuarios, escalable y de alta disponibilidad. Así mismo se muestran el conjunto de motivos que dan fundamento a la renovación de la plataforma de correo electrónico de la Universidad de Los Andes. Justificación A continuación se enumeran los distintos elementos que han generado una degradación considerable del servicio de correo electrónico: - Periodo de funcionamiento: Todo equipamiento de computación tiene una vida útil bajo condiciones de uso intensivo. La plataforma actual se encuentra en funcionamiento continuo, sin interrupción programada alguna, desde el 2005. - Condiciones eléctricas: Las condiciones del suministro eléctrico han sido precarias en los últimos 3 años. Los servidores de correo han enfrentado sobre carga de voltaje, cortes frecuentes de electricidad y actualmente, de manera regular se encuentran operando a muy bajos niveles de voltaje (90 y 180 Volts). - Condiciones de ambiente: En el presente año, el precario servicio eléctrico afectó el sistema de enfriamiento de la sala donde se encuentran los servidores de correo en 3 ocasiones. En cada una de estas los servidores sufrieron recalentamiento extremo. En el siguiente gráfico se compara las prestaciones del sistema de archivos que almacena los buzones de correo vs. un sistema de archivos adecuado para esta función. Este último sistema de archivos corresponde al nodo que será incorporado inicialmente para dar comienzo a la nueva plataforma. Se observa como el sistema de archivos que se encuentra actualmente en funcionamiento no ofrece las prestaciones adecuadas para gestionar el alto volumen de archivos que representan los mensajes de correo. Para las operaciones de escritura de archivos mayores de 2 MB el rendimiento cae significativamente. Arquitectura propuesta El esquema de la figura Error: No se encuentra la fuente de referencia muestra la arquitectura de hardware planteada donde cada uno de los elementos del servicio se implanta utilizando un cluster para tener redundancia. Sistema de recepción y envío (MTA) Como primera capa de gestión de correo se tiene un conjunto de servidores (Cluster A) que reciben y envían correo. Aquí se aplican métodos livianos de filtrado. Puede representar también una primera barrera de defensa en contra de posibles ataques al servicio. Servicio de Autenticación Un conjunto de máquinas (Cluster B) tendrá las cuentas de los usuarios y toda su información básica. Estos ofrecerán el servicio de validación a los otros clusters. Sistema Anti Virus y Anti Spam Un conjunto de servidores (Cluster C) conforman el servicio de verificación de virus y spam dentro de cada mensaje. La ventaja de esta implantación es que los servicios utilizados directamente por los usuarios no presentan degradación por el alto consumo de recursos de este proceso. Sistema de Almacenamiento y MUA El sistema de archivos utilizado para guardar los buzones debe ser lo suficientemente rápido para responder a las ingentes cantidades de escrituras y lecturas realizadas por los distintos elementos que conforman el servicio. Se recomienda que los buzones estén lo más cerca posible al webmail para mantener un buen nivel de prestaciones. Por otro lado, se recomienda distribuir los buzones para evitar sistemas de archivos de gran tamaño, pues el tiempo para su mantenimiento, respaldo y recuperación se incrementa considerablemente. Así mismo, la falla de un sistema de archivos afectaría sólo a un grupo de usuarios. Por todo esto, se plantea un cluster de servidores (Cluster D) que almacenen los buzones de forma distribuida y que a la vez ofrezca el servicio MUA mediante una aplicación webmail. Para contar con tolerancia a fallas, se recomienda tener un servidor con características similares que tenga una copia de todos los buzones actualizada para que entre en funcionamiento en caso de ocurrir una falla en alguno de los servidores activos. Sistema MDA Finalmente, un conjunto de servidores (Cluster E) que proporcionan los servicios de descarga de mensajes (POP, IMAP) hacia los programas de gestión de mensajes de los usuarios. Plan de Contingencia La plataforma actual de correo electrónico presenta una degradación considerable debido a los años de servicio en funcionamiento (desde el 2005) lo que ha provocado marcados niveles de obsolescencia y deterioro natural. Por esto, se plantea un conjunto de tareas que permitirán dar inicio a la implantación de la plataforma propuesta a través de la incorporación gradual de los elementos del nuevo servicio, y al mismo tiempo tener un nivel de prestación aceptable. La siguiente figura muestra un esquema que ilustra este plan de contingencia. El “Cluster Actual” está conformado por 8 servidores que realizan todas las funciones del servicio: Almacenamiento de buzones, MTA, MDA, MSA, MUA y Listas. Se instalará un servidor nuevo que funciona como MUA y almacenamiento local de buzones. Con esto se pretende que los usuarios puedan gestionar sus buzones: sin notar la degradación que implica el procesamiento de virus, spam y listas y con buzones que estén lo más cercano posible al webmail. Se realizaron pruebas a la máquina que ejercerá estas funciones para determinar sus capacidades y verificar que atenderá a los usuarios sin presentar demoras en el servicio. Para ello se utilizaron dos benchmarks: autobench4 y postmark5. El primero mide las prestaciones de un servidor web automatizando su proceso de evaluación con el benchmark httperf y el segundo fue diseñado para medir el comportamiento de un sistema con altos niveles de operaciones de entrada/salida (I/O) con archivos de poco tamaño, como es característicos en los ambientes de correo electrónico. 4 http://www.hpl.hp.com/research/linux/httperf/ 5 http://www.freshports.org/benchmarks/postmark/ El objetivo de aplicar estas dos pruebas es determinar el nivel de degradación, del servicio de webmail propuesto, producido por una intensiva carga de operaciones de entrada/salida (I/O). En este sentido se realizaron 3 pruebas sobre un ambiente idéntico al que implementará la solución que representa el inicio de la implantación propuesta: - Medir el servidor web sin ocupación. - Medir el servidor web con un nivel alto de operaciones I/O locales. - Medir el servidor web con un nivel alto de operaciones I/O remotas. El nodo que se agregará inicialmente es un Servidor SUN Fire x4150 con 2 procesadores Intel Xeon quad-core E5440 @ 2.83GHz y 16 Gbytes de memoria RAM. Sistema operativo Linux Gentoo y kernel vanilla 2.6.34-r1 y con sistema de archivos ext4 montado sobre un volumen lógico compuesto por siete (8) discos SAS, cada uno de ellos de 2.5", 146GB de capacidad y 10.000 RPM. La capacidad efectiva de almacenamiento de ese arreglo es de 985GB, pudiendo almacenar hasta 65.536.000 archivos. El siguiente gráfico muestra los resultados obtenidos con autobench para los tres ambientes de prueba. En cada una de ellas se realizaron 5 mil conexiones. Para cada conexión se hizo un conjunto de solicitudes comenzando en 20 solicitudes por segundo, con incrementos de 20, hasta 200 solicitudes por segundo. Como se puede observar no hubo variación en el rendimiento del servidor web en términos de número de respuestas por número de solicitudes. Es decir, se respondieron todas las solicitudes a pesar de encontrarse cargado en las 2 últimas pruebas. Las pruebas de rendimiento del sistema de entrada/salida consistió en la ejecución en paralelo de 8 procesos del benchmark postmark. Cada instancia del benchmark realiza las siguientes operaciones: - La creación de 2.500 archivos entre 500 bytes y 6 Mbytes - La ejecución de 1.2500 transacciones (Read, Append, Create, Delete) sobre esos 2.500 archivos. Es decir, en su conjunto, la prueba creaba 20.000 archivos y realizaba 100.000 transacciones sobre ellos. El siguiente cuadro muestra los resultados obtenidos con postmark en el segundo ambiente de prueba (operaciones de I/O locales). Proceso 1 2 3 4 5 6 7 8 Tiempo total (seg) 3692 3798 3844 3846 3853 3845 3840 3792 Tiempo en transacciones (seg) 2788 2711 2759 2764 2774 2767 2764 2718 Megabytes Leídos/seg 2.94 2.94 2.92 2.92 2.85 2.83 2.95 2.91 Megabytes Escritos/seg 5.68 5.46 5.39 5.51 5.37 5.38 5.45 5.47 Tomando el proceso con el peor tiempo total de ejecución (proceso 5) podemos afirmar, a grosso modo, que los ochos procesos en su conjunto, tardaron 1 hora, 4 minutos y 13 segundos en crear 20.000 archivos sobre un sistema de archivo ext4 local y realizar 100.000 transacciones sobre ellos. La tasa de creación de los 20.000 archivos (entre 512 bytes y 6 megabytes), sin incluir los creados en transacciones, fue de 18 por segundo y los megabytes leídos y escritos por segundo fueron 22,8 y 42,96 respectivamente. Para el tercer ambiente de prueba (operaciones de I/O remotas), se configuraron dos equipos, de prestaciones similares al Sun Fire x4150 donde se implementará la solución temporal, como clientes nfs versión 3. Con 1 megabyte como máxima cantidad de bytes que pueden recibirse por petición cuando se lee data desde el servidor NFS y 1 megabyte como máxima cantidad de data que el cliente NFS puede enviar por petición cuando se envía data para ser escrita en un archivo sobre el servidor NFS. En cada cliente se crearon cuatro instancias del benchmark postmark fue similar a la empleada en el segundo ambiente de prueba (operaciones de I/O locales). El siguiente cuadro muestra los resultados obtenidos con las 8 instancias de postmark en el tercer ambiente de prueba (operaciones de I/O remotas). Cliente nfs Nro. Proceso Nro. Tiempo total (seg) 1 1 1 2 4305 4265 Tiempo en transacciones (seg) 2892 2837 Megabytes Leídos/seg Megabytes Escritos/seg 2.52 2.61 4.87 4.86 1 1 2 2 2 2 3 4 1 2 3 4 4285 4082 4425 4424 4410 4420 2861 2663 2952 2933 2906 2940 2.62 3.97 2.48 2.46 2.57 2.49 4.83 4.80 4.67 4.67 4.75 4.70 De manera análoga a como fue realizado con la evaluación del segundo ambiente de pruebas (operaciones de I/O locales), se tomó el proceso con el peor tiempo total de ejecución (cliente nfs número, 2 proceso 1) para poder afirmar, grosso modo, que los ochos procesos en su conjunto, tardaron 1 hora, 13 minutos y 45 segundos en crear 20.000 archivos sobre un sistema de archivo ext4 remoto a través de nfs y realizar 100.000 transacciones sobre ellos. La tasa de creación de los 20.000 archivos (entre 512 bytes y 6 megabytes), sin incluir los creados en transacciones, fue de 13 por segundo y los megabytes leídos y escritos por segundo fueron 19,84 y 37,36 respectivamente. Durante la ejecución de las pruebas de I/O intensivo (local y remoto) se midió el uso de recursos para observar el consumo de estos. Para ambas pruebas el comportamiento fue similar: procesadores desocupados o esperando la finalización de operaciones de I/O. En el siguiente gráfico se ilustra cómo fue ese comportamiento. Recomendaciones Luego de observar las pruebas realizadas sobre el primero de los elementos de la arquitectura diseñada que se plantea en este documento se recomienda: 1. Agregar un servidor que realice las siguientes funciones: Almacenamiento de los buzones de correo electrónico y Webmail. 2. Iniciar de inmediato a la instalación y configuración de la plataforma propuesta en aras de ofrecer a los usuarios un servicio de correo electrónico de calidad. Entre otras razones obvias, esta recomendación obedece además al hecho de que al estar instalado un sólo servidor como almacenamiento de los buzones de correo en el Plan de contingencia, se corre el riesgo de una suspensión total del servicio si esta máquina falla. Además de las medidas técnicas, urge implementar medidas orientadas a lograr una mayor conciencia de uso racional del servicio por parte de la comunidad de manera de resguardar en lo posible cualquier mejora técnica que se implemente, de lo contrario, cualquier cambio o inversión de esfuerzos y recursos tendrá una expectativa de vida muy corta. En tal sentido, se recomienda implementar las siguientes medidas: 1. Lograr en muy corto plazo la aprobación por parte del Consejo Universitario del conjunto de normas y reglamentos relacionados con el buen uso y aprovechamiento de los distintos recursos de red, haciendo énfasis en este momento con lo que tiene que ver con el servicio de correo electrónico y listas de distribución. 2. Iniciar una campaña informativa agresiva a través de distintos medios, solicitando el apoyo y colaboración de todos los usuarios del servicio en procura de: - No hacer múltiples envíos del mismo mensaje, - No enviar el mismo mensaje a varias listas, - No enviar a las listas mensajes de más de 30 KB de tamaño, - No enviar a las listas mensajes con archivos anexos, en su lugar, los archivos deben ser colocados en un sitio web y en el cuerpo del correo se indica el enlace o dirección URL a estos. También puede colocar toda la información en forma de texto en el cuerpo del mensaje (para más información acerca de las políticas de uso de lista por favor visite www.cca.ula.ve/documentos/Politicas_Uso_listas_correoinstitucionales_Marzo09.pdf), - En la medida de las posibilidades utilizar un manejador de correo como Thunderbird, Mozilla, Netscape, Opera, Eudora, Outlook, Pegasus, SeaMonkey, entre otros (para detalles de configuración, por www.atencion.ula.ve/correo/manuales_conf.php), favor diríjase a: - Mantener los buzones de correo lo más desocupados posible, manteniendo solo lo estrictamente necesario. Una medida que puede ayudar a conseguir esto es utilizar la herramienta “Archive” del webmail que permite, antes de borra los mensajes, guardarlos o respaldarlos creando una copia de los mensajes seleccionados como un archivo en el disco duro de la máquina del usuario y se podrá recuperar y leer cuando quiera. Esta herramienta se encuentra ubicada en la parte inferior derecha de la ventana del webmail, justo debajo del listado de correos.