lunes, 29 de junio de 2015



¿QUÉ ES UN SISTEMA DE ARCHIVOS DISTRIBUIDOS?

 Los sistemas de archivos distribuidos se refieren a cualquier sistema de archivos que permita el acceso a los datos desde múltiples maquinas por medio de la red. 

   Las maquinas clientes no tiene en general acceso a los bloques de almacenamiento de forma directa si no que pueden acceder a los datos a través de la red por medio de algún protocolo de red.

  Los sistemas de archivos distribuidos en línea general permiten restringir el acceso a los archivos por medio de alguna clase de lista de control de acceso la cual puede estar ubicada en cualquiera de los extremos. 

  Los sistemas de archivos distribuidos almacena archivos en una o más maquinas denominadas servidores y los hace accesibles a otros maquinas denominadas clientes, donde se manipulan como si fueran locales.

DISEÑO DE LOS SISTEMAS DISTRIBUIDOS DE ARCHIVOS


  Por lo general, un sistema distribuido de archivos tiene dos componentes razonablemente distintos: el verdadero servicio de archivos y el servicio de directorios. El primero se encarga de las operaciones en los archivos individuales, como la lectura, escritura y adición, mientras que el segundo se encarga de crear, leer, eliminar, de los directorios, etc.

La interfaz del servicio de archivos

  El aspecto fundamental para cualquier servicio de archivos, ya sea para un procesador o un sistema distribuido, es la pregunta: "¿Qué es un archivo?" En muchos sistemas, como UNIX y Ms-DOS, un archivo es una secuencia de bytes sin interpretación alguna. El significado y estructura de la información en los archivos queda a cargo de los programas de aplicación; esto no le interesa al sistema operativo.

  Sin embargo, en los mainframes existen muchos tipos de archivos, cada uno con distintas propiedades. Por ejemplo, un archivo se puede estructurar como serie de registros, con llamadas al sistema operativo para leer o escribir un registro particular. Por lo general, se puede especificare registro mediante su número (es decir, su posición dentro del archivo) o el valor de cierto campo. En el segundo caso, el sistema operativo mantiene al archivo como un árbol B o alguna otra estructura de datos adecuada, o bien utiliza tablas de dispersión para localizar con rapidez los registros. Puesto que la mayoría de los sistemas distribuidos están planeados para ambientes UNIXO o MS-DOS, la mayoría de los servidores de archivos soportan el concepto de archivo como secuencia de bytes, en vez de una secuencia de registros con cierta clave.

  Un archivo puede tener atributos, partes de información relativas a él pero que no son parte del archivo propiamente dicho. Los atributos típicos son el propietario, el tamaño, la fecha de creación y el permiso de acceso. Porto general, el servicio de archivos proporciona primitivas para leer y escribir en alguno de los atributos. Por ejemplo, se pueden modificar los permisos de acceso pero no el tamaño (a menos que se agreguen datos al archivo). En unos cuantos sistemas avanzados, se podrían crear y administrar atributos definidos por el usuario además de los usuales.

  Otro aspecto importante del modelo de archivo es silos archivos se pueden modificar después de su creación. Lo normal es que si se puedan modificar, pero en algunos sistemas distribuidos, las únicas operaciones de archivo son CREATEyREAD. Una vez creado un archivo, no puede ser modificado. Se dice que tal archivo es inmutable. El hecho de contar con archivos inmutables facilita el soporte de! ocultamiento y duplicación de archivos, puesto que esto elimina todos los problemas asociados con la actualización de todas las copias de un archivo cada vez que éste se modifique.

La interfaz del servidor de directorios
  La otra parte del servicio de archivos es el servicio de directorios, el cual proporciona las operaciones para crear y eliminar directorios, nombrar o cambiar el nombre de archivos y mover éstos de un directorio a otro. La naturaleza del servicio de directorios no depende del hecho deque los archivos individuales se transfieran en su totalidad oque se tenga un acceso remoto a ellos.

  El servicio de directorios define un alfabeto y una sintaxis para formar los nombres de archivos (y directorios). Lo usual es que los nombres de archivos tengan de 1 hasta un cierto número máximo de letras, números y ciertos caracteres especiales. Algunos sistemas dividen los nombres de archivo en dos partes, a menudo separadas mediante un punto, corno prog.c para un programa en C o man. txt para un archivo de texto. La segunda parte del nombre, llamada la extensión de archivo, identifica el tipo de éste. Otros sistemas utilizan un atributo explicito para este fin, en vez de utilizar una extensión dentro del nombre.

  Todos los sistemas distribuidos permiten que los directorios contengan subdirectorios, para que los usuarios puedan agrupar los archivos relacionados entre sí. De acuerdo con esto, se dispone de operaciones para la creación y eliminación de directorios, así como para introducir, eliminar y buscar archivos en ellos. Por lo general, cada subdirectorio contiene todos los archivos de un proyecto, como un programa o documento de gran tamaño (por ejemplo, un libro). Cuando se despliega el (sub)directorio, sólo se muestran los archivos relevantes; los archivos no relacionados están en otros (sub)directorios y no agrandan la lista. Los subdirectorios pueden contener sus propios subdirectorios y así en lo sucesivo, lo que conduce a un árbol de directorios, el cual se conoce como sistema jerárquico de archivos. La figura siguiente (a) muestra un árbol con cinco directorios.


Transparencia de los nombres


  El principal problema de esta forma de los nombres es que no es por completo transparente. En este contexto, son relevantes dos formas de transparencia y es importante distinguirlas. La primera, la transparencia con respecto a la posición, significa que el nombre de la ruta de acceso no sugiere la posición del archivo (o de algún otro objeto). Una ruta como/servidor/dir2/dir2/x indica que x está localizado en el servidor 1, pero no indica la posición del servidor Éste es libre de moverse dentro de la red, sin que el nombre de la ruta de acceso deba ser modificada. Así, este sistema es transparente con respecto a la posición.
  Sin embargo, supongamos que el archivo x es muy grande y que hay poco espacio en el servidor l Además, supongamos que hay mucho espacio en el servidor 2. El sistema podría desplazar de forma automática servidor 2. Por desgracia, si el primer componente de todas las rutas de acceso es el servidor, el sistema no puede desplazar el archivo al otro servidor en forma automática, aunque din y clin existieran en ambos servidores. El problema es que el desplazamiento automático del archivo cambia el nombre de su ruta de acceso, de/servidor/dirI/dir2/x a /servidor/dir/dir2/x.

  Para resumir lo anterior, existen tres métodos usuales para nombrar los archivos y directorios en un sistema distribuido:
Nombre máquina + ruta de acceso, como /máq2/ruta o /máq2:ruta.

  Montaje de sistemas de archivos remotos en la jerarquía local de archivos.

  Un espacio de nombres que tenga la misma apariencia en todas las máquinas.

  Los primeros dos son fáciles de implantar, en particular como una forma de conectar sistemas ya existentes que no estaban diseflados para su uso distribuido. El tercer método es difícil y requiere de un diseño cuidadoso, pero es necesario si se quiere lograr el objetivo deque el sistema distribuido actúe como una computadora.

Nombres de dos niveles
  La mayoría de los sistemas distribuidos utilizan cierta forma de nombres con dos niveles Los archivos (y otros objetos) tienen nombres simbólicos, como prog.c, para USO de las personas, pero también pueden tener nombres binarios internos, para uso del propio sistema. Lo que los directorios hacen en realidad es proporcionar una asociación entre estos dos nombres. Paratas personas y los programas, es conveniente utilizar nombres simbólicos (ASCII), pero para el uso dentro del propio sistema, estos nombres son muy grandes y difíciles. Así, cuando un usuario abre un archivo o hace referencia a un nombre simbólico, el sistema busca de inmediato el nombre simbólico en el directorio apropiado para obtener el nombre binario, el cual utilizará para localizar en realidad al archivo. A veces, los nombres binarios son visibles a los usuarios y aveces no.

Resultado de imagen para nombres binarios de archivos

  La naturaleza de los nombres binarios varía mucho dc un sistema a otro. En un sistema con varios servidores de archivos, cada uno de los cuales esté autocontenido (es decir, no tenga referencias a directorios o archivos en otros servidores), el nombre binario puede ser sólo un número de un nodo-i local, como en UNIX.

  Un esquema más general paralos nombres es que el nombre binario indique el servidor y un archivo específico en ese servidor. Este método permite que un directorio en un servidor contenga un archivo en un servidor distinto. Otra alternativa, que a veces es preferible, es utilizar un enlace simbólico. Un enlace simbólico es una entrada de directorio asociada a una cadena (servidor, nombre de archivo), la cual se puede buscar en el servidor correspondiente para encontrar el nombre binario. El propio enlace simbólico es sólo el nombre de una ruta de acceso.

Semántica de los archivos compartidos
  Si dos o más usuarios comparten el mismo archivo, es necesario definir con precisión la semántica de la lectura y escritura para evitar problemas. En los sistemas con un procesador que permiten a los procesos compartir archivos, como UNIX, la semántica establece por lo general que si una operación READ sigue después de una operación WRITE, READ regresa el valor recién escrito, como se muestra en la figura 5-4(a). De manera análoga, cuando dos WRITE se realizan enserie y después se ejecuta un READ, el valor que se lee es el almacenado en la última escritura. De hecho, el sistema impone en todas las operaciones un orden absoluto con respecto del tiempo y siempre regresa el valor más reciente. Nos referiremos a este modelo como la semántica de UNIX. Este modelo es fácil de comprender y tiene una implantación directa.

 En un sistema distribuido, la semántica de UNIX se puede lograr fácilmente, mientras sólo exista un servidor de archivos y los clientes no oculten los archivos. Todas las instrucciones READyWRITE pasan en forma directa al servidor de archivos, que los procesa en forma secuencial. Este método proporciona la semántica de UNIX (excepto por un problema menor: los retrasos en la red pueden hacer que un READ ocurrido un micro-segundo después de un WRITE llegue primero al servidor y que obtenga el valor anterior).


TENDENCIAS DE SISTEMAS DISTRIBUIDOS

  Un componente fundamental de cualquier sistema distribuido es el sistema de archivo.

  El sistema distribuido de archivos permite a los programas almacenar y acceder a archivos remotos del mismo modo que si fueran locales, permitiendo a los usuarios que accedan archivos desde cualquier computador.


  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 los 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

Resultado de imagen para memorias

  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 vídeo 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.

Resultado de imagen para fibra optica

Escalabilidad
  El concepto de 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.
Red de Area Amplia o WAN
Usuarios móviles
  A medida que la tecnología de las comunicaciones se digitaliza, se encuentra sujeta a las mismas mejoras exponenciales que han hecho que una computadora portátil de 2000 dólares actual tenga más capacidad que una computadora IBM de 10 millones de dólares de hace veinte años. Por esta razón las computadoras portátiles presentan un mayor crecimiento en la tecnología informática. Pero este hecho presenta la inconveniencia de que estos usuarios no estarán conectados todo el tiempo al sistema, es decir, solo lo estarán algún tiempo y luego no aparecerán. Esto es debido a que todavía no se cuenta con una adecuada red instalada en diversos lugares para que el usuario pueda conectar su laptop, notebook y su PC de bolsillo a su respectivo sistema o al sistema al cual desea conectarse.

Resultado de imagen para laptos

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.

Multimedia
  Las aplicaciones que implican el vídeo en tiempo real o multimedia, tendrán un efecto enorme en los sistemas distribuidos de archivo del futuro. Los archivos de texto rara vez tienen unos cuantos megabytes de longitud, pero los archivos de vídeo pueden exceder con facilidad un gigabyte. Para controlar las aplicaciones como el vídeo por solicitud, se necesitaran sistemas de archivos por completo diferentes.

Vídeo que puede completar tu aprendizaje acerca de los Sistemas de Archivos Distribuidos: