PARA
PODER INDAGAR SOBRE ESTO PRIMERO ¿QUÉ ES SISTEMA DE ARCHIVOS?
El sistema
de archivos o sistema de ficheros (en
inglés: "filesystem") es el componente del sistema
operativo encargado de administrar y facilitar el uso de
las memorias periféricas, ya sean secundarias o terciarias.
- Características de los sistemas de
archivos
Seguridad
o permisos
Listas de
control de acceso (ACL)
UGO
("Usuario, Grupo, Otros", o por sus siglas en
inglés: "User, Group, Others")
Capacidades
granuladas
Atributos
extendidos (ej.: sólo añadir al archivo pero no modificar, no modificar nunca,
etcétera)
Mecanismo
para evitar la fragmentación
Capacidad de
enlaces simbólicos o duros
Integridad
del sistema de archivos (Journaling)
Soporte para
archivos dispersos
Soporte para
cuotas de discos
Soporte de
crecimiento del sistema de archivos nativo
Muchos de los
requisitos y potenciales obstáculos en el diseño de servicios distribuidos
fueron ya observados en los primeros desarrollos de sistemas de archivos
distribuidos. Inicialmente ofrecían transparencia de acceso y transparencia de
ubicación, los requisitos de prestaciones, escalabilidad, control de
concurrencia, tolerancia a fallos y seguridad surgieron y se fueron
satisfaciendo en fases posteriores del desarrollo. A continuación se presentan
los principales requisitos a considerar para el desarrollo de un sistema de
archivos distribuidos.
1. Transparencia
El servicio
de archivos es el servicio más fuertemente cargado en una intranet, por lo que
su funcionalidad y prestaciones son críticas. El diseño debe balancear la
flexibilidad y escalabilidad que se derivan de la transparencia frente a la
complejidad del software y las prestaciones. Las siguientes formas de
transparencia son parcial o totalmente tratadas por los actuales servicios de
archivos:
Transparencia de acceso: los programas del cliente no
deben preocuparse de la distribución de los archivos. Se proporciona un
conjunto sencillo de operaciones para el acceso a archivos locales y remotos.
Los programas escritos para trabajar sobre archivos locales serán capaces de
acceder a los archivos remotos sin modificación.
Transparencia de ubicación: los programas del cliente deben
ver un espacio de nombres de archivos uniforme. Los archivos o grupos de
archivos pueden ser reubicados sin cambiar sus nombres de ruta, y los programas
de usuario verán el mismo espacio de nombres en cualquier parte que sean
ejecutados.
Transparencia de movilidad: ni los programas del cliente ni
las tablas de administración de sistema en los nodos cliente necesitan ser
cambiados cuando se mueven los archivos. Esta movilidad de archivos permite que
archivos o, más comúnmente, conjuntos o volúmenes de archivos puedan ser
movidos, ya sea por los administradores del sistema o automáticamente.
Transparencia de prestaciones: los programas cliente deben
continuar funcionando satisfactoriamente mientras la carga en el servicio varíe
dentro de un rango especificado.
Transparencia de escala: el servicio puede ser aumentado
por un crecimiento incremental para tratar con un amplio rango de cargas y
tamaños de redes.
2. Actualizaciones concurrentes de
archivos
Los cambios
en un archivo por un cliente no deben interferir con la operación de otros
clientes que acceden o cambian simultáneamente el mismo archivo. Este es el
tema conocido del control de concurrencia. La necesidad de control de
concurrencia para el acceso a datos compartidos en muchas aplicaciones está
ampliamente aceptada y las técnicas para su implementación son conocidas,
aunque muy costosas. La mayoría de los servicios de archivos actuales siguen
los estándares de UNIX moderno proporcionando bloqueo consultivo u obligatorio
a nivel de archivo o registro.
3. Replicación de archivos
En un servicio
de archivos que soporta replicación, un archivo puede estar representado por
varias copias de su contenido en diferentes ubicaciones. Esto tiene dos
beneficios, permite que múltiples servidores compartan la carga de proporcionar
un servicio a los clientes que acceden al mismo conjunto de archivos, mejorando
la escalabilidad del servicio y mejorando la tolerancia a fallos, permitiendo a
los clientes localizar otro servidor que mantiene una copia del archivo cuando
uno ha fallado. Muy pocos servicios de archivos soportan totalmente la
replicación, pero la mayoría soportan la caché local de archivos o porciones de
archivos, una forma limitada de replicación.
4. Heterogeneidad
del hardware y del sistema operativo
Las
interfaces del servicio deben estar definidas de modo que
el software del cliente y el servidor pueden estar implementados por
diferentes sistemas operativos y computadores. Este requisito es un aspecto
importante de la extensibilidad.
5. Tolerancia a fallos
El papel
central de un servicio de archivos en los sistemas distribuidos hace que sea
esencial que el servicio continúe funcionando aun en el caso de fallos del
cliente y del servidor. Afortunadamente un diseño moderadamente tolerante a
fallos es inmediato para servidores sencillos. Los servidores pueden
ser sin estado[1], por lo que pueden ser reiniciados y el
servicio restablecido después de un fallo sin necesidad de recuperar el estado
previo. La tolerancia a la desconexión o fallos del servidor precisa de
replicación de los archivos.
6. Consistencia
Los sistemas
de archivos convencionales, como los que se proporcionan en UNIX, ofrecen una
semántica de actualización de una copia. Esto se refiere a un modelo para acceso
concurrente a archivos, en el que el contenido del archivo visto por todos los
procesos que acceden o actualizan a un archivo dado, es aquel que ellos verían
si existiera un única copia del contenido del archivo. Cuando los archivos
están replicados, o en la caché, en diferentes lugares, hay un retardo
inevitable en la propagación de las modificaciones hechas en un lugar hacia los
otros lugares que mantienen copias, y esto puede producir alguna desviación de
la semántica de una copia.
7. Seguridad
Virtualmente
todos los sistemas de archivos proporcionan mecanismos de control de acceso
basados en el uso de listas de control de acceso. En sistemas de archivos
distribuidos, hay una necesidad de autenticar las solicitudes del cliente por
lo que el control de acceso en el servidor está basado en identificar al
usuario correcto y proteger el contenido de los mensajes de solicitud y
respuesta con firmas digitales y (opcionalmente) encriptación de datos
secretos.
8. Eficiencia
Un servicio
de archivos distribuidos debe ofrecer posibilidades con la misma potencia y
generalidad que las que se encuentran en los sistemas de archivos
convencionales y deben proporcionar un nivel de prestaciones comparable.
Las técnicas
utilizadas para la implementación de los servicios de archivo son una parte
importante del diseño de sistemas distribuidos. Un sistema de archivos
distribuidos debe proporcionar un servicio que sea comparable con, o mejor que,
los sistemas de archivos locales en prestaciones y fiabilidad. Debe ser adecuado
para administrar, proporcionando operaciones y herramientas que permitan a los
administradores del sistema instalar y operar el sistema
convenientemente.