LOS SISTEMAS DE ARCHIVOS
Son aquellos que son compartidos por todos los
nodos, es decir, cada nodo posee un pedazo del sistema de archivos lo cual
incrementa la velocidad en los accesos a la información debido a la presencia
de más de un dispositivo físico para el manejo de los datos. Sin embargo, esta
configuración esta en fase experimental y por esta razón no es recomendada.
El diseño Generalmente, un sistema de archivos distribuidos consta de dos componentes muy distintos entre sí: el servicio de archivos y el servicio de directorios. La Interfaz del Servicio de Archivos: Un archivo es una secuencia de bytes sin interpretación alguna. Esto quiere decir que el contenido y estructura de un archivo es interpretado por el software de aplicación más no por el sistema operativo sobre el que se está trabajando.
Un archivo se caracteriza por tener atributos, tales como: el propietario, el tamaño, la fecha de creación y el permiso de acceso.
La utilidad del servicio de archivos consiste en proporcionar una adecuada administración de los atributos, definidos por el usuario, que estas poseen. Lo más común es encontrar algunos sistemas avanzados que permitan modificarlos después de sus creación, pero en algunos sistemas distribuidos las únicas operaciones que pueden realizarse sobre un archivo es CREATE y READ (Crear y Leer). Es decir, una vez creado el archivo no puede modificarse. A este tipo de archivos se les denomina archivos inmutables.
Existen dos tipos de servicios de archivos distribuidos: modelo carga/descarga y modelo de acceso remoto.
El diseño Generalmente, un sistema de archivos distribuidos consta de dos componentes muy distintos entre sí: el servicio de archivos y el servicio de directorios. La Interfaz del Servicio de Archivos: Un archivo es una secuencia de bytes sin interpretación alguna. Esto quiere decir que el contenido y estructura de un archivo es interpretado por el software de aplicación más no por el sistema operativo sobre el que se está trabajando.
Un archivo se caracteriza por tener atributos, tales como: el propietario, el tamaño, la fecha de creación y el permiso de acceso.
La utilidad del servicio de archivos consiste en proporcionar una adecuada administración de los atributos, definidos por el usuario, que estas poseen. Lo más común es encontrar algunos sistemas avanzados que permitan modificarlos después de sus creación, pero en algunos sistemas distribuidos las únicas operaciones que pueden realizarse sobre un archivo es CREATE y READ (Crear y Leer). Es decir, una vez creado el archivo no puede modificarse. A este tipo de archivos se les denomina archivos inmutables.
Existen dos tipos de servicios de archivos distribuidos: modelo carga/descarga y modelo de acceso remoto.
- Modelo Carga/Descarga: Consiste básicamente en dos operaciones: lectura y escritura.
- Modelo de Acceso Remoto: Este tipo de modelo consiste en que todas las operaciones (abrir y cerrar, leer y escribir, entre otros.) se realizan en el servidor mas no en los clientes.
Estos dos modelos se
diferencian en que en el primero se debe transferir el archivo completo del
servidor al cliente y viceversa, lo que no es necesario en el modelo de acceso
remoto. Debemos tener en cuenta que el solo hecho de compartir archivos puede
traer dos problemas principales
por resolver: el permiso de acceso y la gestión de
los accesos simultáneos.
LA
INTERFAZ DEL SERVIDOR DE DIRECTORIOS
Tiene
como propósito general poder crear y eliminar directorios, nombrar o cambiar el
nombre de archivos y mover éstos de un directorio a otro.
El sistema distribuido es el encargado de definir el alfabeto y la sintaxis para formar los nombres de los archivos y directorios. Por ejemplo, Windows divide los nombres de lo archivos en dos partes: nombre y extensión (tipo de archivo), los cuales se denotan separados por un punto: nombre_archivo.extensión; así tenemos que libro.txt es un archivo cuyo nombre es libro y es de tipo texto. En otros sistemas, como el UNIX, clasifican a los archivos según sus atributos (en UNIX un archivo ejecutable se pinta de otro color).
Todo sistema distribuido permite la existencia de subdirectorios (directorios dentro de otro directorio), permitiéndose a los usuarios clasificar sus archivos a su gusto.
El sistema distribuido es el encargado de definir el alfabeto y la sintaxis para formar los nombres de los archivos y directorios. Por ejemplo, Windows divide los nombres de lo archivos en dos partes: nombre y extensión (tipo de archivo), los cuales se denotan separados por un punto: nombre_archivo.extensión; así tenemos que libro.txt es un archivo cuyo nombre es libro y es de tipo texto. En otros sistemas, como el UNIX, clasifican a los archivos según sus atributos (en UNIX un archivo ejecutable se pinta de otro color).
Todo sistema distribuido permite la existencia de subdirectorios (directorios dentro de otro directorio), permitiéndose a los usuarios clasificar sus archivos a su gusto.
SEMÁNTICA DE LOS ARCHIVOS DISTRIBUIDOS
Existen
hasta cuatro métodos para
utilizar los archivos compartidos en un sistema distribuido: Semántica de UNIX:
En la que cada operación en un archivo es visible a todos los procesos de
manera simultánea. Esto implica que cada operación cumpla un estricto orden con
respecto al tiempo, puesto que el archivo es actualizado inmediatamente después
de realizada cada operación. También tenemos la Semántica de Sesión: En la que
ningún cambio es visible a otros procesos hasta que l archivo que está siendo
utilizado se cierra. Esto produce un desfasamiento en la actualización del
archivo, puesto que un archivo puede estar siendo utilizado por dos o más
clientes en forma simultánea y se tendrá como resultado el archivo cuyo cliente
lo cierra después que todos los demás.
Archivos inmutables: En la que no existen actualizaciones, puesto que una vez creado el archivo no puede modificarse. Así es más fácil compartir y replicar archivos.
Transacciones: En la que todos los cambios tienen la propiedad del todo o nada. Es decir, cada operación que es llamada al sistema no se detiene hasta que finaliza propiamente. De esta manera, si una operación es requerida mientras está siendo utilizada por otra, esta última no se ejecutará hasta que finalice la ejecución de la primera.
LA
IMPLANTACIÓN DE UN SISTEMA DE ARCHIVOS DISTRIBUIDOS
Existen
diferentes formas de utilizar los archivos, pero también existen dos formas de
medir el grado de utilización de cada uso que se le puede dar a un archivo.
Estas formas son: mediciones estáticas y mediciones dinámicas.
- Mediciones Estáticas: En este tipo de mediciones se observa el sistema en un determinado momento, esto quiere decir que se verifica su estado en un instante de tiempo. Entre algunas de estas mediciones estáticas podemos encontrar: la distribución de tamaños de los archivos, la distribución de tipos de archivos y la cantidad de espacio que ocupan los archivos de varios tamaños y tipos.
- Mediciones Dinámicas: Este tipo de mediciones se encarga de registrar todas las operaciones en una bitácora para un análisis posterior. De esta manera se tiene información respecto a la frecuencia con que se realizan ciertas operaciones.
Existen distintas
clases de archivos con propiedades diferentes.
La estructura de un sistema es determinante para el servicio de archivos y directorios, para eso se debe diferenciar entre quiénes son los clientes y quiénes son los servidores.
En algunos sistemas el servidor solamente puede actuar como servidor y el cliente solamente como cliente.
La estructura de un sistema es determinante para el servicio de archivos y directorios, para eso se debe diferenciar entre quiénes son los clientes y quiénes son los servidores.
En algunos sistemas el servidor solamente puede actuar como servidor y el cliente solamente como cliente.
Servidores sin Estado: Consiste en que cuando un cliente envía una solicitud a un servidor, éste la lleva a cabo, envía la respuesta y elimina de sus tablas internas toda la información correspondiente a dicha solicitud. El servidor no guarda la información relativa a los clientes entre las solicitudes.
Ventajas: Tolerancia de fallas, No necesita llamadas OPEN/CLOSE, No se desperdicia el espacio del servidor en tablas, No existe límite para el número de archivos abiertos, No hay problemas si un cliente falla.
Ocultamiento
En un sistema cliente – servidor,
en el que cada uno cuenta con su memoria principal y un disco, pueden
almacenarse los archivos o partes de ellos en cuatro lugares diferentes: el
disco del servidor, la memoria principal
del servidor, el disco del clientes o la memoria principal del cliente. Cuatro
lugares para guardar archivos o partes de ellos
Cada lugar en donde se guarde los archivos presentan ventajas y desventajas respecto a la velocidad de transferencia. Aun así, se puede lograr un mejor desempeño ocultando (conservando) los archivos en la memoria principal del servidor. Como la memoria principal siempre es de menor capacidad que el disco, entonces debe implementarse un algoritmo para decidir qué archivos o partes de ellos permanecerán en el caché del servidor.
Este algoritmo deberá resolver dos problemas que se presentarán: Uno de los problemas es el tamaño de la unidad que administra el caché, ya que puede administrar archivos completos o bloques del disco. Si se ocultan los archivos completos, éstos se pueden almacenar en forma adyacente en el disco (o al menos pedazos muy grandes), lo cual permite transferencias a alta velocidad entre la memoria y el disco, así como un buen desempeño en general. Sin embargo, el ocultamiento de bloques de disco utiliza el caché y el espacio en disco en forma más eficiente.
El segundo problema es que el algoritmo debe decidir qué hacer si se utiliza toda la capacidad del caché y hay que eliminar a alguien. En este caso podría utilizarse cualquiera de los dos algoritmos de ocultamiento, pero como las referencias al caché son poco frecuentes comparadas con las referencias a memoria, por lo general es factible una implantación exacta de LRU mediante punteros (listas enlazadas).
Cada lugar en donde se guarde los archivos presentan ventajas y desventajas respecto a la velocidad de transferencia. Aun así, se puede lograr un mejor desempeño ocultando (conservando) los archivos en la memoria principal del servidor. Como la memoria principal siempre es de menor capacidad que el disco, entonces debe implementarse un algoritmo para decidir qué archivos o partes de ellos permanecerán en el caché del servidor.
Este algoritmo deberá resolver dos problemas que se presentarán: Uno de los problemas es el tamaño de la unidad que administra el caché, ya que puede administrar archivos completos o bloques del disco. Si se ocultan los archivos completos, éstos se pueden almacenar en forma adyacente en el disco (o al menos pedazos muy grandes), lo cual permite transferencias a alta velocidad entre la memoria y el disco, así como un buen desempeño en general. Sin embargo, el ocultamiento de bloques de disco utiliza el caché y el espacio en disco en forma más eficiente.
El segundo problema es que el algoritmo debe decidir qué hacer si se utiliza toda la capacidad del caché y hay que eliminar a alguien. En este caso podría utilizarse cualquiera de los dos algoritmos de ocultamiento, pero como las referencias al caché son poco frecuentes comparadas con las referencias a memoria, por lo general es factible una implantación exacta de LRU mediante punteros (listas enlazadas).
Réplica:
En general, los sistemas de archivos distribuidos proporcionan la réplica de archivos como servicio a sus clientes. Es decir, se dispone de varias copias de algunos archivos, donde cada copia está en un servidor de archivos independiente.
TENDENCIAS
EN LOS SISTEMAS DISTRIBUIDOS
Los
cambios tecnológicos de los últimos años pueden traer también cambios muy
importantes en los sistemas de archivos distribuidos. Además con el rápido
avance que se da en las redes de comunicaciones y
su incremento en el ancho de banda la creación de paquetes que ofrecen la
compartición de archivos es común de encontrarse en el mercado.
En la industria, el esquema más solicitado es aquel que permite acceder a los
grandes volúmenes de información de los grandes servidores desde las
computadores personales o convencionales y desde otros servidores. Es por eso
que la principal solución que adoptada por las pequeñas empresas es
contar con Novell Netware
en un servidor 486 o superior y acceder a los archivos desde máquinas similares.
Entre
los sistemas de archivos distribuidos más populares que existen en la
actualidad, tenemos los que nos proporciona Netware, tales como:
- Remote Filke Sharing (RFS en UNIX)
- Network File System (de Sun Microsystems)
- Andrew File System (AFS)
Veremos a continuación
algunos aspectos en los que podrían presentarse cambios en un futuro no muy
lejano, teniendo en cuenta que los cambios tecnológicos se producen día a día y
en desmesurado avance.
Hardware reciente
Existen muchos dispositivos hardware que en los últimos años están abaratando sus costos, tales como las memorias. Esto mejoraría circunstancialmente los actuales servidores de archivos puesto que se podrá adquirir gran cantidad de gigabytes de memoria, aunque todavía se presente el problema de que la memoria sea volátil, es decir, que cuando se apaga el sistema se borran los archivos.
Una nueva innovación en hardware son los discos ópticos que ahora pueden ser utilizados más de una vez. Aunque son un poco más caros que las cintas de video siempre han sido un aporte importante para los sistemas de archivos, principalmente en el soporte de backups.
Otro desarrollo importante en hardware son las redes de fibra óptica de alta velocidad que agilizarían la transferencia de archivos y se podría prescindir de la memoria caché. Esto también simplificaría en mucho el software a utilizarse en los sistemas de archivos distribuidos.
Existen muchas más innovaciones tecnológicas que poco a poco harán más eficiente el manejo y administración de los sistemas de archivos, por lo que en el futuro se podría aun encontrar diversos tipos de soluciones específicas para un sistema determinado por sus propias características y requerimientos.
Escalabilidad: propone que cualquier computador individual ha de ser capaz de trabajar independientemente como un sistema de archivos distribuido, pero también debe poder hacerlo conectado a muchas otras máquinas.
Un sistema de archivos debería funcionar tanto para una docena de equipos como para varios millares. Igualmente no debería ser determinante el tipo de red utilizada (LAN o WAN) ni las distancias entre los equipos.
Aunque este punto sería muy necesario, puede que las soluciones impuestas para unos cuantos equipos no sean aplicables para varios otros. De igual manera, el tipo de red utilizada condiciona el rendimiento del sistema, y podría ser que lo que funcione para un tipo de red, para otro necesitaría un diseño diferente.
Redes de área amplia la mayor parte del trabajo que se realiza actualmente en los sistemas distribuidos se basa en los sistemas alojados en redes LAN. La tendencia en el futuro es que veremos conectados entres sí muchos sistemas distribuidos LAN con el fin de formar sistemas distribuidos transparentes a través de todo el mundo. Pero para esto tendría que tomarse como punto de importancia el hecho de que no todos los países utilizan un mismo tipo caracteres para sus archivos, es decir, si en latinoamérica utilizamos los códigos ASCII, puede ser que en otras partes del mundo no se utilice este mismo concepto, lo que produciría una incompatibilidad de datos.
Por otro lado, también es importante el cambio que se producirá en las aplicaciones, puesto que la mayoría de experimentos que actualmente se realizan en las universidades están basados en sistemas parecidos a UNIX.
Un problema que se presentará aun mucho más tiempo es que la conexión de fibra óptica tardará muchos años en instalarse en todos los rincones del planeta y también la existencia de una red de mayor ancho de banda será difícil y costosa de implementar pues no se cuenta, todavía, con una mayor aceptación del potencial público usuario.
Tolerancia de fallas En la actualidad, la mayor parte de los sistemas de cómputo no presentan tolerancia a fallas. Es común escuchar en las agencias bancarias la frase: "No hay sistema", por lo que tomamos este hecho como algo absolutamente normal. Salvo algunos sistemas especializados como los que se utilizan para el control de tráfico aéreo, otros sistemas no presentan este comportamiento que debería ser el óptimo.
Para que los sistemas de archivos cumplan con este requisito, deberá existir o implementarse una consistente infraestructura de hardware lo cual permita a los sistemas ser realmente confiables y seguros en cuanto a tiempo de funcionamiento efectivo se refiere.
No hay comentarios:
Publicar un comentario