
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 ——>>>
