DSF (Distributed File System)
Evolución del almacenamiento hacia arquitecturas analíticas modernas de Block
Storage o Lakehouse.
Memoria Volátil
Sin energía no hay datos (RAM, Caché, Registros).
Memoria No Volátil
Sobreviven los datos sin energía (Disco duro).
¿Qué es?
Es distribuir el almacenamiento entre nodos para formar un solo sistema de
archivos usando la red.
Ejemplos:
NFS
SMB
GlusterFS
Fundamentos de datos
Datos - Información - Conocimiento - Sabiduría (DIKW)
Data: -5
Information: -5 Celsius (En formación con algo que significa algo para el
humano).
Knowledge: Frío (Acción sobre el dato).
Wisdom: Debería llevar Abrigo (Toma de decisiones basado en
entendimiento)
Tipos de datos
Estructurados
DSF (Distributed File System) 1
No Estructurados
Semi-Estructurados
¿Cómo se almacenan los datos?
Sistemas de Archivos (locales)
Datos almacenados en el Disco, gestionados por el Sistema Operativo
File Systems - Sistemas de Archivos
Varios formatos:
FAT
NTFS
Ext3
XFS
AFS
DSF (Distributed File System) 2
Los programas acceden a los datos mediante ‘calls’ (open, close, read,
write, lock/unlock)
¿Por qué la necesidad de Sistemas de Archivos Distribuidos?
Sistemas de Archivos Distribuidos (DFS)
Particionamiento y Replicación
Se distribuye el almacenamiento de archivos entre muchos nodos para
formar un solo sistema de archivos virtual (usando la red).
Un programa accede a los datos locales o remotos, con la misma
semántica de un acceso local (requiere un protocolo de red).
Sharding: Particionamiento “horizontal” de los datos. Distintos nodos
almacenan distintos elementos del filesystem. Particionar los datos si
quiero volumen (si quiero el Big Data).
La escalabilidad se logra simplemente agregando más nodos al sistema.
Un DFS idealmente debe lograr transparencia de:
Acceso y Concurrencia
Ubicación y fallas
Replicación y duplicidad
Replicación vs Particionamiento
La replicación permite mantener la copia del mismo dato sobre
múltiples nodos. Redundancia
El particionamiento divide los datos en múltiples partes.
Particionamiento inteligente.
Replicación mejora el rendimiento.
Motores de Bases de Datos
Data Warehouse
Data Lake - Lake House
Almacenamiento en la nube
DSF (Distributed File System) 3
Se busca almacenamiento y procesamiento.
Limitaciones de los DFS
Teorema CAP (Brewer’s Theorem)
Consistencia se refiere a que todos los nodos deben tener los mismos
datos al mismo tiempo. Esto implica que cuando se realiza una operación
en uno de los nodos, todos los demás nodos deben ser actualizados de
manera coherente y consistente.
Disponibilidad se refiere a que cada solicitud de datos debe recibir una
respuesta, sin importar si algunos nodos están fallando o no están
disponibles.
Tolerancia a particiones de red se refiere a que el sistema debe seguir
funcionando incluso si se pierde la conexión entre algunos de los nodos.
DSF (Distributed File System) 4
Almacenamiento con Procesamiento Masivo Simultáneo y
Paralelo
Google Filesystem
Hadoop Distributed Filesystem
Nube (S3-AZ Blob)
Si quiero tener almacenamiento masivo, debo usar sistemas distribuidos.
Características Generales
Cuando el set de datos no cabe en una sola máquina física se hace necesario
particionar la información en múltiples máquinas.
Los sistemas de archivos que manejan almacenamiento sobre redes se
conocen como sistemas de archivos distribuidos.
Es un sistema de archivos distribuidos, diseñado para operar en clusters de
computadores estándar.
Escalable horizontalmente. Se puede crecer agregando más nodos al cluster,
puede crecer hasta miles de nodos.
Tolerable a fallos. La información se replica.
Diseñado para manejar grandes archivos. Los archivos se dividen en bloques
que se distribuyen en distintos nodos.
Se logra alto throughput paralelizando operaciones de I/O entre muchos
nodos.
Ideal para operaciones por lotes (batch).
Como el SO almacena por bloques los archivos, el disco duro mueve bloques
completos. Se ajusta el archivo al tamaño del bloque.
En HFS los bloques de datos ocupan 128MB.
Arquitectura de HDFS
Arquitectura maestro/esclavo
DSF (Distributed File System) 5
Namenode: Maestro
Maneja los metadatos (el dato del dato) del FS. Mantiene el mapeo de
archivos a bloques.
Sebe donde están los bloques, pero los clavos son los que los almacenan.
Controla el acceso por los clientes, pero los datos nunca fluyen por el
namenode. Maneja operaciones abrir, cerrar, renombrar.
Namenode: Esclavos
Almacenan los bloques que componen los archivos. Ejecutan operaciones
read/write para los clientes.
Realizan operaciones de creación, borrado, replicación de bloques.
Replicación de HDFS
A cada archivo se le asigna un tamaño de bloque típico (128MB) y un factor de
replicación (por defecto 3). ¿Por qué 3 es ideal? Es más rápida la copia, busca
en el mismo rack, si no pasa a otro rack. Original, copia en el mismo rack, y en
otro rack por si se daña el rack.
El namenode recibe periódicamente un Heartbeat (estoy vivo) y un
Blockreport (que no se hayan corrompido) desde los datanodes.
Si desaparece de algún nodo, lo copia desde el nodo que todavía lo tiene.
La distribución de réplicas busca lograr un compromiso entre confiabilidad y
rendimiento, típicamente el primer bloque en el writer y sus dos copias en
datanodes que estén en el mismo rack, pero diferente al del writer.
Para lectura, se usa la política de usar la réplica más cercana al reader.
Tolerancia a Fallos
Si el namenode falla o se corrompen sus archivos Editlog o FsImage, no es
posible acceder al file system. Existen varios mecanismos para lograr alta
disponibilidad. Estos mecanismos operan con dos namenodes. Activo y standby.
DSF (Distributed File System) 6
Implementación basada en un journal distribuido. Es la opción preferida.
Un daemon en el standby recibe todos los updates del activo así como las
notificaciones de los datanodes. Mantiene actualizada una copia separada
de los metadatos.
Implementación basada en un servicio NFS compartido por los namenodes
activo y standby. En caso de falla del activo, el standby pasa a ser el
activo.
DSF (Distributed File System) 7