Está en la página 1de 8

SISTEMAS DEFICHEROS DISTRIBUIDOS

Un sistema bien diseñado permite el acceso a un servidor de ficheros (remoto) con eficiencia y
fiabilidad comparables a las del acceso a los ficheros locales Además el acceso remoto es
“transparente” (los mismos servicios e interfaces que para acceder alos ficheros locales) En este
capiıtulo se ven como ejemplos NFS yAndrew. CODA se ve en otro capıtulo (el 18) Son,
b á sicamente, emulaciones distribuidas del sistema de ficheros de UNIX, con grados diferentes de
tolerancia de fallos y deescalabilidadDifieren algo de la “semantica de copia u
́ nica”de UNIX

Implementa el clásico sistema de ficheros, pero en versión distribuidaConsideraremos solo


sistemas de ficheros distribuidos basicos, nada de aspectos avanzados como replicaci o ́ n y otros.
La concentración d́ e los ficheros en pocos servidores reduce los costes de instalación o
́ n y, sobre
todo, los de gestion

http://www.dit.upm.es/~aalvarez/sodt/capit12.pdf

Sistemas de ficheros distribuidos

Un sistema de ficheros distribuido almacena archivos en uno o más ordenadores denominados


servidores y los hace accesibles a otros ordenadores denominados clientes, donde se manipulan
como si fueran locales. Existen muchas ventajas en el uso de servidores de ficheros: Los archivos
están más accesibles si desde varios ordenadores se puede acceder a los servidores, y compartir
los archivos de una única localización es más sencillo que distribuir copias de los archivos a todos
los clientes. Las copias de respaldo y la seguridad son más fáciles de manejar cuando sólo hay que
tener en cuenta a los servidores.

Los servidores pueden ofrecer un gran espacio de almacenamiento que sería costoso y poco
práctico suministrar a cada cliente. La utilidad de un sistema de ficheros distribuido se ve
claramente cuando se considera a un grupo de empleados que tienen que compartir documentos.
Por ejemplo, para compartir programas también es de gran utilidad. En ambos casos la
administración del sistema se simplifica.

El sistema de ficheros se mantiene en la red y el uso de sus ficheros no depende de ninguna


ubicación dentro de la misma red del sistema.

En los sistemas de ficheros distribuidos, no tenemos unidades de almacenamiento, sino que


tenemos una única jerarquía de directorios en la que se pueden acoplar los distintos sistemas de
ficheros que se pretendan usar, estén en la misma ubicación o no. Esto es lo que se conoce con el
nombre de montaje. Consiste en incorporar diferentes sistemas de ficheros a nuestra jerarquía de
directorios. Por lo tanto, montar un sistema de ficheros no significa más que asociar un
determinado nombre de directorio, denominado mount point o punto de montaje, con el sistema
en cuestión, de forma que al utilizar dicha ruta estaremos trabajando sobre el sistema de ficheros
que hemos asociado a ella. Mediante este proceso se consigue tener un único árbol de ficheros
compuesto por distintos dispositivos de almacenamientos locales o remotos.

Cuando un usuario pide un fichero para lectura o bien para escritura lo que hace es mandar al
kernel la petición y este se encarga de interactuar mediante algún protocolo (Ejemplo: 9P en Plan9
[13] y Styx en Inferno) con el sistema de ficheros distribuido para localizar el fichero pedido y
servírselo al usuario o aplicación que lo pidió. Por ejemplo el kernel de una máquina recibe la
petición de un fichero y este fichero lo tiene el sistema de ficheros de otra máquina que forma
parte de su sistema de ficheros distribuido aunque físicamente estén separadas

Veamos una figura que ilustre el mecanismo de montaje de varios servidores de ficheros en un
mismo cliente.

SISTEMA DE ARCHIVOS DISTRIBUIDOS (NFS) Network File System (sistema de archivos de red

Un sistema de archivos distribuidos 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).

NFS

El sistema NFS está dividido al menos en dos partes principales: un servidor y uno o más clientes.
Los clientes acceden de forma remota a los datos que se encuentran almacenados en el servidor.
Para que el sistema funcione correctamente se deben configurar y ejecutar unos cuantos
procesos.

NFS está formado de varios protocolos uno de los cuales se conoce como protocolo NFS. Los
protocolos del producto NFS están diseñados como un conjunto de capas, similares al modelo OSI.
Cada protocolo del producto NFS tiene una RFC Internet dedicada a su especificación.

NFS es un sistema de archivos distribuidos que permite el acceso a archivos remotos en una red a
través de un montaje de subdirectorios remotos. Una vez montado el directorio remoto el usuario
tiene acceso a varios servicios y puede ejecutar varias operaciones.
NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de
archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos
sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales.
Originalmente fue desarrollado en 1984 por Sun Microsystems, con el objetivo de que sea
independiente de la máquina, el sistema operativo y el protocolo de transporte, esto fue posible
gracias a que está implementado sobre los protocolos XDR (presentación) y ONC RPC (sesión).1 El
protocolo NFS está incluido por defecto en los Sistemas Operativos UNIX y la mayoría de
distribuciones Linux.

El sistema NFS está dividido al menos en dos partes principales: un servidor y uno o más
clientes. Los clientes acceden de forma remota a los datos que se encuentran almacenados en el
servidor.

Las estaciones de trabajo locales utilizan menos espacio de disco debido a que los datos se
encuentran centralizados en un único lugar, pero pueden ser accedidos y modificados por varios
usuarios, de tal forma que no es necesario replicar la información.

Los usuarios no necesitan disponer de un directorio “home” en cada una de las máquinas de la
organización. Los directorios “home” pueden crearse en el servidor de NFS para posteriormente
poder acceder a ellos desde cualquier máquina a través de la infraestructura de red.

También se pueden compartir a través de la red dispositivos de almacenamiento como


disqueteras, CD-ROM y unidades ZIP. Esto puede reducir la inversión en dichos dispositivos y
mejorar el aprovechamiento del hardware existente en la organización.
Todas las operaciones sobre ficheros son síncronas. Esto significa que la operación solo retorna
cuando el servidor ha completado todo el trabajo asociado para esa operación. En caso de una
solicitud de escritura, el servidor escribirá físicamente los datos en el disco, y si es necesario,
actualizará la estructura de directorios, antes de devolver una respuesta al cliente. Esto garantiza
la integridad de los ficheros.

CIFS

Common Internet File System (CIFS) es un protocolo para compartir archivos que proporciona un
mecanismo abierto y multiplataforma para solicitar servicios y archivos de servidor de red. CIFS se
basa en la versión mejorada del protocolo SMB (Server Message Block) de Microsoft para
compartir archivos de Internet e intranet.

Es el protocolo de acceso de archivos de Windows. De forma abreviada SMB o actualmente CIFS.


Aunque es un protocolo propietario de Windows funciona perfectamente con Linux y Mac OS X.

De esta forma podremos acceder a carpetas compartidas en red y la información que hay en ellas
con un entorno gráfico. También podremos asignarle diferentes permisos para diferentes usuarios
de la red.

SMB, conocido como CIFS, es un protocolo para compartir archivos, impresoras y otros
dispositivos a través de la red desarrollado por Microsoft e implementado en sus sistemas
operativos como una de las formas más sencillas de conectarse con otros ordenadores y
dispositivos a través de la red local. Este protocolo es, probablemente, el más sencillo para
conectarnos a otros ordenadores dentro de la red local ya que no necesita prácticamente ninguna
configuración. Además, también podemos utilizarlo desde la WAN, a través de Internet, para
acceder así a nuestros datos, aunque la verdad es que esto no es para nada recomendable como
os vamos a explicar.

SMB, CIFS o SAMBA, la implementación libre de este protocolo para sistemas Linux, está pensada
para utilizarse en una red local, generalmente redes seguras y de confianza, de manera que
podamos compartir información en LAN con el resto de equipos conectados a esta red. Sin
embargo, también podemos utilizar este ordenador desde WAN, en Internet. Para ello, lo único
que tendríamos que hacer sería abrir el puerto 445 en nuestro router apuntando a nuestro
ordenador o servidor CIFS y conectarnos a él desde el propio explorador de Windows utilizando
una ruta de red

SMB/CIFS, un protocolo muy simple, pero muy peligroso


Desde luego, compartir archivos con otros ordenadores conectados a la red a través de este
protocolo es muy sencillo y cómodo. Sin embargo, también es realmente peligroso. Lo primero
que debemos tener en cuenta es que el tráfico SAMBA/SMB/CIFS no está cifrado. Cualquiera capaz
de interceptar nuestras comunicaciones, como un pirata en un ataque MITM o incluso nuestro ISP,
puede interceptar todos los archivos que enviamos y recibimos. Además, si no usamos contraseña
para controlar el acceso al servidor cualquiera podría acceder a él, lo mismo que si la usamos esta
viajará por la red en texto plano, sin cifrar.

Además, no podemos olvidarnos de las vulnerabilidades existentes en este protocolo, como


EternalBlue, la vulnerabilidad de la NSA utilizada por WannaCry. Si este ransomware causó
estragos a través de este protocolo siendo utilizando solo en LAN, imaginemos qué hubiera pasado
si el protocolo se hubiera podido utilizar por defecto a través de WAN.

Aunque SMB/CIFS no es un protocolo seguro para WAN (y tampoco para LAN, aunque suponemos
que la red LAN es de confianza), tampoco es el único que puede poner en peligro nuestra
seguridad. Sin ir más lejos, el conocido protocolo FTP envía usuarios y contraseñas en texto plano,
así como los archivos en paquetes de tráfico de red sin cifrar, o lo mismo ocurre con Telnet que,
además de enviar usuarios y contraseñas sin cifrar, puede llegar a permitir la ejecución de código.

Por suerte, para FTP y Telnet hay alternativas seguras (SFTP/FTPS y SSH), pero en el caso de
SMB/CIFS esto no es así.

Servicio de directorio

Un servicio de directorio sencillo es, por ejemplo, un servicio de nombres para corresponder los
nombres de los recursos de la red con sus respectivas direcciones de red. Con este tipo de servicio
de directorio, un usuario no tiene que recordar la dirección física de los diferentes recursos de la
red, pues con saber simplemente su nombre estará accediendo a tal recurso demandado. Cada
recurso de la red se considera como un objeto en el servidor de directorio, donde la información
de un recurso en particular se almacena como atributos de ese objeto. La información que
representa un objeto se establece de forma segura, accediendo a tales objetos usuarios con los
permisos adecuados para poder manipular dicha información. Directorios más sofisticados son
diseñados con multitud de características y preferencias para poder manipular la información
del directorio, según la dificultad de gestión que su administrador pretenda manejar.

Un servicio del directorio define el espacio de nombres de una red. Un espacio de nombres, en
este contexto, es el término que se utiliza para llevar a cabo unos o más objetos como entradas
nombradas. El proceso del diseño del directorio tiene normalmente un conjunto de las reglas que
determinan cómo se nombran y se identifican los recursos de la red. Las reglas especifican que
los nombres sean únicos e inequívocos. En X.500 (los estándares de servicio de directorio) y en
LDAP el nombre se denomina distinguished name (DN) y se utiliza para referirse al nombre único
de una entrada.

Un servicio del directorio es una infraestructura compartida de la información para localizar,


manejar, administrar, y organizar los componentes y recursos comunes de una red, que pueden
incluir volúmenes, carpetas, archivos, impresoras, usuarios, grupos, dispositivos, números de
teléfono y otros objetos. Un servicio del directorio es un componente importante del NOS
(sistema operativo de red). En los casos más complejos, un servicio de directorio es el repositorio
central de la información para una Plataforma de Entrega de Servicios. Por ejemplo, explorando
"computadoras" usando un servicio de directorio, se puede obtener una lista de computadoras
disponibles y la información necesaria para tener acceso.

La réplica y la distribución tienen significados muy distintos en el diseño y la gestión de un


servicio del directorio. La réplica se utiliza para indicar que el mismo espacio de nombres de un
directorio (los mismos objetos) está copiado en otro servidor de directorio por razones de
redundancia y de rendimiento de procesamiento. El espacio de nombres replicado es gobernado
por la misma autoridad. La distribución se utiliza para indicar los servidores de directorio
múltiples, es decir, considerar diversos espacios de nombre interconectados para formar parte
de un servicio de directorio distribuido. Cada espacio de nombres distinto puede gobernarse por
diversas autoridades.

Un servicio de directorio (SD) es una aplicación o un conjunto de aplicaciones que almacena y


organiza la información sobre los usuarios de una red de ordenadores y sobre los recursos de red
que permite a los administradores gestionar el acceso de usuarios a los recursos sobre dicha red.
Además, los servicios de directorio actúan como una capa de abstracción entre los usuarios y los
recursos compartidos.

Un servicio de directorio no debería confundirse con el repositorio de directorio, que es la base de


datos la que contiene la información sobre los objetos de nombrado gestionada por el servicio de
directorio. En el caso del modelo de servicio de directorio distribuido en X.500, se usa uno o más
espacios de nombre (árbol de objetos) para formar el servicio de directorio. El servicio de
directorio proporciona la interfaz de acceso a los datos que se contienen en unos o más espacios
de nombre de directorio. La interfaz del servicio de directorio es la encargada de gestionar la
autenticación de los accesos al servicio de forma segura, actuando como autoridad central para el
acceso a los recursos de sistema que manejan los datos del directorio.

Como base de datos, un servicio del directorio está altamente optimizado para lecturas y
proporciona alternativas avanzadas de búsqueda en los diferentes atributos que se puedan asociar
a los objetos de un directorio. Los datos que se almacenan en el directorio son definidos por un
esquema extensible y modificable. Los servicios de directorio utilizan un modelo distribuido para
almacenar su información y esa información generalmente está replicada entre los servidores que
forman el directorio.

ARCHIVO

Toda la información, ya sean textos, imágenes, o información para la configuración del sistema, se
almacena en "ficheros", que a su vez se guardan en "directorios". Los ficheros son la estructura
empleada por el sistema operativo para almacenar información en un dispositivo físico como un
disco duro, un disquete, un CD-ROM. Con todas las herramientas y programas existentes se puede
acceder a estos ficheros para ver su contenido o modificarlo.

La base del sistema de archivos de Linux, es obviamente el archivo o fichero.

Todos los archivos de Linux tienen un nombre, el cual debe cumplir unas ciertas reglas:

Un nombre de archivo puede tener entre 1 y 255 caracteres.

Se puede utilizar cualquier carácter excepto la barra inclinada (/). No es recomendable emplear los
siguientes caracteres: = \ ^ ~ ' " ` * ; - ? [ ] ( ) ! & ~ < >, ya que éstos tienen un significado especial
en Linux.

Nota: Para emplear ficheros con estos caracteres o espacios hay que introducir el nombre del
fichero entre comillas.

Se pueden utilizar números exclusivamente si así se desea.

Las letras mayúsculas y minúsculas se consideran diferentes, y por lo tanto no es lo mismo


carta.txt que Carta.txt ó carta.Txt.

Se puede emplear un cierto criterio de "tipo" (extensión) para marcar las distintas clases de
ficheros empleando una serie de caracteres al final del nombre que indiquen el tipo de fichero del
que se trata. Así, los ficheros de texto, HTML, las imágenes PNG o JPEG tienen extensiones .txt,
.htm (o .html), .png y .jpg (o .jpeg) respectivamente.

Pese a esto Linux sólo distingue tres tipos de archivos:


Archivos o ficheros ordinarios: Son los mencionados anteriormente.

Directorios (o carpetas): Es un archivo especial que agrupa otros ficheros de una forma
estructurada.

Archivos especiales: Son la base sobre la que se asienta Linux, puesto que representan los
dispositivos conectados a un ordenador, como puede ser una impresora. De esta forma introducir
información en ese archivo equivale a enviar información a la impresora. Para el usuario estos
dispositivos tienen el mismo aspecto y uso que los archivos ordinarios.

DIRECTORIO

Un directorio es un conjunto de archivos, que a su vez pueden contener otros directorios. Los
directorios también poseen permisos, y eso es muy importante para evitar que los usuarios sin
experiencia, borren o modifiquen algo que no deban. El árbol de directorios nos ayuda a saber
dónde se encuentra un archivo.

A diferencia de los sistemas MS-DOS/Windows, en los sistemas UNIX no se dividen los directorios
entre las distintas unidades físicas (C:, D:, etc.). Al contrario, para UNIX todos son ficheros y
directorios. Éste considerará un disco duro o una disquetera como directorios. Por tanto, no tiene
sentido escribir en la consola "C:", sino que nos iremos al directorio asociado a esa partición.

Todos los ficheros y directorios de un sistema UNIX cuelgan de un directorio principal llamado
"raíz", que se representa como "/". El directorio raíz es la base para todo el arbol de directorios, es
allí donde están contenidos todos lo directorios del sistema.

Cuando el usuario accede a una sesión, Linux "envía" al usuario a su directorio de trabajo, que es
su directorio personal (/home/nombre-usuario). En donde el usuario tiene la libertad absoluta
para hacer lo que quiera con sus ficheros y directorios ubicados ahí. Sin embargo no podrá hacer
todo lo que quiera en el directorio de otro usuario, ya que Linux tiene un sistema de permisos que
concede o restringe libertades sobre los directorios y ficheros que hay en Linux. Aunque existe un
usuario "root", que sí tiene permiso de hacer cualquier cosa en Linux.

También podría gustarte