UNIVERSIDAD DE GUADALAJARA Centro Universitario de Ciencias Económico Administrativas Maestría en Tecnologías de la Información “Virtualización en un Sistema de Almacenamiento Inteligente de Datos de Alta Disponibilidad” Protocolo de tesis para obtener el grado de Maestro en Tecnologías de la Información “Fernando Christian Alvarez Maestro” “Guadalajara, Jal. A 23 de Mayo de 2013” 2 Índice Introducción ........................................................................................................................................ 3 Planteamiento del problema ............................................................................................................... 4 Contexto .............................................................................................................................................. 6 Justificación ......................................................................................................................................... 7 Marco Teórico...................................................................................................................................... 9 Cloud ......................................................................................................................................... 9 Virtualization and Storage....................................................................................................... 10 Data Compression and De-duplication.................................................................................... 11 High Availability....................................................................................................................... 11 Security and Encryption .......................................................................................................... 12 Cuadro de análisis de congruencia .................................................................................................... 15 Cronograma ..................................................................................................................................... 154 Bibliografía ........................................................................................................................................ 15 Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 3 Introducción La presente investigación se ubica en el área 7 – Ingeniería; la cual la conforman los investigadores que se abocan al estudio de la ingeniería en sus diferentes subdisciplinas. El tema está dentro de la línea de investigación de computación, porque incluye temas relacionados a esta área, tales como storage, cloud computing, security, software, file system, entre otros. La creciente demanda de sistemas de alto desempeño para el almacenamiento de datos, el cual se encuentra siempre disponible, sin importar la recurrencia de ellos, o el número de peticiones que se tengan de este recurso. Una solución que se basa en clusters es el escenario ideal para esta tarea, ya que esta configuración proporciona un sistema fiable, con alta disponibilidad y un gran poder de procesamiento de información. Un sistema de virtualización embebido en el sistema de almacenamiento de datos de alta disponibilidad, proporciona un escenario en el que se obtiene el máximo rendimiento y eficacia de los recursos que da el clustering, y de esta manera simular una capacidad de almacenamiento virtual mayor al espacio de almacenamiento real que se encuentra asignado. Existen sistemas de almacenamiento en cloud, tales como Dropbox, iCloud, Google Drive, Ubuntu One, Box, entre otros. Desde un punto de vista Enterprise, en esta tesis me propongo a demostrar los beneficios que conlleva la implementación de tecnologías de virtualización, marcando la diferencia de un sistema inteligente y virtualizado, así como de la alta disponibilidad. Con lo que se dará respuesta al siguiente cuestionamiento: ¿Cómo demostrar que la virtualización en un sistema de almacenamiento de datos inteligente, permite aprovechar al máximo los recursos en conjunto con la implementación de tecnologías que permitan una alta disponibilidad de la información? Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 4 Planteamiento del problema El problema inicia cuando se requiere almacenar datos o información de una empresa o banco por periodos de tiempo extensos, y después de un periodo de tiempo consultar esta información sin que se encuentre dañada o corrupta; también es necesario tener capacidad de almacenamiento, la cual está diseñada para soportar gran cantidad de datos que viajan de un lado a otro de la red, sin afectar el desempeño del sistema. Se debe tener en cuenta la escalabilidad y el desempeño dentro de la aplicación, para así lograr tener la facilidad de crecer e implementar nuevos módulos al sistema. Se tiene en cuenta que no siempre se dispone de suficientes recursos de hardware (almacenamiento), por lo que se debe aprovechar al máximo los recursos existentes, de manera que sea posible almacenar la mayor información dentro del storage, con la mayor eficiencia posible. Se requiere tener más almacenamiento, pero al mismo tiempo, poder almacenar más información en menos espacio. La virtualización proporciona flexibilidad para eficientar el uso de los recursos, debido a que esta tecnología permite emular recursos para simular que se tiene más hardware del instalado en el sistema. Con esto se logra resolver un problema, al reutilizar todo aquel espacio de almacenamiento físico que no esté en uso, a manera de crear volúmenes virtuales y utilizar estos recursos que de otra manera se desperdiciarían. El virtualizar recursos hoy en día, revoluciona la manera de utilizar los recursos reales para satisfacer las necesidades en la búsqueda de un mayor número de unidades de almacenamiento. Por más perfecto que sea un sistema, siempre se corre el riesgo a tener fallas, por lo cual es importante que nuestro sistema sea de alta disponibilidad de los datos. Ya que de fallar el servidor primario, la aplicación colapsa y el sistema junto con la misma. Se tiene el caso cuando una aplicación reside en un servidor que no cuenta con alta disponibilidad, es necesario garantizar que la aplicación esta online 99.99% del tiempo, esto es, que la aplicación solo estará abajo 5 minutos por año como máximo. También se garantiza la protección y la integridad de la información, es decir, que en caso de que ocurra algún fallo en la aplicación o incluso en los discos, cintas, servidores, conexiones de red, y otros componentes; para que exista la manera de recuperar la información e incluso hacer una recuperación ante cualquier desastre, se tiene así, la integridad de los datos. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 5 Mantener la información disponible bajo cualquier circunstancia y en cualquier momento, es un gran reto para las organizaciones, por lo que se requiere un método para recuperar y prevenir de un desastre, todo ésto se logra al reducir los single points y añadir más nodos redundantes a la arquitectura informática. Un sistema que se encuentra siempre disponible, permite el acceso al mismo desde cualquier punto de acceso a la red. El cual sea capaz de autenticar, autorizar y controlar el nivel de acceso dentro de la aplicación. La necesidad de cada día es accesar a éste sistema desde casi cualquier dispositivo lo que consiste en un reto considerable. Al enfrentarse a una aplicación que hace el manejo de miles o millones de datos, se tiene que considerar la actualización de estos datos y las consultas que se tengan que realizar a la base de datos para mantener la integridad de los mismos, controlar y eficientar la base de datos, así como implementar un buen manejo de la memoria, el acceso a los discos, volúmenes, cintas, etc., para obtener la información más actualizada en el momento en que se requiera. Tener un buen control de la seguridad del sistema es crítico, ya que se debe considerar todas las posibles vulnerabilidades, para corregir estos issues de seguridad. Un factor importante en el tema de la seguridad es la encriptación de la información, debido a que de esta manera, la información no viaja por la red como simple texto, sino que se le aplica un algoritmo para codificarla y después enviar esta información codificada a través de la red, a manera de que el receptor tenga la capacidad de decodificar e interpretar esta información, logrando con esto una mayor seguridad de la información. Un sistema multicapa que determine e identifique los datos más recurrentes, maximiza el rendimiento de la aplicación, ya que se pretende encontrar la manera más eficiente de acceso a los datos físicos, a manera de evitar tener datos que no son necesarios, cargados en memoria o por el contrario tener datos que se necesiten de manera inmediata, almacenados en cinta magnética. Con esto se pretende reducir el problema de velocidad de respuesta en cuanto a lectura y acceso a los datos. Tener el diseño correcto y optimizado con base en los requerimientos es la manera de tener una aplicación eficiente, con una interfaz amigable, interactiva, inteligente y con estándares de calidad. Que impulsen el desarrollo de sistemas cada vez más complejos, mejor implementados, que cumplan con los objetivos y se cuente con la mejor tecnología, son factores importantes para contribuir día a día a un mejor avance tecnológico. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 6 Contexto Este problema se desenvuelve en el ámbito laboral en el cual me desenvuelvo, he observado las capacidades y características de los productos de storage así como también los productos de la competencia; por otro lado los clientes que cada día demandan una mayor capacidad de almacenamiento, mayor flexibilidad por parte del sistema, velocidades del sistema cada vez mejores, velocidades de las maquinas cada vez mas demandantes y con nuevas funcionalidades. Con la implementación de virtualización, se añade mas flexibilidad a nuestro sistema, donde se requiere protección de los datos para que el cliente sea capaz de hacer una recuperación en caso de desastre, seguridad para evitar accesos no autorizados, ataques o cualquier backdoor en la aplicación, un alto desempeño para realizar las tareas que el cliente disponga y una alta disponibilidad de la aplicación de al menos un 99% online, flexibilidad de adaptarse a distintos escenarios y/o necesidades del cliente, escalabilidad en caso de necesitar agregar nuevos módulos de hardware o nuevas funcionalidades de software, un buen diseño de la arquitectura y apego a la misma para tener una buena comunicación entre los diferentes dispositivos y módulos que conforman la aplicación y una interfaz para fácil de utilizar para el usuario. Tener un sistema con un alto nivel de seguridad proporciona confianza al cliente de que los datos se encuentren íntegros, disponibles y asimismo, tengan un respaldo en algún otro sitio para evitar la perdida de información en caso de algún desastre informático. Además, la seguridad juega un papel muy importante, ya que es la encargada de controlar el acceso a los datos, establecer restricciones al sistema, validar la autenticación y los niveles de accesibilidad de los usuarios en el sistema. Tener un alto desempeño de la aplicación, esta soportado las capacidades y el desempeño del hardware de la maquina, así como también de una buena configuración y entendimiento de la arquitectura de la maquina. Nuevas funcionalidades para la aplicación son demandadas por el cliente, lo cual implica agregar soporte para las mismas, tanto en hardware como en software. Una interfaz de administración para el usuario intuitiva y diseñarla para competir en el mercado es un gran reto. Tener una solución de alto desempeño en un sistema hibrido que permita leer y escribir datos de manera mas rápida y eficaz, con el menor consumo de espacio en disco y/o cinta, requiere de algoritmos compresión y de-duplicación de datos en tiempo real; con esto se mejora el aprovechamiento de los recursos de manera impresionante, aprovechando al máximo los recursos de hardware, para hacer un buen desarrollo de funcionalidades. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 7 Tener un alto nivel de almacenamiento de datos esta delimitado por las capacidades de las unidades de almacenamiento que se utilicen, así como las tecnologías que estos dispositivos implementen. Hacer un análisis acerca de donde es mas conveniente colocar determinado tipo de hardware es critico para el desempeño de la maquina, así como la configuración que se añada para el mejor funcionamiento del mismo. Una solución en clúster es necesaria para un alto desempeño y alta disponibilidad, proporcionando así un sistema distribuido de los datos y facilitando el ambiente para la virtualización y el cloud. Justificación Esta tesis servirá para impulsar la implementación de tecnologías de virtualización para el desarrollo de sistemas de almacenamiento inteligentes, con el objetivo de mejorar y desarrollar sistemas híbridos de alto performance que permita aprovechar al máximo los recursos de hardware para así tener un sistema especializado en almacenamiento de datos con la capacidad de almacenar los datos más recientes en la capa de almacenamiento más rápida. Con esto, se logrará obtener de manera más rápida los datos frescos. Demostrar que la virtualización en un sistema de almacenamiento de datos, permite optimizar y eficientar recursos de hardware, así como crear recursos virtuales a partir de los recursos físicos existentes que no se encuentran reservados o en uso. De otra manera, un sistema que no implementa virtualización, proporciona un entorno en el que todos los fragmentos de disco o cinta sin utilizar, o que no se usan están dentro de un volumen físico y no se puede virtualizar para crear un volumen virtual. Esta investigación, pretende demostrar el poder de cómputo que se logra cuando se combinan tecnologías de virtualización y almacenamiento de información, en un sistema hibrido que permita tener un fuerte rendimiento y manejo de los datos en un sistema de virtualización de almacenamiento de alta disponibilidad, así como las capacidades que brinda un sistema distribuido. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 8 Un sistema Enterprise que brinde características de escalabilidad, sustentabilidad, mantenimiento de código, performance, que este disponible en cloud, lo cual permite el acceso al mismo desde cualquier parte del mundo y desde casi cualquier dispositivo con conexión a la red. Tener un conjunto de tecnologías con la capacidad de implementar virtualización y en el cual la integridad, la protección de los datos, la seguridad del sistema, un mejor diseño del file system, con la facilidad de tener datos estadísticos acerca del status del sistema y los diferentes componentes físicos y virtuales que lo conforman, son algunas de las ventajas encontradas en un sistema hibrido. Al hablar de cloud enviroment se refiere a de tener información expuesta a usuarios regulada por niveles de accesibilidad, así como la definición de roles y permisos. Empresas, gobierno, otras organizaciones y hasta los usuarios finales, apostan a un futuro digital, donde la información y los datos, están presentes en el lugar y momento que se requiere. Día a día se cuenta con redes más unificadas, las cuales son cada vez más capaces de desarrollar tareas más demandantes y con requerimientos más específicos. Se tiene nodos redundantes a un bajo costo. El diseño de arquitecturas de storage para utilizarlos con un alto tráfico de datos, representa día a día un reto y una oportunidad para desarrollar algo nuevo e indagar otros horizontes. Se requiere de la optimización de los dispositivos de almacenamiento para las distintas capas, dentro de la jerarquía de la memoria y almacenamiento como para el acoplamiento entre hardware y software. La estructura de un sistema de almacenamiento en cloud, es un sistema de almacenamiento distribuido el cual proporciona una buena integración entre desktops y servidores. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 9 Marco Teórico Los sistemas que implementan Cloud Computing han revolucionado las aplicaciones distribuidas y llegado a nuevos horizontes con la flexibilidad de accesar a estos sistemas desde casi cualquier dispositivo que cuente con una conexión a internet. Sin embargo el gran número de dispositivos hacen del performance y de la seguridad un gran reto. En ambientes de almacenamiento en cloud, la información comúnmente se almacena en otros sistemas en la red de manera distribuida lo cual proporciona una mayor eficacia en el desempeño del sistema, además de proporcionar un gran nivel de escalabilidad en infraestructura, capacidad de almacenamiento, poder de procesamiento y un mayor rendimiento en la disponibilidad de la información. Clustering es una de las principales configuraciones para Cloud Computing debido a que permite un ambiente capaz de soportar la alta disponibilidad y una mejorar el performance para el acceso a los datos mediante servidores y conectividad IP. El balanceo de cargas permite una configuración de servidores, la cual es capaz de distribuir de manera equitativa el número de peticiones realizadas entre el total de los servidores disponibles. Un sistema de alta disponibilidad tiende a minimizar el tiempo de respuesta del lado del servidor. Un sistema de almacenamiento inteligente debería implementar una arquitectura de almacenamiento multi-capa la cual proporciona una mejora de disponibilidad y continuidad de los datos. Éste sistema permite separar los datos de manera que los datos mas recientes son movidos a la capa de almacenamiento súper rápida, un ejemplo de esta capa es un array de discos de estado solido. De otra manera, los datos que no son tan recientes, se mueven a una capa de almacenamiento más lenta y menos costosa. Cloud Existen diferentes tipos de clouds (publicas, privadas e hibridas) con diferencias en funcionalidad y servicio. También hay servicios cloud en los cuales podemos mover nuestras aplicaciones o el software que utilizamos como servicio y aquellos en los que los datos son acusados mediante un gateway en cloud, router, puntos de acceso cloud, software u otros medios. Las funcionalidades cloud, varían de acuerdo a su tipo y a los servicios que ofrecen, ya sean aquellas que requieren del pago de alguna cuota o gratuitas, las cuales incluyen servicios de hardware y software. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 10 Clouds pueden ser un producto, tecnología o servicio así como un paradigma. Tienen la ventaja de poder implementar diferentes tecnologías, entre ellas la de almacenamiento (storage), entre las cuales se encuentran DAS, SAN, NAS, discos duros, SSD's y cintas; servidores, sistemas de archivos implementando diferentes tipos de protocolos de red, así como herramientas de administración y configuración, métricas y la implementación de mejores practicas. Los servicios ofrecidos por clouds publicas incluyen software dedicado a determinadas aplicaciones, tales como archiving, preservación de datos, backup and restore, recuperación de desastres, business analytics, simulation, bases de datos, dataware housing, document sharing, correo, colaboración y mensajería, hosting, compartimiento de archivos, foto, video, audio, almacenamiento, presentaciones, seguridad y maquinas virtuales. Virtualization and Storage Varios servicios de virtualización de almacenamiento han sido implementados en diferentes ubicaciones para dar soporte a diversas tareas. Una de las distintas maneras de implementar la virtualización es la agregación y el pooling, los cuales pretenden incrementar la capacidad de utilización y protección de la inversión, los cuales incluyen el soporte heterogéneo del control de datos a lo largo de las diferentes capas, categorías, precios, y marcas en el mercado. La virtualización de sistemas de almacenamiento, son la implementación de las distintas formas de abstracción. Cloud storage se refiere a almacenar datos almacenados en servidores proporcionados por terceras partes en lugar de utilizar un solo servidor. Dependiendo que tanta demanda se tenga por parte de los clientes, se proporciona la virtualización de recursos, a manera de un pool de storage para que los clientes puedan almacenar datos en los mismos. La interfaz de almacenamiento en cloud se instalara en diferentes dispositivos basándonos en los requerimientos previos, teniendo como resultado un storage en cloud que se administra como si tuviésemos un sistema local. Vía dispositivos de red o servidores, cloud storage cambia las APIs (Application Programming Interfaces) tal como SOAP (Simple Object Access Protocol) y REST (Representational State Transfer) a protocolos block-based como iSCSI y Fiber Channel, o protocolos file-based como NFS y CIFS. A manera de lograr un mejor rendimiento para la transmisión y acceso, en base a investigaciones recientes, se ha propuesto agregar de-duplication y feedback control para mejorar, eficientar y reducir la carga de cada nodo de almacenamiento. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 11 Data Compression and De-duplication La infraestructura de datos necesita el soporte de información más que tan solo discos o dispositivos de almacenamiento de manera local o remota. El proporcionar servicios de información también depende de la infraestructura y del manejo de la misma mediante herramientas, sistemas de archivos, bases de datos, virtualización, tecnologías cloud, entre otras tecnologías y herramientas. La de-duplicación y la compresión de los datos nos permiten almacenar mayor cantidad de información en un espacio de almacenamiento menor, con técnicas y tecnologías que permiten optimizar los recursos de hardware de la mejor manera. Data compression se refiere a la capacidad del sistema de comprimir información a manera que sea posible almacenar mas datos en menos espacio; por otro lado, de-duplicación se refiere a la capacidad de nuestro sistema de almacenar patrones de bits a manera de no almacenar dos veces el mismo patrón, sino que simplemente se guardan referencias al mismo, con el objetivo de ahorrar espacio y no escribir dos veces la misma información. Teniendo un conjunto de datos, estos se de-duplican para así solo comprimir aquellos datos (patrón de datos) que no están duplicados, con esto logramos ahorrar espacio de una manera mas eficiente. High Availability La alta disponibilidad de la información mediante la accesibilidad es en muchos casos acompañada de una configuración RAID en los discos, lo cual nos permite proteger nuestro sistema de la perdida de datos en caso de daño en alguno de nuestros discos, lo cual no sustituye a los backups o alguna otra operación de copia para establecer un punto de recuperación de nuestro sistema. Un arreglo de discos RAID proporciona protección en caso de fallas de los drives, pero no protege nuestro sistema en caso de que nuestro sistema de almacenamiento sufra un daño total; en este caso recurrimos a la replicación y mirroring de la información, lo cual nos permite recuperar nuestro sistema en caso de que cierta information sea eliminada, o corrupta. Algunas de las técnicas de high availability son: ▪ Clustering ▪ Servicios de red redundantes ▪ Failover Software, Api's ▪ Eliminación de single points Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 12 Security and Encryption Un sistema de storage, generalmente requiere confidencialidad de los datos, integridad y disponibilidad de los mismos; así mismo la implementación de la autenticación y autorización para ver o accesar a diferente contenido de la aplicación. En medida que nuestro sistema se expanda, requerirá agregar ciertos dominios de administración, a manera de tener una administración descentralizada. Sin importar el tipo de mecanismo que se implemente, la autenticación y autorización residen en la integridad y seguridad de los servidores de data storage. Para una mayor seguridad en nuestro sistema, se incluyen restricciones en las computadoras, el uso de VPNs, detección de virus, backups de nuestro sistema, entre otros; la seguridad es cada vez más importante a manera que el sistema se encuentre en shared-enviroments. Algunas medidas de seguridad, incluyen: Autorización y autenticación. Encriptación y protección de los datos in-flight y en rest. Monitoreo y auditorias, loggeo de eventos. Permitir o restringir el acceso físico y lógico. Monitorear las fugas de información y políticas. La encriptación proporciona la capacidad de proteger los datos que viajan a través de la red o en el movimiento en redes lógicas así como en movimientos físicos de los datos. Los datos almacenados en short y long-term preservation también deben ser encriptados. La encriptación puede ser aplicada en distintos componentes: Puntos de presencia cloud (cPOP) o gateways de acceso. Componentes ubicados entre los servidores y el storage o componentes de red. Herramientas IRM como el backup/restore, replicación y herramientas de archiving. Adaptadores I/O, dispositivos WAN, así como protocolos TCP/IP e IPSEC. Sistemas de storage en conjunto con diversos componentes, en los controladores. Tape drives y discos de auto-encriptación (SEDs) Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 13 Cuadro de análisis de congruencia Titulo Objetivo Pregunta Virtualización en un Sistema de Almacenamiento Inteligente de Datos de Alta Disponibilidad Demostrar las ¿Cómo ventajas de demostrar que implementar la la virtualización virtualización en en un sistema un sistema de de almacenamiento almacenamiento de datos para de datos optimizar y inteligente, eficientar permite recursos de aprovechar al hardware máximo los recursos en conjunto con la implementación de tecnologías que permitan una alta disponibilidad de la información? Ing. Fernando Christian Alvarez Maestro Hipótesis Variables Si la La tecnología virtualización que se utilizará me permite crear hardware virtual entonces La capacidades puedo crear de los volúmenes, dispositivos de pools o almacenamiento memoria para a utilizar eficientar los recursos y disminuir costos en un sistema de almacenamiento de alta disponibilidad Virtualization on an Intelligent Storage System over High Availability Technologies. 14 Cronograma Fecha Inicio Fecha Fin 1. Estudio de casos específicos Julio 2013 Agosto 2013 2. Análisis de tecnologías para virtualización Septiembre 2013 Noviembre 2013 3. Análisis de casos prácticos y variables Noviembre 2013 Enero 2014 4. Implementación de configuraciones y especificaciones Febrero 2014 Abril 2014 5. Elaboración de documentación Mayo 2014 Junio 2014 6. Presentación de Investigación Julio 2014 Agosto 2014 Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies. 15 Bibliografía [1] Tin-Yu Wu, Wei-Tsang Lee, Chia Fan Lin. Cloud Storage Performance Enhancement by Real Time Feedback Control and De-duplication. 2012. [2] Sandip Agarwala, Ramani Routray. Cluster Aware Storage Resource Provisioning on a Data Center. 2010. [3] Cloud Storage Architecture. 2012 7th International Conference on Telecommunication Systems, Services, and Applications (TSSA). [4] Greg Schulz. Cloud and Virtualization Storage Networking: your journey to efficient and effective information services, 2012. [5] David H.C. Du, Intelligent Storage for Information Retrieval, 2005. [6] Farhan Bashir Shaikh, Sajjad Haider, Security Threads in Cloud Computing, 2011. Ing. Fernando Christian Alvarez Maestro Virtualization on an Intelligent Storage System over High Availability Technologies.