fbpx
Wikipedia

Sistema de archivos distribuido

Un sistema de archivos distribuido o sistema de archivos de red es un sistema de archivos de computadoras que sirve para compartir archivos, impresoras y otros recursos como un almacenamiento persistente en una red de computadoras. El primer sistema de este tipo fue desarrollado en la década de 1970, y en 1985 Sun Microsystems creó el sistema de archivos de red NFS el cual fue ampliamente utilizado como sistema de archivos distribuido. Otros sistemas notables utilizados fueron el sistema de archivos Andrew (AFS) y el sistema Server Message Block SMB, también conocido como CIFS.

Un sistema de archivos distribuido va a permitir almacenar y acceder a archivos remotos como si fueran locales, esto sin notar pérdidas en el rendimiento. Este sistema es útil cuando es necesario que los usuarios tengan acceso a información compartida en diferentes ubicaciones de forma ininterrumpida.

Una de las ventajas de este tipo de sistemas es que se puede optimizar la carga de la red para que los nodos con mucho tráfico deriven recursos compartidos a otras ubicaciones de la red con lo cual se minimiza el riesgo de cuello de botella y se optimiza la velocidad de acceso a la información.

Clasificaciones de los sistemas de archivos

Existen cuatro principales clasificaciones de sistemas de archivos y cada una de ellas es contiene subdivisiones o categorías

  • La primera clasificación contine dos clases principales:
  1. Servidor de archivos real: es un sistema de archivos completo, reconoce nombres de archivos textuales y administra directorios de archivos para usuarios.
  2. Servidor de almacenamiento: este almacena datos en objetos no estructurados haciendo que únicamente sean accesibles por identificadores primitivos.
  • En esta siguente, sus clases están basadas en tres parametros (acceso a unidad de datos, unidad de bloqueo y ámbito de actualizaciones atómicas.
  1. Sistema de archivos simple
  2. Sistema de archivos universal
  3. Servidor de soporte de administración para bases de datos
  • Clasificación tres, cuenta con dos tipos:
  1. Servicio tradicional de archivos: los archivos pueden ser abiertos, leídos y re-escritos.
  2. Servicio de archivos robusto: para aplicaciones que requieren una alta fiabilidad
  • En la última clasificación se encuentran los sistemas de archivos distribuido y la transferencia de archivos explicita. Esta clasificación está asociada a la primera y toma acceso remoto de archivos en consideración:
  1. Transferencia de archivos explícita: el cliente debe invocar una utilidad de transferencia de archivo para transferir un archivo remoto.
  2. Sistema de archivos distribuido: la ubicación del archivo es transparente a los usuarios, los cuales hacen referencia al archivo por su nombre. Ubica el servidor que almacena el archivo referenciado, hace las operaciones orientadas a la seguridad, como la autenticación, sincronizar el acceso al archivo y transferir el archivo. Por razones de desempeño algunos datos y directorios son almacenados en caché, y por fiabilidad algunos son replicados.

Servicios que proporciona un sistema de archivos distribuido

Los sistemas de archivos son muy importantes en los sistemas operativos pues actúan como una interfaz entre el mismo sistema y todos los dispositivos conectados al equipo ya sean, dispositivos internos o externos.

Un servidor de archivos proporciona los siguientes servicios.

  1. Respaldo (Backup) y recuperación automática: realizado como medida preventiva contra fallas del medio y errores de usuario.
  2. Movilidad de usuario: permitir al usuario el uso de un entorno de trabajo independiente de la computadora o de la ubicación sin necesidad de dispositivos de almacenamiento secundario.
  3. Estaciones de trabajo sin disco: son deseadas debido a que generan menos calor y menor ruido.

Componentes de un sistema de archivos distribuido

Este tipo de sistema tiene dos componentes que son esencialmente importantes;

  1. Servidor de archivos: es el encargado de las operaciones que se pueden hacer sobre los archivos individuales, tales como la lectura, escritura o modificación de archivos. Dentro de los aspectos importantes se encuentra la administración de los atributos, esta es información que no es parte del archivo mismo. El servidor de archivos también es el responsable de la protección contra accesos no permitidos, donde se puede hacer uso de las listas de control de acceso.
  2. Servidor de directorios: es el que ofrece las operaciones que pueden realizarse sobre los directorios, como la creación y borrado de directorios, así como de copiar y mover los archivos entre los directorios. También es el responsable de resolver el nombre de los archivos porque debe de proveer transparencia de los nombres con respecto a la localización, y debe de ofrecer nombres de dos niveles, nombres simbólicos y nombres binarios, también administra la organización de los archivos en un sistema jerárquico y por último ese encarga de manejar los enlaces lógicos y físicos.

La búsqueda de nombres puede darse de las siguientes maneras:

  • Búsqueda iterativa: el cliente envía el nombre al servidor, este realiza la traducción hasta que termina en un componente que pertenece a otro servidor, finalmente el servidor envía el resultado al cliente, el cual si no ha terminado la traducción continua con el servidor correspondiente.
  • Búsqueda automática o recursiva: el cliente manda el nombre al servidor, este comienza a contactarse con los demás servidores y el último de ellos devuelve el resultado al servidor anterior y así sucesivamente, hasta llegar al primer servidor que es con el que el cliente se contacto para que este primer servidor sea quien le devuelva la respuesta al cliente.
  • Búsqueda transitiva: los sistemas implicados se contactan para llevar a cabo la traducción y el último servidor es el que devuelve la solución al cliente. Este tipo de resolución rompe el modelo cliente/servidor.

Requisitos de un sistema de archivos distribuido

Inicialmente se ofrecían como requisitos la transparencia de acceso y la transparencia de ubicación, los demás requisitos fueron surgiendo en fases posteriores del desarrollo. Entre los principales requisitos a considerar para el desarrollo de un sistema de archivos distribuido se encuentran:

  • Transparencia: hace referencia a que el cliente debe de ver y acceder al sistema de archivos distribuido de manera uniforme, independientemente de cual sea la ubicación de los archivos y también de si la ubicación de estos cambia o se incrementa la escala o carga del servicio.
  • Heterogeneidad: las interfaces del servicio deben de estar definidas de tal modo que el software del cliente y el del servidor puedan estar implementadas en diferentes sistemas operativo, este es un aspecto importante dentro de la extensibilidad.
  • Concurrencia: hace referencia a que los cambios realizados por un cliente no deben de interferir con la operación de otros clientes que accedan o modifiquen simultáneamente el mismo archivo.
  • Eficiencia: el rendimiento debe de ser parecido al de un sistema de archivos local, ya que debe de proporcionar un servicio que sea comparable o mejor que los sistemas de archivos locales. Debe ser adecuado para administrar, proporcionando operaciones y herramientas que permitan a los administradores del sistema instalar y operar un sistema de una manera conveniente.
  • Seguridad: los sistemas de archivos proporcionan un sistema de control de acceso, los cuales están basados en el uso de listas de control de acceso. Dentro de los sistemas de archivos distribuidos surge la necesidad de autenticar las solicitudes de un cliente, por lo que el control de acceso en el servidor se basa en identificar al usuario correcto y también se encarga de proteger el contenido de los mensajes de solicitud y respuesta a través de formas digitales y de encriptación de datos.
  • Tolerancia a fallos: una de las funciones importantes en los sistemas de archivos distribuidos es que este siga funcionando aunque haya fallos del cliente o del servidor. Los servidores pueden ser sin estado, lo que significa que pueden ser reiniciados y el servicio establecido sin la necesidad de recuperar el estado previo.
  • Replicación: en un servicio de archivos que soporta replicación, un archivo puede estar representado por varias copias de su contenido en diferentes ubicaciones, lo cual trae consigo dos beneficios, ya que permite que múltiples servidores compartan la carga de proporcionar un servicio a los clientes que acceden al mismo conjunto de archivos, mejorando así la escalabilidad del servicio y también la tolerancia a fallos, lo que permite a los clientes localizar otro servidor en donde esta guardada una copia del archivo cuando falló el primer servidor al que intentó acceder.
  • Consistencia: hace referencia a que todos los procesos ven el mismo archivo. En caso de haber una replicación, los cambios tardan en propagarse, por lo que la consistencia puede ser menor.

AFS

El Andrew file system es un sistema de archivos distribuido comercial (CMU 1983, Transarc 1989, IBM 1998) para compartir archivos de manera transparente, escalable e independiente de la ubicación real.

Implementaciones de AFS:

  • OpenAFS: Versión open-source de AFS (IBM 2000).
  • XCoda: Sistema de archivos distribuido experimental open-source derivativo de AFS (CMU 1987). Se distingue por soportar dispositivos móviles.

Ceph

Ceph File System es un sistema de archivos distribuido libre, está diseñado para el uso con gran cantidad de datos, está muy enfocado para el uso con macrodatos (Big Data, en idioma inglés). Ceph tiene como objetivo ser POSIX-compatible y completamente distribuido sin ningún punto de fallo. Los datos tienen replicación libre de errores, haciéndolo tolerante de fallos.

DCE DFS

DCE Distributed File System es un sistema de ficheros distribuido de DCE que permite agrupar archivos repartidos en diferentes máquinas, en un espacio de nombres único. Está basado casi por completo en el sistema de ficheros AFS pero con ligeras diferencias.

NFS

Primer sistema comercial de archivos en red (Sun Microsystems, 1984) estándar, multiplataforma que permite acceder y compartir archivos en una red C/S heterogénea como si estuvieran en un solo disco, es decir, montar un directorio de una máquina remota en una máquina local.

HDFS

Es el componente principal de Hadoop, hace posible almacenar data sets masivos con tipos de datos estructurados, semiestructurados y no estructurados. Está optimizado para almacenar grandes cantidades de datos y mantener varias copias para garantizar una alta disponibilidad y la tolerancia a fallos.

Está basado en Java, que permite una visión de los recursos como una sola unidad. Para ello crea una capa de abstracción como un sistema de archivos único. Se encarga de almacenar los datos en varios nodos manteniendo sus metadatos, distribuir los datos en varios nodos de almacenamiento aumenta la velocidad de procesamiento, el paralelismo en las operaciones y permite la replicación de los datos.

Características

  • Los archivos se almacenan en bloques de 128 MB, y estos se distribuyen en los nodos que forman el clúster.
  • Para conseguir una alta escalabilidad, usa almacenamiento local que escala horizontalmente. Aumentar el espacio de almacenamiento solamente supone añadir discos duros a nodos existentes o más nodos al sistema. Tienen un coste reducido, al tratarse de hardware básico con almacenamiento conectado.
  • En el caso de la integridad de los datos, almacena por defecto 3 copias de cada bloque de datos. Aunque la replicación de datos no es necesaria para el funcionamiento de HDFS, almacenar solamente una copia podría suponer pérdida de datos por fallos o corrupción de archivos, eliminando la durabilidad del dato.
  • Se trata de un sistema de archivos jerárquico, es decir, el usuario debe crear primero un directorio, dentro del cual se podrán crear, eliminar, mover o renombrar archivos.

Arquitectura y Componentes

Es de tipo maestro-esclavo, basado en dos componentes principales: NameNodes y DataNodes.

  • NameNode (NN): es el maestro o nodo principal del sistema. Se encarga de gestionar su acceso y almacenar sus metadatos. Por tanto, necesita menos espacio de disco pero más recursos computacionales (memoria y CPU).

Es el único nodo que conoce la lista de archivos y directorios del clúster. En Hadoop 2 se introduce el concepto de alta disponibilidad evitando que exista un único punto de fallo en el sistema, HDFS se puede configurar para que exista un NN primario activo y otro secundario en espera (o más en Hadoop 3) que actúa como esclavo. Este último toma el control y responde a las peticiones de los clientes si se detecta algún fallo o el nodo primario deja de estar disponible. Los nodos deben estar sincronizados y tener los mismos metadatos almacenados.

  • DataNode (DN): corresponde con los nodos del clúster que almacenan los datos. Se encarga de gestionar el almacenamiento del nodo. Generalmente usan hardware básico con varios discos y una gran capacidad.

Funcionamiento

Tiene un modelo Write once read many. Significa que no se pueden editar archivos almacenados, pero sí se pueden añadir datos.

En las operaciones de escritura, el cliente debe comunicar la instrucción previamente al NN, este comprueba los permisos y responde entonces al cliente con la dirección de los DN en los que el cliente deberá empezar a escribir. El primer DN copiará el bloque a otro DN, que copiará a un tercero. Una vez que se completaron todas las copias, se enviará al cliente la confirmación de escritura.

Las operaciones de lectura, el cliente pide al NN la localización de un archivo. Una vez comprobados los permisos, el NN envía la localización de los DN que contienen los bloques que componen el archivo al cliente. También envía un token de seguridad que usará en los DN como autenticación.

Sistema de archivos Cassandra

El sistema de archivos Cassandra (CFS) es un sistema de archivos compatible con HDFS construido para reemplazar los demonios tradicionales Hadoop NameNode, Secondary NameNode y DataNode.

Sus principales objetivos son, simplificar la sobrecarga operativa de Hadoop eliminando los puntos únicos de falla en Hadoop NameNode, ofrecer una integración sencilla de Hadoop para los usuarios de Cassandra.

Se modela como un espacio de claves con dos familias de columnas en Cassandra. El espacio de claves es donde se encuentran las configuraciones de replicación, por lo que, a diferencia de HDFS, no puede cambiar la replicación por archivo. Las dos familias de columnas representan los dos servicios HDFS principales.

  • Servicio HDFS NameNode: rastrea los metadatos de cada archivo y las ubicaciones de los bloques, se reemplaza con la familia de columnas “inodo”.
  • Servicio HDFS DataNode: almacena bloques de archivos, se reemplaza con la familia de columnas “sblocks”.

La familia de columnas ‘inodo’ contiene metainformación sobre un archivo, esta metainformación incluye:

  • nombre del archivo
  • ruta principal
  • usuario
  • grupo
  • permisos
  • tipo de archivo
  • una lista de identificadores de bloque que componen el archivo

Utiliza un Comparador DynamicCompositeType. Para los identificadores de bloque, usa TimeUUID por lo que los bloques se ordenan secuencialmente de forma natural.

Los índices secundarios se utilizan para admitir operaciones. El centinela es necesario debido a cómo Cassandra implementa índices secundarios. Elige el predicado con la mayor selectividad y filtra desde allí.

Dado que los índices secundarios acceden a los identificadores de archivo, puede utilizar un UUID como clave de fila, lo cual brinda una buena distribución de datos en todo el clúster, es decir, la metainformación de un archivo completo se almacena en una clave de fila ancha.

La segunda familia de columnas “sblocks” almacena el contenido real del archivo.

Cada fila representa un bloque de datos asociado con un registro de inodo. Las columnas son subbloques comprimidos ordenados en el tiempo que, cuando se descomprimen y combinan, equivalen a un bloque HDFS.

Ruta de Escritura CFS

Hadoop tiene el parámetro “dfs.block.size” para indicar qué tan grande debe ser un bloque de archivo por escritura de archivo. Cuando entra un archivo, escribe los atributos estáticos en la familia de columnas de inodo.

Luego asigna un nuevo objeto de bloque y lee los datos del parámetro de Hadoop. A medida que se leen esos datos, los divide en subbloques de tamaño “cfs.local.subblock.size”, esos subbloques se comprimen. Una vez que se termina un bloque, la identificación del bloque se escribe en la fila de inodo y los subbloques se escriben en cassandra con la identificación del bloque como la clave de fila y los identificadores de subbloque como columnas.

CFS divide un bloque en subbloque. Sin embargo, para Hadoop, el bloque parece un solo bloque, por lo que no causa ningún cambio en la lógica de división de trabajos de map reduce.

Ruta de Lectura CFS

Cuando entra una lectura para un archivo o parte de un archivo (Hadoop busca el UUID en el índice secundario) lee la información del inodo y encuentra el bloque y subbloque para leer. Posteriormente, CFS ejecuta una llamada de ahorro personalizada que devuelve los datos del subbloque especificado o, si la llamada se realizó en un nodo con los datos localmente, el archivo y la información de compensación del archivo Cassandra SSTable con el subbloque.

Esto se realiza dado que, durante una tarea de reducción de mapas, el rastreador de trabajos intenta colocar cada cálculo en el nodo con los datos reales. Al usar la información de SSTable, es mucho más rápido, ya que el mapeador puede acceder a los datos directamente.

Enlaces externos

  • (en inglés)
  • Linux NFS (en inglés)
  • OpenAFS (en inglés)
  • DCE Portal (en inglés)

Referencias

  • “Sistemas de Archivos Distribuidos”, Obtenido de: https://www.tamps.cinvestav.mx/~vjsosa/clases/sd/DistributedFileSystems_gfs_hdfs.pdf.
  • López F. Francisco de Asís, “Sistemas Distribuidos”, pp 119 - 129, obtenido de: http://dccd.cua.uam.mx/libros/archivos/03IXStream_sistemas_distribuidos.pdf
  • Santamaría Rodrigo, “Sistemas Distribuidos”, obtenido de: http://vis.usal.es/rodrigo/documentos/sisdis/teoria/6-archivos.pdf
  • Cardinale Judith, “Sistemas de archivos distribuidos”, obtenido de: https://docplayer.es/5494526-Sistemas-de-archivos-distribuidos.html
  • “Modo en que funciona Kerberos”, obtenido de: https://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-es-4/s1-kerberos-works.html
  • Quintanilla Jhonathan, Herrera Galy, Powell Ismael, “Sistemas de Archivos Distribuidos”, obtenido de: https://www.academia.edu/34266699/Sistemas_de_Archivos_Distribuidos
  • García Carballeira, “Diseño de Sistemas Distribuidos”, obtenido de: https://www.arcos.inf.uc3m.es/infodsd/wp-content/uploads/sites/38/2017/02/8.pdf,
  • Aprender BIG DATA. "¿Qué es HDFS? Introducción.", [En línea]. Disponible en: https://aprenderbigdata.com/hdfs/
  • Datastax. "Cassandra File System Design", [En línea]. Disponible en: https://www.datastax.com/blog/cassandra-file-system-design
  •   Datos: Q339678

sistema, archivos, distribuido, este, artículo, sección, necesita, referencias, aparezcan, publicación, acreditada, este, aviso, puesto, septiembre, 2017, sistema, archivos, distribuido, sistema, archivos, sistema, archivos, computadoras, sirve, para, comparti. Este articulo o seccion necesita referencias que aparezcan en una publicacion acreditada Este aviso fue puesto el 6 de septiembre de 2017 Un sistema de archivos distribuido o sistema de archivos de red es un sistema de archivos de computadoras que sirve para compartir archivos impresoras y otros recursos como un almacenamiento persistente en una red de computadoras El primer sistema de este tipo fue desarrollado en la decada de 1970 y en 1985 Sun Microsystems creo el sistema de archivos de red NFS el cual fue ampliamente utilizado como sistema de archivos distribuido Otros sistemas notables utilizados fueron el sistema de archivos Andrew AFS y el sistema Server Message Block SMB tambien conocido como CIFS Un sistema de archivos distribuido va a permitir almacenar y acceder a archivos remotos como si fueran locales esto sin notar perdidas en el rendimiento Este sistema es util cuando es necesario que los usuarios tengan acceso a informacion compartida en diferentes ubicaciones de forma ininterrumpida Una de las ventajas de este tipo de sistemas es que se puede optimizar la carga de la red para que los nodos con mucho trafico deriven recursos compartidos a otras ubicaciones de la red con lo cual se minimiza el riesgo de cuello de botella y se optimiza la velocidad de acceso a la informacion Indice 1 Clasificaciones de los sistemas de archivos 2 Servicios que proporciona un sistema de archivos distribuido 3 Componentes de un sistema de archivos distribuido 4 Requisitos de un sistema de archivos distribuido 5 AFS 6 Ceph 7 DCE DFS 8 NFS 9 HDFS 10 Sistema de archivos Cassandra 11 Enlaces externos 12 ReferenciasClasificaciones de los sistemas de archivos EditarExisten cuatro principales clasificaciones de sistemas de archivos y cada una de ellas es contiene subdivisiones o categorias La primera clasificacion contine dos clases principales Servidor de archivos real es un sistema de archivos completo reconoce nombres de archivos textuales y administra directorios de archivos para usuarios Servidor de almacenamiento este almacena datos en objetos no estructurados haciendo que unicamente sean accesibles por identificadores primitivos En esta siguente sus clases estan basadas en tres parametros acceso a unidad de datos unidad de bloqueo y ambito de actualizaciones atomicas Sistema de archivos simple Sistema de archivos universal Servidor de soporte de administracion para bases de datosClasificacion tres cuenta con dos tipos Servicio tradicional de archivos los archivos pueden ser abiertos leidos y re escritos Servicio de archivos robusto para aplicaciones que requieren una alta fiabilidadEn la ultima clasificacion se encuentran los sistemas de archivos distribuido y la transferencia de archivos explicita Esta clasificacion esta asociada a la primera y toma acceso remoto de archivos en consideracion Transferencia de archivos explicita el cliente debe invocar una utilidad de transferencia de archivo para transferir un archivo remoto Sistema de archivos distribuido la ubicacion del archivo es transparente a los usuarios los cuales hacen referencia al archivo por su nombre Ubica el servidor que almacena el archivo referenciado hace las operaciones orientadas a la seguridad como la autenticacion sincronizar el acceso al archivo y transferir el archivo Por razones de desempeno algunos datos y directorios son almacenados en cache y por fiabilidad algunos son replicados Servicios que proporciona un sistema de archivos distribuido EditarLos sistemas de archivos son muy importantes en los sistemas operativos pues actuan como una interfaz entre el mismo sistema y todos los dispositivos conectados al equipo ya sean dispositivos internos o externos Un servidor de archivos proporciona los siguientes servicios Respaldo Backup y recuperacion automatica realizado como medida preventiva contra fallas del medio y errores de usuario Movilidad de usuario permitir al usuario el uso de un entorno de trabajo independiente de la computadora o de la ubicacion sin necesidad de dispositivos de almacenamiento secundario Estaciones de trabajo sin disco son deseadas debido a que generan menos calor y menor ruido Componentes de un sistema de archivos distribuido EditarEste tipo de sistema tiene dos componentes que son esencialmente importantes Servidor de archivos es el encargado de las operaciones que se pueden hacer sobre los archivos individuales tales como la lectura escritura o modificacion de archivos Dentro de los aspectos importantes se encuentra la administracion de los atributos esta es informacion que no es parte del archivo mismo El servidor de archivos tambien es el responsable de la proteccion contra accesos no permitidos donde se puede hacer uso de las listas de control de acceso Servidor de directorios es el que ofrece las operaciones que pueden realizarse sobre los directorios como la creacion y borrado de directorios asi como de copiar y mover los archivos entre los directorios Tambien es el responsable de resolver el nombre de los archivos porque debe de proveer transparencia de los nombres con respecto a la localizacion y debe de ofrecer nombres de dos niveles nombres simbolicos y nombres binarios tambien administra la organizacion de los archivos en un sistema jerarquico y por ultimo ese encarga de manejar los enlaces logicos y fisicos La busqueda de nombres puede darse de las siguientes maneras Busqueda iterativa el cliente envia el nombre al servidor este realiza la traduccion hasta que termina en un componente que pertenece a otro servidor finalmente el servidor envia el resultado al cliente el cual si no ha terminado la traduccion continua con el servidor correspondiente Busqueda automatica o recursiva el cliente manda el nombre al servidor este comienza a contactarse con los demas servidores y el ultimo de ellos devuelve el resultado al servidor anterior y asi sucesivamente hasta llegar al primer servidor que es con el que el cliente se contacto para que este primer servidor sea quien le devuelva la respuesta al cliente Busqueda transitiva los sistemas implicados se contactan para llevar a cabo la traduccion y el ultimo servidor es el que devuelve la solucion al cliente Este tipo de resolucion rompe el modelo cliente servidor Requisitos de un sistema de archivos distribuido EditarInicialmente se ofrecian como requisitos la transparencia de acceso y la transparencia de ubicacion los demas requisitos fueron surgiendo en fases posteriores del desarrollo Entre los principales requisitos a considerar para el desarrollo de un sistema de archivos distribuido se encuentran Transparencia hace referencia a que el cliente debe de ver y acceder al sistema de archivos distribuido de manera uniforme independientemente de cual sea la ubicacion de los archivos y tambien de si la ubicacion de estos cambia o se incrementa la escala o carga del servicio Heterogeneidad las interfaces del servicio deben de estar definidas de tal modo que el software del cliente y el del servidor puedan estar implementadas en diferentes sistemas operativo este es un aspecto importante dentro de la extensibilidad Concurrencia hace referencia a que los cambios realizados por un cliente no deben de interferir con la operacion de otros clientes que accedan o modifiquen simultaneamente el mismo archivo Eficiencia el rendimiento debe de ser parecido al de un sistema de archivos local ya que debe de proporcionar un servicio que sea comparable o mejor que los sistemas de archivos locales Debe ser adecuado para administrar proporcionando operaciones y herramientas que permitan a los administradores del sistema instalar y operar un sistema de una manera conveniente Seguridad los sistemas de archivos proporcionan un sistema de control de acceso los cuales estan basados en el uso de listas de control de acceso Dentro de los sistemas de archivos distribuidos surge la necesidad de autenticar las solicitudes de un cliente por lo que el control de acceso en el servidor se basa en identificar al usuario correcto y tambien se encarga de proteger el contenido de los mensajes de solicitud y respuesta a traves de formas digitales y de encriptacion de datos Tolerancia a fallos una de las funciones importantes en los sistemas de archivos distribuidos es que este siga funcionando aunque haya fallos del cliente o del servidor Los servidores pueden ser sin estado lo que significa que pueden ser reiniciados y el servicio establecido sin la necesidad de recuperar el estado previo Replicacion en un servicio de archivos que soporta replicacion un archivo puede estar representado por varias copias de su contenido en diferentes ubicaciones lo cual trae consigo dos beneficios ya que permite que multiples servidores compartan la carga de proporcionar un servicio a los clientes que acceden al mismo conjunto de archivos mejorando asi la escalabilidad del servicio y tambien la tolerancia a fallos lo que permite a los clientes localizar otro servidor en donde esta guardada una copia del archivo cuando fallo el primer servidor al que intento acceder Consistencia hace referencia a que todos los procesos ven el mismo archivo En caso de haber una replicacion los cambios tardan en propagarse por lo que la consistencia puede ser menor AFS EditarArticulo principal Andrew file system El Andrew file system es un sistema de archivos distribuido comercial CMU 1983 Transarc 1989 IBM 1998 para compartir archivos de manera transparente escalable e independiente de la ubicacion real Implementaciones de AFS OpenAFS Version open source de AFS IBM 2000 XCoda Sistema de archivos distribuido experimental open source derivativo de AFS CMU 1987 Se distingue por soportar dispositivos moviles Ceph EditarArticulo principal Ceph File System Ceph File System es un sistema de archivos distribuido libre esta disenado para el uso con gran cantidad de datos esta muy enfocado para el uso con macrodatos Big Data en idioma ingles Ceph tiene como objetivo ser POSIX compatible y completamente distribuido sin ningun punto de fallo Los datos tienen replicacion libre de errores haciendolo tolerante de fallos DCE DFS EditarArticulo principal DCE Distributed File System DCE Distributed File System es un sistema de ficheros distribuido de DCE que permite agrupar archivos repartidos en diferentes maquinas en un espacio de nombres unico Esta basado casi por completo en el sistema de ficheros AFS pero con ligeras diferencias NFS EditarArticulo principal Network File System Primer sistema comercial de archivos en red Sun Microsystems 1984 estandar multiplataforma que permite acceder y compartir archivos en una red C S heterogenea como si estuvieran en un solo disco es decir montar un directorio de una maquina remota en una maquina local HDFS EditarEs el componente principal de Hadoop hace posible almacenar data sets masivos con tipos de datos estructurados semiestructurados y no estructurados Esta optimizado para almacenar grandes cantidades de datos y mantener varias copias para garantizar una alta disponibilidad y la tolerancia a fallos Esta basado en Java que permite una vision de los recursos como una sola unidad Para ello crea una capa de abstraccion como un sistema de archivos unico Se encarga de almacenar los datos en varios nodos manteniendo sus metadatos distribuir los datos en varios nodos de almacenamiento aumenta la velocidad de procesamiento el paralelismo en las operaciones y permite la replicacion de los datos Caracteristicas Los archivos se almacenan en bloques de 128 MB y estos se distribuyen en los nodos que forman el cluster Para conseguir una alta escalabilidad usa almacenamiento local que escala horizontalmente Aumentar el espacio de almacenamiento solamente supone anadir discos duros a nodos existentes o mas nodos al sistema Tienen un coste reducido al tratarse de hardware basico con almacenamiento conectado En el caso de la integridad de los datos almacena por defecto 3 copias de cada bloque de datos Aunque la replicacion de datos no es necesaria para el funcionamiento de HDFS almacenar solamente una copia podria suponer perdida de datos por fallos o corrupcion de archivos eliminando la durabilidad del dato Se trata de un sistema de archivos jerarquico es decir el usuario debe crear primero un directorio dentro del cual se podran crear eliminar mover o renombrar archivos Arquitectura y ComponentesEs de tipo maestro esclavo basado en dos componentes principales NameNodes y DataNodes NameNode NN es el maestro o nodo principal del sistema Se encarga de gestionar su acceso y almacenar sus metadatos Por tanto necesita menos espacio de disco pero mas recursos computacionales memoria y CPU Es el unico nodo que conoce la lista de archivos y directorios del cluster En Hadoop 2 se introduce el concepto de alta disponibilidad evitando que exista un unico punto de fallo en el sistema HDFS se puede configurar para que exista un NN primario activo y otro secundario en espera o mas en Hadoop 3 que actua como esclavo Este ultimo toma el control y responde a las peticiones de los clientes si se detecta algun fallo o el nodo primario deja de estar disponible Los nodos deben estar sincronizados y tener los mismos metadatos almacenados DataNode DN corresponde con los nodos del cluster que almacenan los datos Se encarga de gestionar el almacenamiento del nodo Generalmente usan hardware basico con varios discos y una gran capacidad FuncionamientoTiene un modelo Write once read many Significa que no se pueden editar archivos almacenados pero si se pueden anadir datos En las operaciones de escritura el cliente debe comunicar la instruccion previamente al NN este comprueba los permisos y responde entonces al cliente con la direccion de los DN en los que el cliente debera empezar a escribir El primer DN copiara el bloque a otro DN que copiara a un tercero Una vez que se completaron todas las copias se enviara al cliente la confirmacion de escritura Las operaciones de lectura el cliente pide al NN la localizacion de un archivo Una vez comprobados los permisos el NN envia la localizacion de los DN que contienen los bloques que componen el archivo al cliente Tambien envia un token de seguridad que usara en los DN como autenticacion Sistema de archivos Cassandra EditarEl sistema de archivos Cassandra CFS es un sistema de archivos compatible con HDFS construido para reemplazar los demonios tradicionales Hadoop NameNode Secondary NameNode y DataNode Sus principales objetivos son simplificar la sobrecarga operativa de Hadoop eliminando los puntos unicos de falla en Hadoop NameNode ofrecer una integracion sencilla de Hadoop para los usuarios de Cassandra Se modela como un espacio de claves con dos familias de columnas en Cassandra El espacio de claves es donde se encuentran las configuraciones de replicacion por lo que a diferencia de HDFS no puede cambiar la replicacion por archivo Las dos familias de columnas representan los dos servicios HDFS principales Servicio HDFS NameNode rastrea los metadatos de cada archivo y las ubicaciones de los bloques se reemplaza con la familia de columnas inodo Servicio HDFS DataNode almacena bloques de archivos se reemplaza con la familia de columnas sblocks La familia de columnas inodo contiene metainformacion sobre un archivo esta metainformacion incluye nombre del archivo ruta principal usuario grupo permisos tipo de archivo una lista de identificadores de bloque que componen el archivoUtiliza un Comparador DynamicCompositeType Para los identificadores de bloque usa TimeUUID por lo que los bloques se ordenan secuencialmente de forma natural Los indices secundarios se utilizan para admitir operaciones El centinela es necesario debido a como Cassandra implementa indices secundarios Elige el predicado con la mayor selectividad y filtra desde alli Dado que los indices secundarios acceden a los identificadores de archivo puede utilizar un UUID como clave de fila lo cual brinda una buena distribucion de datos en todo el cluster es decir la metainformacion de un archivo completo se almacena en una clave de fila ancha La segunda familia de columnas sblocks almacena el contenido real del archivo Cada fila representa un bloque de datos asociado con un registro de inodo Las columnas son subbloques comprimidos ordenados en el tiempo que cuando se descomprimen y combinan equivalen a un bloque HDFS Ruta de Escritura CFSHadoop tiene el parametro dfs block size para indicar que tan grande debe ser un bloque de archivo por escritura de archivo Cuando entra un archivo escribe los atributos estaticos en la familia de columnas de inodo Luego asigna un nuevo objeto de bloque y lee los datos del parametro de Hadoop A medida que se leen esos datos los divide en subbloques de tamano cfs local subblock size esos subbloques se comprimen Una vez que se termina un bloque la identificacion del bloque se escribe en la fila de inodo y los subbloques se escriben en cassandra con la identificacion del bloque como la clave de fila y los identificadores de subbloque como columnas CFS divide un bloque en subbloque Sin embargo para Hadoop el bloque parece un solo bloque por lo que no causa ningun cambio en la logica de division de trabajos de map reduce Ruta de Lectura CFSCuando entra una lectura para un archivo o parte de un archivo Hadoop busca el UUID en el indice secundario lee la informacion del inodo y encuentra el bloque y subbloque para leer Posteriormente CFS ejecuta una llamada de ahorro personalizada que devuelve los datos del subbloque especificado o si la llamada se realizo en un nodo con los datos localmente el archivo y la informacion de compensacion del archivo Cassandra SSTable con el subbloque Esto se realiza dado que durante una tarea de reduccion de mapas el rastreador de trabajos intenta colocar cada calculo en el nodo con los datos reales Al usar la informacion de SSTable es mucho mas rapido ya que el mapeador puede acceder a los datos directamente Enlaces externos EditarSitio oficial de NFS Version 4 en ingles Linux NFS en ingles OpenAFS en ingles DCE Portal en ingles Referencias Editar Sistemas de Archivos Distribuidos Obtenido de https www tamps cinvestav mx vjsosa clases sd DistributedFileSystems gfs hdfs pdf Lopez F Francisco de Asis Sistemas Distribuidos pp 119 129 obtenido de http dccd cua uam mx libros archivos 03IXStream sistemas distribuidos pdf Santamaria Rodrigo Sistemas Distribuidos obtenido de http vis usal es rodrigo documentos sisdis teoria 6 archivos pdf Cardinale Judith Sistemas de archivos distribuidos obtenido de https docplayer es 5494526 Sistemas de archivos distribuidos html Modo en que funciona Kerberos obtenido de https web mit edu rhel doc 4 RH DOCS rhel rg es 4 s1 kerberos works html Quintanilla Jhonathan Herrera Galy Powell Ismael Sistemas de Archivos Distribuidos obtenido de https www academia edu 34266699 Sistemas de Archivos Distribuidos Garcia Carballeira Diseno de Sistemas Distribuidos obtenido de https www arcos inf uc3m es infodsd wp content uploads sites 38 2017 02 8 pdf Aprender BIG DATA Que es HDFS Introduccion En linea Disponible en https aprenderbigdata com hdfs Datastax Cassandra File System Design En linea Disponible en https www datastax com blog cassandra file system design Datos Q339678Obtenido de https es wikipedia org w index php title Sistema de archivos distribuido amp oldid 137523539, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos