Introducción¶
En mi equipo de casa (sobremesa), desde que empecé con Debian 4.0 y debido a empezar a trabajar más con equipos portátiles me acostumbré a “hibernar” la máquina en lugar de suspenderla, era más cómodo dejar todos los programas en “pausa” y al volver al día siguiente a utilizar el PC y encenderlo, recuperarlo todo tal cual estaba, listo para trabajar. Cuando pasé a Fedora esta función junto con el LVM cifrado no iban a faltar en mi sistema :-)
La hibernación utiliza la partición swap del sistema para almacenar el contenido de la RAM y así guardar el estado del sistema, y al siguiente arranque, se verifica si tiene información en dicha partición que se puede recuperar, y de ser así, gestiona la recuperación.
Por facilidad en la gestión y funcionamiento entre mi servidor y mi pc utilizo NFS para acceder a los ficheros y para facilitar la utilización, en mi equipo utilizo autofs con el mapa para redes, que me permite acceder a equipos automáticamente por nfs usando la ruta local /net/nombremaquina/recurso.
Durante muuuuuuchos años he estado utilizando ese funcionamiento para trabajar con mis equipos, pero el sistema NFS con autofs y más desde que hiberno mi equipo presenta un problema, al restaurar el equipo, es necesario restaurar autofs porque si no, tarda más en tener un timeout y liberar los puntos de montaje.
Ésto me animó a probar otras alternativas y fue cuando FUSE volvió a mis manos.
FUSE¶
FUSE(“Filesystem in userspace”) es un proyecto que permite cargar sistemas de ficheros a nivel de usuario, para ello, dispone de un controlador en kernel, y una serie de utilidades ejecutables por usuarios para poder cargar esos sistemas de ficheros.
En el caso de RHEL/CentOS 5 tenemos los paquetes de FUSE en RPMForge y en Fedora los tenemos en la propia distribución. Por ejemplo, en Fedora tenemos:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Yo actualmente estoy utilizando fuse-sshfs
para solventar mi necesidad, y bueno, la cumple perfectamente :)
Lo que hago es lanzar desde un terminal el siguiente comando:
1 2 |
|
A partir de ese momento, cada vez que accedo a la carpeta “carpeta-de-montaje”, los ficheros sobre los que opero, están en otro equipo, al que se ha conectado por ssh y se le envian los comandos para abrir ficheros, renombrarlos, etc.
Extendiendo FUSE¶
El meollo de este artículo es un artículo “WEB LOCAL: Pythoneando con FUSE” de Linux Magazine (número 37) que me pasó un compañero (Fran Gimeno) en el que se analizaba por parte de “Jose María Ruiz” el funcionamiento de FUSE La parte interesante de dicho artículo, así como en este artículo de Red Hat Magazine.
El punto interesante del artículo de Jose María Ruíz es que implementan un nuevo sistema de ficheros en python, un lenguaje sencillo de aprender en el que se ve claramente lo necesario para utilizar FUSE: implementar las directivas de operación sobre ficheros.
En un sistema de ficheros estándar, utilizamos funciones como opendir, open, read, getattr para trabajar con ficheros, para utilizar FUSE, creamos métodos con esos nombres que realizan las operaciones que queremos, por ejemplo:
1 2 3 4 5 6 7 8 |
|
(Obtenido de http://zmugtools.svn.sourceforge.net/viewvc/zmugtools/tags/zmugfs/release-0.1/src/zmugfs.py?view=markup)
Así pues, aparte de los múltiples sistemas de ficheros ya disponibles con FUSE (entre ellos uno de los más conocidos inicialmente fue gmailfs que permitía utilizar el espacio de una cuenta de gmail como almacén de ficheros accesible de forma remota), podremos crear los que podamos necesitar de forma sencilla utilizando python (o el lenguaje de nuestra preferencia) para implementar las funciones de acceso.
Comments