next up previous
Next: Backups en sistemas de Up: Introducción Previous: Sistemas de ficheros distribuidos

Plan9 y su sistema de ficheros

En el SO plan9 cualquier recurso del sistema es un fichero, la red, las tarjeta de sonido, el ratón , el teclado, etc... Es un nuevo concepto de SO y su manera de entender el sistema de ficheros es una de sus principales características.

El sistema de ficheros de Plan9 es un sistema distribuido. Se encuentra fuera del Kernel. De esta manera es mas flexible y un mismo kernel puede usar varios sistemas de ficheros distintos usando la red y formar asi un sistema de ficheros distribuidos.

Los usuarios de este SO no tienen que preocuparse de la ubicación de un fichero que esta usando, simplemente lo pide y lo usa. El sistema de ficheros distribuido se encarga de servírselo.

Si un usuario de Plan9 usa un fichero, se genera una petición al Kernel , después este se comunicara con el sistema de ficheros distribuido para pedirle ese fichero.

En la figura [*] se representan las distintas intercomunicaciones entre las aplicaciones que piden utilizar ficheros, los kernel, y los sistemas de ficheros.

Figura: Plan9 y su sistema de ficheros.
\resizebox{12cm}{!}{\includegraphics{sysfileg.eps}}

Una aplicación hace una petición de un fichero al kernel y este tiene que encargarse de pasarle la petición al sistema de ficheros que le corresponda o a otro kernel hasta que accede al dispositivo de almacenamiento.

El funcionamiento es simple , no así la manera de implementarlo y los algoritmos para controlar la coherencia y sincronización de accesos a los ficheros.

El uso de la red en el sistema de ficheros distribuido es básico ya que así se pueden usar los ficheros de varias maquinas como si estuvieran en la nuestra propia.

Figura: Ejemplo de petición de lectura.
\resizebox{12cm}{!}{\includegraphics{sysfile.eps}}

En la figura [*] se expone un ejemplo de los pasos que llevaría una petición de lectura de una aplicación.

Paso 1
. La aplicación hace la petición de lectura al kernel.

Paso 2
. EL kernel pasa la petición de lectura que le ha llegado, al driver del sistema de ficheros.

Paso 3
. El driver del sistema de ficheros hace la petición de lectura al sistema de ficheros.

Paso 4
. El sistema de ficheros pasa la petición al driver de disco.

Paso 5
. El driver de disco genera la petición de lectura al Disco o dispositivo de almacenamiento.

Paso 6
. Los resultados de la operación de lectura sobre el disco se pasan al driver de disco.

Paso 7
. El driver de disco cede sus resultados en la lectura de disco, al sistema de ficheros.

Paso 8
. El sistema de ficheros pasa los datos al driver del sistema de ficheros.

Paso 9
. El driver del sistema de ficheros finalmente contesta al kernel y le da los resultados obtenidos de la operación de lectura que recibió.

Paso 10
. Este ultimo paso consiste en que el kernel pase a la aplicación que lo pidió, el resultado definitivo de la lectura.

En Plan9 se pueden distinguir varios sistemas de ficheros dependiendo de si hablamos de servidores de ficheros o de sistemas normales.

Un Plan9 que actúa como servidor de ficheros tiene un kernel especifico que hace de sistema de ficheros distribuido con la funcionalidad incorporada de poder realizar backups sin problema.

Por otro lado y de manera mas común, tenemos el sistema de ficheros que usan el resto de Plan9. Este sistema de ficheros es Kfs. En el no existe ninguna funcionalidad que permita hacer backups o copias de seguridad como se pueden hacer en el caso de los servidores de ficheros. Incorporar esa funcionalidad con todo lo que ello conlleva es el trabajo de este proyecto.

Como ya se comento anteriormente, el kernel de Plan9 se comunica con el sistema de ficheros mediante un protocolo. Ese protocolo es 9P. Esta basado en RPCs.

Figura: Comunicación Kfs-Kernel.
\resizebox{12cm}{!}{\includegraphics{kfs_kernel.eps}}

El protocolo 9P se basa en que los clientes (típicamente el kernel) manda peticiones T-mensajes y son contestadas por el servidor (por ejemplo Kfs) mediante R-mensajes. Véase Figura [*]

Para que el cliente y el servidor operen con ficheros a través de la red, cada fichero en el sistema de ficheros tiene un único identificador (QID) que no puede repetirse para ningún otro fichero. Ahora bien, cada fichero puede tener un identificador distinto para cada cliente que lo use (FID), aunque ese fichero sea el mismo. Es decir, que tenemos varios FID's por un solo QID.

Cuando un cliente pide un fichero al servidor, se han de poner de acuerdo antes de nada en el FID del fichero para ese cliente, y su correspondencia con el fichero en el servidor (QID).

El servidor mantiene una tabla de conexiones abiertas por los clientes para cada fichero. Esa tabla es de correspondencias entre QID y FID's.


next up previous
Next: Backups en sistemas de Up: Introducción Previous: Sistemas de ficheros distribuidos
Jesus Vergara igual 2001-10-16