Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

viernes, 26 de febrero de 2010

¿Cuantos CPUs tengo?

Hay diversas maneras de hacerlo. La evidente es mirando el Monitor del sistema:



Pero si lo queremos hacer por comandos se me ocurre una que puede resultar sencilla:

for i in `cat /proc/interrupts | grep CPU`; do a=$(($a+1));done; echo $a; unset a

Si hicieramos simplemente :
cat /proc/interrupts | grep CPU

ya veríamos cuantas, pero no nos pondría el número como con lo del for.

jueves, 25 de febrero de 2010

Firefox en Lucid Lynx vendrá con Yahoo por defecto.


Parece ser que la nueva versión de Ubuntu 10.04 (Lucid Lynx) vendrá con la página de inicio por defecto de Firefox con Yahoo Search. Esto es fácilmente cambiable por cualquier otra página,  pero sorprende el cambio de motor de búsquedas de Google a Yahoo, y más teniendo en cuenta que Microsoft y Yahoo han firmado un acuerdo por el cual el primero podrá usar el motor de búsqueda de Yahoo por un periodo de 10 años.



Si vamos a http://start.ubuntu.com/10.04/ podemos comprobar que efectivamente ya esta todo preparado:

Rick Spencer (responsable del equipo de ingenieros de Ubuntu Desktop) comentó:

“Estoy persiguiendo este cambio porque Canonical negoció un acuerdo para compartir ganancias (de publicidad) con Yahoo! y esto servirá para ayudar a Canonical a proveer desarrolladores y recursos para continuar con el desarrollo abierto de Ubuntu y la Plataforma Ubuntu.”



(Fuente Ubuntu)

martes, 23 de febrero de 2010

Instalar Octave3.2 + Open MPI 1.3.3. + openmpi_ext (HPC Ubuntu)

En este artículo vamos a explicar como montar un sistema HPC (High Performance Computing). El campo de computación de alto rendimiento (High performance o HPC en inglés) es una herramienta muy importante en el desarrollo de simulaciones computacionales a problemas complejos. Para lograr este objetivo, la computación de alto rendimiento se apoya en tecnologías computacionales como los clusters, supercomputadores o mediante el uso de la computación paralela. La mayoría de las ideas actuales de la computación distribuida se han basado en la computación de alto rendimiento. La computación paralela es una técnica de programación en la que muchas instrucciones se ejecutan simultáneamente.Se basa en el principio de que los problemas grandes se pueden dividir en partes más pequeñas que pueden resolverse de forma concurrente ("en paralelo").

(Fuente Wikipedia)




Hasta llegar a poder hacer este artículo, y con el objetivo que el lector pudiera tener una explicación detallada de todas las partes, realicé artículos anteriores en donde se explican detalladamente dichas partes y hacer que éste fuera menos complejo. Así pues, para montar un sistema MPI seria conveniente saber:


Como podréis comprobar, para hacer un Ubuntu Diskless se han de dominar también estos dos artículos:


 

Con todo esto, e instalando los paquetes de Open MPI 1.3.3 y openmpi_ext, podremos obtener un sistema de Alto Rendimiento de Computación para cálculos realizados con Octave3.2.x



A fecha de edición del artículo, los requisitos para instalar openmpi_ext son según Michael Creel, responsable de PelicanHPC de la Universidad Autónoma de Barcelona, los siguientes:

Hola Eduardo,
openmpi_ext no funciona con Octave < 3.2.x, y MPITB no funciona con
Octave > 3.0.x  El problema ès que los tipos internos de Octave
cambien con las versiones. En este momento, yo recomano utilizar
openmpi_ext y Octave 3.2.x (o version de desarollo) ya que Octave
3.2.x tiene muchas mejoras respecto Octave 3.0.x. La desavantaja és
que openmpi_ext no és completo. Pero si tiene las funciones que
necesitas, el rendemiento és muy bueno.
Michael


Pues ya sabiendo todo esto, pongámonos manos a la obra. En nueve sencillos pasos podremos tener instalado todo el sistema.


PASO 1: Instalar Octave3.2 desde el repositorio
En este punto os aconsejo seguir el artículo ya publicado en este blog que se indica más arriba.

PASO 2: Crear carpeta para las fuentes en ~/fuentes
Crearemos una carpeta de fuentes en $HOME en donde bajaremos todo lo necesario para compilar nuestras aplicaciones.


PASO 3: Descargar Open MPI 1.3.3 de la página oficial
Como existen diversas versiones de Open MPI, nos aseguraremos de descargar aquella que funciona correctamente según las especificaciones para openmpi_ext.

cd fuentes
wget http://www.open-mpi.org/software/ompi/v1.3/downloads/openmpi-1.3.3.tar.bz2


PASO 4: Descomprimir Open MPI 1.3.3
Descomprimimos el archivo tar.bz2 del siguiente modo:
tar xfjv openmpi-1.3.3.tar.bz2


PASO 5: Descargar openmpi_ext de SourceForge
Ahora podemos pasar a descargar la extensión de octave openmpi_ext :
wget "http://octave.svn.sourceforge.net/viewvc/octave/trunk/octave-forge/extra/openmpi_ext.tar.gz?view=tar" -O openmpi_ext.tar.gz
Necesitamos estas fuentes ya que son las que hacen que Octave funcione con MPI. Es una toolbox de Octave basada en MPITB desarrollada por Javier Fernández Baldomero.

PASO 6: Descomprimir openmpi_ext
Descomprimimos el archivo tar.gz del siguiente modo:
tar xfzv openmpi_ext.tar.gz


PASO 7: Compilar Open MPI 1.3.3
Llegados a este punto nos ponemos a compilar:

cd openmpi-1.3.3 ; echo "Ahora estamos en : "$(pwd)
make clean
./configure --enable-mpirun-prefix-by-default --prefix=$HOME/openmpi-1.3.3/ --enable-static --enable-orterun-prefix-by-default
make install all

PASO 8: Modificar .bashrc con rutas necesarias
Es necesario que los binarios del Open MPI 1.3.3 que se acaban de compilar estén incluidas en la ruta (PATH) ya que sino no compilará correctamente el openmpi_ext.Esto lo podreis ver en el archivo ~/fuentes/openmpi_ext/doc/README.Modifica el .bashrc de tu $HOME:
 OMPIBIN=`$ompi_info -path     bindir  -parsable | cut -d: -f3`
 OMPILIB=`$ompi_info -path     libdir  -parsable | cut -d: -f3`
 OMPISCD=`$ompi_info -path sysconfdir  -parsable | cut -d: -f3`


export            PATH=$OMPIBIN:$PATH


export LD_LIBRARY_PATH=:$OMPILIB:$LD_LIBRARY_PATH


unset  ompi_info OMPIBIN OMPILIB OMPISCD


Antes de compilar openmpi_ext deberás salir de la shell y volver a entrar para que tomen efecto los cambios (al más estilo MS Windows) o usar el siguiente comando:
source .bashrc
y no hará falta que salgas de tu sesión (al más estilo GNU/Linux)

PASO 9: Compilar openmpi_ext

Antes de continuar con este paso, quiero aprovechar para dar las gracias a Michael Creel y Riccardo Corradini por su ayuda en este paso. Entre los tres encontramos el porque inicialmente no me compilaba correctamente el openmpi_ext dándome este error cuando queria usar el MPI_Init:
 
octave:1> MPI_Init
error: /home/csi/ompi_ext/MPI_Init.oct: undefined symbol: _ZN3MPI3Win4FreeEv


El error lo encontramos en el Makefile del openmpi_ext usaba mpicc en vez de mpiCC, y por tanto, la libreria -lmpi_cxx no se incluía correctamente, faltándole el símbolo_ZN3MPI3Win4FreeEv de arriba. Puedo decir que me siento satisfecho de haber podido ayudar a mejorar el código para su compilación.

Para compilar openmpi_ext haremos:
cd $HOME/fuentes/openmpi_ext/src
make clean
make
Ahora podemos probar si funciona entrado en la carpeta en donde se ha compilado el openmpi_ext y ejecutando el octave. Una vez arrancado hacemos MPI_Init y veremos que nos devuelve 0, es decir, que todo ha ido bien.

ans = 0

Todos estos pasos se pueden automatizar perfectamente. He realizado un script que puede ayudaros. Funciona perfectamente en Ubuntu 9.10, si bien no deberia haber ningún problema para cualquier otra distribución.
Para ejecutar el archivo, descomprimirlo y usad:
source ./instala_hpc.sh. 
El programa os descargará todos los paquetes necesarios, los descomprimirá, compilará y añadirá en los PATHs necesarios. Simplemente hará que todo el proceso sea más fácil. La última prueba realizada realizó exitosamente todos los pasos en 20 minutos.
ans = 0

Se ha tardado en instalar el sistema HPC 1215 segundos.

Para especificar los nodos que deberá usar el master, deberemos editar un archivo de nodos y decirle al entorno (environment) que ese archivo es el que queremos usar por defecto. Sino creamos ningún archivo de nodos deberemos especificar los nodos en cada comando que ejecutemos, ya que sino no sabrá cuales son los nodos de nuestro sistema. Sería una opción, pero vamos a crear el archivo y luego cada cual es libre de usarlo o no. El archivo de configuración de nodos suele ser openmpi-default-hostfile y siguiente el ejemplo de nuestra instalación lo encontraremos en $HOME/openmpi-1.3.3/etc/openmpi-default-hostfile. Este archivo tiene su interior comentado por defecto y seremos nosotros los que añadamos los nodos manualmente, dejándolo en cada caso como corresponda. Por ejemplo:


hpcmaster
hpcnode1
hpcnode2 slots=2
hpcnode3

En el ejemplo vemos que tenemos el master y 3 nodos. El nodo hpcnode2 tiene dos cores, y por ello podremos contar con los dos.
Una vez editado nuestro archivo de nodos le diremos al entorno dónde se ubica dicho archivo:
export OMPI_MCA_orte_default_hostfile=$HOME/openmpi-1.3.3/etc/openmpi-default-hostfile
Para comprobar que lo hemos realizado correctamente podemos hacer:







ompi_info --param all all | grep hostfile

Perfecto. Ahora que ya tenemos el hpcmaster preparado, deberemos instalar los n nodos. Para ello necesitamos instalar exactamente las mismas versiones de Octave, Open MPI y openmpi_ext que en hpcmaster, así que o repetimos la operación anterior (recordad que mediante el script son sólo 20 minutos) o bien lo hacemos a mano o bien copiamos las carpetas ya compiladas en los nodos, ya que las versiones serán las mismas no habrá ningún problema. Lo único que no hará falta es especificar el archivo de nodos en los nodos, ya que los procesos se arrancarán desde el hpcmaster.

Una vez configurados los nodos, podremos hacer pruebas:

mpirun -np 8 uptime

En próximos artículos explicaré como hacer pruebas en donde podremos comprobar como el rendimiento de nuestros cálculos se mejora considerablemente.

Si ahora aplicais lo que vimos en el artículo de  Como hacer un Ubuntu Diskless (funcionando sin HD local) (Publicado el 9 de Febrero de 2010)  pues tendríamos un HPCMaster que haría de servidor de disco en donde los sistemas de archivo de los nodos estarian guardados y N nodos sin disco, pero con CPU, que es lo que nos interesa.

La imagen de un rack de nodos podría ser como esta:

En la imagen se ven los 25 nodos que yo usé para realizar este artículo. Existen algunos conceptos extra como los Power Switch, refrigeración, etc que se pueden tener en cuenta, pero dichos conceptos extra serán explicados en próximos artículos.

Espero que os haya servido de ayuda.

viernes, 19 de febrero de 2010

Mozilla Firefox 3.6.2pre en español

Para poner nuestro Firefox 3.6.2 en castellano (o en catalán, etc) simplemente necesitamos el paquete de lenguaje adecuado.



Así pues en esta URL :

http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-firefox-3.6.x-l10n/firefox-3.6.4pre.es-ES.langpack.xpi


instalaremos el complemento de idioma para castellano.



 

Y después deberemos reiniciar nuestro Firefox


 


Ahora ya lo tenemos en el idioma que deseemos.

jueves, 18 de febrero de 2010

Crear un sistema de cuotas en Ubuntu

Si queremos que los usuarios de nuestro sistema no consuman más recursos de los disponibles resulta indispensable habilitar un límite de ocupación de espacio en el disco duro. Esto es lo que se conoce como cuotas de disco y en unas pocas líneas os voy a explicar cómo es posible configurar un límite de utilización del disco en Ubuntu GNU/Linux


Instalar la característica de control de cuotas
Podemos hacerlo gráficamente o mediante linea de comandos. El paquete que ten
Publicar entrada
emos que instalar es uno llamado quota.

apt-get install quota
Una vez instalado el paquete, ya podremos indicarle al sistema las particiones en las que aplicaremos las cuotas editando /etc/fstab y añadiendo las opciones usrquota,grpquota

#

/dev/hda5 /home ext3 defaults,usrquota,grpquota 0 2

Llegados a este punto podríamos decir que ya tenemos un sistema de cuotas de disco instalado.  Ahora nos faltaría configurarlo de manera adecuada para que cada usuario del sistema tenga las limitaciones que deseemos. Esto se controla mediante unos archivos de control.


touch /home/quota.user /home/quota.group
chmod 600 /home/quota.*
mount -o remount /home
Con las tres lineas anteriores hemos creado los archivos de control y hemos remontado la partición /home para que estos archivos entren en funcionamiento cuando se inicie el control de cuotas. Para iniciarlo deberemos hacer:
quotacheck -avugm


La primera vez obtendremos un aviso del tipo...
quotacheck: WARNING - Quotafile //quota.user was probably truncated. Can't save quota settings... quotacheck: WARNING - Quotafile //quota.group was probably truncated. Can't save quota settings...
no hay que preocuparse.
Ahora el comando

quotaon /home
Activa finalmente la cuota.


Ahora ya tenemos totalmente activo el sistema de cuotas, aunque sin restricción para ningún usuario. Es el momento de editar la cuota de los usuarios. Antes de nada deberíais saber que existen dos tipos de cuota:
  • Cuotas rígidas: no será posible superar el límite y será negado el acceso.
  • Cuotas flexibles: se pueden superar y el usuario sólo recibirá un aviso de límite excedido. Tras un período de gracia - por defecto 7 días, configurable por partición - la cuota se volverá rígida.
Manos a la obra, en teoría sólo root puede hacer esto y el comando es el siguiente:


edquota -u usuario
Con ello se nos motrará un archivo con diferentes campos:
entonces se nos mostrará una serie de registros con los siguientes campos:
  • Filesystem (el sistema de archivos en el que se aplica la cuota)
  • blocks (el número de bloques máximo a ocupar. 0 = ilimitado)
  • soft (el número de KB máximo a ocupar para cuota flexible. 0 = ilimitado)
  • hard (el número de KB máximo a ocupar para quota rígida. 0 = ilimitado)
  • inodes (el número de archivos máximo. 0 = ilimitado)

Editando nuestras preferencias y guardando, las limitaciones para el usuario en cuestión quedan activadas. También podemos tomar como modelo a otro usuario ya existente copiando de uno a otro las mismas restricciones:

edquota -p usuariomodelo usuario
Evidentemente, como en casi toda la administración de un sistema GNU/Linux, luego la imaginación de cada adminitrador hace el resto:
edquota -p user1 `gawk -F: '$3 > 499 {print $1}' /etc/passwd`

 Con esto prácticamente habríamos acabado. Antes de darlo por finalizado, me gustaría hablaros del  /etc/warnquota.conf que nos servirá para automatizar un mensaje de correo electrónico para avisar a los usuarios de que estan infringiendo alguna restricción de cuotas:

  • FROM: Nombre con el cual el usuario recibirá el correo, entrecomillado. Regularmente el nombre del administrador del sistema, o simplemente “Administrador de Sistemas”
  • SUBJECT: Tema con el cual se enviará el correo. Entrecomillado.
  • CC_TO: Dirección de correo a quien enviarle copia del mensaje. Regularmente, al administrador del sistema para que esté informado del evento
  • MESSAGE: Mensaje a enviar. El caractér “|” realiza un retorno de carro, haciendo que el texto quede en una nueva línea del mensaje
  • SIGNATURE: Firma del administrador
  • GROUP_MESSAGE: Mensaje a enviar en caso de cuotas de grupo
  • GROUP_SIGNATURE: Firma del administrador hacia el grupo
 Con todo lo anterior ya tendreis lo necesario para empezar a usar el sistema de cuotas de disco.

miércoles, 10 de febrero de 2010

GNU Octave en Ubuntu 9.10

Octave o GNU Octave es un programa libre para realizar cálculos numéricos. Como indica su nombre es parte de proyecto GNU. MATLAB es considerado su equivalente comercial. Entre varias características que comparten se puede destacar que ambos ofrecen un intérprete permitiendo ejecutar órdenes en modo interactivo. Nótese que Octave no es un sistema de álgebra computacional como podría ser Maxima, sino que usa un lenguaje que está orientado al análisis numérico.

El proyecto fue creado alrededor del año 1988 pero con una finalidad diferente: Ser utilizado en un curso de diseño de reactores químicos. Posteriormente en el año 1992, se decide extenderlo y comienza su desarrollo a cargo de John W. Eaton. La primera versión alpha fue lanzada el 4 de enero de 1993. Un año más tarde, el 17 de febrero de 1994 aparece la versión 1.0.
El nombre surge del nombre de un profesor de unos de los autores conocido por sus buenas aproximaciones por medio de cálculos mentales a problemas numéricos.

(Fuente Wikipedia)

Los paquetes que componen el Octave3.2 son:
  • octave3.2 - GNU Octave language for numerical computations (3.2 branch)
  • octave3.2-common - architecture-independent files for octave3.2
  • octave3.2-dbg - Debug symbols for octave3.2
  • octave3.2-doc - PDF documentation on the GNU Octave language (3.2 branch)
  • octave3.2-emacsen - Emacs support for the GNU Octave language (3.2 branch)
  • octave3.2-headers - header files for the GNU Octave language (3.2 branch)
  • octave3.2-htmldoc - HTML documentation on the GNU Octave language (3.2 branch)
  • octave3.2-info - GNU Info documentation on the GNU Octave language (3.2 branch)
Así pues, para instalarlo sólo necesitamos poner (se podría hacer en una linea):
sudo apt-get install octave3.2 octave3.2-common octave3.2-dbg
sudo apt-get install octave3.2-doc octave3.2-emacsen octave3.2-headers
sudo apt-get install octave3.2-htmldoc octave3.2-info
En definitiva, tendréis instalada una calculadora científica muy potente. Se encuentran ejemplos fácilmente en la red y cursos.

Enlaces de interés:

martes, 9 de febrero de 2010

Como hacer un Ubuntu Diskless (funcionando sin HD local).

Una estación de trabajo sin disco, computador sin disco, nodo sin disco, o cliente híbrido, es una estación de trabajo o computador personal sin unidades de disco, que emplea el arranque por red (network booting) para cargar su sistema operativo desde un servidor. También puede decirse que una computadora actúa como estación de trabajo sin disco, si sus discos no son usados y se usa el arranque por red.


Las estaciones de trabajo sin disco (o las computadoras que actúan como tales) son a veces conocidas como las computadoras de red o clientes híbridos. El cliente híbrido puede simplemente significar una estación de trabajo sin disco, o puede ser usado en un sentido más particular para indicar a una estación de trabajo sin disco que corra remotamente algunas, pero no todas, las aplicaciones, como en la arquitectura computacional de cliente ligero.
Las ventajas de los nodos sin disco pueden incluir un costo de producción más bajo, costos de funcionamiento más bajos, una operación más silenciosa, y ventajas de manejabilidad (por ejemplo, una instalación de software manejada centralmente).
Una vez más, por razones de la manejabilidad, en muchas universidades y en algunas organizaciones grandes, las PC son usadas en una configuración similar, con algunas o todas las aplicaciones almacenados remotamente pero ejecutadas localmente. Sin embargo, éstos no son estaciones sin disco si todavía se cargan (boot) desde un disco duro local.

(Fuente wikipedia)


Los conceptos que deberíamos tener claros son:
Se recomienda dominar esos dos conceptos ya que se darán por sabidos para la explicación del sistema diskless. Sino sabemos crear un servidor PXE o instalar un servidor NFS, será muy complicado poder montar un sistema diskless como el propuesto a continuación.


Crear un sistema diskless

Lo primero que vamos ha hacer es que los nodos puedan arrancar sin disco duro local. El sistema de archivos lo montaran en el arranque por NFS y se encontrará en el servidor maestro (HPCMaster). Así pues, lo que vamos ha hacer es instalar en una máquina el sistema operativo para la máquina que llamaremos HPCMaster y en otra máquina instalaremos (en local también, ya le sacaremos el disco duro local luego) otro sistema operativo. Antes de empezar la instalación tomaremos las decisiones necesarias sobre que IPs tendrá el servidor (y si hiciera falta en que VLANs estaría) y que rangos de IPs usaremos para los nodos. Para nuestra instalación y el ejemplo siguiente usaremos estos datos:
  • HPCMaster
    • IP HPC = 192.168.0.100
    • IP del Centro = DHCP del Centro (Así pues estará conectado a la VLAN DHCP)
  • HPC Nodos
    • Rango de IPs = 192.168.0.1 al 192.168.0.49
Otra decisión que vamos a tener en cuenta es donde vamos a crear las carpetas con los sistemas de ficheros que leeran los nodos. Para nuestro ejemplo vamos a usar:
/HPC/nfsroot_nodeX
en donde la X será el número del nodo.


Instalación del sistema operativo HPCMaster
Para instalar el servidor de nuestro sistema HPC usaremos una distribución XUbuntu 9.10 ya que nos ofrece las ventajas de una distribución basada en Debian/Ubuntu, pero con un entorno de escritorio Xfce, caracterizado por ser muy eficiente ya que es más ligero y rápido que otros entornos como GNOME o Plasma (KDE).

Nos ha interesado instalar un entorno gráfico para una administración más cómoda de nuestro sistema HPC.
Instalaremos XUbuntu por defecto, si bien le diremos que será un servidor SSH. (Esto no es necesario ahora, pero de no hacerlo ahora lo deberemos hacer más tarde).
Al finalizar la instalación, desinstalaremos todo aquello que no nos interese tener, como el NetworkManager (nos daba problemos con el autorranque del servicio DHCP), el AppArmor o los juegos. Después actualizaremos el servidor. Deberemos comprobar también que tenemos instalados los paquetes syslinux (que usaremos como bootloader para el PXE) y initramfs-tools ( herramientas para crear y arrancar un sistema de inicio initramfs empaquetado para un kernel), ya que los necesitaremos más adelante para el arranque de los nodos en PXE. Desisntalaremos el network-manager para tener más control de la gestión de la red.

Instalación del sistema operativo en HPCNodo
Hay diferentes maneras de crear un nodo para que arranque con PXE y use el disco duro via NFS. La manera que se ha escogido para nuestro sistema es hacer una instalación de Ubuntu 9.10 Server 32bits en el nodo, usando temporalmente un disco duro local. Una vez instalado el sistema como habitualmente se haría en un PC, haremos la transferencia el sistema de archivos al servidor maestro (que hace de servidor NFS en nuestro caso, podría ser otro servidor diferente si así lo necesitáramos), que es el que contendrá es sistema de archivos de todos los nodos.Para ello necesitamos instalar las herramientas necesarias para conectarnos a una unidad NFS. Desisntalaremos el network-manager para tener más control de la gestión de la red.

Traspasar sistema de archivos de HPCNodo a HPCMaster
Dado que los nodos no dispondrán de disco duro, necesitaremos un espacio en donde poder albergar nuestro sistema operativo, ya que no se trata de un sistema HPC con nodos usando LiveCD. Por ello lo que haremos es traspasar el sistema de archivos de los nodos a otro disco duro físico, que en nuestro caso será el HPC Master (podria ser otro servidor de disco).

  • Conectar via NFS 
Para conectar via NFS entre los nodos y el servidor de disco HPC Master deberemos instalar los paquetes necesarios y configurar el HPC Master para que exporte la carpeta adecuada para cada nodo

NFS en HPCMaster:
/HPC/nfsroot_node1 192.168.0.1(rw,no_root_squash,async)

 Luego ejecutamos sudo exportfs -a y ya habremos empezado a exportar la carpeta /HPC/nfsroot_node1 para la IP 192.168.0.1

NFS en HPCNode
sudo mkdir /mnt/nfs
sudo mount -t nfs -onolock 192.168.0.100:/HPC/nfsroot1 /mnt/nfs
Ahora ya tenemos la posibilidad de copiar todo el sistema de archivos a HPCMaster, pero antes copiaremos nuestro kernel al home y crearemos un initrd.img tambien en el home para que cuando hagamos la transferencia de archivos via NFS ya tengamos todo lo necesario en HPCMaster (ya que tanto el kernel como el initrd.img lo necesitará el TFTP de HPCMaster para que arranque el nodo).

Guardamos el kernel en uso del Nodo

cp /boot/vmlinuz-`uname -r` ~

Con esto lo habremos copiado al homedir del usuario del nodo

Generar un nuevo initrd

El disco RAM inicial o initrd, por sus siglas en inglés es un sistema de archivos temporal usado por el núcleo Linux durante el inicio del sistema. Es usado típicamente para hacer los arreglos necesarios antes de que el sistema de archivos raíz pueda ser montado. En nuestro caso querremos que esté preparado para poder arrancar un sistema de archivos montado via NFS (y no en local como es lo habitual), con lo cual tendremos que crearlo con los módulos necesarios.
Cambiamos las siguientes opciones en el archivo /etc/initramfs-tools/initramfs.conf:
BOOT=nfs
MODULES=netboot
Ahora creamos la imagen dentro del home con el siguiente comando:
mkinitramfs -o /home//initrd.img-`uname -r` 
Copiar archivos:

Ahora que tenemos todos los archivos que necesitaremos para arrancar via NFS podemos copiarle todo el sistema de archivos en HPCMaster:
sudo cp -ax /. /mnt/nfs/.
sudo cp -ax /dev/. /mnt/nfs/dev/.
Ahora ya tendremos los archivos copiados en HPC Master y sólo nos faltará arrancar el nodo en red para que el HPC Master le sirva el sistema mediante PXE. Para ello tenemos que tener montado el sistema PXE en HPC Master.

Una vez instalado (junto a sus dependencias), ya podemos configurarlo correctamente mediante el archivo /etc/dhcp3/dhcpd.conf

#Configuration for the HPC Linux Server
subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.1 192.168.0.49;
 option subnet-mask 255.255.255.0;
 option broadcast-address 192.168.0.255;
 option routers 192.168.0.100;
 filename "pxelinux.0";
}

#HPC Node groups
group {
# option dhcp-class-identifier "PXEClient";
 next-server 192.168.0.100;

 host node1 {
 hardware ethernet 00:11:2f:ca:bb:29;
 fixed-address 192.168.0.1;
 }

 host node2 {
 hardware ethernet 00:0f:ea:54:21:4b;
 fixed-address 192.168.0.2;
 }
}
Con filename le indicamos el archivo de arranque inicial, que en nuestro caso será el pxelinux.0 (que viene con el paquete syslinux) el cual sería el equivalente a GRUB pero en red. Por otro lado se ha creado un grupo para configurar los diferentes nodos y asignarles una IP según su dirección MAC.


Ahora ya podemos configurarnos nuestro espacio tftp para el arranque en red:
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
y cambiamos /var/lib/tftpboot/pxelinux.cfg/default
LABEL linux
KERNEL vmlinuz-2.6.31-14-generic-pae
APPEND root=/dev/nfs initrd=initrd.img-2.6.31-14-generic-pae nfsroot=192.168.0.100:/HPC/nfsroot_node2 ip dhcp rw
 
 



Enlaces de interes:

jueves, 4 de febrero de 2010

Avatar fue desarrollado con 4.000 servidores GNU/Linux

Avatar, la película más reciente de James Cameron, nos ha sorprendido por sus espectaculares efectos especiales. Lo que la gente no sabe es que todo esto ha sido desarrollado con 40.000 procesadores y 104 Terabytes de RAM en más de 4.000 servidores con GNU/Linux.

La empresa que está detrás de todo esto se llama Weta Digital, una compañía con sede en Wellington, Nueva Zelanda, que ya lleva un tiempo dando de que hablar en la industria cinematográfica. Weta Digital ha trabajado con los principales estudios para desarrollar producciones como El Señor de los Anillos, Yo Robot, Eragon y King Kong.
La empresa ha construido un gran Data Center, necesario para desarrollar los efectos especiales que muchos ya han visto. Este Data Center está compuesto por 4.352 servidores HP Proliant BL2×220c G5 Blade con GNU/Linux, que sumados componen un total de 40.000 procesadores y 104 Terabytes de RAM. Todos los servidores se encuentran conectados mediante fibra óptica a un sistema de almacenamiento de 3 Petabytes de BluArc y NettApp.
Para controlar las altas temperaturas producidas por esta gran cantidad de máquinas funcionando se desarrolló un sistema de refrigeración con agua, ya que los sistemas convencionales de pisos elevados y refrigeración por aire no pudieron controlar el calor constante producido por las máquinas al momento de desarrollar Avatar. Además este nuevo sistema permitió ahorrar un 40% en los costos de refrigeración del Data Center.

(Fuente http://www.fayerwayer.com/)

miércoles, 3 de febrero de 2010

Instalar un servidor FreeNX en Ubuntu 9.10 (Karmic Koala)

NX es un programa informático que realiza conexiones remotas X11 muy rápidas, lo que permite a los usuarios acceder a escritorios remotos de Linux o Unix incluso bajo conexiones lentas como las realizadas con módem.
NX realiza una compresión directa del protocolo X11, lo que permite una mayor eficiencia que VNC. La información se envía mediante SSH, por lo que toda la información que se intercambian servidor y cliente está cifrada.
Al cliente que se conecta al servidor NX se le considera cliente liviano.
NX está desarrollado por la empresa italiana NoMachine, que ha liberado el código. Existe una implementación libre del servidor de esta aplicación, llamada FreeNX que es la que voy a explicar. El cliente podéis usar el de NoMachine.

(Fuente wikipedia)

Esto nos ofrece muchas ventajas ya que podemos tener en nuestra empresa un servidor con GNU/Linux en donde los usuarios accedan para tener su própia shell. Imaginémos este escenario:



Podemos ver como usuarios que usan un sistema operativo diferente de GNU/Linux pueden acceder a un ordenador con Linux y darles la sensación de que lo tuvieran instalado en su propio PC. De esa manera, podrían llegar a usar dos o x sistemas operativos, según sus necesidades.

Otra ventaja es que usa el puerto ssh, el cual es seguro y conocido. Eso nos permite tener pocos problemas con los cortafuegos:



Para instalar FreeNX basta seguir estos pasos:
sudo add-apt-repository ppa:freenx-team
sudo apt-get update
sudo apt-get install freenx
sudo /usr/lib/nx/nxsetup --install

Ante la pregunta que os hará en el último paso yo recomiendo para no liaros dejar la respuesto por defecto, que es N.

Tambien podeis hacer todos estos pasos en una linea, separando cada paso por ; . Así pues:

sudo add-apt-repository ppa:freenx-team ; sudo apt-get update ; sudo apt-get install freenx ; sudo /usr/lib/nx/nxsetup --install

Copiando y pegando esta linea ya tendreis instalado el freenx. Hay otras maneras, incluso gráficas, pero esta es la más rápida (copiar y pegar una linea no es muy dificil ¿verdad?).

martes, 2 de febrero de 2010

jDownLoader para Ubuntu


jDownloader es un gestor de descargas de código abierto, escrito en Java, que permite la descarga automática de archivos y archivos divididos de sitios de alojamiento inmediato como Rapidshare y Megaupload. Los enlaces de descargas especificadas por el usuario son separados en paquetes para permitir pausar y continuar las descargas individualmente. Opcionalmente, los archivos RAR divididos son extraídos automáticamente después de la descarga. jDownloader soporta el tiempo de espera de Rapidshare y reconocimiento de captcha, permitiendo lotes de descargas sin intervención del usuario.

(Fuente Wikipedia)



Para instalar jDownloader en Ubuntu deberemos:

  • Instalarse mediante Synaptic o por consola los paquetes Java:
sun-java6-bin
sun-java6-jre
sun-java6-plugin

  • Descomprimir el archivo descargado donde deseemos. Por ejemplo en /home/tuusuario/jDownloader (en donde tuusuario es tu nombre de usuario).

Con estos dos pasos realmente ya esta instalado el programa (en realidad no necesita instalación). Podemos ejecutarlo de dos maneras, por consola o graficamente. Si lo queremos hacer gráficamente daremos con el botón derecho encima del archivo jDownLoader.jar y veremos algo parecido a esto:


Y si seleccionamos la opción de Sun Java Runtime se ejecutará sin problemas. Si tienes instalado el OpenJDK en vez del Sun Java lo puedes usar también sin problemas. Si quereis ejecutarlo por consola teneis que hacer lo siguiente:


java -jar JDownloader.jar
Sencillo ¿no?. Bien, pues si quereis también podeis hacer lo mismo mediante un lanzador (icono) en el escritorio. Apretad botón derecho en el escritorio y vereis esto:


Y si seleccionamos Crear un lanzador podremos introducir los datos para ejecutar nuestro jDownLoader:


En donde pone comando se ha de poner:
java -jar /home/tuusuario/jDownloader/JDownloader.jar
tal y como hemos visto más arriba.

Si veis, también he cambiado el icono. Si os descargáis algún png simplemente con pinchar al png y arrastrarlo encima del espacio para cambiar iconos, éste se cambiará al que habéis elegido.

Aquí os dejo 3 pngs por si os sirvieran:



That u don't know what you've got 'til it's gone