DISKLESS BOOTING ( EN ESPAÑOL )

Asignado a: (CLIENTES Y SERVIDORES) por Michael Garcia en 06-06-2007

DISKLESS BOOTING
o Servidor de Terminales Pesados -STP-

Este sistema nos permite servir a otros ordenadores lo necesario para que arranquen un sistema operativo sin tener ni siquiera Disco duro. Sino tan solo con acceso a la red donde esta el servidor y posibilidad de arranque por red en la BIOS del cliente.

De que se trata todo esto … pues simplemente de tener un solo sistema operativo y poder trasmitirlo a otro ordenador vía red LAN para que cargue los ficheros y configuración de un S.O predefinido en el servidor . Una vez hecho esto tener toda la autonomía de un sistema operativo como si estuviese instalado en dicho ordenador , únicamente la función principal del servidor sera pasar todo el sistema de archivos y luego de ello mantenerse conectado con el cliente únicamente par actualizar los datos que el modifique del S.O otorgado por el servidor .

Ahora mas técnicamente , esto sucede de la siguiente manera:

El BOOTING DISKLESS requiere un servidor de DHCP para determinar de una MAC suministrada su ubicación en la red y darle una IP fija. Además se requiere una placa base que permita BOOTEO PXE por red. Un servidor TFTP para poder trasmitir el ROOM de arranque PXE y posteriormente pasar por el mismo servidor el kernel del sistema (el núcleo del mismo) el cual se configurara según los argumentos especificados en la configuración del PXE , para que después de esto el kernel sepa donde buscar los ficheros de sistema en el servidor . Los cuales se trasmitirán por NFS.

Por que PXE,DHCP,TFTP y NFS?

La primera vez que se inicia un nuevo equipo cliente habilitado para inicio remoto PXE, éste utiliza el protocolo DHCP para solicitar una dirección de Protocolo Internet (IP) y la dirección IP de un servidor DISKLESS BOOTING . Como parte de la solicitud inicial el servidor DHCP le facilita la conexión con el servidor TFTP un protocolo utilizado para trasmisión de datos en red , una vez es pasado el ROOM PXE se genera un micro entorno el cual es capaz de cargar el kernel también pasado por TFTP y luego a su vez el kernel ya es capaz de por NFS solicitar todos los archivos del S.O y completar el arranque del mismo.

Que se requiere?

-Un sistema ( Ubuntu en este caso )
-Una placa base que tenga arranque PXE
-Espacio en disco para el sistema del servidor y el sistema que se va a trasmitir
Una red rápida entre cliente y servidor
Servidores NFS,TFTP,DHCP
Y un buen entendimiento de Linux . jiji

Pasos a seguir para lograr montar un servidor de terminales pesados

1 - hacer <<ifconfig>> y sacar tu IP ( anotala te va a ser util ).

2 - Crear una carpeta en /mnt con :

<<sudo mkdir -p /mnt/nfsroot/ubuntu-feisty/dev>>

3 - Instalar todos los servidores :

<< sudo apt-get install dhcp3-server >>
<< sudo apt-get install tftpd-hpa >>
<< sudo apt-get install nfs-kernel-server >>
luego

4 - Para generar el pxe que se va a cargar por red hay que descargar el syslinux .

<< sudo apt-get install syslinux >>

5 -Creamos las carpetas necesarias.

<< sudo mkdir -p /tftpboot/pxelinux.cfg >>
<< sudo mkdir /tftpboot/ubuntu-feisty >>

6 - Copiamos el pxe de sistema en la carpeta creada .

<< sudo cp /usr/lib/syslinux/pxelinux.0 /tftpboot >>

7 - buscamos nuestro kernel con .

<< ls -ltr /boot/vmlinuz-* >>

8 - y lo copiamos a nuestra carpeta /tftpboot.

<< sudo cp /boot/vmlinuz-* /tftpboot/ubuntu-feisty >>

9 - Copiamos la herramienta del sistema que crea la imagen de arranque del kernel y le
ponemos otro nombre.

<< sudo cp -Rp /etc/initramfs-tools /etc/initramfs-tools-pxe >>

10- luego modificamos un archivo de esa carpeta nueva para que bootee desde nfs con

<< sudo gedit /etc/initramfs-tools-pxe/initramfs.conf >>
(cambiamos BOOT=local por BOOT=nfs)

11 - Creamos una nueva imagen

<<sudo mkinitramfs -d /etc/initramfs-tools-pxe -o /tftpboot/ubuntu-feisty/initrd.img-2.6.20-15-generic>> revisar los
números de versión para que todos coincidan con el kernel

12 - Creamos un archivo en /tftpboot/pxelinux.cfg/ que se llame default una forma de hacerlo
es:

<< sudo gedit /tftpboot/pxelinux.cfg/default >> y pegamos esto

LABEL ubuntufeisty
kernel ubuntufeisty/
vmlinuz2.6.2015generic
append root=/dev/nfs nfsroot=***SERVERIP****:/
mnt/nfsroot/ubuntufeisty
ip=dhcp
initrd=ubuntufeisty/
initrd.img2.6.2015generic
rw
PROMPT 0
TIMEOUT 0
DEFAULT ubuntufeisty

13 - modificamos
la configuración del servidor dhcp para que sirva solo a el cliente una ip
fija y le pase el pxe correspondiente el archivo a configurar es /etc/dhcp3/dhcpd.conf y se
hace con :
<< sudo gedit /etc/dhcp3/dhcpd.conf >>
y agregamos lo siguiente:

# ltsp server network
subnet 192.168.80.0 netmask 255.255.255.0 { <--LAMASCARA DE LA RED Y LA SUB NET range 192.168.80.55 192.168.80.55; <--EL RANGO DE IPS A SERVIR option routers 192.168.80.1; filename "pxelinux.0"; nextserver 192.168.80.10; << sudo gedit /etc/default/tftpd-hpa>>
y lo cambiamos por:

#Defaults for tftpdhpa
RUN_DAEMON=”yes”
OPTIONS=”ls/tftpboot”

14.1 - procedemos a dar permisos a la carpeta nfsroot con
<< sudo gedit /etc/exports>>
y agregamos:

/mnt/nfsroot/ubuntufeisty * (rw,no_root_squash,async)

14.2 - luego ponemos :
<< exportfs -rv >> para actualizarlo

15 - MAS TARDE EN EL CLIENTE ponemos:
<< sudo apt-get install nfs-client >>

15.1 En el CLIENTE creamos
<< sudo mkdir -p /mnt/nfsroot/ubuntu-feisty/ >>

16 - montamos en el cliente el enlace con la carpeta del servidor con:

<< sudo mount *****IP SERVER*****:/mnt/nfsroot/ubuntu-feisty /mnt/nfsroot/ubuntu-feisty>>

17 -y luego de montarla copiamos los contenidos del cliente en el servidor
con:

<<sudo cp -ax /. /mnt/nfsroot/ubuntu-feisty/.>>
y
<< sudo cp -ax /dev/. /mnt/nfsroot/ubuntu-feisty/dev/.>>

18 - Una vez copiado todo en el servidor solo tenemos que cambiar el archivo de los
contenidos de montaje /etc/fstab que estara en la carpeta de ubuntufeisty
de nfsroot con:

<< sudo gedit /mnt/nfsroot/ubuntu-feisty/etc/fstab >>
( en la que dejaremos nada mas que las unidades externas montadas y lo demas lo
comentaremos MENOS la swap )

19 - luego
tendremos que cambiar un ultimo fichero en nfsroot y estara listo nuestro servidor
el ultimo comando sera

<< sudo gedit /mnt/nfsroot/ubuntu-feisty/etc/network/interfaces >>
( y comentamos de este archivo todo para que el cliente no genere interfaces de red y
termine por desconectarse del servidor de terminales pesados )

20 -Por ultimo arrancamos todo los servidores con

<< sudo /etc/init.d/dhcp3-server stop >>
<< sudo /etc/init.d/dhcp3-server start >>
<< sudo /etc/init.d/tftpd-hpa stop >>
<< sudo /etc/init.d/tftpd-hpa start >>
<< sudo /etc/init.d/nfs-kernel-server start >>
<< sudo /etc/init.d/nfs-kernel-server stop >>

21 - Y listo solo queda arrancar el cliente en modo de BOOT de LAN y tenemos nuestro
servidor funcionado como servidor de terminales pesados .

Espero que les funcione ya que esto lo e montado yo y a funcionado a la perfeccion hasta con 20 ordenadores … Atentamente Michael García Zurilla.

Sabes por que me gusta ubuntu por esto ——>>>



Creative Commons License
Esta obra está bajo una
licencia de Creative Commons.
1 Ubunestrella2 Ubunestrellas3 Ubunestrellas4 Ubunestrellas5 Ubunestrella (5 votes, average: 5 out of 5)
Loading ... Loading ...

Comentarios:

Total 23 Comentarios en: DISKLESS BOOTING ( EN ESPAÑOL )

Enviar Comentario


El canal LPSH en youtubeEl perfil de LPSH en Technorati La gente que agrega enlaces de mi blog en DeliciousMi cuenta en TwiterEntradas RSS por Feed Burner Una manera para que todos ganemos dinero facil...


ACERCA DE:

Este blog habla de todo pero se centra en Ubuntu, los temas que tratamos son: Internet, Actualidad, Gadgets, Hardware, Software, Ciencia, Muscia, Cine y muchos mas... siempre un poco de humor no cae mal.

Ver Licencia...