Title: Installazione e Configurazione di un Sistema di Calcolo Distribuito operante sotto Linux
1Installazione e Configurazione di un Sistema di
Calcolo Distribuito operante sotto Linux
INFN Laboratori Nazionali FrascatiStage estivi
2006
Matteo Acciari Andrea Cervelli Guglielmo
Mascitelli Michael Petrongari Supervisione Fede
rico Ronchetti Angelo Viticchie
2 Installazione di Linux
- Linux e una versione di Unix (scaricabile
liberamente da Internet), molto usata in ambito
tecnico-scientifico. - Versione installata nei 4 computer di test a
nostra disposizione - RedHat Linux 9.0 - kernel 2.4.20-8
- Tipo di computer a disposizione
- processore Intel Pentium III
- da 256 a 768 MB di memoria RAM
- 15 o piu GB di spazio disco
- scheda di rete ethernet da 100 Mbit/s
- switch di rete da 100 Mbit/s
- connessione Internet
- Installazione del sistema operativo tramite
CDROM - partizione manuale del disco hda con disk druid
sistema (/) in hda1 e 512 MB di swap in hda2 - installazione del boot loader (grub) sullMBR.
- configurazione delle interfacce di rete ethernet
- aggiunta di un file di swap con dd, mkswap e
swapon
3La Shell di Linux
- La shell fornisce unainterfaccia utente per
- manipolare i files e le directories(ls, cp, mv,
rm, mkdir,.) - navigare il file-system(cd, ln, )
- controllare i processiin esecuzione (jobs, bg,
fg, ps, kill) - La shell e in se un linguaggio di
programmazione - I programmi (script) sono interpretati dalla
shell stessa e hanno le seguenti caratteristiche - I file e le directory sono considerati tipi di
dati nativi - si possono definire variabili (export, printenv)
- dispone di cicli di iterazione (while)
- dispone del controllo di flusso (if, case)
- La shell da noi usata e la bash shell (ne
esistiono anche altri tipi).
kernel
emacs
filesystem
4Il nostro Network
- I computer a disposizione sono stati suddivisi in
3 nodi worker (1 interfaccia di rete ) e 1 nodo
master (con 2 interfacce di rete). - una interfaccia per PC e stata collegata ad uno
switch isolato creando cosi una rete nascosta
del tipo 192.168.0.0. - Sul master abbiamo configurato anche una
interfaccia verso la LAN dei LNF - Abbiamo usato il file /etc/hosts per definire la
corrispondenza tra i nomi e gli indirizzi IP
scelti per i computer.
5I Servizi di Rete
- Lo schema del nostro sistema di calcolo prevede
una architettura client server. - La parte server e concentrata sul masternode
- La parte client e distribuita sugli workernodes
- Servizi del masternode
- login remoto lesecuzione di una shell attraverso
la rete) SSH (Secure SHell) - server utenti (andrea, guglielmo, matteo,
michael), NIS (Network Information Service) - server disco utenti (/home), NFS (Network File
System) - server Web, APACHE
- servizi di clustering (descritti in seguito)
- Processi client sui 3 workernodes
- validazione utenti dal masternode
- accesso al disco del masternode
6il Clustering
- Cosa e un cluster (aggregato) un gruppo di
computer che eseguono programmi cooperando tra
loro mediante la rete.
- Esistono diverse tecniche di clustering.
- Una delle piu comuni e quella del sistema di
code (batch system) - vantaggi semplice da installare, programmi
girano sul cluster senza modifiche
Il server mantiene una lista (coda) dei processi
(job) da eseguire Il worker riceve i processi
dal server e li esegue per conto dellutente
workernode1
Server (masternode)
mom
Utente 1
Utente 2
NETWORK
workernode2
job di utente 1
mom
PBS_server
workernode3
job di utente 1
job di utente 2
job di utente 2
mom
Coda (queue)
7(No Transcript)
81) creiamo la coda
2) creiamo uno script di prova
root_at_pcstage root qmgr Max open servers
4 Qmgr print server create queue workq set queue
workq queue_type Execution set queue workq
enabled True set queue workq started True
root_at_pcstage root more testpbs !/bin/sh testp
bs echo "This is a test script" echo Today is
date echo This is hostname echo The current
working directory is pwd echo The system kernel
is uname -a sleep 2m
3) Inviamo lo script alla coda
andrea_at_pcstage qsub testpbs
Una CPU per ogni worker
4) Guardiamo il contenuto della coda
pbsnodes -a workernode1 state free np
1 ntype cluster workernode2 state
free np 1 ntype
cluster workernode3 state free np
1 ntype cluster
root_at_pcstage root qstat -a masternode.stage.lnf
.infn.it
Req'd Req'd Elap Job ID
Username Queue Jobname SessID NDS TSK
Memory Time S Time --------------- --------
-------- ---------- ------ --- --- ------ ----- -
----- 11.masternode.s andrea workq testpbs
14797 1 -- -- -- R 0001 12.masternode
.s guglielm workq testpbs 14939 1 --
-- -- R 0001 13.masternode.s matteo workq
testpbs 3691 1 -- -- -- R
0001 14.masternode.s michael workq testpbs
-- 1 -- -- -- Q --
5) Riceviamo loutput dello script
-rw------- 1 andrea studenti 0 Jun 20
1003 testpbs.e9 -rw------- 1 andrea
studenti 314 Jun 20 1003 testpbs.o9
6) Verifichiamo che e stato effettivamente
eseguito sul worker
root_at_pcstage root more testpbs.o9 This is a
test script Today is Tue Jun 20 095650 CEST
2006 This is workernode3 The current working
directory is /home/andrea The system kernel is
Linux workernode3 2.4.20-8 1 Thu Mar 13 175428
EST 2003 i686 i686 i386 GNU/Linux
9Monitoraggio del cluster
- Con Linux si possono monitorare solo le
prestazioni di un singolo PC (top) - tuttavia e utile trattare i PC del cluster come
un unico computer - A questo scopo, abbiamo usato GANGLIA
- - software client-sever che permette monitorare
un intero cluster - Dispone di uninterfaccia Web con pagine HTML
dinamiche
Clicchiamo per vedere il sistema al lavoro !