sábado, 8 de marzo de 2008

File Server con NFS + Debian Etch

El paquete nfs-common está instalado por defecto en Debian. Este paquete contiene los archivos necesarios para un Servidor o Cliente NFS. Para configurar un servidor tendremos que instalar el paquete nfs-kernel-server

aptitude install nfs-kernel-server

Cuando se instala este paquete, crea un archivo "exports" que se encuentra en /etc el cual deberemos de editar para configurarlo.

vi /etc/exports

luego la sintaxis es la siguiente:

/home/directorio_del_servidor_a_compartir cliente(permisos,tipo-sync)

Ejemplo:

Tengo en el servidor de Archivos un cliente llamado shared, y quiero compartir el directorio de ese usuario.

Edito el archivo /etc/exports y agrego esta línea.

/home/shared *(rw,sync)

Esta línea indica que cualquier cliente NFS puede montar una unidad con el directorio /home/shared del servidor como lectura/escritura, si queremos restringir esto podemos usar dos cosas.

1. Configurar /etc/hosts.deny y /etc/hosts.allow

2. colocar una línea semejante a esta:
/home/shared 192.168.0.100(rw,sync)
#Esto permite que _solo_ la máquina 192.168.0.100 pueda leer y escribir


Obviamente hay que reiniciar el servicio para que actualice los cambios

/etc/init.d/nfs-common
/etc/init.d/nfs-kernel-server

Como se puede identificar el cliente?

hay varias maneras:

  1. Colocando el nombre del Host, para esto se debe tener configurado un DNS o en su defecto haber incluido el host en /etc/hosts. Hostname(rw,sync)
  2. Con la IP del Cliente (Como en el ejemplo)
  3. Identificando un segmento con IP/Netmask 192.168.0.0/255.255.255.0(rw,sync)
  4. Identificando un dominio como *.mi_dominio.com(rw,sync)

Los permisos más comunes:

  1. ro (Solo Leer - Read Only)
  2. rw (Leer y Escribir - Read Write)
  3. no_access (Podemos dar acceso al directorio principal, pero a lo mejor no queremos que toquen otros subdirectorios, para ello hay que añadir este parámetro en cada línea de los subdirectorios que no se quiera permitir ver)

El cliente:

Cómo montar un disco NFS basados en nuestro ejemplo anterior /home/shared


/etc/init.d/nfs-common start
mkdir /media/shared

# mount fileserver:/home/shared /media/shared

Mi Servidor de Ejemplo se llama "fileserver" el directorio del servidor que compartimos en el ejemplo de /etc/exports es /home/shared luego /media/shared es un directorio creado para montar ese "disco-nfs".


Podemos crear una línea en el /etc/fstab para que monte el disco cada vez que se inicie la máquina sin hacer el mount.

creamos una líne como esta:

fileserver:/home/shared /media/shared nfs rsize=8192,wsize=8192,timeo=14,intr


viernes, 7 de marzo de 2008

Agrandar Disco en VM XEN

Hay varias maneras de agrandar un disco virtual de una máquina Xen, sin embargo la más sencilla es la que les muestro a continuación:

Creamos un archivo por ejemplo de 1 GB para agrandar solo 1GB al disco, obviamente esto puede cambiar, y usar archivos de 5GB o más, sin embargo deben considerar que el archivo que se cree con dd no debe exceder la mitad del espacio disponible en disco, ya que por ejemplo... si tenemos espacio libre 10GB no podemos exceder de 5GB el archivo que creamos con dd, ya que al agragarlo al disco virtual xen, este aumentará 5GB más, pero el archivo creado con dd seguirá en nuestra máquina, por lo que ahora 5GB del archivo, más los 5GB que aumentí el disco virtual xen nos ha ocupado 10GB en el disco, claro que una vez agrandado el disco virtual de Xen podremos borrar el archivo creado con dd y nos quedarán nuevamente 5GB libres... pero si en vez de 5GB requeríamos agrandarlo 8GB por ejemplo... entonces habría que crear el archivo dd con 2GB y reetir el procedimiento varias veces hasta completar los 8GB.

Ejemplo:

# dd if=/dev/zero of=/home/disk_temp bs=1M count=5000
// opcional:
# cp -a /xen/domains/vm1/disk.img /xen/domains/vm1/disk.img.back
// siempre es bueno hacer un respaldo
# cat /home/disk_temp >> /xen/domains/vm1/disk.img
resize2fs -f /xen/domains/vm1/disk.img

Con eso ya hemos agrandado en 5GB nuestro disco virtual de la máuina vm1 de Xen.

Una vez terminado podemos hacer lo siguiente:

# rm /home/disk_temp


Nota: En mi caso, quise agrandar 15GB al disco, y tenía solo 21GB libres, así que use el archivo de 5GB y repeti el procedimiento 3 veces, sin embargo, aunque disk.img era de 55GB (antes era 40GB) una vez montada la máquina virtual, haciendo un df -h me decía que mi disco era de 50GB y no de 55GB, así que hice un resize2fs -f /dev/sda1 (que es mi disco en la VM) y se acomodó.



Espero que les sirva