= Explicación de cada propuesta = NFSRoot:: El servidor crea un directorio donde se instala un sistema debootstrap. Este directorio será exportado por NFS. En este sistema se instala los paquetes necesarios para el sistema, entre ellos el kernel. Esto generará también un initrd, que junto al kernel serán exportado por el PXE del servidor. En la configuración del PXE hay que pasarle que el root es del tipo NFS y donde se encuentra. NBDRoot:: Es muy parecido al anterior. La diferencia es que ya no es un directorio sino una imagen del directorio. Para servir la imagen se usa NBD en vez NFS. En la configuración del PXE también hay que pasarle parámetros especiales. Segundo sistema de fichero:: = Mejoras e inconvenientes de cada uno = Velocidad:: Con sobrecarga de clientes, es decir, un aula entera arrancando por ejemplo dicen que NBD se comporta mejor que NFS. Flexibilidad:: Con NFS podemos escribir en el directorio cuando los clientes están conectados y los cambios son inmediatos. Con NBD no he conseguido hacer eso. Además con NBD habría que ir incrementando la imagen en caso de ser necesario. Puede que para el root no tenga mucho sentido, pero para las imágenes sí. Initrd:: Con NFS el initrd que genera mkinitramfs de Ubuntu se especializa en red, lo que hace que se elimine todo el soporte de disco duro. Eso significa que para el modo offline habría que usar otro initrd, crear uno especial que soporte los dos o tener dos distintos y que el servidor los maneje. NBD no tiene este problema, mete la red dentro del soporte normal para discos duros. Copy on Write:: NBD permite servir la imagen y si el cliente escribe en ella, crea un fichero de diferencia. Cuando el cliente se desconecta elimina el fichero. Habría que probar su rendimiento porque obviamente empeoraría. = Como probar cada uno = Para realizar las pruebas es necesario un debootstrap con la última versión actual de Ubuntu, la 10.04. También es necesario las herramientas XFS para poder crear la imagen formateada con este sistema de ficheros. También tener instalado todos los demonios para poder arrancar un ordenador: PXE, tftp, DHCP, NFS y NBD. Todavía no hay script, pero un "candidato" sería: {{{ mkdir -p /tmp/nfsroot debootstrap --arch i386 lucid /tmp/nfsroot # Le ponemos un password al sistema sudo mount proc /tmp/nfsroot/proc -t proc sudo chroot /tmp/nfsroot passwd sudo chroot /tmp/nfsroot apt-get install nbd-client linux-image nfs-common portmap sudo umount /tmp/nfsroot/proc echo Lucid > /tmp/nfsroot/etc/hostname echo 127.0.0.1 localhost.localdomain localhost >> /tmp/nfsroot/etc/hosts cat << EOF > /tmp/nfsroot/etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface, commented out for NFS root #auto eth0 #iface eth0 inet dhcp iface eth0 inet manual EOF cat << EOF > /tmp/nfsroot/etc/fstab # /etc/fstab: static file system information. # # proc /proc proc defaults 0 0 none /tmp tmpfs defaults 0 0 none /var/run tmpfs defaults 0 0 none /var/lock tmpfs defaults 0 0 none /var/tmp tmpfs defaults 0 0 EOF # Creamos ahora la imagen para nbd dd if=/dev/zero of=/tmp/nbdroot.img bs=1M count=1024 mkfs.xfs /tmp/nbdroot.img sudo mount /tmp/nbdroot.img sudo cp /tmp/nfsroot/* /mnt/ sudo umount /mnt }}} Esto crea en /tmp/nfsroot el directorio que debemos exportar con NFS y /tmp/nbdroot.img que es la imagen que debemos exportar por NBD. En /tmp/nfsroot/boot están el initrd y el linux que debemos poner en el PXE para que arranque estos clientes: {{{ kernel vmlinuz append initrd=initrd.img nbdsrv=192.168.2.2 nbdport=2345 nbdroot=192.168.2.2,2345 root=/dev/nbd0 ip=192.168.2.3::192.168.2.2:255.255.255.0::eth0: rootdelay=1 append initrd=initrd.img ip=192.168.2.3::192.168.2.2:255.255.255.0::eth0: rootdelay=1 root=/dev/nfs nfsroot=1:/tmp/nfsroot ro }}} Para servir una imagen por NBD: {{{ nbd-server -c 2345 /tmp/nbdroot/nbdroot.img }}} La opción -c es copy on write. Probarlo con la opción y sin la opción. = Pruebas realizadas = Ninguna prueba actualmente. = Votación = Aún no se han abierto las votaciones.