Está en la página 1de 6

1. Se descargo el archivo.

iso de debian 8 para ser instalados en la VM (Maquina virtual)


2. Se hizo la instalacion normal del SO Debian Jessie
3. Fueron configuradas todas las maquinas virtuales para que funcionen en red, normalmente estas
vienen por defecto configuradas para funcionar con NAT, sera cambiado este a Adaptador
Puente, tal como es mostrado en la figura

Nota:
NAT: Permite funcionalidad bsica desde el sistema operativo Husped. Navegar por internet
acceder al correo, descargar ficheros. Tiene bastantes limitaciones si tenemos que establecer
conexiones con la mquina virtual.
Adaptador Puente: Simula una conexin fsica real a la red, asignando una IP al sistema
operativo husped. Esta IP se puede obtener por DHCP o directamente configurndola en el
Sistema Operativo husped.
En nombre, se coloco wlan0 ya que la conexin a internet con la que contamos en mediante una
red wifi.

Para mas informaion de los tipos de conexin de red que ofrece la VM Virtual Box ingresar a:
https://www.adictosaltrabajo.com/tutoriales/virtualbox/

4. Se identifican las direcciones ip de cada nodo (maquina anfrition y esclavos) , seguidamente se


configura el archivo de hosts asignandole un nombre a estos, ya que facilitara el comunicarse entre las
maquinas (porque no hay que escribir la ip si no el nombre que le corresponda) [figura 2]. En estos
casos las ip con las que se cuenta son las siguientes:
maestro: 192.168.1.102
esclavo1: 192.168.1.109

Nota:
Para determinar que direccion ip : $ ip r
Para modificar el archivo de hosts : # nano /etc/hosts

5. Es recomendable la creacion de un nuevo usuario para mantener las configuraciones simples, estos
deben ser creados con el mismo nombre para mayor facilidad de trabajo, para esta practica el usuario
tendra por nombre cnti (figura3).
Nota:
Para la creacion de usuarios se utiliza el siguiente comando: # adduser nombreuser; se agrega
un nombre, una clave cualquiera y los demas campos se dejan vacios, al final se aceptan todos
los datos como correctos.
Para cambiar de usuario se utiliza: $ su nombreuser

6. se hace la instalacion del siguiente paquete openssh-server para permitir la comunicacin de los
equipos mediante la red.
Nota:
Comando a utilizar: # apt-get install openssh-server

7. Realizado el paso anterior, dado que el servidor ssh ya est instalado, es posible iniciar sesion a
otrras maquinas mediante el nombre de usuario ssh @ hostname, en el que se le pedir que introduzca
la contrasea del nombre de usuario, tal como es mostrado a continuacion.

Nota:
Para permitir un inicio de sesin ms fcil, generamos claves y las copiamos en la lista de otras
mquinas de authorized_keys.
Comando para generar la clave: ssh-keygen -t dsa
en el esclavo se crea una carpeta en la que se guardara la clave y se le da permiso de acceso a
esta:
generar carpeta: mkdir carpeta
permiso: chmod 700 carpeta
Comando para copiarla en las otras maquinas: scp .ssh/id_rsa.pub erluco@192.168.0.101:
Importante colocar los : que estan al final
tal como se ve en la imagen se dejan en blanco el direcctorio y los nombres de paso.
Realizado el paso anterior, se copia la llave y lo ubica en el archivo correcto, como se hace en el
siguiente comando: cnti@esclavo:~$ mv id_rsa.pub .ssh/authorized_keys

Generar clave

Nota: si quieres comprobar si tus pasos se realizaron correctamente, simplemente debes escribir el
siguiente comando:
$ ssh maquinaanfitrion@ip_esclavo hostname
y aparecera, como respuesta el nombre de la maquina a la que se esta coonectando.

8. Para poder intercambiar datos maestro-cliente, es necesario un directorio compartido a travez de


NFS.
Nota:
Se instala en el maestro lo siguiente: $ apt-get install nfs-kernel-server
seguidamente se crean tanto en el esclavo como maestro un nuevo directorio que servira para la
transferencia de datos el cual sera exportado.
Se modifica el archivo de exportacion, utilizando el siguiente comando
# nano /etc/exports.
Se exporta con: export -a
y se agrega la siguiente linea:
/home/usuario/directoriocreado *(rw,sync,no_root_squash,no_subtree_check), donde
Rw: Esto es para habilitar la opcin de lectura y escritura.
Ro es para lectura solamente.
Sync: Esto aplica cambios al directorio compartido slo despus de que se cometen
cambios.
No_subtree_check: Esta opcin impide la comprobacin del subrbol. Cuando un
directorio compartido es el subdirectorio de un sistema de archivos ms grande, nfs
realiza exploraciones de cada directorio por encima de l, para verificar sus permisos
y detalles. Deshabilitar la comprobacin de subrbol puede aumentar la
confiabilidad de NFS, pero reducir la seguridad.
No_root_squash: Esto permite que la cuenta root se conecte a la carpeta.
Luego reiniciamos el resvicio de NFS con el comando:
# /etc/init.d/nfs-kernel-server restart
en el cliente se instala:
sudo apt-get install nfs-common
se prueba si el directorio compartido es accesible desde el nodo anfitrion, paralo que se hace
lo siguiente: # showmount -e ip_maestro y debe responder
Export list for ip_maestro:
/home/usuario/nuevodirectorio *

ahora se monta el recurso para luego agregarlo a fstab para el montado automatico cada vez que
arranque el nodo.
# mount -t nfs maquina_anfitrion:/home/usuario/nuevodirectorio ~/nuevodirectorio
Para automatizar el proceso de montaje del recurso exportado en cada nodo esclavo del cluster
modificamos el archivo /etc/fstab , para lo cual se realiza:
#nano /etc/fstab y se agregan la siguiente linea:
maestro:/home/usr/nuevodirectorio /home/usr/nuevodirectorio nfs rw,sync,hard,intr 0 0

9. Por ultimo se modifica el entorno de desarrollo, dentro del nuevo directorio, hace un archivo de
configuracin llamado .mpi_hostfile en el home del usuario del nodo maestros
Nota:
hace creando un archivo de configuracin llamado .mpi_hostfile en el home del usuario erluco
del nodo maestros
nano .mpi_hostfile
con el siguiente contenido:
# Nodo maestro
localhost slots=2

# Nodos esclavos
nodo1 slots=2
nodo2 slots=1
se aade el siguiente contenido y se guarda.
# Nodo maestro
localhost slots=2

# Nodos esclavos
nodo1 slots=2
nodo2 slots=1
10. Corrida del codigo para probar el cluster, a continuacion el codigo fuente en C++ de un programa
que suma numeros primos, ver en pag http://montatucluster.blogspot.com/
Lo compilamos con el comando:
mpic++ primos.c++ -o primos
Esto nos dara como resultado el binario ejecutable del programa de prueba, se puede verificar
que gracias a la comparticion NFS este binaro se encuentra disponible tambien en cada uno de
los nodos que hemos agregado a nuestro cluster.

Ahora se procede a ejecutar y verificar su funcionamiento primero solo en el nodo maestro y


luego en todos los nodos del cluster.
Maestro : $ ./primos
distribuido en todos los nodos del cluster, para ello se va a usar la herramienta mpirun con
el parametro -np 5 con el que se le dce la cantidad de procesos a ejecutar.
$ mpirun -np 5./primos

También podría gustarte