Documento del Ministerio de Educación y Formación Profesional sobre Almacenamiento de Datos. El Pdf explora la archivación de datos, con foco en sistemas distribuidos y bases de datos NoSQL, incluyendo un caso práctico del CERN y el LHC, óptimo para estudiantes universitarios de Informática.
Ver más58 páginas


Visualiza gratis el PDF completo
Regístrate para acceder al documento completo y transformarlo con la IA.
Caso práctico Es el año 1996. Los científicos del CERN están de enhorabuena. El proyecto del LHC por fin ha sido aprobado. Los responsables de cada área sienten una mezcla de alegría y nerviosismo. El reto de ingeniería y ciencia no ha hecho más que comenzar, y no será sencillo estar a la altura de las expectativas. Uno de los más preocupados es el máximo responsable del LHC Computing Grid, la infraestructura computacional que habrá que diseñar y crear para poder tratar con los datos producidos por los experimentos del colisionador. Ttanavnx AL OrTea A1 D884 Le Grand Saconres DE84 OpenStreetMap contributors (CC BY-SA)
En esta unidad de trabajo vamos a descubrir la importancia de ser capaces de almacenar datos de forma distribuida como ingrediente fundamental para nuestros sistemas Big Data. Comenzamos viendo qué es un sistema de ficheros, para después descubrir la existencia de sistemas de almacenamiento que funcionan de modo distribuido entre nodos de un clúster y de sistemas que de forma específica realizan esa tarea no con unidades de almacenamiento sino en memoria. Más adelante conoceremos HDFS, el sistema de almacenamiento distribuido de Hadoop. A continuación haremos un repaso por el mundo de las bases de datos NoSQL, descubriendo tanto algunos conceptos básicos en relación a las mismas como qué tipos existen. Por último seguiremos el tutorial oficial de MongoDB, la cual es una de las bases de datos NoSQL más conocidas y utilizadas.GOBIERNO DE ESPANA MINISTERIO DE EDUCACIÓN Y FORMACIÓN PROFESIONAL Ministerio de Educación y Formación Profesional (Dominio público) Materiales formativos de FP Online propiedad del Ministerio de Educación y Formación Profesional.
Caso práctico blickpixel (Dominio público) El agua de la cafetera ha empezado a hervir. En unos segundos el café estará listo. Los dos se recuestan en sus respectivas sillas. Ella se lleva las manos a la cara entusiasmada mientras él tira de la cadena de su reloj de bolsillo para sacarlo y consultar la hora. Aún no son ni las 6 de la tarde. Les quedan unas cuantas horas antes de irse a casa. El sistema en el que han estado trabajando parece funcionar sin problema. El cabezal magnético ya es capaz tanto de representar ceros y unos en el disco giratorio como de leerlos. Cuando IBM comience a producir estas unidades de almacenamiento e incorporarlas en sus equipos el éxito va a ser rotundo. Ella se incorpora con cara de preocupación. -¿ Y ahora con todos esos ceros y unos que hacemos? - dice ella. -Pues guardar la información que necesitemos, ¿no? - responde el sorprendido por la pregunta. -Sí, eso está muy bien, pero de momento son datos binarios esparcidos por el disco. Así no valen para nada. Habrá que organizarlos de algún modo, ¿no? Quien utilice estas computadoras un día querrá guardar una factura y otro día querrá guardar el texto de una carta, ¿no te parece? No lo va a tener todo junto. Necesitamos que haya algún tipo de estructura para que se sepa qué es cada cosa. Él pestañea y se queda pensativo unos segundos. -Tienes razón. Un sistema de ficheros es la infraestructuresaria para poder almacenar y organizar datos en unidades de almacenamiento, ya sean discos duros, memorias de estado sólido, cintas o DVDs. Para ello, se utiliza el concepto de fichero como la unidad atómica de almacenamiento empleada para almacenar los datos.Gracias al sistema de ficheros podemos tanto guardar como leer ficheros de forma independiente, considerandose uno de los primeros pasos a la hora de organizar los datos de modo que comiencen a considerarse como información. Además, el sistema de ficheros mantiene una estructura en forma de árbol (el árbol de directorio) que nos permite dar un paso más en la organización de la información, almacenando cada fichero en una carpeta según su significado o el uso que queramos darle. El sistema operativo es capaz de interactuar con el sistema de ficheros, gracias a lo cual puede ofrecer servicio de almacenamiento y recuperación de datos a las aplicaciones que en él se ejecutan. Hay que tener en cuenta que aunque hablemos en singular, realmente existen diversos tipos de sistema de fichero, como ejemplo FAT32, NTFS o EXT4. Los sistemas operativos suelen emplear sólo uno de ellos para almacenar su propia información pero a la vez suelen ofrecer compatibilidad con otros para poder acceder a datos auxiliares o externos.
Es importante que sepas que es un sistema de ficheros (también llamado sistema de archivos).
Puedes encontrar más información en el siguiente enlace: Sistema de archivos
Puedes ver más información sobre lo que es un sistema operativo en el siguiente enlaces: Sistema operativo
En los siguientes enlaces puedes ver más información sobre los sistemas de ficheros que hemos mencionado: Tabla de asignación de archivos (FAT12, FAT16, FAT32).NTFS EXT4
RAID es un sistema de almacenamiento de datos que es capaz de distribuirlos por múltiples unidades según diversas estrategias para así conseguir o bien unidades mayores que el mayor de los discos que tengamos, o bien replicación automática de nuestros datos o bien ambas cosas. Tengamos aquí en cuenta que RAID realmente no es de por sí un sistema de ficheros sino una capa que trabaja por debajo de ellos. Por ejemplo podemos tener dos discos duros de 2TB conectados mediante RAID de modo que el sistema de ficheros no ve esas dos unidades sino una única unidad de 4TB. RAID puede trabajar:
Como ya hemos dicho, RAID permite configurar los discos según distintas estrategias, llamadas niveles. Los niveles más empleados son los llamados RAID 0, RAID 1 y RAID 5.
Podemos ver dos discos de 1TB como uno de 2TB sin replicación. Permite ver unidades virtuales más grandes que las unidades físicas. Sin redundancia. Aproximadamente el doble de velocidad en lectura y escritura. Diagrama de una configuración RAID 0 RAID 0 A1 A2 A3 A4 A5 A6 disco 0 A7 disco 1 A8 JaviMZN (CC BY)
Podemos ver dos discos de 1TB como uno de 1TB con replicación. Permite tener los datos replicados de forma automática. Mayor seguridad desaprovechando capacidad. Hasta el doble de velocidad de lectura. Sin ganancia para escritura. Tolerante al fallo de uno de los discos. Diagrama de una configuración RAID 1 RAID 1 A1 A1 A2 A2 A3 A3 disco 0 A4 disco 1 A4 JaviMZN (CC BY)
Podemos ver tres discos de 1TB como uno de 2TB con replicación. Es necesario un mínimo de 3 discos. Permite ver unidades virtuales más grandes que las unidades físicas añadiendo además replicación. Permite mayores rendimientos de lectura al poder leer de varias unidades a la vez. Tolerante al fallo de uno de los discos. Diagrama de una configuración RAID 5 RAID 5 A1 A2 A3 Ap B1 B2 Bp B4 C1 Cp C3 C4 disco 0 disco 1 Dp D2 disco 2 D3 disco 3 D4 JaviMZN (CC BY)
Puedes ver más información sobre RAID en el siguiente enlace: RAID
¿Qué nivel de RAID emplearemos si tenemos 3 discos de 4TB cada uno y queremos poder ver una única unidad de 8TB de modo que no se pierdan datos si uno de los discos se rompe? RAID 0. RAID 1. O RAID 3. C RAID 5. Incorrecto. Con RAID 0 vemos un disco más grande sin replicación. Incorrecto. Con RAID 1 vemos un disco igual grande pero con replicación. Incorrecto. RAID 3 existe, pero no lo tratamos en esta unidad. Correcto.
Un sistema de ficheros distribuido es aquel que es capaz de almacenar ficheros distribuyendo el contenido de los mismos en las distintas máquinas que conforman un clúster. Permite interactuar con ellos de un modo unificado, como si realmente residiesen en la máquina en la que se ejecuta la aplicación que va a utilizarlos. Los sistemas de ficheros distribuidos que se emplean para sistemas Big Data permiten almacenar ficheros mas grandes que el espacio de almacenamiento disponible en cualquiera de los nodos del clúster. Ello se heladodementa (Dominio público) consigue gracias a que los ficheros no se almacenan completos sino dividos en fragmentos (llamados bloques), de modo que se puede almacenar ficheros enormes simplemente distribuyendo los bloques que lo conforman por el clúster. Estos sistemas son agnósticos respecto de los datos que van a almacenar, y proporcionan redundancia y alta disponibilidad gracias a la replicación en distintos nodos de los bloques que componen los ficheros. Tienen un indice de replicación configurable, de modo que cada bloque queda al menos en N nodos distintos (donde N debe ser como mínimo es 2 para que haya replicación). Esta capacidad de replicación integrada dentro del propio sistema hace que ya no sea necesario contar con replicación (tipo RAID) dentro del sistema de ficheros local de cada nodo. Debido a que cada fichero se puede encontrar distribuido en distintos nodos, se pueden alcanzar tasas de lectura y escritura superiores a las de las unidades de almacenamiento individuales. Ello se debe a que tales lecturas y escrituras se realizan en paralelo, evitando el cuello de botella que se produce al tener que emplear una única unidad física. Por razones de diseño, los sistemas de ficheros distribuidos para Big Data emplean bloques muy grandes (por ejemplo de 128MB). Por esa razón, no son ideales para trabajar con muchos ficheros pequeños sino que funcionan mejor con pocos ficheros de tamaño grande. Debido a esto, cuando los datos de las fuentes vienen en muchos ficheros pequeños lo que se hace es combinarlos en ficheros grandes durante el proceso de ETL. Uno de los sistemas de ficheros distribuidos más conocidos y empleados en entornos Big Data es HDFS (de Apache Hadoop), el cual tiene como precursor a GFS (de Google). Dentro del mundo cloud, el más conocido es Amazon S3, aunque existen otras alternativas como Google Cloud Storage y Azure Blob Storage.