¡Hola, Invitado!


Patrocinantes


Síguenos en Facebook


Síguenos en Twitter

Compartir este tema:
[Tutorial] Compartir archivos entre sistemas Debian GNU/Linux usando NFS
-Gosw- Sin conexión
Administrador
*******

Mensajes: 2.024
Registro en: Jul 2010
Facebook Twitter YouTube
Gracias dados: 68
Gracias recibidos: 122
Mensaje: #1
Compartir archivos entre sistemas Debian GNU/Linux usando NFS
  • Compartir en Delicious
  • Compartir en Digg
  • Compartir en Linkedin
  • Compartir en MySpace
  • Compartir en Technorati
  • Compartir en Tuenti
Bien voy a mostrarle ahora como poder compartir archivos entre maquinas que se encuentren en red local (deben tenerlas previamente configuradas para que esto funcione) y que ademas tengan todas sistemas Debian GNU/Linux o basados en él (como Ubuntu, Dreamlinux, entre otros).

La herramienta que vamos a usar para esto es NFS, ahora ¿que es NFS?

NFS (Network File Sistem o Sistema de Ficheros de Red) es una solución ofrecida por los sistemas operativos UNIX/Linux para compartir archivos en redes TCP/IP. Fue desarrollado por SUN Microsystems bajo licencia GPL, lo que facilitó que se convirtiera en un estándar a la hora de convertir archivos en red.

NFS nos permite montar una partición de una máquina remota en un directorio de nuestra máquina como si fuera una partición local.

Ahora bien, tenemos que tomar en cuenta que NFS trabaja bajo un estilo de servidor-cliente, es decir, para poder compartir archivos en red necesitamos al menos un servidor y un cliente. Esta condición simplemente determina si queremos solo acceder a recursos compartidos por otras maquinas (cliente) o si queremos ademas de lo anterior compartir nuestros propios recursos (servidor).

La condición de cliente o servidor nos determinara las cosas que necesitemos instalar, queda así:

Para Servidor: Instalaremos los paquetes nfs-kernel-server y portmap

Para Cliente: Instalaremos los paquetes nfs-common y portmap

¿Como instalar y configurar el portmap?

Para instalar solo vamos a la consola y tecleamos (tal vez nos pida permisos de root):

Lenguaje BASH
aptitude install portmap


Sino nos gusta la consola, vamos al "Gestor de Paquetes Synaptic", buscamos portmap e instalamos.

Luego de esto, verificamos si quedo corriendo, en consola colocamos:

Lenguaje BASH
ps aux | grep portmap


Si esta corriendo nos tiene que devolver una respuesta parecida a esta:

Lenguaje BASH
daemon    1056  0.0  0.0   1808   492 ?        Ss   13:13   0:00 /sbin/portmap


Si la respuesta no se parece a la anterior, reinicien su maquina e intenten de nuevo el comando.

¿Como instalar y configurar NFS para usar nuestra maquina como servidor?

Bien instalamos primero que nada el nfs-kernel-server, desde consola (sino ya saben en synaptic):

Lenguaje BASH
aptitude install nfs-kernel-server


Luego de instalado comprobamos si el servicio esta corriendo, con el siguiente comando desde consola:

Lenguaje BASH
rpcinfo -p


Este comando nos debe mostrar que servicios tenemos corriendo, entre ellos debe estar el NFS, seria algo como esta la respuesta obtenida:

Lenguaje BASH
programa vers proto   puerto
    100000    2   tcp    111  portmapper
    100000    2   udp    111  portmapper
    100024    1   udp  48686  status
    100024    1   tcp  48658  status
    100021    1   udp  40913  nlockmgr
    100021    3   udp  40913  nlockmgr
    100021    4   udp  40913  nlockmgr
    100021    1   tcp  45050  nlockmgr
    100021    3   tcp  45050  nlockmgr
    100021    4   tcp  45050  nlockmgr
    100003    2   tcp   2049  nfs
    100003    3   tcp   2049  nfs
    100003    4   tcp   2049  nfs
    100003    2   udp   2049  nfs
    100003    3   udp   2049  nfs
    100003    4   udp   2049  nfs
    100005    1   udp  47788  mountd
    100005    1   tcp  45333  mountd
    100005    2   udp  47788  mountd
    100005    2   tcp  45333  mountd
    100005    3   udp  47788  mountd
    100005    3   tcp  45333  mountd


Fíjense los que dicen NFS, quiere decir que nuestro servicio esta corriendo. Si no aparece tenemos que comprobar si alguno de los paquetes que instalamos anteriormente no quedaron con algún problema.

A continuación viene la tarea de compartir directorios, debemos tener bien claro que es lo que queremos compartir, es decir, donde se encuentra (su ruta absoluta, por ejemplo /home/usuario/carpeta_compartir). Ahora para compartir este directorio lo primero que debemos hacer es editar un archivo de nuestra maquina, llamado exports, cuya ruta absoluta es /etc/exports.

Para cada directorio que queramos compartir se debe crear una nueva linea en el archivo antes mencionado, la estructura de cada linea debe ser como sigue:

Lenguaje GENERICO
directorio_a_compartir maquinas_con_las_que_compartir(opciones_de_exportación)


directorio_a_compartir: Aquí va la ruta del directorio que queramos que se vea en las demás maquinas en red.

maquinas_con_las_que_compartir: Aquí tenemos que indicar con cuales maquinas de la red queremos compartir dicho directorio.

opciones_de_exportación: Aquí hay muchas opciones que colocar, mas o menos la siguiente lista:

ro: Para compartir el directorio en modo sólo lectura.
rw: Para compartir el directorio en modo lectura/escritura.
root_squash: Para conseguir que un usuario root del cliente no pueda escribir con permisos de root en el directorio compartido.
no_root_squash: Hace que se permita que un usuario root del cliente pueda escribir con permisos de root en el directorio compartido.
sync: Hace que el servidor no atienda peticiones antes de que los cambios hechos por una petición de escritura sean escritos en disco.
async: Hace que el servidor atienda peticiones sin comprobar si los cambios hechos por una petición de escritura se han escrito en disco. Es la opción por defecto, si no se especifica nada.
subtree_check: Si se exporta un subdirectorio (no un sistema de ficheros completo) al producirse una petición de un fichero, el servidor comprueba que el fichero solicitado esté en el árbol de directorios exportado.
no_subtree_check: Desactiva la comprobación de subtree_check.

Algunos ejemplos de las lineas que podemos incluir en al archivo exports son:

Lenguaje GENERICO
/usr/local 192.168.1.0/255.255.255.0(rw,subtree_check)
/var/software 192.168.1.0/24(ro)
/backup 172.19.123.2(rw,no_root_squash,sync)
/tftpboot/boot-image *(rw,no_root_squash,snyc)


Para editar el archivo exports vamos a la consola (con permisos de root y tecleamos:

Lenguaje BASH
gedit /etc/exports


Se nos abrirá el editor gedit con el archivo que especificamos, añadimos las lineas que deseemos, guardamos y cerramos gedit.

Solo nos queda un pequeño paso y es ACTIVAR. Cada vez que modifiquemos el archivo exports debemos hacer que el NFS vuelva a cargarlo, esto lo logramos simplemente colocando en consola:

Lenguaje BASH
exportfs -ra


Ya con esto tenemos todo listo, archivos compartidos. :)

¿Como instalar y configurar NFS para usar nuestra maquina como cliente?

Lo primero instalar el nfs-common, ya sabemos como, pero les recuerdo como seria por consola:

Lenguaje BASH
aptitude install nfs-common


Después de esto toca ver cuales son los recursos que están compartiendo otros dentro de la red, esto lo sabemos tecleando en consola una linea como showmount -e IPSERVIDOR, donde IPSERVIDOR sera la IP de la maquina de nuestra red que queramos verificar. La linea en consola quedaría por ejemplo:

Lenguaje BASH
showmount -e 192.168.1.2


Ahora que sabemos que recursos están compartidos, pues debemos conectarnos al que deseemos acceder, con una linea en consola similar a:

Lenguaje GENERICO
mount IPServidorNFS:/DirectorioCompartido PuntodeMontaje


IPServidorNFS: Es la IP del servidor al cual nos queremos conectar.
DirectorioCompartido: Es el directorio al que queremos acceder dentro del servidor.
PuntodeMontaje: Es el directorio en el cual montaremos la información a la que accederemos.

Un ejemplo concreto podría ser:

Lenguaje BASH
mount 192.168.1.2:/var/descargas /mnt/nfs


Con esta linea decimos que queremos acceder a la carpeta /var/descargas que se encuentra compartida desde el servidor 192.168.1.2 y la vamos a montar en nuestro equipo en la ruta /mnt/nfs (esta ruta de montaje debe existir, la podemos crear usando mkdir antes de este paso).

Ahora para comprobar que el directorio del servidor se encuentra disponible en nuestra maquina hacemos desde consola:

Lenguaje BASH
ls /mnt/nfs


Con esto tenemos todo listo, PERO al reiniciar nuestra maquina este montaje se pierde y se debe volver a hacer cada vez. Si queremos que esta configuración se mantenga siempre, tenemos que agregar una linea al archivo /etc/fstab.

Abrimos el archivo /etc/fstab desde consola:

Lenguaje BASH
gedit /etc/fstab


Y al final de todo añadimos algo como esto (esta linea concuerda con el ejemplo que estamos trabajando, recuerda adaptarla a tu realidad):

Lenguaje GENERICO
192.168.1.2:/home /home nfs rw,hard,intr 0 0


Y ahora SI, tenemos todo listo, cliente y servidor configurado, recursos compartidos y solo queda usarlos.

Espero les agrade el tutorial, cualquier duda o corrección por favor háganla en este mismo tema. Saludos.

[Imagen: administradorq.png]
HTC Desire SLCD: S-OFF, cm7/r2 hboot, CyanogenMod Kernel, CyanogenMod NB 262
Samsung Galaxy S i9000: Chainfire Kernel (CF-ROOT), Value Pack ROM 2.3.6 JVU
SE Xperia x10i: Unlocked Bootloader, FXP052 Kernel, CyanogenMod 7.2.0 FXP052
Motorola Dext MB200: CyanogenMod 7.1 RC1
LG Optimus One P500: Stock ROM 2.3.3
ZTE Racer: Stock
22-01-2011 10:34 AM
WWW Buscar Citar
BlackCode Sin conexión
Moderador Global
******

Mensajes: 47
Registro en: Jul 2010
Facebook Twitter YouTube
Gracias dados: 7
Gracias recibidos: 0
Mensaje: #2
RE: Compartir archivos entre sistemas Debian GNU/Linux usando NFS
  • Compartir en Delicious
  • Compartir en Digg
  • Compartir en Linkedin
  • Compartir en MySpace
  • Compartir en Technorati
  • Compartir en Tuenti
Muy bueno, yo tambien hare uno hermano

Lo ultimo que podran quitarnos seran nuestras mentes.
27-01-2011 10:49 AM
Buscar Citar




Usuario(s) navegando en este tema: 1 invitado(s)