Resumen

Completado
  • El sistema de archivos distribuido Hadoop (HDFS) es un clon de código abierto del sistema de archivos Google (GFS).
  • HDFS está diseñado para ejecutarse en un clúster de nodos y admite el modelo de programación de MapReduce proporcionando un sistema de archivos distribuido (DFS) para los datos de E/S del modelo.
  • HDFS tiene un espacio de nombres común para todo el clúster; es capaz de almacenar archivos de gran tamaño; está optimizado para acceso de una sola escritura y varias lecturas; y está diseñado para proporcionar alta disponibilidad en presencia de errores de nodo.
  • HDFS sigue una topología de primario-secundario; el NameNode controla los metadatos y los datos se almacenan en los DataNodes.
  • Los archivos de HDFS se dividen en bloques (también denominados fragmentos), con un tamaño predeterminado de 128 MB.
  • Los bloques se replican tres veces de forma predeterminada (se denomina factor de replicación) en todo el clúster.
  • HDFS asume una topología de clúster tipo árbol, optimiza el acceso a los archivos para mejorar el rendimiento e intenta colocar réplicas de bloques entre bastidores.
  • El diseño original de HDFS sigue una semántica inmutable y no permite abrir archivos existentes para escrituras. Las versiones más recientes de HDFS admiten las anexiones de archivos.
  • HDFS es altamente coherente porque una escritura de archivo se marca como completa solo después de que se hayan escrito todas las réplicas.
  • El NameNode realiza un seguimiento de los errores del DataNode mediante un mecanismo de latido; si los DataNodes no responden, se marcan como inactivos y se crean más copias de los bloques que se encontraban en ese DataNode para mantener el factor de replicación deseado.
  • El NameNode es un único punto de error (SPOF) en el diseño original de HDFS. Se puede designar un NameNode secundario para copiar periódicamente los metadatos del NameNode principal, pero no se proporciona redundancia completa de conmutación por error.
  • HDFS proporciona un alto ancho de banda para MapReduce, alta confiabilidad, bajos costos por byte y una buena escalabilidad.
  • HDFS es ineficaz con archivos pequeños (debido al tamaño de bloque predeterminado grande), no es compatible con POSIX y no permite reescrituras de archivos, a excepción de las anexiones en las versiones más recientes de HDFS.
  • Ceph es un sistema de almacenamiento diseñado para aplicaciones en la nube. Ceph se basa en un almacén de objetos distribuido con servicios superpuestos.
  • En el núcleo de Ceph está RADOS, un clúster de administración automática de demonios de almacenamiento de objetos (OSD) y nodos de supervisión. Los nodos usan técnicas avanzadas para administrarse automáticamente, ser tolerantes a errores y escalables.
  • Un objeto de RADOS se asigna a un grupo de selección de ubicación y luego se asocia a un OSD mediante el algoritmo CRUSH.
  • Se puede acceder a RADOS a través de librados, un cliente RADOS nativo que funciona con distintos lenguajes de programación.
  • Las aplicaciones también pueden acceder a los datos de RADOS como objetos por medio de la puerta de enlace de RADOS, que admite los protocolos S3 y Swift a través de una interfaz de REST.
  • RADOS también puede exportar dispositivos de almacenamiento en bloque mediante RBD. Se pueden usar como imágenes de disco para máquinas virtuales.
  • Ceph FS es un sistema de archivos superpuesto sobre RADOS. Esto se logra gracias al uso de nodos de metadatos especiales que realizan un seguimiento de los metadatos del sistema de archivos. Los nodos de metadatos crean particiones del árbol del sistema de archivos de forma dinámica por medio de un algoritmo especial. Las entradas de metadatos también se registran en diario en RADOS para la tolerancia a errores.