Tesis "Técnicas Adaptables de Distribución de Archivos para Servicios de Almacenamiento en la Nube"
Alumno: Silvestre Pérez Ortiz
Asesor: Dr. Víctor J. Sosa Sosa
Sinodales: Dr. Arturo Díaz Pérez, Dr. Javier Rubio Loyola, Dr. Iván López Arévalo
En la actualidad es evidente cómo el modelo de almacenamiento en la nube está teniendo un crecimiento importante que se manifiesta en el respaldo que le están dando grandes compañías a través de sus productos, como son Microsoft (con Skydrive), Amazon (con S3), Google (con GDrive), Apple (con iCloud), entre otros. A pesar de este crecimiento, todavía muchos usuarios (principalmente institucionales) no están convencidos en migrar hacia el almacenamiento en la nube, debido a que estos servicios no están considerando actualmente las inquietudes del usuario con referencia a, por ejemplo, el nivel de sensibilidad de los datos a guardar, políticas institucionales o regionales, optimización de costos, entre otros.
Asimismo, el uso de servicios de almacenamiento público puede generar una dependencia completa sobre un proveedor. Ante estas situaciones, y dado que la creación de nubes privadas y comunitarias empieza a tener buena aceptación entre las instituciones, la investigación de este trabajo se enfocó principalmente al diseño e implementación de un distribuidor de datos para ambientes de almacenamiento de tipo federado o Sky, en el que se integran un conjunto de servicios de almacenamiento en la nube (especialmente privada) para trabajar como un sistema unificado.
En este sistema, los usuarios pueden expresar inquietudes particulares sobre los archivos que van almacenar, con el fin de que se tomen acciones que las atiendan. El distribuidor de archivos define un método de reparto de archivos basado en la metáfora de esferas cayendo sobre contenedores, en el que los contenedores representan servicios de almacenamiento en la nube (donde se abstrae la complejidad del sistema subyacente) y las esferas representan objetos (archivos o bloques de datos) que serán almacenados. Estos objetos vendrán acompañados con un conjunto de parámetros asociados a inquietudes expresadas por los usuarios, tales como, nivel de sensibilidad de los datos (privacidad), grado de disponibilidad, tolerancia a fallos, ubicación (e.g., en un centro de datos ubicado en una región o país que vaya acorde a las políticas de la institución), etc.
La función principal del distribuidor es decidir cuál es el contenedor mejor situado para almacenar una esfera tomando en cuenta los parámetros del objeto, las estrategias de tolerancia a fallos y la disponibilidad de datos asignadas al archivo, así como las capacidades de los contenedores. El distribuidor mapea esferas a contenedores tratando de que la carga esté lo más balanceada posible, entre los contenedores participantes, tomando en cuenta las inquietudes manifestadas por el usuario (cuando sea el caso).
En este trabajo se aprovechó la capacidad que tienen los equipos actuales de contar con procesadores multi-núcleo, permitiendo así hacer más eficiente el servicio de distribución de datos. Se evaluó el impacto del distribuidor sobre el rendimiento de un servicio de distribución de contenidos en una nube federada, aplicado a un caso de estudio real, en el que participaron diferentes instituciones, entre ellas, CINVESTAV-Tamaulipas, el Instituto Tecnológico de Cd. Valles, la Universidad Carlos III de Madrid, en los campus de Colmenarejo y Leganes, y la Agencia Espacial Europea. Asimismo, se desarrolló y evaluó una aplicación cliente que permite a los usuarios (humanos) interactuar de manera directa con el distribuidor de datos, con el fin de probar sus funcionalidades.
Los resultados encontrados en la experimentación y el caso de estudio demuestran que el mecanismo de distribución propuesto ofrece resultados que impactan de manera positiva en la mejora de los servicios de almacenamiento en la nube, evitando los problemas de dependencia de proveedores externos, y tomando en cuenta las inquietudes de los usuarios. Parte de estos resultados fueron presentados en la conferencia internacional Distributed Cloud Computing, organizada por ACM/IEEE del 9 al 12 de diciembre de 2013 en Dresden, Alemania.