Arquitectura de servicio de archivos en sistema distribuido

Un sistema de archivos es un sistema donde los datos se almacenan de forma persistente. En este artículo veremos el concepto de arquitectura de servicio de archivos en sistemas distribuidos. El mecanismo de control de acceso se utiliza para compartir datos entre múltiples usuarios. Además, el acceso concurrente se proporciona ciertamente para el acceso de solo lectura.

Los siguientes módulos forman parte del sistema de archivos:

  • Módulo de directorio: este módulo proporciona la relación con los nombres de archivo conectándolos a sus ID de archivo correspondientes.
  • Módulo de archivo: este módulo sirve para relacionar los ID de archivo con archivos específicos.
  • Módulo de control de acceso: este módulo proporciona la función de control mediante la validación de la operación solicitada.
  • Módulo de acceso a archivos: este módulo se refiere a la lectura y escritura de datos o atributos de archivos.
  • Módulo de bloque: este módulo accede y asigna el bloque de disco.
  • Módulo de dispositivo: este módulo se refiere a la E/S del disco y al almacenamiento en búfer.

 Requisitos del servicio de archivos:

Los siguientes son los requisitos de los servicios de archivo:

  • Transparencia: el espacio de nombres de archivo es el mismo incluso después de la reubicación de archivos o procesos. Existe la posibilidad de que los archivos se reubiquen automáticamente. El rendimiento está a la altura para una carga de sistema dada. El escalado también se puede hacer para cumplir con las cargas adicionales.
  • Concurrencia: Debe ostentar la propiedad de aislamiento. El bloqueo se puede llevar a cabo a nivel de archivo o mantenimiento a nivel de registro.
  • Heterogéneo: El acceso al servicio por parte del cliente debe ser independiente del sistema operativo o plataforma de hardware. En otras palabras, debe haber compatibilidad de diseño de sistemas de archivos de diferentes sistemas operativos.
  • Replicación: el servicio de archivos de replicación mantiene varias copias idénticas de archivos.
  • Coherencia: existe una función de actualización de una copia en Unix para las operaciones del sistema de archivos en archivos locales. Aquí, la transparencia se ve en el mecanismo de almacenamiento en caché.
  • Seguridad: debe haber una implementación adecuada con respecto al control de acceso y la privacidad de los archivos locales. Se debe seguir una comunicación segura para mantener la privacidad. El procedimiento de autenticación debe optar por usuarios remotos. Además, la vulnerabilidad está asociada con la suplantación de identidad y otros ataques similares debido a la apertura de las interfaces de servicio a todos los procesos.
  • Tolerancia a fallas: el servicio de ejecución debe tener la capacidad de ejecutar incluso si el cliente comete errores o se bloquea. Incluso después de bloquear la máquina en el lado del servidor, el servicio debe poder reanudarse. El servicio puede seguir funcionando incluso durante un bloqueo si hay una replicación del servicio.
  • Eficiencia: el sistema de archivos distribuido tiene como objetivo lograr un nivel de rendimiento comparable al de un sistema de archivos local.

Arquitectura del servicio de archivos:

File Service Architecture es una arquitectura que proporciona la facilidad de acceso a archivos mediante el diseño del servicio de archivos como los siguientes tres componentes:

  • Un módulo de cliente
  • Un servicio de archivos planos
  • Un servicio de directorio

La implementación de las interfaces exportadas por el módulo de cliente se lleva a cabo mediante servicios de directorio y archivo plano en el lado del servidor.

 

Model for File Service Architecture

 

Analicemos en detalle las funciones de estos componentes en la arquitectura del servicio de archivos.

1. Servicio de archivos planos: un servicio de archivos planos se utiliza para realizar operaciones en el contenido de un archivo. Los Identificadores únicos de archivo (UFID) están asociados con cada archivo en este servicio. Porque esa larga secuencia de bits se utiliza para identificar de forma única cada archivo entre todos los archivos disponibles en el sistema distribuido. Cuando el servicio de archivos planos recibe una solicitud para la creación de un nuevo archivo, genera un nuevo UFID y se lo devuelve al solicitante.

Operaciones del modelo de servicio de archivo plano:

  • Read(FileId, i, n) -> Data: lee hasta n elementos de un archivo que comienza en el elemento ‘i’ y lo devuelve en Data.
  • Write(FileId, i, Data): escribe una secuencia de datos en un archivo, comenzando en el elemento I y extendiendo el archivo si es necesario.
  • Create() -> FileId: crea un nuevo archivo con longitud 0 y le asigna un UFID.
  • Delete (FileId): el archivo se elimina del almacén de archivos.
  • GetAttributes(FileId) -> Attr: Devuelve las características del archivo del archivo.
  • SetAttributes(FileId, Attr): Establece los atributos del archivo.

2. Servicio de directorio: El servicio de directorio sirve para relacionar los nombres de texto de los archivos con sus UFID (Identificadores únicos de archivos). La obtención de UFID se puede realizar proporcionando el nombre de texto del archivo al servicio de directorio por parte del cliente. El servicio de directorio proporciona operaciones para crear directorios y agregar nuevos archivos a directorios existentes.

Operaciones del modelo de servicio de directorio:

  • Lookup(Dir, Name) -> FileId : Devuelve el UFID relevante después de encontrar el nombre del texto en el directorio. Lanza una excepción si el Nombre no se encuentra en el directorio.
  • AddName(Dir, Name, File): Agrega (Name, File) al directorio y modifica el registro de atributos del archivo si Name no está en el directorio. Si ya existe un nombre en el directorio, se lanza una excepción.
  • UnName(Dir, Name): si el nombre está en el directorio, se elimina la entrada del directorio que contiene el nombre. Se lanza una excepción si el Nombre no se encuentra en el directorio.
  • GetNames(Dir, Pattern) -> NameSeq: Devuelve todos los nombres de texto que coinciden con la expresión regular Pattern en el directorio.

3. Módulo de cliente: el módulo de cliente se ejecuta en cada computadora y brinda un servicio integrado (servicios de directorio y archivos planos) a los programas de aplicación con la ayuda de una sola API. Almacena información sobre las ubicaciones de red de archivos planos y procesos del servidor de directorio. Aquí, los bloques de archivos usados ​​recientemente se mantienen en un caché en el lado del cliente, lo que resulta en un mejor rendimiento. 

Publicación traducida automáticamente

Artículo escrito por annieahujaweb2020 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *