Conociendo la terminología básica sobre clusters y habiendo formulado un diseño específico con OpenMosix, ahora se plantea la forma en que se lleva a cabo la implementación.
De una forma práctica, en este capítulo se explica la instalación de Suse Linux 9.0 de forma breve, puesto que se hace mayor énfasis en la instalación de OpenMosix.
Descripción de particiones del disco duro:
Los nodos con los que se trabajó son compartidos, es decir se utilizan tanto en ambientes Windows como en Linux y no son de uso exclusivo del cluster. En cada nodo se tiene instalado Windows XP Profesional, Suse Linux 9.3 Profesional y se instaló Suse Linux 9.0 Profesional para configurar el cluster OpenMosix, todo en un mismo disco duro, particionado de la siguiente forma para el nodo maestro y de manera similar para los nodos esclavos:
Se muestra con mayor detalle esta configuración con ayuda del comando fdisk:
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # fdisk -l Device Boot Start End Blocks Id System /dev/hda1 * 1 10199 81923436 7 HPFS/NTFS /dev/hda2 10200 10329 1044225 82 Linux swap /dev/hda3 10330 13853 28306530 83 Linux /dev/hda4 13854 14592 5936017+ 83 Linux
Las primeras tres particiones son de uso particular de los usuarios de las computadoras utilizadas, la cuarta partición es la que se usa para la instalación y configuración de OpenMosix.
Se hace la instalación estándar a través de red con el CD número uno de instalación y la herramienta de instalación y administración Yast la cual nos guiará haciendo las particiones necesarias, y se instalan los módulos de los controladores necesarios según el hardware con el que se cuenta; se utiliza como fuente de instalación el espejo (mirror) http://linux.iingen.unam.mx, donde se cuenta con los archivos fuente de instalación; también se puede hacer ésta con los 5 CDs de instalación de Suse 9.0.
Se hizo una configuración estática de direcciones IP, mascara de red, gateway y DNS para una red privada; en este caso, la configuración elegida fue de uso exclusivo del cluster, pues los usuarios de estos equipos no la usan para acceso a recursos de red, como impresiones, trabajo en grupo o Internet.
La actualización de los paquetes instalados se hace utilizando la herramienta YOU (Yast On Line Update), necesario para mantener seguro el sistema. Esta actualización se hace también por medio de la red del espejo mencionando.
En los nodos esclavos sólo se instala el kernel OpenMosix, las User Lan Tools y se configuran los nodos para que arranquen en nivel 3 (multiusuario sin modo gráfico) para mejorar el rendimiento de éstos en el cluster, pues no necesitan un ambiente gráfico para las aplicaciones de ventanas.
En el nodo maestro se instala el kernel OpenMosix, las User Lan Tools y las herramientas adicionales de administración y monitoreo (OpenMosixView); se configura para que arranque en nivel 5 (modo gráfico) y poder aprovechar las herramientas de monitoreo.
Ésta es la parte central del trabajo. Aquí se describe la forma de instalar el kernel o núcleo con el que funciona OpenMosix.
Comenzamos con la instalación del kernel openmosix-kernel-source-2.4.24-OpenMosix2.i386.rpm que soporta el sistema de archivos MFS.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # rpm -ivh OpenMosix-kernel-source-2.4.24-OpenMosix2.i386.rpm
El código fuente al instalar este rpm, lo coloca en /usr/src/linux-2.4.24-OpenMosix2, por lo que hay que cambiarse a esa ruta.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # cd /usr/src/linux-2.4.24-OpenMosix2
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # make mrproper
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # make xconfig
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # make dep
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # make rpm
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # rpm -ivh /usr/src/packages/RPMS/i586/kernel-2.4.24OpenMosix2-1.i586.rpm
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # mkinitrd
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] title Cluster OpenMosix 2.4.24 kernel (hd0,3)/boot/vmlinuz-2.4.24-OpenMosix2 root=/dev/hda4\ vga=0x31a splash=silent desktop hdc=ide-scsi hdclun=0 showopts initrd (hd0,3)/boot/initrd-2.4.24-OpenMosix2
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # vi /etc/fstab mfs_mnt /mfs mfs dfsa=1 0 0
Una vez instalado el kernel se procede a instalar las herramientas de administración User Land Tools; como requisito, es necesario tener instaladas las librerías ncurses, contenidas en los CDs de instalación de Suse 9.0.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # cd /usr/src/
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # ln -s linux-2.4.24-OpenMosix2 linux-OpenMosix
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # cd /root/srcCluster/toolsOM
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # rpmbuild --rebuild OpenMosix-tools-0.3.6-2.src.rpm
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # rpm -ivh /usr/src/packages/RPMS/i586/OpenMosix-tools-0.3.6-2.i586.rpm
Instaladas las herramientas de usuario, se procede a instalar las herramientas de monitoreo OpenMosixView:
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # cd /root/srcCluster/toolsOM # rpm -ivh openmosixview-1.5-redhat90.i386.rpm
Esta versión precompilada se obtuvo del sitio de internet http://www.openmosixview.com/ donde es mantenido este proyecto.
Después de terminar con la instalación del kernel y de las herramientas, procedemos a configurar el cluster.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # vi /etc/openmosix.map 1 192.168.1.1 1 2 192.168.1.2 1 3 192.168.1.3 1 4 192.168.1.4 1
Como se observa, la primera columna enumera las direcciones IP de los nodos que pertenecen al cluster (columna dos) y la última columna indica el número consecutivo de nodos que pueden pertenecer al cluster, pudiendo con esto hacer abreviaciones de configuración, es decir, la configuración anterior podría haberse escrito de la siguiente manera:
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # vi /etc/openmosix.map 1 192.168.1.1 4
Una vez terminada la configuración del cluster, sólo resta hacer una prueba de funcionamiento. Con el siguiente script en bash shell podemos hacer esta prueba. El funcionamiento de esta se basa en la ejecución de 10 tareas simultaneas. El programa no tiene ningún fin práctico, sólo es para probar la migración de los procesos en el cluster.
Para ejecutar el siguiente script, se escribe este código en un archivo llamado pruebaOM.sh y se ejecuta.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] #!/bin/bash #------------------------------------------------------- # DESCRIPCION: Script que lanza 10 tareas simultaneas. # Cada tarea itera en un ciclo doble de 10000 unidades. # El objetivo es probar que el cluster esta migrando las # tareas a los demás nodos #------------------------------------------------------- for x in 1 2 3 4 5 6 7 8 9 10 do awk 'BEGIN {for(i=0;i<10000;i++)for(j=0;j<10000;j++);}' & done
Para poder observar si los procesos están migrando, se utiliza el comando mosmon:
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # mosmon
Ahora se describe la instalación del compilador Intel, recordando que ya tenemos el compilador de código libre GNU/GCC, y que sin él no habríamos podido compilar los paquetes antes mencionados. Cabe mencionar que además del compilador comercial Intel existen otros como LAHEY y Portran Group.
Se instala el compilador de Intel debido a que es el que adquirieron investigadores del instituto, al observar algunas ventajas de este sobre GNU/GCC, LAHEY y el de Portran Group.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] linux:~/Intel # gunzip l_fc_p_9.0.021.tar.gz linux:~/Intel # tar -xvf l_fc_p_9.0.021.tar linux:~/Intel # cd l_fc_p_9.0.021
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] linux:~/Intel/l_fc_p_9.0.021 # more INSTALL.txt
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] linux:~/Intel/l_fc_p_9.0.021 #./install.sh
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.6] ====================================================== "Welcome to Installation" Please make your selection by entering an option: 1. "Intel(R) Fortran Compiler 9.0 for Linux*" - install 1a. Readme 1b. Release Notes 1c. Installation Guide 1d. Product Web Site URL 1e. Intel(R) Support Web Site URL x. Exit. Please type a selection : 1 ======================================================== Please select an option to continue: 1. Proceed with Serial Number to install and register. [Recommended] 2. Provide name of an existing license file. x. Exit. Please type your selection : 2 ========================================================= Please provide the license file name with full path (*.lic) x.Exit License file path : /root/Intel/noncommercial_for_l_NJ24-L2HSGXXP.lic ========================================================= Which of the following would you like to do? 1. Typical Install (Recommended - Installs All Components). 2. Custom Install (Advanced Users Only). x. Exit. Please type a selection: 2 Which of the following would you like to install? 1. Intel(R) Fortran Compiler for 32-bit applications, Ver 9.0 2. Linux Application Debugger for 32-bit applications, Ver 9.0 x. Exit. Please make a selection : 1 =========================================================== Intel(R) Fortran Compiler for 32-bit applications, Ver 9.0 ------------------------------------------------------------ Please carefully read the following license agreement. Prior to installing the software you will be asked to agree to the terms and conditions of the following license agreement. ------------------------------------------------------------- Press Enter to continue : ============================================================= Do you agree to be bound by the terms and conditions of this license agreement? 'accept' to continue, 'reject' to return to the main menu : accept ============================================================== Processing Intel(R) Fortran Compiler for 32-bit applications, Version 9.0 Values in [...] are the default values. You can just hit the Enter key where you want to use the default values. Where do you want to install to? Specify directory starting with '/'. [/opt/intel/fc/9.0]: /usr/local/Intel/9.0 ============================================================ Where do you want to install to? Specify directory starting with '/'. [/opt/intel/fc/9.0]: /usr/local/Intel/9.0 What rpm install options would you like? [-U --replacefiles --force]: ============================================================ Intel(R) Fortran Compiler for 32-bit applications, Ver 9.0 Installing... Installation successful. Press Enter to continue: ============================================================ Which of the following would you like to install? 1. Intel(R) Fortran Compiler for 32-bit applications, Ver 9.0 2. Linux Application Debugger for 32-bit applications, Ver 9.0 x. Exit Please make a selection:2 ============================================================ Values in [...] are the default values. You can just hit the Enter key where you want to use the default values. Where do you want to install to? Specify directory starting with '/'. [/opt/intel/idb/9.0]: /usr/local/Intel ============================================================ Where do you want to install to? Specify directory starting with '/'. [/opt/intel/idb/9.0]: /usr/local/Intel What rpm install options would you like? [-U --replacefiles --force]: ============================================================ ------------------------------------------------------------ Linux Application Debugger for 32-bit applications, Version 9.0 Installing... Installation successful. ------------------------------------------------------------ Press Enter to continue: ============================================================ Which of the following would you like to install? 1. Intel(R) Fortran Compiler for 32-bit applications, Ver 9.0 2. Linux Application Debugger for 32-bit applications, Ver 9.0 x. Exit Please make a selection:x ============================================================ "Installation is complete " Thank you for using Intel(R) Software Development Products, tools for improving application performance.
Se instalan también las librerías matemáticas del compilador Intel que serán necesarias para la ejecución de uno de los programas de un investigador del Instituto de Ingeniería.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] linux:~ \# cd Intel linux:~/Intel # ls l_fc_p_9.0.021 lib_Intel link_l_fc_p_9.0.021.txt l_fc_p_9.0.021.tar link1.txt noncommercial_for_l_NJ24-L2HSGXXP.lic linux:~/Intel/lib_Intel # gunzip *.gz linux:~/Intel/lib_Intel # tar -xvf *.tar linux:~/Intel/lib_Intel # cd l_mkl_p_7.2.1.003 linux:~/Intel/lib_Intel/l_mkl_p_7.2.1.003 # ls install mklEULA.txt
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] linux:~/Intel/lib_Intel/l_mkl_p_7.2.1.003 # ./install
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.6] Would you like to install the following? Intel(R) Math Kernel Library Version 7.2.1 <<Enter>> to continue, or x to exit: ================================================== Where do you want to extract temporary files to? Specify directory starting with '/' [/tmp/mkl]: =================================================== Intel(R) Math Kernel Library Version 7.2.1 --------------------------------------------------- Please read the following license agreement carefully.Prior to installing the software, you will be asked to agree to the terms and conditions of thefollowing license agreement. ---------------------------------------------------- Please press Enter to continue. =================================================== se lee toda la licencia =================================================== Enter 'accept' to continue, 'reject' to return to the main menu: accept ==================================================== extracting...... ==================================================== Where do you want to install to? Specify directory starting with '/'. [ /opt/intel ]: /usr/local/Intel Installing Intel(R) Math Kernel Library Version 7.2.1... ==================================================== Note: To uninstall the Intel(R) Math Kernel Library Version 7.2.1 run /usr/local/Intel/mkl721/uninstall.sh file. Intel(R) Math Kernel Library Version 7.2.1 was successfully installed. Press Enter to continue. ===================================================== <<Enter>> to continue, or x to exit: x =====================================================
Recordemos que las librerías LAM/MPI son necesarias para compilar códigos paralelos, en el capítulo siete se harán unas pruebas con estos tipos de códigos.
La versión con la cual se trabajo es LAM 7.1.1, 19-Julio-2005.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # cd /root/srcCluster/LAM
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # tar -jvxf lam-7.1.1.tar.bz2 # cd lam-7.1.1/
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # ./configure --with-rpi=tcp # make
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # make install
Un aspecto importante dentro de cualquier sistema informático es la seguridad lógica de este, y una vez instalado lo necesario para que funcione OpenMosix se procede con la configuración del firewall de los nodos, esto se hace configurando el archivo /etc/sysconfig/SuSEfirewall2.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # cd /etc/sysconfig/
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # vi SuSEfirewall2
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] $FW_TRUSTED_NETS="" Por: $FW_TRUSTED_NETS="192.168.1.1/24 192.168.1.2/24\ 192.168.1.3/24 192.168.1.4/24"
Las direcciones IP listadas son los nodos del cluster, con esto se logra una comunicación total entre los nodos con una relación de confianza y negando las conexiones entrantes a cualquier otro equipo no autorizado.
[fontfamily=courier,fontshape=it,fontsize=\small,baselinestretch=0.3] # SuSEfirewall2 stop # SuSEfirewall2 start
Para esta configuración del cluster se hace notar que se implementó un modelo de seguridad básica, pues se trabajó dentro de una red interna con direcciones IP privadas en la cual se supone no habría problemas de intrusiones. Idealmente un cluster dedicado debería de tener esta configuración en su red interna, pero si cuidar más de la seguridad del nodo maestro o nodo bastión, el cual normalmente es el que da la cara a las redes públicas.