![]() |
Free Web Hosting - Watch Free Movies Online - Watch Free TV Online - Free Domain Hosting Oil prices are rising daily. Use Local Gas Prices to patronize only the most affordable gas stations near you. |
..................................................
EL PROJECTE CLARR
CLÚSTER GNU/LINUX D'ALT RENDIMENT BASAT EN EL RECICLATGE
...........................................
Autor:
Pau Escrich
Nota autor: Sóc conscient de que aquest document conté varies errates (incloses les faltes ortogràfiques), no he tingut temps per rectificar-les, algun dia ho faré.
Llicència: Aquest document roman sota llicència de Creative Commons
Document: Si a algú li interessa el document en pdf o swx, que concacti amb mi via email i li facilitaré
Aquest projecte prové de www.dabax.net visita-la per trobar artícles, manuals, howtos, chuletes i més projectes sobre Software Lliure.
ÍNDEX
1.1 Introducció
1.2 Definició
1.3 Característiques
1.4 El Flop
1.5 Exemples
2.1 Linux
2.2 GNU
2.3 Les distribucions
2.4 Debian GNU/Linux
4.1 Instal·lació del sistema Debian GNU/Linux
4.1.1 Obtenció del programari
4.1.2 Primeres configuracions
4.1.3 Particionament
4.1.4 Gestor d’arrencada
4.1.5 Configuració del sistema base
4.1.6 APT
4.1.7 Instal·lació de paquets
4.2 Configuracions bàsiques
4.2.1 L’entorn gràfic
4.3 LTSP
4.4 Instal·lació dels serveis necessaris
4.4.1 DHCP
4.4.2 TFTP
4.4.3 NFS
4.5 Elaboració del disquet d’arrencada
4.6 Configuració de la xarxa
4.7 Configuració dels fitxers necessaris
4.7.1 El dhcpd.conf
4.7.2 El inetd.conf
4.7.3 El exports
4.8 L’arbre de directoris dels nodes diskless
5.1 OpenMosix i el kernel
5.2 El kernel dels nodes diskless
5.3 El kernel del servidor
6.1 OpenMosix tools
6.2 OpenMosix View
6.3 La configuració i aplicacions de OpenMosix
6.4 SSH
8.1 Compressió d’àudio
8.2 Compilació
8.3 Desencriptació
8.4 Test
8.5 Avaluació total
10.1 Valoració del treball
10.2 El CLARR, els clústers
10.3 Una alternativa per l’institut
Aquest projecte, titulat com “El projecte CLARR”, és un treball de recerca elaborat per l’alumne Pau Escrich Garcia de segon de Batxillerat modalitat tecnològica. Consta de dues parts, una pràctica i un altra teòrica.
En la part pràctica, es du a terme la construcció d’un clúster de computadors format per cinc unitats funcionals, amb el principal propòsit d’aconseguir un major rendiment computacional. Serà realitzat mitjançant únicament programari lliure.
La segona part, teòrica, és l’elaboració d’un projecte textual on hi consten diversos punts. En primer lloc una introducció general on són tractats una sèrie de conceptes fonamentals per la comprensió del treball, en segon un extens seguiment específic sobre el realitzat en la pràctica, i en tercer lloc són exposades un seguit de proves on es reflecteix el rendiment aconseguit.
El treball està orientat a un àmbit indefinit de lectors, està estructurat de manera que una persona sense coneixements informàtics pugui entendre’l, i un usuari relativament avançat es senti interessat degut a la complexitat del propòsit final. La part introductòria i de conclusió són aptes sobretot per aquests lectors no entesos en el tema. Mentre que la part central, el seguiment tècnic, va dirigida a un àmbit de lectors més avançat.
He escollit aquest tema perquè m’agrada el món de la informàtica i sobretot el sistema GNU/Linux juntament amb la seva filosofia de comunitat lliure de coneixements. Amés buscava un temari amb el que pugés superarme i d’aquesta manera adquirir nous coneixements que hem pugessin ser útils en el futur.
1.1 Introducció
Avui en dia, amb els ordinadors dels que disposem, ens resulta en ocasions impossible calcular certes necessitats científiques degut a la relativament poca capacitat de càlcul de la que disposen. La prevenció de canvis climàtics, el tractament massiu en la informació de finances, la fusió nuclear, l'enginyeria genètica... tot depèn en gran mesura de la potència de càlcul dels ordinadors.
La computació d'alt nivell a estat des de sempre, i de manera exclusiva a les mans d'uns pocs privilegiats. Això va portar als científics amb no massa poder econòmic a cercar una alternativa per obtenir un ordinador potent i econòmicament assequible, així que, seguint aquesta línia, arribaren a la conclusió de que la millor solució possible era el reciclatge. Consisteix en connectar una sèrie d’ordinadors de baix cost econòmic, com ho són els PC (“Personal Computer”), formant una xarxa i elaborant programes per fer-los treballar en paral·lel, compartint processos. El resultat fou una solució que acapara la potència dels grans superordinadors a un preu molt més assequible.
Aquesta idea no és del tot recent. A la dècada dels 50, l'exèrcit Nord-Americà va crear una xarxa d'ordinadors de vàlvules de buit nomenada “SAGE”. Més endavant, als 80 es van arribar a comercialitzar agrupacions de mini-computadors VAX. Però no va ser fins als anys 90 que l'idea fou estesa a nivell mundial, degut al factors econòmics i tècnics, com el baix preu dels PC i l'elaboració de xarxes, i l'aparició del sistema lliure GNU/Linux.
Així
doncs el 1994 va néixer la primera “granja d’ordinadors”
o clúster, al Centre de Vols Espacials Goddard de la NASA, amb
l'objectiu de resoldre problemes computacionals que apareixen en les
ciències de la Terra i l'Espai. Els pioners d'aquest projecte
foren els doctors Thomas Sterling i Donald Becker, que connectaren
entre sí 16 PC amb microprocessador Intel 486 a través
d'una xarxa ethernet mitjançant GNU/Linux. El clúster
desenvolupat va tenir una eficiència de 70 Mflops, una
velocitat avui en dia ridícula però molt pròxima
a la acaparada per alguns dels superordinadors de l'època i
gastant només 45.000 Euros. Els investigadors li donaren el
nom de Beowulf en honor a l'heroi de les llegendes medievals.
Des de llavors es crearen multitud de projectes basats en el processament paral·lel, aproximadament 50 dels 500 ordinadors més potents del món són clústers.
1.2 Definició
EL concepte clúster es un concepte molt difícil de definir ja que és utilitzat per identificar varis tipus d'associacions de computadors força diferenciats entre ells. Dos definicions força apropiades serien, per una banda la del TermCat: “un conjunt d'unitats funcionals interconnectades per mitjà d'una xarxa que actuen com una sola unitat”, i per l'altra la del Doctor Thomas Sterling: “una classe d'arquitectura de computador paral·lel que es basa en unir màquines independents integrades per mitja de xarxes d'interconexió, per obtenir un sistema coordinat, capaç de processar una carrega”.
1.3 Característiques
Cadascun dels ordinadors que formen part d’un clúster s’anomena “node”, en el nostre cas tots els nodes posseeixen una mateixa arquitectura (i586) i, per tant, és tracta d’un clúster homogeni.
Actualment existeixen dos tipus de clústers: els d’alta disponibilitat i els d’alt rendiment.
Els d’alta disponibilitat són aquells destinats a la necessitat de suportar un error de maquinari o programari. Si un dels nodes cau, la resta es reparteixen les seves tasques i intenten reactivar-lo. Aquest seria el cas de servidors web, ordinadors que han de prestar servei les 24h del dia els 365 dies de l’any.
Els d’alt rendiment es basen en un conjunt de màquines configurades per aconseguir una capacitat de càlcul màxima al repartir-se la càrrega dels processos entre els nodes existents. Són utilitzats en la resolució d’algoritmes científics, reproducció d’imatges 3D, compilació de grans codis de programació, xifrat de contrasenyes… Aquest tipus de clúster es el que intentarem elaborar.
Els clústers d'alt rendiment funcionen amb una característica fonamental: el processament paral·lel. Aquest consisteix en la capacitat d'utilitzar una sèrie de processadors per executar diferents parts d'un mateix programa de manera simultània. L'objectiu principal del paral·lelisme es reduir el número de cicles de l'execució d'un programa en relació al número de processadors (nodes) vigents en el sistema, “divideix i venceràs”.
Amés d'aquestes dues classificacions, trobem un altre aspecte més que caracteritza els diferents clústers, la transparència. Parlem de transparència quan el programador no necessita elaborar un tipus d'aplicació especial per el processament paral·lel ni canviar res depenent de la tipologia de la xarxa. O sigui, podríem executar-hi la majoria d'aplicacions que podem utilitzar en els ordinadors normals sense ni tan sols adonar-nos de que estem processant en paral·lel. Un exemple de clúster no transparent seria el projecte Beawoulf, en el que es va necessitar l'elaboració de programes especials per aquest, i l’anterior coneixement del tipus de xarxa per poder-los programar correctament.
1.4 El Flop
Com definim la velocitat d'un ordinador? Usualment parlem d’Hz (cicles per segon), però aquesta es una mesura que ha quedat obsoleta degut a la seva poca exactitud. Tècnicament es parla de Flop. Un Flop es una operació en coma flotant per segon, molt per sobre -una operació en coma flotant seria com una suma o una multiplicació-.
Actualment l'ordinador considerat més potent del món (el BlueGene/L segons www.top500.org) té una capacitat de càlcul de 70,72 Tflops, o sigui 70.720.000.000.000 operacions en coma flotant per segon. Com a dada curiosa cal afegir que la velocitat d'un processador d'un PC actual gira al voltant dels 300 Mflops, 300.000.000 flops.
1.5 Exemples
Un bon exemple d’un clúster d'alta disponibilitat important seria el famós cercador web “Google”.
Google
até més de 5000 milions de búsquedes cada mes
(unes 2000 per segon), i cerca entre més de 3000 milions de
documents. Per atendre totes aquestes peticions Google va optar per
la construcció d'un clúster amb vora de 20000 servidors
repartits en 7 centres (“data centers”), Washingyon DC
(USA), Herndon (Virginia, USA), Zurich (Suïsa)... Els servidor
són senzills PC que disposen d'un sol processador Intel amb un
disc dur de 80 Gb i un memòria RAM que va des de 256 Mb a 1
Gb. Aquests funcionen sota el sistema operatiu “Red-Hat Linux”.
Google va optar per aquest tipus de tecnologia degut a seva relació cost/rendiment, utilitzant senzills PC's i reduint considerablement el cost s’aconsegueix un enorme rendiment.
- Earth Simulator Center
És un projecte japonès de l'any 2002 amb l'objectiu de simular una “Terra virtual” i estudiar com seria el món en el futur utilitzant tecnologia avançada de simulació numèrica.
El
clúster simulador de la terra (ES) és un sistema de
computació paral·lela que consisteix en 640 nodes
interconnectats per un switch. Cada node es un sistema amb memòria
compartida, que consisteix en 8 processadors aritmètics, un
sistema de memòria principal de 16 Gb una unitat d'accés
remot i un processador d'entrada/sortida. El rendiment màxim
de cada un dels processadors que formen els node és de 8
Gflops, i el del clúster en conjunt és de 40 Tflops.
Els Objectius principals del Eath Simulator són: l'estudi i predicció del canvi climàtic global, la predicció de desastres meteorològics, la prevenció d’efectes d’escalfament global, l'estudi de les plaques tectòniques... Aquest projecte és un clar exemple d'un clúster d'alt rendiment
- MareNostrum
Es
avui en dia l'ordinador més potent d'Europa i aproximadament
el quart de tot el món, s'ubica a Barcelona, a la Universitat
Politècnica de Catalunya. És un clúster
construït per IBM, actualment consta de 3564 processadors a amb
una arquitectura de 64 bits a 2.2 Ghz, s’estima que al final de
la seva construcció constarà de 4564 processadors. El
sistema funciona sota GNU/Linux, i disposa d'una memòria
central de 9 terabytes i 128 de disc. Aquest nou ordinador ocupa una
instal·lació de 160m2 i pesa 40 tones, compta amb una
capacitat de càlcul de 20,43 Tflops i es calcula que
finalitzat arribarà als 40 Tflops. EL MareNostrum serà
utilitzat en l'investigació del genoma humà,
l'estructura de les proteïnes i en el disseny de nous
medicaments.
- SETI
El SETI és un projecte pel descobriment d'intel·ligència extraterrestre a partir de l’analització de senyals radiofòniques procedents de l'espai.
Les senyals són captades pel radiotelescopi d’Arecibo (Puero Rico) amb els seus 305 metres de diàmetre, el més gran del món, qual cosa li permet rebre senyals molt més dèbils que qualsevol altre telescopi. Aquestes senyals són enviades a la universitat de Berkeley (California), on les divideixen en fragments molt petits que seran repartits entre els més de 4 milions d'usuaris inscrits en el projecte SETI@home.
Per analitzar tota aquesta informació, faria falta un ordinador immensament potent i immensament car, per això els seus fundadors optaren per la creació d'un gran clúster format per milers d'usuaris voluntaris procedents de qualsevol part del món. Així doncs van distribuir un salvapantalles que, entra en funcionament quan l’ordinador està en desús, llavors via internet, passava a formar part del clúster, i iniciava el procés d’analització dels petits fragments captats pel telescopi.
Aquest no seria un perfecte exemple del concepte de clúster que s'acostuma a utilitzar, ja que no existeix una relació directa entre els diferents processadors dels nodes, no podríem parlar d'un processament paral·lel directe. No obstant, això si, podem parlar de clúster ja que s’adapta a la definició d'aquest: “conjunt d'unitats funcionals interconnectades per mitjà d'una xarxa que actuen com una sola unitat”.
2.1 Linux
El
juliol de 1991, un jove informàtic estudiant de 21 anys de
l’Universitat de Helsinki anomenat Linus Torvalds va escriure
un missatge a un fòrum d’internet explicant que havia
començat un projecte sobre un nou sistema basat en Minix (clon
del sistema operatiu UNIX creat per el professor Andrew Tanenbaum el
1987). Poc a poc el projecte va anar agafant forma gràcies a
més i més col·laboradors, i en qüestió
de mesos la primera versió oficial de Linux va veure la llum.
Estrictament quan parlem de Linux parlem d'un nucli (kernel), que és un sistema responsable de facilitar a les diferents aplicacions accés al maquinari (hardware). Comunament s'utilitza per definir però, el sistema operatiu GNU/Linux el qual inclou el nucli Linux i el projecte GNU.
2.2 GNU
El
projecte GNU fou iniciat el 1987 per Richard Stallman amb el propòsit
de crear un sistema operatiu totalment lliure. Les nom GNU és
un acrònim que significa “GNU No és Unix”,
ja que Unix és un sistema operatiu tancat i GNU un projecte
amb un propòsit totalment oposat.
Els principis de la llicència de GNU anomenada GPL són tres: El primer, la llibertat a copiar el programa i oferir-lo als amics o companys de feina; el segon, el dret a canviar el programa de la manera que es vulgui, ja que es disposa de ple accés al codi font, i tercer, la llibertat de distribuir una versió millorada i d'aquesta manera ajudar a la societat (si es redistribueix programari GNU, es pot fixar un preu per l'acte físic de transferir la còpia o es pot donar de franc).
En principi, GNU englobava només una sèrie de programes, però es trobaren amb el problema de que per poder-los usar necessitaven sistemes operatius de programari propietari (com UNIX). Així va començar la recerca d’un nucli per poder elaborar un sistema operatiu totalment lliure. Com es pot suposar aquest nucli fou el de Linus Torvalds, d’aquesta manera nasqué el famós GNU/Linux. Que és en resum, una simbiosi entre un kernel anomenat Linux i un ampli programari anomenat GNU.
Actualment han sorgit varies aplicacions per el sistema GNU/Linux que no corresponen al projecte GNU i no romanen sota la llicència GPL, un clar exemple és l'entorn gràfic KDE.
2.3 Les distribucions
Com GNU/Linux és un sistema obert i lliure, des d'un bon principi es van crear diferents grups de programadors que crearen i distribuïren la seva pròpia versió d'aquest. Cadascuna d'aquestes versions és el que anomenem distribució. Existeixen desenes, fins i tot centenars de distribucions GNU/Linux, cadascuna amb les seves pròpies característiques. Seguidament n'analitzarem les més famoses:
Red-Hat: Probablement és la distribució més extesa, la més utilitzada sobretot per empreses. Darrera d'aquesta hi ha una empresa molt ben organitzada que realitza una gran publicitat i ofereix un bon servei tècnic. És possible que en gran part el seu èxit sigui degut a això.
Mandrake: inicialment fou basada en Red-hat el 1998, va ser la primera que oferí una instal·lació fàcil i amigable trencant així amb la tònica de la dificultosa instal·lació dels sistemes GNU/Linux. Conté moltes aplicacions gràfiques, i destaca en el avançat sistema de particionament que utilitza.
Suse: És possiblement la més comercialitzada. El desenvolupament d'aquesta es realitzat completament a portes tancades, no llença versions beta per poder-les provar, i manté la filosofia de no deixar descarregar les noves versions d'internet fins passat un temps desprès de treure-les al mercat. Destaca en els seus avançats sistemes gràfics, en la seva eina de configuració “Yast” i en el seu professional suport tècnic.
Slackware: És la distribució més antiga de les actuals, iniciada el 1992. No segueix la filosofia dels entorns gràfics, sinó la del pràctic sistema de text, molt semblant a l’arcaic sistema UNIX. És molt estable, recomanable sobretot per servidors.
Gentoo: Cent per cent basada en codi font, l'objectiu d'aquesta és obtenir un sistema totalment adaptat a la màquina que l'utilitza. Mentre les altres distribucions contenen una sèrie de paquets preparats, a Gentoo s'han de compilar tots un per un. Això requereix un alt nivell de coneixements informàtics, excloent-lo de l’abast de principiants.
Knoppix: Knoppix és un tipus de distribució anomenada “Live CD”, no requereix ser instal·lada al disc dur per poder-la utilitzar; tan sols hem d'introduir el CD al lector i arrencadaar amb ell per poder-la usar com un sistema corrent. Amés, les últimes versions tenen l'opció d'instal·lació permanent. Està basada en Debian, molt apta per usuaris que desitgen provar per primera vegada GNU/Linux.
Debian: Aquesta serà la distribució que utilitzarem, l'analitzarem àmpliament en el següent apartat.
2.4 Debian GNU/Linux
Debian
GNU/Linux fou iniciat per Ian Murdock el 1993, és un projecte
totalment no comercial, possiblement el més fidel als ideals
que iniciaren el moviment del programari lliure. Així com
passa en altres distribucions com Red-hat o Suse, no hi ha cap
empresa darrera Debian, sinó centenars de programadors
voluntaris de tot el mon que contribueixen en el projecte. És,
per tant, un sistema basat en la cooperació voluntària
i desinteressada.
El procés de desenvolupament
parteix de tres branques: l'estable (“estable”), la de
prova (“testing”) i l’inestable (“inestable”).
Quan apareix una nova versió d'un paquet, aquest és
situat a la branca inestable per les primeres proves. En cas de
passar-les, el paquet és mogut a la rama de prova, on es
realitza un rigorós procés de d’avaluació
que dura diversos mesos fins que és declarat estable.
Aquest
procés té l’avantatge de que s'aconsegueix molta
estabilitat, els errors gairebé són inexistents; però
té com a desavantatge que al haver de passar tantes proves,
Debian (la versió estable) no és un sistema massa
actualitzat. Mentre que la branca estable és perfecta per
servidors amb funcions crítiques, molts usuaris prefereixen
usar la de proves, més actualitzada pels seus ordinadors
personals, i finalment són els programadors que contribueixen
en el projecte Debian qui generalment utilitza l'inestable.
Debian té la reputació de ser dificultosa a l'hora de la instal·lació i la configuració, ja que és requerit un profund coneixement sobre el maquinari de la computadora, però compensant aquest contra, tenim l'instal·lador de paquets APT Totes les instal·lacions i actualitzacions del sistema es poden fer automàticament mitjançant aquesta eina.
El propòsit d'aquest projecte és l'elaboració d'un clúster homogeni de computadors d'alt rendiment mitjançant el reciclatge d'ordinadors personals i utilitzant programari lliure.
El clúster constarà de 5 unitats funcionals interconnectades entre si per mitjà d'un switch ethernet, d'aquestes cinc unitats tan sols una tindrà disc dur, l'anomenarem servidor. Es configurarà el sistema de manera que amb el disc dur del servidor, via xarxa, podran ser arrencades la resta d'unitats, aquesta propietat s'anomena arrencada “diskless”. Les unitats diskless, únicament constaran d’una placa base amb processador, memòria ram, targeta de xarxa i disquetera, mentre que el servidor contindrà tots els components i perifèrics necessaris per utilitzar-lo.
El procés descrit a continuació, és un seguiment explícit de tots els passos que s'han dut a terme, juntament amb les seves explicacions. Exposat de forma general, els diferents processos són:
Instal·lació del sistema GNU/Linux.
Administració dels serveis necessaris per la configuració del sistema diskless.
Compilació dels nuclis.
El programari coordinador del clúster: OpenMosix.
El muntatge mecànic.
Tot el projecte estarà basat en el reciclatge, la majoria dels components provindran d'ordinadors vells i gairebé inútils avui en dia. S'intentarà que el cost econòmic total del projecte sigui zero. El producte final tindrà l’aparença d'un únic ordinador: serà una caixa de fusta que contindrà les 4 unitats diskless funcionant amb dues fonts d'alimentació, tindrem, a banda, l'ordinador servidor, que controlarà tot el clúster.
S’ha batejat el projecte amb el nom de: CLARR, una associació de sigles que representen les idees principals del projecte: Clúster de Linux d’Alt Rendiment basat en el Reciclatge.
Necessitarem un ordinador dins el clúster que actuï com a servidor d'on els 4 nodes sense disc establiran el seu sistema operatiu i on tindrem les aplicacions necessàries per la configuració i seguiment d'aquest.
L'ordinador servidor té les següents característiques:
- Un processador “Pentium-MMX” a 233Mhz.
- 64Mb de memòria RAM.
- 2 discs durs IDE; un de 2,5Gb i un altre de 1Gb.
- Un lector de CD “LG 52x”.
- Una disquetera de 3½.
-
Una targeta de de vídeo genèrica.
- Una targeta de xarxa “Realtek”.
- Teclat, ratolí i monitor
En aquest gràfic, s'esquematitza la relació que hi ha entre els diferents nodes del sistema:
Com podem observar, en els nodes diskless, el processador juntament amb la memòria i altres integrats de la placa, i mitjançant la targeta de xarxa, utilitza el disc dur del servidor per establir el seu sistema operatiu.
El node servidor, una vegada la resta del sistema està funcionant, comença el procés de migració, dit en altres paraules; aprofita el micro-processador i la memòria RAM dels nodes diskless per processar les seves tasques.
A continuació es proposa una taula amb els passos que recorre un node diskless per arribar al punt de funcionar dins el clúster.
|
1 |
El node obté el subministrament d'energia que l'engegarà. |
|
2 |
A la BIOS està configurat que la unitat de arrencada sigui la disquetera. |
|
3 |
El disquet amb un programari especial, detecta la targeta de xarxa i cerca un servidor DHCP per obtenir les dades de configuració de la seva arrencada. |
|
4 |
El node servidor, gestiona la petició i cerca en la seua base de dades per assignar una direcció la direcció IP que correspon al no de segons la seva direcció MAC. |
|
5 |
Una vegada obtinguda la configuració, mitjançant el protocol TFTP serà iniciada la descarrega del nucli |
|
6 |
En quan el nucli sigui descarregat, aquest passarà a tenir el control sobre l'ordinador i començarà la càrrega del sistema operatiu resident a l'ordinador del node servidor, mitjançant NFS. |
|
7 |
En quant siguin carregats els “runlevels”, s'executarà el dimoni “openmosix” que s'encarregarà de gestionar el node dins el clúster. |
Per aconseguir fer possible tot aquest procés, s'haurà de tenir instal·lat un sistema GNU/Linux i s'hauran de configurar una sèrie de serveis que explicarem posteriorment amb més detall, aquests són:
- DHCP: El necessitarem per iniciar els nodes en la xarxa.
- TFTP: Serà qui transmetrà el nucli del sistema operatiu als nodes diskless.
- NFS: És un protocol de xarxa que permetrà utilitzar als nodes diskless el disc dur del servidor com si fos el seu propi disc.
- OpenMosix: Per una banda és el programari que s'encarregarà de migrar els processos i rebre els processos migrats d'altres nodes, qui gestiona el clúster en qüestió y per l'altra és una extensió que s'ha d'aplicar al nucli per que tot el procés de migració sigui possible.
4.1 Instal·lació del sistema Debian GNU/Linux
El primer pas, òbviament és la instal·lació del sistema operatiu, ja que sense aquest cap aplicació podria funcionar. A continuació s'explica detalladament aquest procés.
Obtenció del programari
Instal·larem la versió de Debian: “Sarge”. És l’última que ha sortit, tot i que encara esta en mode de proves (“testing”), ja és gairebé estable. Ens la descarregarem de la pàgina oficial de Debian (“www.debian.org”), escollirem la versió especial per la instal·lació via xarxa (“Sarge i386 netinstall”), tot i que la instal·lació es farà més llarga degut a que haurem de descarregar els paquets des d’internet, val la pena ja que així ens assegurarem de tenir l'ultima versió de tot el programari.
4.1.2 Primeres configuracions
Una vegada tinguem el CD preparat per la instal·lació, l’introduirem al lector i en assegurarem de que a la BIOS hi estigui com a primera unitat d’arrencada.
A la primera pantalla ens deixa elegir l’idioma, jo vaig elegir Espanyol, ja que el català té numerosos errors de traducció. Seguidament ens preguntarà per el nostre país i el tipus de teclat.
Acabada aquesta primera configuració bàsica, començarà un procés de detecció del hardware per trobar un mitjà d’instal·lació, en el nostre cas lògicament trobarà el lector i dintre el CD del qual podrà instal·lar els mòduls base per la posterior detecció de la resta de components.
El següent apartat, és la configuració de la xarxa, ens demana les dades d’aquesta per poder descarregar els fitxers necessaris per la instal·lació. Si disposem d’una xarxa amb un servidor DHCP la configuració serà automàtica, si no és així ho haurem de configurar manualment.
4.1.3 Particionament
Aquest és un dels passos més importants. Això, en relació a la memòria de que es disposa, es pot organitzar d’una manera o d’un altra, però sempre seguint aquests criteris:
Una partició SWAP: la partició d’intercanvi de memòria la qual haurà de disposar aproximadament de 2,5 vegades la memòria RAM.
Una partició arrel “/”: la partició des d’on partirà tot el sistema.
És opcional una partició BOOT: aquesta partició serveix per guardar-hi el sistema d’arrencada que iniciarà el sistema operatiu. És útil quan disposem de dos o més sistemes operatius.
El sistema d’arxius que utilitzarem per totes les particions menys per la swap, és el actualment estàndar anomenat “ext3”. Aquest sistema deriva de l'anterior “ext2”, disposa de varies millores notables com l'anomenat “journaling”, un sistema que periòdicament grava els fitxers oberts per impedir pèrdues d'informació o corrupció de dades. Amés el sistema “ext3” es més ràpid, doncs tracta la lectura i escriptura de fitxers de forma optimitzada reduint així el temps de accés als mateixos.
A GNU/Linux els dispositius IDE (discs durs, lectors, gravadors...) s’anomenen “hdX”, on X seria una lletra de l’abecedari començant per el IDE1-Master (a), seguit per el IDE1-Slave (b), IDE2-Master (c) i IDE2-Slave (d). En el cas de que tinguem un disc dur amb més d’una partició, passa a formar part del nom el nombre de la partició, si per exemple tenim el dispositiu hda amb dues particions, les particions s’anomenaran hda1 i hda2.
La jerarquia de directoris que utilitza GNU/Linux es la següent:
|
Nom |
Descripció |
|
/boot |
Fitxers estàtics del carregador d’arrencada |
|
/home |
Directoris personals dels diferents usuaris |
|
/tmp |
Fitxers temporats |
|
/usr |
Dades estàtiques, programari |
|
/var |
Dades variables |
|
/srv |
Dades de servei que ofereix el sistema |
|
/opt |
Paquets d’aplicacions afegides |
|
/lib |
Llibreries compartides del sistema i programari |
|
/etc |
Fitxers de configuració del sistema |
|
/dev |
Fitxers que representen els dispositius perifèrics |
|
/root |
El directori personal del “superusuari” |
|
/sbin |
Fitxers binaris essencials pel sistema |
|
/bin |
Fitxers binaris i executables |
|
/proc |
Sistema de fitxers virtuals amb informació sobre el sistema |
|
/mnt |
Punt de muntatge per particions temporals |
Tenim la possibilitat en el particionament d’elegir la distribució d’aquesta jerarquia segons els discs durs i la memòria de la que disposem. Nosaltres hem creat la següent taula de particions:
|
Dispositiu |
Nom |
Capacitat |
Sistema fitxers |
P. Muntatge |
|
IDE-1-Master |
hda1 |
40 Mb |
ext3 |
/boot |
|
IDE1-Master |
hda2 |
2,5Gb |
ext3 |
/ |
|
IDE2-Master |
hdc1 |
150Mb |
swap |
- |
|
IDE2-Master |
hdc2 |
933Mb |
ext3 |
/opt |
La partició “/boot” l’he fet relativament gran ja que s'hi hauran d'allotjar varis nuclis. La “/opt” he preferit que estes a un disc dur independent ja que a aquest directori serà on romandrà l’arbre d’arxius que utilitzaran els nodes diskless com a sistema.
4.1.4 Gestor d’arrencada
En quan acabi l’escriptura de la nova taula al disc dur, començarà la instal·lació del sistema base, el qual ja podria ser anomenat Sistema Operatiu.
Per que aquest pugui arrencar és necessari un programa que s’encarregui de gestionar-ho, els dos carregadors d’arrencada més coneguts son LILO i GRUB. La versió de Debian Sarge, per defecte proposa la instal·lació de GRUB, però podem elegir el que preferim.
4.1.5 Configuració del sistema base
Desprès d’això, el sistema es reiniciarà automàticament, hem de retirar el CD per que arranqui amb el disc dur. Si no hi ha cap error començarà amb la configuració del sistema base. Haurem de configurar la zona horària, la contrasenya del usuari administrador (root) i diferents usuaris del sistema i establir el nom del sistema.
4.1.6 APT
Un pas molt important també, es la configuració d’APT. Advanced Packaging Tool, és un avançat sistema de gestió de paquets creat per el projecte Debian que simplifica en gran mesura la instal·lació d’aquests. Conté unes llistes amb tota una sèrie de programari emmagatzemat en multitud de servidors d’arreu del mon. Només cal indicar l’ordre amb el programa que desitgem, per que automàticament sigui descarregat, instal·lat i configurat amb totes les seves dependències.
APT pot funcionar tant amb CDs com amb direccions FTP o HTTP, primer que res ens preguntarà si disposem de més CDs amb programari, com que no en tenim li diem que no, seguidament indicarem que volem afegir una nova font, i seleccionarem el protocol FTP. Tindrem una llista de la qual podrem elegir multitud de servidors per APT. Jo sempre he utilitzat el “ftp.rediris.es”. Quan ens pregunti si volem activar les actualitzacions de seguretat li diem que si, ja que són fonamentals per la seguretat del sistema.
4.1.7 Instal·lació de paquets
Posteriorment ens trobarem amb tasksel, un programa amb que podem elegir les aplicacions addicionals que desitgem afegir al nostre sistema. En el nostre cas, no afegirem cap aplicació addicional, sinó que instal·larem desprès amb APT tot el que ens faci falta.
Començarà la descàrrega dels diferents paquets que inclou la versió Sarge , i els addicionals si n’hem seleccionat algun, depenent de la velocitat de la nostra línia això tardarà més o menys estona.
4.2 Configuracions bàsiques
Una vegada tinguem el sistema ja instal·lat, començarem el procés de configuració d’aquest segons les nostres necessitats. En aquest apartat no ens expandirem massa ja que és un punt molt relatiu que depèn en gran mesura del maquinari de l’ordinador.
4.2.1 L’entorn gràfic
El primer que farem serà instal·lar el sistema gràfic, GNU/Linux des de fa uns anys disposa de sistemes de finestres semblant a l’entorn de Windows, que faciliten molt el seu ús i el posa a l’abast de tothom. Hi ha varis sistemes gràfics, cadascun amb les seves característiques, podríem fer una classificació força col·loquial però molt entenedora: Els pesats i els lleugers.
Els pesats serien els dos més populars: Gnome i KDE. Aquests dos entorns són molt complets, disposen d’una immensa varietat d’aplicacions, s’anomenen pesats perquè requereixen un ordinador relativament potent, ja que consumeixen molts recursos, tant de memòria com de capacitat de disc dur.
Els lleugers serien una sèrie d’entorns molt més senzills, quasi sense aplicacions i adaptables a gairebé qualsevol ordinador. Dos exemples d’aquest serien “fluxbox” i “xfce”.
Desprès de observa les característiques del nostre ordinador: Pentium MMX amb 64Mb de ram i 3,5Gb de disc dur, és obvi arribar a la conclusió de que hem d’utilitzar un sistema lleuger, utilitzarem “xfce”.
Així que començarem amb la instal·lació dels paquets necessaris amb APT, executarem la següent ordre : “apt-get install x-window-system xfce4”. Una vegada descarregats, ho haurem de configurar segons el nostre maquinari amb el programa XFree86 “xf86config” per el mode de text, i “xf86cfg –textmode” per el mode de finestres, més còmode. Per iniciar l’entorn gràfic teclejarem l’ordre “startx”.
El següent pas es una fase de pesonalització, on cadascú pot configurar certs aspectes del sistema i instal·lar les aplicacions que cregui convenients.
4.3 LTSP
Ja instal·lat i configurat el sistema, podem començar amb l’administració de les aplicacions específiques que ens permetran els nostres propòsits.
LTSP que significa “Linux Terminal Server Project”, es un projecte de codi obert (Open Source) amb el propòsit de crear les eines necessàries per la configuració d’una unitat de treball sense disc. Amés de configurar i gestionar tots els serveis necessaris, també inclou un arbre de directoris, una distribució especialitzada en el funcionament d'ordinadors sense disc dur.
En el nostre projecte, no utilitzarem LTSP amb tot el seu potencial, únicament usarem una eina d'aquest anomenada “ltspcfg” que és troba dins el programa “ltspadmin” el qual s'encarrega de configurar automàticament tots els serveis que es necessiten per dotar l'ordinador servidor de la capacitat d'allotjar els nodes diskless en el seu disc dur.
Procediment
|
*Sempre treballarem amb l'usuari root. - Avanç que res necessitem instal·lar una biblioteca necessària per el funcionament de LTSP, executem la següent ordre: “#apt-get install libwww-perl”. - Descarreguem el programari anomenat “ltsp_utils” de www.ltsp.org. - Observem que és un fitxer amb extensió “.tgz”, el descomprimim: “#tar -xvzf fitxer.tgz”. - Ens situem dins el directori que hem descomprimit i executem el fitxer “install.sh”: “#./install.sh”. - L'execució d'aquest fitxer haurà generat varis fitxers repartits per el nostre sistema operatiu, un d'aquest, el que ens interessa és troba a “/bin/ltspcfg”. |
Ara ja disposem de l'aplicació ltspadmin situada al directori “/usr/sbin”, com que aquest directori esta descrit a la variable PATH (camí) de l'usuari root, tan sols haurem de cridar la comanda “#ltspadmin” per executar-lo. Si ho fem ens trobarem un menú amb tres opcions, aquestes són:
“Install/Update ltsp packages”: Serveix per descarregar altres fitxers del projecte LTSP com un nucli pre- compilat adaptat al sistema diskless, o la mini distribució que incorpora LTSP.
“Configure the installer options”: Les opcions de la instal·lació dels fitxers anteriors.
“Configure LTSP”: És l'opció que utilitzarem, serveix per configurar i gestionar els serveis que necessitarem, podem arribar a aquesta opció directament utilitzant la comanda “#ltspcfg”.
Dins de “Configure LTSP” ens trobem dues opcions més:
- “Show the status of all services”: Serveix per veure l'estat dels serveis, aquesta opció presenta aquest aspecte:
Interface:
el dispositiu de xarxa al qual perteneix el clúster.
Service: L'estat dels serveis: servei, instal·lat, actiu, funcionant, notes
File: Els fitxers que s'han de configurar y l'estat en que es troben.
4.4 Instal·lació dels serveis necessaris
En aquest apartat descriurem àmpliament els serveis que necessitem instal·lar i els processos que s'han de seguir per instal·lar-los.
4.4.1 DHCP
Significa “Dinamic Host Configuration Protocol”, aquest utilitza el paradigma client/servidor per que els nodes obtinguin una configuració de xarxa que els permeti interactuar amb ella.
Cada ordinador que forma part d'una xarxa TCP/IP (és el protocol de xarxa més estès i generalitzat avui en dia), necessita conèixer la seva direcció IP i la màscara de la xarxa, aquesta informació és guardada normalment als fitxers de configuració del sistema operatiu, però en el nostre cas no disposem de disc dur ni per tant de cap sistema operatiu estable. Per això necessitarem el protocol DHCP, per fer la transferència d’aquesta informació.
El DHCP per exemple és utilitzat molt per els routers (direccionador: dispositiu intermedi d'una xarxa de comunicació que s'encarrega de gestionar-la), quan connectem un ordinador a una xarxa, aquest busca el direccionador per obtenir-ne les dades, aquest mitjançant DHCP fa saber la configuració al ordinador.
Cal afegir una dada més; tota targeta de xarxa posseeix una direcció única anomenada direcció MAC, mitjançant aquesta direcció els servidors DHCP assignen una direcció IP o un altra, segons la seva configuració. Vegem el següent exemple:
- Ordinador: Hola, la meva direcció MAC és 00:50:08:C7:A3:D8, si-us-plau donam la meva direcció de xarxa.
- DHCP: (Cerca la direcció en la seva base de dades) el teu nom serà “node1”, la direcció de xarxa és 255.255.255.0 i la teva direcció IP 192.168.100.2.
Procediment
|
Començarem per instal·lar el paquet del servidor DHCP, però aquesta vegada ho farem amb APT, teclegem la següent orde: “# apt-get install dhcp3-server”, posteriorment ens preguntarà quina targeta volem utilitzar, si només en tenim una serà el dispositiu “eth0”. Una vegada finalitzat ja disposarem del servidor DHCP al nostre sistema, el següent pas és la configuració d'aquest, però això ho deixarem per més tard, el LTSP ho farà per nosaltres. |
Per arrencadaar el servidor DHCP, utilitzarem el dimoni “init”, ho farem de la següent manera: “#/etc/init.d/dhcp3-server start”, també podem substituir “start” per “stop” (aturar) o “restart” (reiniciar).
4.4.2 TFTP
Les seves sigles signifiquen: “Trivial File Translate Protocol”. És una versió reduïda del FTP, un protocol per la transferència d'arxius. EL TFTP a diferencia del FTP no requereix autentificació per part del client, amés treballa sota UDP (“User datagram protocol”) en comptes de TCP.
Funciona de la següent manera:
- Ordinador: Donam el bloc 1 del fitxer.
- TFTP: Aquí el tens.
- Ordinador: Dóna’m el bloc 2...
Al funcionar sota UDP, no és crea cap connexió directa estable entre les dues màquines, si no que es va enviant la informació “pausadament”, bloc per bloc. El desavantatge d'aquest protocol UDP, és que es perden molts blocs.
Desprès d'obtenir la configuració de xarxa, el node ha d'iniciar el seu sistema operatiu vigent en el disc dur del servidor, per això farà falta aquest protocol. El TFTP s'encarregarà de transmetre, per dir-ho d'alguna manera, la primera peça des de la qual podrem alçar tot el sistema.
Procediment
|
Per instal·lar TFTP també utilitzarem apt: “# apt-get install tftpd”. Una vegada instal·lat, ja no cal que ens preocupem més per ell, s’executarà sol cada vegada que s’iniciï l’ordinador. En el cas de que no sigui així, utilitzarem la següent comanda “#in.tftpd”. |
4.4.3 NFS
“Net file system”, és un sistema de fitxers distribuït per un entorn de xarxa, que possibilita que diferents màquines conntectades a una mateixa xarxa accedeixin a fitxers remots com si es tractés de locals. O sigui, podem estar treballant en el disc dur d'un altre ordinador exactament com si del nostre es tractés.
Aquest sistema serà el que utilitzarem per fer treballar els nodes sense disc, una vegada el servidor TFTP transfereixi el nucli, s'iniciarà el muntatge de tot l'arbre de directoris i fitxers necessaris per poder iniciar el sistema GNU/Linux.
Usualment, la majoria de distribucions de Linux incorporen el NFS, en el cas de que no sigui així, si disposem de Debian, seguirem el següent procés:
Procediment
|
Per instal·lar NFS executarem la següent ordre amb APT:“# apt-get install nfs-common nfs-kernel-server”, això instal·larà aquests dos paquets bàsics per poder usar el “net file system”. |
4.5 Elaboració del disquet d’arrencada
L’ordinador diskless (client), d’alguna manera ha de saber que disposa d’una targeta de xarxa, el programa que fa saber això a l’ordinador s’anomena “Driver”, “Conductor” en català. Cada component mecànic d’un ordinador posseeix el seu propi Driver, així que necessitarem executar aquest Driver cada vegada que iniciem l’ordinador per tal de poder treballar amb la targeta de xarxa. Per fer-ho crearem un disquet de 3½ amb el que iniciarem l'ordinador, en aquest disquet amés del Driver hi posarem un programari especialitzat per l’arrencada via xarxa.
Hi ha varies utilitats que podriem fer servir per l’elaboració d’aquest disquet d’arrencada, una d’aquestes és “Etherboot”. Etherboot és una eina molt útil per l’arrencada d’ordinadors via xarxa, el seu funcionament és el següent:
- És carregat per el sistema d’arrencada del ordinador
- Busca un servidor DHCP per rebre l’arxiu de configuració de la xarxa
-Sol·licita la transmissió del nucli del sistema operatiu (kernel), utilitzant TFTP
- Una vegada rebut el nucli serà aquest qui seguirà el procés d’arrencada del ordinador mitjançant NFS.
Procediment
|
- El programari esta disponible a “etherboot.sourceforge.net”. - Ens descarreguem l’última versió, a data d’avui és la 5.3.11. - Veurem que és un fitxer comprimit amb les extensions tar.bz2, per tant el descomprimim amb l’ordre “#bzip2 –d fitxer”, i després amb “tar –xvf fitxer”. - Ara tenim un directori amb el programari descomprimit, dins d’aquest tenim un fitxer situat a “src/bin/NIC” que poseeix una llarga llista de models de targetes de xarxa, hem de cercar el nostre i apuntar el nom que l’identifica. En el nostre cas, totes les targetes de xarxa són “Realtek 8139”, i el nom que l’dentifica és “rtl8139”. - Ens situem al directori src dins el directori on hem descomprimit el paquet de etherboot. - Per crear el fitxer que serà gravat al disquet i arrencarà l’ordinador, teclegem la següent ordre: “#make bin/[nom-targeta-xarxa].zdsk”. - El fitxer òbviament es trobarà al directori “bin” dins de “src” dins el directori on haguem descomprimit etherboot. - Ara introduirem un disquet a la disquetera, i copiarem l’arxiu de la següent manera: “#cat arxiu.zdsk > /dev/fd0”. D’aquesta manera es copia l’arxiu partint del bloc 0 del disquet, fent possible així la seva arrencada. |
4.6 Configuració de la xarxa
La configuració de la xarxa és molt senzilla, hem d’editar un fitxer que s’anomena “/etc/networking/interfaces”. En aquest fitxer hem de editar les següents línies:
“auto eth0” : Li indiquem que volem que la xarxa del dispositiu eth0 es carregui durant l’arrencada del sistema.
“iface eth0 inet static” : Indiquem que posseïm una direcció IP estàtica, si forméssim part d’una xarxa amb servidor DHCP substituiríem “static” per “dhcp”.
“address 192.168.100.1”: La direcció IP que posseïm.
“netmask 255.255.255.0”: La màscara de xarxa, 255.255.255.0 significa que dintre la xarxa, l’únic que diferencia les IP de les diferents màquines es l’ultima xifra, la qual pot anar de 0 a 255.
“network 192.168.100.0”: Indica el mateix que la màscara, dins la xarxa l’única dada variable de les IP es l’última xifra.
“broadcast 192.168.100.255”: El nombre màxim que pot formar una IP.
Amb aquestes dades, tenim suficient per tenir la xarxa configurada.
4.7 Configuració dels fitxers necessaris
Ara ja tenim els serveis necessaris instal·lats per que funcioni el LTSP, passarem a l’edició dels fitxers de configuració d’aquests serveis. Els fitxers són els següents:
“/etc/dhcp3/dhcpd.conf”: Aquest és el fitxer de configuració del servidor DHCP, aquí són definides les opcions de la xarxa que el servidor DHCP farà saber als nodes diskless, i la direcció MAC de cada targeta juntament amb la direcció IP que se li assignarà i el nucli (kernel) que se li transmetrà.
“/etc/hosts”: Aquest, té la funció d’associar les IP amb un nom que nosaltres li donem. Per exemple, la IP 192.168.100.4 es dirà node4, doncs quan utilitzem la paraula node4, l’ordinador ja sap que node4 correspon a 192.168.100.4. Aquest arxiu conté tres valors per a cada ordinador que li assignem: la IP, el hostname, i el nom que nosaltres li assignem.
“/etc/hosts.allow”: Conté una llista amb les direccions IP que deixarem que tinguin accés al nostre ordinador depenen de l’aplicació. Per exemple, si volem que tots els ordinadors de la xarxa 192.168.100.X tinguin accés al servidor tftp, escriurem la següent línia: “in.tftpd: 192.168.100.”
“/etc/exports”: La llista de control dels directoris que seran utilitzats per els nodes diskless una vegada iniciat el sistema, mitjançant NFS. Funciona de la següent manera: “directori-compartit IP+Màscara+Permisos”. Per exemple: “/compartir 192.168.100.0/255.255.255.0(rw)”, amb aquesta línia compartiriem el directori “/compartir” per totes les IP de la xarxa 192.168.100.X amb permís de lectura i escriptura.
“/etc/inetd.conf”: L’aplicació “inetd”, té la funció de configurar els serveis de xarxa amb funció de servidor que la nostra màquina utilitza, com ho pot ser el servidor “telnet”, el servidor “time”. Tots els serveis que el nostre ordinador ofereix a la xarxa, són llistats en aquest arxiu.
Per configurar tots aquests fitxers, com ja hem comentat, s'utilitzarà l'eina “ltspcfg” que ens facilitarà molt aquesta tasca, ho farem de la següent manera:
Procediment
|
- Iniciem ltspcfg: “#ltspcfg” (també podem iniciar aquesta eina executant el programa “ltspadmin” i elegint l'opció de configuració). - Elegim l’opció “C”: “configure the services manually” - Ens trobarem amb una llista de 11 opcions. Anirem una per una, elegint-les totes i seguint els passos. Les dues úniques que no utilitzarem seran “XDMCP” i “lts.conf”. - Com a “Interface”, la que utilitzem, si només tenim una targeta de xarxa serà “eth0” |
Una vegada finalitzats tots els passos de la configuració dels fitxers mitjançant LTSP, tan sols haurem d’editar-ne tres manualment, el “dhcpd.conf”, el “exports”, i el “inetd.conf”.
4.7.1 EL “dhcpd.conf”
Com hem mencionat avanç, aquest fitxer conté la configuració del servidor DHCP, és ubicat a “/etc/dhcp3/dhcpd.conf”. El LTSP ens ha creat un fitxer dhcpd.conf configurat, però ens l’ha creat amb el nom de “dhcpd.conf.sample” situat al mateix directori, així que el sustituirem per el dhcpd.conf amb la següent comanda: “#mv /etc/dhcp3/dhcpd.conf.sample /etc/dhcp3/dhcpd.conf”.
Ara editarem aquest fitxer amb qualsevol editor de text, jo sempre utilitzo “nano”: “#nano /etc/dhcp3/dhcpd.conf”. Observarem que hi ha multitud d’opcions, en comentarem algunes:
“option subnet-mask, broadcast-address, reouters....” aquesta sèrie d’opcions indiquen la configuració de la xarxa.
“option root-path” indica el directori del que partiran els nodes diskless per muntar el seu sistema operatiu.
La més important per nosaltres, es la que serveix per administrar l’accés dels diferents nodes, segons la direcció MAC de la seva targeta.
|
host ws001 { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.0.1; filename “/tftpboot/lts/vmlinuz-2.4.25-ltsp-1”; } |
- “host”: indica el “host-name” que li serà assignat al node diskless.
- “hardware ethernet”: és la direcció MAC de la targeta de xarxa.
- “fixed-address”: la direcció IP que li assignarem al node diskless.
- “filename”: el nucli (kernel), que utilitzarà el node.
D’aquesta manera hem de configurar tots els nodes diskless, a cadascú se li ha de donar un “hostname” i una IP diferent segons la seva direcció MAC. Per saber la direcció MAC de la targeta de xarxa, tenim dues opcions: amb la comanda “#ifconfig”, o bé introduint el disquet d’arrencada que hem creat.
4.7.2 El inetd.conf
D’aquest només haurem de canviar un argument. Hem de cercar la línia del servidor “tftp”, i substituir on posa “/boot” per “/tftpboot”, quedarà de la següent manera:
|
tftp dgram upd wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /tftpboot |
Li hem indicat que el directori base del qual ha de partir el servidor TFTP, és “/tftpboot”, ja que el nucli que serà transmès als nodes diskless s’ubica aquí.
4.7.3 El exports
Si editem el fitxer “/etc/exports” observarem que hi consten dues línies, la primera exporta el directori “/opt” per que qualsevol ordinador de la xarxa 192.168.100.X hi pugui accedir, la segona dona la ubicació de la partició “swap” que utilitzaran els nodes. D'aquestes dues línies tan sols haurem de modificar la primera. Hem de donar permís d'escriptura als nodes sobre el directori “/opt”, ja que si no rebrem certs problemes amb el sistema que usaran els nodes. Ho deixarem de la següent manera:
|
/opt 192.168.100.0/255.255.255.0(rw,no_root_squash,sync) /var/opt/ltsp/swapfiles 192.168.100.0/255.255.255.0(rw,no_root_squash,async) |
4.8 L’arbre de directoris dels nodes diskless
LTSP, si li demanem, instal·la un arbre de directoris adaptat per l’arrencada sense disc dur situat a “/opt/ltsp/i386”. Tot i això, per mi, és molt més senzill treballar en un entorn de directoris Debian que ja conec, que no en un totalment diferent com és el de LTSP. Així doncs haurem de copiar tot un arbre de directoris Debian a “/opt/ltsp/i386”, hem elegit aquesta ubicació perquè el configurador “ltspcfg” ho configura així, però només caldria modificar els fitxers “/etc/exports” i “/etc/dhcp3/dhcpd.conf” per elegir el directori que desitgem. El sistema que utilitzarem per els nodes diskless, haurà de ser un sistema bàsic, net, gairebé sense modificacions per que no hi hagin incompatibilitats, i amb les mínimes aplicacions necessàries. Jo he optat per fer-ho de la següent manera:
Procediment
|
- Deixem l’ordinador amb un disc dur buit de 500Mb i un lector de CD. - Instal·lem de nou el sistema base de Sarge GNU/Linux a aquest disc dur. - Una vegada finalitzada la instal·lació, tornarem a connectar els discs durs anteriors més el de 500Mb de manera que arranqui l’antic sistema. - Muntem el disc de 500Mb amb la comanda “mount”: #”mount –t auto /dev/hdb1 /mnt”. - Copiem el sistema d’arxius del petit disc dur al directori “/opt/ltsp/i386”: “#cp –a /mnt /opt/ltsp/i386”. |
Es recomanable eliminar els processos d'aquest sistema que no necessitem, els processos que s'inicien durant l’arrencada, s'allotgen a “/etc/rcX.d”, on la “X” és un nombre que va des de 0 fins 6, cada nombre té una aplicació diferent, s'anomenen “runlevels”.
0: Aturar el sistema.
1: Mode monousuari
2: Mode multiusuari sense suport per a xarxa
3: Mode multiusuari complet
4: Sense ús
5: Mode multiusuari complet amb suport gràfica
6: Riniciar el sistema.
Amés d'aquest nombre que identifica el mode amb que s'executarà l'aplicació, també, dins de cada runlevel, les aplicacions han de portar un nombre del 1 al 99, que indica l'ordre d'execució, i una lletra “S o K”; “S” indica “start” inicialitzar, i “K” significa “kill”, eliminar.
El programa “update-rc.d” serveix per gestionar els runlevels, funciona de la següent manera: “#update-rc.d -f remove aplicació” per eliminar-la, i “#update-rc.d aplicació” per incloure-la. En el sistema que hem instal·lat nosaltres hem eliminat les següents aplicacions que hem considerat innecessàries: “exim4, ppp, sysklogd, klogd i atd”.
L’estructura dels sistemes operatius parteix del kernel o nucli, és el programari responsable de facilitar als diversos programes accés al maquinari de l'ordinador. Ja que hi ha molts programes i l'accés al maquinari és limitat, el nucli també s'encarrega de decidir quin programa podrà fer ús d'un dispositiu i durant quant de temps, cosa coneguda com a “multiplexitat”.
El sistema operatiu GNU/Linux parteix del nucli monolític anomenat “Linux”, aquest esta escrit en llenguatge C, segueix els principis de la llicència GPL, és de codi obert, per tant pot ser modificat per qualsevol usuari. Aquest és un dels aspectes principals que fan de GNU/Linux un sistema realment potent, doncs el poder modificar les fonts del nucli ens dona molta flexibilitat per poder adaptar-lo al nostre ordinador i a les nostres necessitats. En el kernel hi és especificat tot el maquinari que posseïm, des de el processador fins la targeta de xarxa, sistemes del fitxers suportats, protocols de connexió a Internet...
Podem trobar el kernel Linux en diferents versions descrits per una nomenclatura que és divideix en 3 camps separats per un punt, aquests són:
- Número de la versió.
- Número de la subversió (si aquest es parell significa que és un kernel estable, si es imparell significa que encara esta en proves).
- Nivell de correcció en que es troba.
Una versió del kernel pot ser substituïda per un altra sense gairebé afectar la resta del sistema, d'aquesta manera es pot tenir el kernel sempre actualitzat. Per utilitzar un nou nucli, tenim dues opcions: obtenir un kernel pre-compilat o obtenir el codi font per compilar-lo nosaltres.
La primera opció és més còmoda i senzilla però no massa recomanable perquè els kernels pre-compilats contenen un gran nombre d’opcions activades ja que han de funcionar a qualsevol ordinador. Un nucli pre-compilat mai és podrà adaptar completament a un ordinador en concret.
La segona opció és més costosa però molt més recomanable. Consisteix en descarregar el codi font del nucli, configurar-lo a les nostres necessitats i compilar-lo en el nostre propi ordinador. Generalment el codi és emmagatzemat al directori “/usr/src”, ens hi haurem de situar i executar el gestor de configuració on haurem d'elegir els mòduls que necessitem segons el nostre maquinari i l'ús que vulguem donar a l'ordinador. Desprès mitjançant el compilador GCC (vigent en qualsevol distribució de GNU/Linux), compilarem les fonts.
Seguidament farem una petita descripció d’algunes de les comandes principals per la compilació del nucli. Per totes s’utilitza l’aplicació “make”: elaborada per el propi Richard Stallman, serveix per construir un fitxer binari a partir de un codi font i una sèrie d’ordres emmagatzemades a un arxiu anomenat “makefile” mitjançant la utilització d’un compilador, generalment GCC. Amb “make” podem dur a terme una de les coses més interessants en GNU/Linux, la personalització i l’adaptació a l’arquitectura del nostre ordinador.
“make install”: Al executar aquesta comanda, instal·larem al nostre sistema els binaris que hem compilat anteriorment, o que ja teníem compilats.
“make menuconfig”: Executa el gestor de configuració en mode menú de finestres, des d’on podrem activar o desactivar tots els mòduls i opcions del nostre kernel. Amb “make config” obtenim el mateix gestor però en mode de text pla, i amb “make xconfig” obtenim un gestor gràfic amb finestres. El métode més recomanable és el “menuconfig”, però per poder utilitzar-lo necessitarem instal·lar les biblioteques “libncurses”.
“make oldconfig”: Opció que serveix per restablir un antic fitxer de configuració, aquest és generat al directori del codi font amb el nom de “.config”, així que si copiem un fitxer de configuració independent a les fonts i executem “make oldconfig” obtindrem un kernel amb la seva configuració.
“make mrproper”: Elimina totes les restes d’antigues compilacions (també el “.config”).
“make dep”: Genera totes les dependències que seran necessàries segons la configuració que haguem establert.
“make clean”: Borra els possibles fitxers binaris existents per poder crear els nous de forma neta i ordenada.
“make bzImage”: Aquesta comanda crearà una imatge del kernel comprimida a “/usr/src/linux-2.4.x/arch/i386/boot” anomenada bzImage, que posteriorment servirà per poder arrencar l’equip.
“make modules”: En la configuració el kernel, podem elegir carregar un mòdul en la pròpia imatge del kernel (*), carregar-lo com a mòdul independent (M) o no carregar-lo (). Amb aquesta comanda compilarem els mòduls que haguem elegit com independents de la imatge (M).
“make modules_install”: S’instal·laran els mòduls independents que hem compilat amb “make modules”.
En el nostre projecte, necessitarem elaborar dos kernels diferents, un per el servidor i un altre per els nodes diskless, cadascú haurà de ser configurat segons el maquinari i la utilitat de l’ordinador, però els dos hauran de ser “parchejats” amb l’extensió OpenMosix. Una extensió per el kernel no és més que un fitxer que conté informació canviant sobre algunes línies del codi font.
5.1 OpenMosix i el Kernel
Openmosix es el programari que ens permetrà que els ordinadors del clúster actuïn com a nodes. En aquest apartat tan sols tractarem el procés per afegir l’extensió Openmosix al kernel, posteriorment ja s’explicarà més detalladament el projecte Openmosix.
Per afegir l'extensió haurem de seguir els següents passos:
Procediment
|
- Descarreguem la versió de l'extensió Openmosix segons la versió del kernel que utilitzem de la pàgina web: “openmosix.sourceforge.net”. - Estarà comprimit amb l'aplicació bzip2, així doncs el descomprimim amb l'ordre: “#bzip2 -d fitxer.bz2”. - El copiem al directori del codi font: “#cp fitxer /usr/src/linux-2.x.x/”. - Per aplicar l'extensió al kernel utilitzarem la següent ordre: “#cat fitxer | patch -Np1”. - Ara si executem el gestor de configuració del kernel veurem que hi ha una opció més anomenada “OpenMosix”. |
El codi font dels nuclis que ofereixen les diferents distribucions (sigui Debian, sigui qualsevol), contenen un gran nombre d’extensions per que s’adapti millor al seu sistema, però aquestes extensions poden provocar conflictes amb Opemosix, així que utilitzarem un kernel totalment net, elaborat per el propi equip d’en Linus Torvalds, aquest kernel s’anomena “kernel vanilla”, i el podem trobar en totes les seves versions a “www.kernel.org”.
5.2 El Kernel dels nodes diskless
Utilitzarem tant per el servidor com per els nodes diskless, la versió del kernel 2.4.26 ja que ens veiem obligats a que coincideixi amb la de l’extensió Openmosix, i l’última versió d’aquesta, en data d’avui, és la 2.4.26 treta el 9 de desembre de 2004.
La configuració d’aquest kernel haurà de ser específica per l’arrencada diskless, per això el projecte LTSP dona l'opció d'utilitzar-ne un ja compilat i preparat per funcionar amb màquines sense disc dur, però òbviament no disposa de l’extensió Openmosix, summament necessària per els nostres propòsits. Així que n'haurem de compilar un totalment nou. Una opció més còmoda i senzilla per l’elaboració del nostre nucli seria obtenint l’arxiu de configuració del nucli LTSP disponible al paquet “ltsp_initrd_kit” que podem descarregar de “www.ltsp.org”, aplicar l’extensió i executar un “make oldconfig”. Però no seguirem aquest procés i compilarem totalment de nou el nostre kernel vanilla.
No s’exposaran totes les opcions de configuració que hem compilat, ja que la llista és immensa, només s’explicaran les opcions específiques i necessàries per que pugui ser possible l’arrencada sense disc dur i el funcionament de Openmosix.
Les de Openmosix són:
“OpenMosix process migration support”: Aquesta opció permet activar el suport a la migració de processos d’Openmosix. Es la base de l’extensió Openmosix, per tant si no l’activem no disposarem d’aquest.
“Support clusters with a complex network topology”: Si la xarxa que formarà el clúster OpenMosix es complexa (dues o més xarxes enllaçades per un router) ser necessari activar-la, però en el nostre cas la xarxa es simple, així que no l’activarem.
“Stricter security on openMosix ports”: Aquesta opció permet una analització dels paquets rebuts per el port d’OpenMosix, es una opció indispensable per la seguretat, però en el nostre cas, el clúster no serà connectat a Internet i per tant no l’activarem ja que suposarà una millora en el rendiment.
“Level of process-identify disclourse (0-3)”: Indica l’informació que tindrà el node sobre el procés remot que està executant. Podem assignar un valor del 0 al 3, valors més baixos asseguren major privacitat dins la xarxa del clúster, valors més alts menor privacitat. Aquesta mesura esta dedicada bàsicament a clústers d’oficines, d’universitats... on cada node perteneix a un usuari, però en el nostre cas els nodes no tenen necessitat de tenir certa privacitat, així que deixarem aquesta opció amb el valor 2.
“OpenMosix File-System”: Si l’activem podrem treballar amb el sistema d’arxius oMFS, però nosaltres no l’utilitzarem.
“Poll/Select exceptions on pipes”: Aquesta opció es una mera adaptació per suportar processos no estandaritzats per Posix, ja que en UNIX, un procés que escriu en un “pipe”, en principi no es interrumput si un altre procés obre el mateix “pipe”. No marcarem aquesta opció ja que ens és indiferent el seu propòsit.
“Diseable OOM Killer (NEW)”: Les últimes versions del kernel disposen d’un procés força polèmic: el “OOM Killer”. Aquesta opció ens permet desactivar-lo, així que per evitar problemes el desactivarem, o sigui, activarem aquesta opció.
La resta d’opcions són:
“Block devices” > “RAM disk support”: Les estacions de treball diskless requereixen suport per els discs RAM, així que l’activem, i li indiquem 4096. És important que tots els nodes d'un mateix clúster tinguin el mateix màxim de memòria.
“Block devices” > “Initial RAM disk (initrd) support”: Aquesta opció ha de ser desactivada, ja que no utilitzarem una imatge initrd per iniciar el sistema.
“Networking options” > “IP kernel level autoconfiguration”: Ha de ser activat, li indicarà al nucli que deu configurar la xarxa automàticament.
“Network device support” > “Ethernet (10 o 100 Mbit)” > “Realtek 8139”: Hem de donar suport per la nostra targeta de xarxa. Aquesta opció l’hem d’activar dins el propi nucli (*), no com a mòdul (M).
“File systems” > “/dev filesystem support”: Si utilitzéssim el sistema de fitxers de LTSP per els nodes diskless situat a “/opt/ltsp/i386”, hauríem d’activar el suport DEVFS, però com treballarem amb el sistema d’arxius Debian, l’haurem de desactivar.
“File systems” > “Automatically mount at boot”: Quan no utilitzem una imatge inird per iniciar, el sistema de fitxers /dev ha de ser muntat al kernel, durant l’arrencada, així que haurem d’activar aquesta opció.
“File systems” > “Network file systems” > “NFS Client support”: Hem de donar suport al sistema d’arxius de Net File System.
Procediment
|
- Descarreguem el codi font del kernel de “ftp.kernel.org”, la versió 2.4.26. - El descomprimim i el situem a “/usr/src”: “#tar –xvf linux-2.4.26 /usr/src/linux-2.4.26”. - Apliquem l’extensió OpenMosix tal com s’explica en anterioritat. - Configurem el kernel amb les opcions anteriors: “#make menuconfig”. - Creem les dependències: “#make dep”. - Creem la imatge del nucli comprimida: “#make bzImage”, la qual es trobarà a “/usr/src/linux/arch/i386/boot”. |
En l'arrencada no es pot utilitzar el fitxer “bzImage”, generada en la compilació del nucli, aquesta imatge ha de ser convertida en una “tagged image” (imatge etiquetada). Aquesta és una imatge normal amb una capçalera especial que li diu al carregador d’arrencada en xarxa on han d'emmagatzemar-se els bytes en memòria i en quina direcció comença el sistema. Per crear aquesta imatge s'utilitza un programa anomenat “mknbi”.
*Nota: Aquest procés d'etiquetatge del nucli, és summament necessari, però el que no ho hauria de ser és el especificar les dades de la xarxa en l'etiquetatge, tal com indiquem posteriorment que s'ha de fer amb la sintaxi de la comanda “mkelf-linux”. Teòricament s'ha compilat el nucli de de tal manera que fos capaç d'obtenir la configuració de la xarxa mitjançant DHCP, això ho fa l'opció “IP kernel level autoconfiguration”, però no s'ha aconseguit el propòsit per motius que desconeixem, així que l'única solució que hem trobat a aquest problema és utilitzar l'opció “--ip” del programa “mknbi”. Aquesta solució té el desavantatge de que necessitem un nucli diferent per a cada node.
Procediment
|
- En aquest exemple suposem que el el node anomenat “node2” li correspon la IP 192.168.100.2. - Instal·lem mknbi mitjançant “APT”: “#apt-get install mknbi”. - Ens situem al directori de la bzImage. - Executem la següent comanda segons el nucli que vulguem etiquetar: “#mkelf-linux bzImage –output=/tftpboot/lts/om-node2 –-ip=”192.168.100.2:192.168.100.1:192.168.100.1:255.255.255.0:ws006.ltsp” –rootdir=”192.168.100.1:/opt/ltsp/i386” –-rootmode=”rw”. |
- “-output”: Aquí indiquem la ubicació de sortida del nucli que etiquetem.
-“--ip”: S'ha d'indicar seguint aquest ordre:
“client:servidor:gateway:màscara:hostname”.
- “rootdir”: Hi hem d'indicar el directori on estan situat l'arbre de directoris que usaran els nodes diskless.
- “rootmode”: Els permisos amb que es muntaran els fitxers.
Com podem observar en la sintaxi de la comanda “mknbi”, el kernel ja etiquetat es troba a “/tftpboot/lts/om-node1”, així que haurem de modificat el fitxer “/etc/dhcp3/dhcpd.conf” i indicar-li la ruta d’aquest. Això ho haurem de repetir per a cada node, de manera que cadascú tindrà el seu propi nucli.
|
host ws001 { hardware ethernet 00:11:22:33:44:55; fixed-address 192.168.100.2; filename “/tftpboot/lts/om-node1”; } |
Així successivament per a cada node.
5.3 El kernel del servidor
El nucli que haurem de compilar per el node servidor, haurà de ser la mateixa versió que la dels nodes diskless, i òbviament també haurà de disposar de l’extensió Openmosix. Com que aquest ordinador haurà d’atendre moltes més tasques que la resta, el kernel també haurà de disposar d’un ventall de funcions més ampli; suport per xarxes de Windows, per impresores, ratolins, dispositius USB...
A continuació explicarem quines són les opcions essencials que haurem d’activar en el gestor de configuració del nucli per que pugui assolir la funció principal que se li encomana: fer de servidor per a nodes diskless.
“RAM disk support”: S’ha d’activar i fixar el mateix nombre que els hi hem posat per els nodes diskles, 4096.
“Block devices” > “Initial RAM disk (initrd) support”: Per iniciar aquest ordinador si que utilitzarem una imatge initrd, així que activem l’opció, posteriorment ho explicarem amb més detall.
“Network device support” > “Ethernet (10 o 100 Mbit)” > “Realtek 8139”: Hem de donar suport a la nostra targeta de xarxa.
“File systems” > “Network File systems” > “NFS file system support”: Activem aquesta opció per donar suport al sistema d’arxius “Net File System”.
“File systems” > “Network File systems” > “NFS server support”: Òbviament també hauremde donar suport per el sistema de fitxers “NFS” en funció de servidor, així que activem aquesta opció.
“Networking Options” > “Packet socket”: Aquesta opció, juntament amb la següent, són requerides per el servidor “DHCP”, així que les haurem d’activar.
“Networking Options” > “Socket Filtering”: L’activem per el servidor DHCP
Apart d’aquestes opcions no ens hem d’oblidar l’activació de les de Openmosix i la resta que siguin necessàries per els nostres propòsits, com ho és el suport per sistemes “EXT3”, sistemes de fitxers dels CD (ISO9660), dispositius PCI...
Seguidament s’haurà de compilar el nucli tal com hem fet amb els nodes diskless, aquest nucli no caldrà etiquetar-lo, però si que necessitarem utilitzar una imatge “initrd”.
Una imatge initrd, és un petit sistema d’arxius que és carregat a la memòria que una vegada el kernel és iniciat aquesta muntarà una espècie de disc ram com a sistema de fitxers arrel. Existeix una aplicació per crear imatges initrd anomenada “mkinitrd” amb la que crearem la nostra. S’ha de dir que no totes les versions del nucli requereixen d’una imatge initrd.
Procediment
|
- Movem el nucli comprimit que hem compilat al directori “/boot”: “#mv /usr/src/linux-2.4.26/arch/i386/boot/bzImage /boot/” - Creem l’ imatge d’arrencada “initrd” al directori juntament amn el kernel: “#mkinitrd –o /boot/initrd”. |
Una vegada tenim les dues imatges situades al directori “/boot”, haurem de configurar el gestor d’arrencada per que ens deixi iniciar el sistema amb elles. Nosaltres vam instal·lar Grub, així que explicarem el procés de configuració d’aquest.
El fitxer de configuració principal de Grub, s’ubica a: “/boot/grub/menu.lst”, l’editarem amb qualsevol editor de text, i hi aplicarem els següents paràmetres:
|
title Debian 2.4.26 + OpenMosix root (hd0,0) kernel /bzImage root=/dev/hda2 rw initrd /initrd savedefault boot |
- El paràmetre “title” indica el títol que mostrarà Grub al menú d’arrencada.
- El paràmetre “root”, indica on es troba la partició “/boot”
- El paràmetre “kernel” indica la ubicació del kernel dins la partició “/boot”, la partició on és troba el sistema de fitxers arrel, i el mode amb que es muntarà.
- El paràmetre “initrd” indica la ubicació de la imatge initrd.
Openmosix és una programari, i bàsicament una extensió del kernel Linux que dota l'ordinador de la capacitat de treballar com a node d'un clúster. La funció principal d'aquest és el balanceig de carrega; la migració automàtica i transparent dels processos entre els diferents nodes de la xarxa, depenent de la velocitat de cada ordinador.
El gran avantatge d'Openmosix sobre altres programaris de clústering és que com aquest funciona juntament amb el kernel, com una part més d'ell, es totalment compatible amb la majoria d'aplicacions Linux, exteriorment gairebé es impossible distingir un ordinador normal amb un que funciona com a node d'un clúster.
Openmosix deriva del projecte Mosix, el qual no disposa de llicència GPL, és de codi tancat. Per aquest motiu alguns dels desenvolupadors del projecte es separaren i crearen Openmosix, totalment lliure sota llicència GPL. Això a comportat nombroses millores del projecte Openmosix sobre Mosix, l'acomodació a l'estructura de Linux, un algoritme de migració de processos més net, una millora en el balanceig de càrrega, suport per més arquitectures, i un immens augment de documentació.
Per un altra banda, com qualsevol tipus de programari, Openmosix també té les seves desavantatges, com que funciona juntament amb el kernel, depèn de la versió d'aquest, doncs cada nucli té la seva versió de Openmosix i per evitar problemes hauríem de treballar també amb la mateixa versió per tots els nodes. Amés és incapaç de migrar processos que utilitzin memòria compartida com per exemple: MySQL, Apache, Oracle, SAP... per solucionar aquest problema existeix una aplicació anomenada Migshm, però encara esta en fase de proves, per tant no l'utilitzarem ja que podria comportar certs problemes en el rendiment del clúster.
6.1 OpenMosix tools
Principalment Openmosix és una extensió per el nucli, però també correspon a una sèrie d’aplicacions necessàries i molt útils per la seva administració. Aquest grup d’aplicacions que ofereix el projecte OpenMosix s’anomena “Openmosix tools”, serveixen per examinar i controlar cada node, per el qual és necessari que estiguin instal·lades a tots els ordinadors vigents el clúster.
Per instal·lar-les en el servidor farem el següent:
Procediment
|
- Necessitem tenir instal·lada la biblioteca “ncurses”, executem la següent ordre amb APT: “#apt-get install libncurses5 libncurses5-dev”. - Descarreguem el paquet “openmosix tools” de “openmosix.sourceforge.net”. - Com és un fitxer comprimit amb extensió “tar.gz” executem: “#tar -xvzf fitxer.tar.gz”. - Executem el fitxer “config” per que ens generi els fitxers necessaris per la compilació. - Executem les ordes “#make && make install” per generar els binaris i instal·lar-los. - Amb el programa update-rc.d inclourem el dimoni openmosix en l'arrencada del sistema, per que s'iniciï automàticament : “#update-rc.d openmosix 99 20”. Això generarà el següent: “S99openmosix” “K20openmosix”. |
Per instal·lar-les en el sistema que usen els nodes diskless, el procés és una mica més complicat, però hem ideat una manera d'aconseguir-ho que ho simplifica molt. Consisteix en fer un canvi d'arrel, la comanda “chroot” ens permet interactuar en un altre arbre de directoris com si del nostre propi arbre es tractes, o sigui, només caldrà executar la comanda “#chroot /opt/ltsp/i386” per obtenir una terminal en el sistema d'arxius situat en aquest directori.
Com suposem que en el node servidor tenim internet, farem un canvi d'arrel al sistema dels nodes diskless i mitjançant APT instal·larem la biblioteca “ncurses” necessària per Openmosix.
Procediment
|
- Establim el canvi d'arrel: “#chroot /opt/ltsp/i386”. - Editem el fitxer “/etc/network/interfaces” i configurem la xarxa que utilitzarem per usar APT. - Reiniciem el dimoni de gestió de xarxa: “#/etc/ini.td/networking restart”. - Instal·lem la biblioteca: “#apt-get install libncurses5 libncurses5-dev”. -Per tornar a la terminal del nostre sistema executem: “#exit”. |
6.2 OpenMosix View
El projecte Openmosix View és un projecte paral·lel a Openmosix. Es tracta d'una aplicació de visualització i administració d'una forma gràfica i amigable. Aquesta eina, a diferència de les “Openmosix tools”, no és necessària per el funcionament del clúster, però ofereix un entorn més agradable que el sistema de text, per tant el instal·larem.
Procediment
|
- Openmosix View, requereix una sèrie de biblioteques anomenades “QT”, les quals podem descarregam mitjançant APT: “#apt-get install libqt3-dev”. - Ens descarreguem el codi font de “www.openmosixview.com”. - Executem el fitxer “setup” amb l'ordre: “#./setup”, per preparar els arxius per la compilació. - Executem les comandes: “#make && make install”, per generar i instal·lar els binaris. |
Per treballar amb OpenmosixView, haurem d'entrar en el sistema gràfic (X-window) i executar l'ordre “openmosixview”.
La configuració y aplicacions de OpenMosix
En aquest apartat farem un recorregut per les diferents aplicacions que incorporen els dos paquets de Openmosix anteriorment instal·lats. Aquests són fonamentals per l'administració i monitoratge del clúster. Tots els processos es duran a terme en la terminal del node servidor.
Per que el clúster funcioni correctament, s'han de configurar dos fitxers bàsics, són els següents:
Openmosix.map: S'allotja al directori “/etc”, abans d'iniciar el clúster hem de configurar-lo. Posseeix informació sobre els diferents nodes fent així possible el reconeixement d'aquests. La sintaxi que s'ha d'utilitzar en aquest fitxer és la següent:
|
MOSIX IP Number of nodes 1 192.168.100.1 1 2 192.168.100.4 1 |
En el camp “MOSIX”, hem d’introduir l'identificador de cada node, en el camp “IP” la direcció IP, i en el camp “Number of nodes” el nombre de nodes existents amb direcció IP seguida, per exemple: “192.168.100.1 10”, significa que hi ha deu nodes seguits: “192.168.100.1, 192.168.100.2, 192.168.100.3...”.
Aquest fitxer, una vegada configurat ha de ser copiat al directori “/opt/ltsp/i386/etc”, per tal de que sigui utilitzat també per els nodes-diskless.
Openmosix.config: Es troba al directori “/etc/openmosix”, es tracta d'un fitxer de configuració que serà llegit cada cop que arranqui el clúster on són descrites les diferents opcions que vulguem activar a cada node. Si editem aquest fitxer ens trobem amb una mutltiud d'opcions disponibles, però tan sols explicarem les que considerem més importants:
Myomid: Aquesta opció ens permet afegir un identificador al node.
Autodisc: És una aplicació que s'encarrega de comprovar si s'afegeixen nous nodes.
Autodiscif: S'especifica el dispositiu de xarxa que usarem si activem l'opció “Autodisc”.
Nodespeed: S'hi ha d'introduir la velocitat del processador de cada node.
Migrate: És la funció principal del Openmosix, la migració. Per treballar en el clúster debem activar-la.
Block: Si activem aquesta opció permitim que no hi hagi ningun bloqueig d'entrada dels processos en els nodes.
Següidament s'exposen les aplicacions d'administració de Openmosix.
Omdiscd: És un dimoni que s'encarrega de gestionar addicció o supressió dels nodes automàticament, evitant així la configuració automàtica del fitxer “openmosix.map”
Showmap: Amb aquesta comanda podem veure els nodes vigents en el clúster.
Migrate: Ens permet migrar un procés específic a un node en concret, una vegada a estat executat. La sintaxis és: “#migrate pid ID”, el PID es el nombre identificador del procés, el podem descobrir amb la comanda “#ps aux” o “#top”.
Mosctl: És la principal eina d'administració de Openmosix, la seva sintaxis és “#mosctl opció”, on el paràmetre “opció” pot ser qualsevol dels següents:
stay, nostay: Amb el paràmetre “nostay” indiquem al programa que permeti el migrat automàtic de processos, i amb “stay” el contrari. Aquesta opció és important, ja que si no l'activem haurem de migrar els processos manualment amb l'ordre “migrate”.
lstay, nolstay: Elabora la mateixa funció que la comanda anterior però referint-se exclusivament als processos locals, amb “nolstay” indiquem que volem migrar els processos executats en la nostra màqui na.
lock, noblock: Indica si la el node estarà disposat a acceptar processos entrants procedents d'altres nodes, amb “noblock” permitim la migració entrant.
nomfs, mfs: Amb aquesta opció podem activar o desactivar l'ús del sistema d'arxius “MFS”. En el nostre projecte no utilitzarem “MFS”, sinó el convencional “NFS”.
quiet, noquiet: Ens permet activar o desactivar l'acumulació d'informació sobre el balanceig de càrrega dels nodes.
gettune, getdecay: Amb el paràmetre “gettune”, és mostrat el valor del paràmetre “overhead” usat per el nucli per estimar el valor d'entrada i sortida en el balanceig de càrrega. Els valors són donats en microsegons. Amb getdecay podem observar els paràmetres de decadència del clúster.
expel, bring: “Bring” serveix per fer retornar tots els processos locals que han sigut migrats i s'estan processant en altres nodes a la màquina local. I amb “expel” retornem els processos que estiguem processant en el nostre node al seu node local.
whois: S'utilitza amb la sintaxi “#mostcl whois [openmosix-ID, direcció-IP, hostname]”, ens permet descobrir aquest tres paràmetres d'un node en concret.
setspeed: Ens permet canviar les unitats de velocitat del node local en el que estem treballant.
setdecay: Mitjançant aquesta ordre podem modificar el seu valor posant el que més ens convingui.
informació dels nodes: Hi ha una sèrie d'opcions que ens permeten aconseguir certa informació sobre el funcionament del clúster, la sintaxis és “#mosctl opció Openmosix-ID”. Les opcions possibles són:
getload: Mostra la càrrega del node.
getspeed: Mostra la velocitat del node.
getmen: Mostra la memòria lògica disponible.
getfree: Mostra la memòria total del node.
getutil: Mostra la disponibilitat del processador.
Mosrun: Aquesta eina ens permet executar un procés amb una configuració de nodes específica, podem especificar en quins nodes s'executarà. La sintaxis que presenta, expressada tal i com descriu l'ajuda del programa, és la següent:
“mosrun [--{h | openMosix_ID | jID1-ID2 [,ID3-ID4]...} [-F]] [-{I|L|k}] [-{c|i|n|s|f| [-t tt] [-d dec] } [-{e|E}] [-{r|R]] [-z] command [arguments]”
Els arguments possibles són:
nomig: S'executa una comanda que no serà migrada.
runhome: S'executa una comanda que quedarà al node local.
runon: S'executa una comanda que serà migrada al node o nodes indicats.
cpujob: S'executa una comanda ndicant al sistema que es tracta d'un procés molt intensiu.
iojob: S'executa una comanda indicant al sistema que es tracta d'un procés de càrrega de gran entrada i sortida.
nodecay: S'executa una comanda sense tindre en compte les estadístiques.
slowdecay: S'executa una comanda, indicant a OpenMosix un decaiment d'estadístiques baix.
fastdecay: S'executa una comanda, indicant a OpenMosix un decaiment d'estadístiques alt.
mosmon: És una aplicació que permet la visualització del rendiment del clúster mitjançant gràfics. Permet l'observació de varis nodes simultàniament d'una forma molt amigable. Les opcions són les següents:
- l : La carrega dels nodes.
- h: El menú d'ajuda.
- d: Mostra tots els nodes, incloits els no actius.
- t: Mostra el nombre de nodes.
- s: Mostra la velocitat màxima dels processadors.
- u: Mostra el percentatge disponible de cada processador.
- m: Mostra la memòria utilitzada.
moslimit: És tracta d'una eina d'administració amb la qual podem incloure límits de càrrega dels nodes, per exemple podríem aconseguir que un ordinador compartís només un 50% de la seva capacitat de processador.
setpe: És l'eina que determina la configuració dels nodes dins el clúster, aquesta és activada en la inicialització de Openmosix. Els paràmetres que hi podem afegir són:
- off: Extreu el node del clúster.
- w: Carrega la configuració del fitxer indicat i la grava al nucli per el seu posterior ús.
- c: Realitza el mateix que “w” però no grava la configuració al nucli.
6.4 SSH
SSH (Secure Shell), és el nom d'un protocol i d'un programa que serveix per
accedir a màquines remotes mitjançant una xarxa, semblant a telnet però utilitzant
un xifrat en les transmissions. Utilitzarem SSH per administrar remotament, des del servidor, tots els nodes diskless, ja que aquests no disposen de monitor ni teclat per poder administrar-los. Amés Openmosixview, porta una eina de gestió remota per a la qual necessitarem que tots els nodes disposin d'un servidor SSH (sshd) amb clau d'accés buida, això significa que no serà requerida cap contrasenya per la connexió SSH. Per connectar amb un node remotament teclejarem: “#ssh nodeX”.
|
- Per crear la clau buida, realitzarem els següents processos, tenint en compte que aquests són exclusius del nostre projecte, ja que contenen la nostra configuració. “#ssh-keygen -t dsa -N "" -f /root/.ssh/id_dsa” “#cp -a /root/.ssh /opt/ltsp/i386/root/” “#cp /root/.ssh/id_dsa.pub /opt/ltsp/i386/root/.ssh/authorized_keys” “#cp /root/.ssh/id_dsa.pub /root/.ssh/authorized_keys” “#chmod 644 /opt/ltsp/i386/root/.ssh/authorized_keys” “#chmod 644 /root/.ssh/authorized_keys” “#/etc/init.d/ssh start” “#echo -n "* " >> /opt/ltsp/i386/root/.ssh/known_hosts” “#cat /etc/ssh/ssh_host_rsa_key.pub >> /opt/ltsp/i386/root/.ssh/known_hosts” “#echo -n "* " >> /root/.ssh/known_hosts” “#cat /etc/ssh/ssh_host_rsa_key.pub >> /root/.ssh/known_hosts” “#cp -a /etc/ssh /opt/ltsp/i386/root/” |
El muntatge mecànic del clúster ha estat força complicat degut a que no s'ha utilitzat gairebé cap element prefabricat, la gran majoria són parts de les torres reciclades que he aconseguit acumular. Aquest muntatge conté els quatre nodes diskless, i una base de comandaments d'on podem controlar-los. Com ja s'ha mencionat, els nodes diskless disposen únicament de: placa base, processador, memòria, targeta de xarxa i disquetera.
Tot el maquinari, és reciclat. Es van aconseguir acumular aproximadament 8 torres d'ordinadors antics alguns d'ells provinents de gent que ja no els necessitava i altres de la deixalleria municipal. D'aquests és van aprofitar 4 places base, 4 disqueteres, varis mòduls de memòria ram SIMM-EDO i multitud de peces metàl·liques de la caixa. També van ser necessàries diferents taulons d'aglomerat per fer l'estructura les quals vaig recollir d'un contenidor de fusta.
Amés d'això, jo també disposava de certs components que tenia i no feia servir: dues targetes de xarxa Realtek, un switch ethernet de 8 ports, l'ordinador que s'ha fet servir com a servidor i els cables de xarxa RJ45. Les tres targetes de xarxa que hem feien falta, me les van donar de segona mà, a una tenda d’informàtica.
Com podem observar, el producte final, és una caixa de fusta de 1,25m d'amplada i 0,36 d'alçada, dins hi ha dues torres modificades de tal manera que cada torre consta de dues plaques bases amb el seu maquinari i compartint una sola font d'alimentació per reduir així l'espai, el pes i el consum total del clúster.
A continuació podem veure un seguit de fotografies que presenten les parts més importants del projecte mecànic.
|
|
|
|
El muntatge finalitzat. |
Vista superior sense tapa. |
|
|
|
|
Vista del darrere sense tapa |
Una de les dues torres. |
|
|
|
|
Una placa base d’una de les torres. |
Construcció de l’estructura |
|
|
|
|
Habitació de proves. |
Recol·lecció inicial de material. |
Una vegada hem aconseguit fer funcionar el CLARR amb totes les seves funcions, realitzarem una sèrie de proves per tal d'observar i treure conclusions sobre el seu rendiment. Aquestes proves seran processades en primer lloc al node servidor sense estar connectat al clúster, i en segon lloc connectant-ho tot, d'aquesta manera s'observarà l'augment de potència que s'experimenta. No usarem el sistema gràfic ni l'aplicació “OpenMosixView” ja que aquesta requereix unes altes prestacions de recursos del sistema, i necessitem el màxim rendiment possible.
El node servidor, té les següents característiques segons el fitxers de dades “/proc/cpuinfo” i “/proc/meminfo”.
|
cpuinfo |
meminfo |
|
Processor : 0 vendor_id : GenuineIntel cpu family : 5 model : 4 model name : Pentium MMX stepping : 3 cpu MHz : 233.299 fdiv_bug : no hlt_bug : no f00f_bug : yes coma_bug : no fpu : yes fpu_exception: yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr mce cx8 mmx bogomips : 465.3 |
Mem: 62738432 kB Swap: 150659072 kB MemTotal: 61268 kB MemFree: 13220 kB MemShared: 0 kB Buffers: 1252 kB Cached: 20388 kB SwapCached: 1184 kB Active: 512 kB Inactive: 41980 kB HighTotal: 0 kB HighFree: 0 kB LowTotal: 61268 kB LowFree: 13220 kB SwapTotal: 147128 kB SwapFree: 140912 kB Committed_AS: 2048 kB
|
Els nodes diskless, contenen les següents característiques generals segons també els fitxers de dades “/proc/cpuinfo” i “/proc/meminfo”:
|
|
Node1 |
Node2 |
Node3 |
Node4 |
|
Vendor id |
Genuine Intel |
Genuine Intel |
Geniune Intel |
Geniune Intel |
|
Model name |
Pentium MMX |
Pentium MMX |
Pentium 75-200 |
Pentium 75-200 |
|
cpu MHz |
133,637 MHz |
166.404 MHz |
133,639 Mhz |
152,136 Mhz |
|
bogomips |
266,24 |
331,77 |
266,24 |
303,10 |
|
Memòria MB |
37,81 MB |
29,720 MB |
29,720 MB |
21,632 MB |
8.1 Compressió d'àudio
La primera prova que duren a terme serà la de compressió d'àudio, partint d'un fitxer descomprimit en format “.wav”, en crearem un de comprimit amb format “.mp3” que aproximadament ocupa 10 vegades menys. Per començar, haurem de disposar dels fitxers wav, els quals copiarem d'un CD de música amb el programa “cdparanoia”: “#cdparanoia -B”, això generarà un seguit de diverses cançons. Posteriorment, amb el programari “BladeEnc” cronometrarem el temps que triga en comprimir-los. El propi programa, al finalitzar ens informarà dels temps transcorregut.
Hi ha dues maneres de realitzar aquest procés, en sèrie i en paral·lel. En sèrie seria comprimir el fitxer 1, una vegada finalitzat, el 2, el 3... I en paral·lel consistiria en comprimir-los tots a l’hora. Per mesurar el rendiment del clúster hem d'utilitzar el processament paral·lel, ja que en sèrie no obtindríem resultats. Un exemple metafòric que ens pot ajudar a comprendre el perquè d'aquesta tria, és: “si tenim una botella amb un coll molt ampli però l'omplim amb un raig d'aigua molt fi, aquesta trigarà molt a omplir-se, per això necessitem un raig d'aigua ben gros”.
Per realitzar aquesta operació, haurem de programar un “shell script”. Ens situarem en el directori on tenim els fitxers d'àudio descomprimits, i elaborem el següent fitxer de text:
|
#!/bin/bash bladeenc track01.cdda.wav & bladeenc track02.cdda.wav & bladeenc track03.cdda.wav & [...] |
Per fer un fitxer text executable, utilitzem l'ordre “#chmod a+x fitxer”, i per executar-lo la comanda “./fitxer”.
Els resultats que hem obtingut en la compressió de 67,47 minuts de música wav a mp3 de 128 kBit, són:
- Sense clúster en sèrie: 61,31 minuts.
- Sense clúster en paral·lel:62,43 minuts
- Amb clúster en paral·lel: 20,41 minuts
Com podem observar, el rendiment del clúster, és superior al del ordinador independent, en un 66% aproximadament.
8.2 Compilació d'un nucli
Els clústers d'alt rendiment, són molt usats per la compilació de grans codis fonts, sobretot en les anomenades granges de compilació, ja que aquesta tasca es requereix un alt nivell de processament.
Un molt bon exemple per calcular el rendiment del CLARR en una compilació, és la creació d'un nucli Linux a partir del seu codi. Per fer això, ens descarregarem el codi font del kernel 2.4.26, i utilitzant el fitxer de configuració que porta per defecte elaborarem les dependències (“#make dep”). Posteriorment farem una copia exacta d'aquest directori, a un compilarem la imatge del nucli mitjançant el clúster i a l'altre la compilarem amb el node servidor sol. Per que migrin correctament els processos en quan utilitzem el clúster, s'ha d'afegir l'opció “-j”, la qual especifica el nombre de processos que s'han d'executar simultàniament; (“#make -j 5 bzImage).
Com que aquest procés és llarg, i una vegada finalitzat no especifica el temps transcorregut, hem programat un script especial per elaborar aquesta funció. El trobarem a l'apartat “Scripts” amb el nom de “temporitzador”.
Els resultats de la compilació d'una imatge comprimida (bzImage) del kernel linux 2.4.26, han estan els següents:
- Sense clúster: 46,38 minuts
- Amb clúster: 26,05 minuts
Per tant amb el clúster s'ha aconseguit un rendiment del 56% superior respecte l'ordinador independent.
8.4 Test
Existeixen varis test destinats a comprovar el rendiment dels clústers, n'hem elegit un de força senzill escrit en llenguatge C, el podem trobar a la pàgina “www.captain.at”. Els resultats obtinguts en l'execució d'aquest, han sigut:
- Sense clúster: 25,23 minuts
- Amb clúster: 14,30 minuts
Aquesta operació representa un 43% de rendiment superior del clúster en relació a l'ordinador independent.
8.5 Avaluació total
Com es pot observar, on ressalta més el rendiment del clúster és en la compressió d’àudio. Això pot ser degut a que el procés tan gran que hem executat, la compressió de 18 cançons alhora, ha fet que tots els nodes treballessin gairebé al límit de les seves possibilitats aprofitant així al màxim el rendiment total del clúster. Mentre que altres aplicacions, com el test, no han processat tants recursos de cop i no s’ha obtingut un rendiment tan alt. A més a més també s'ha de tenir en compte que aquest procès es un procès el qual pot ser distribuit paral·lelament amb molta facilitat i efectivitat.
A continuació es mostra una captura del programa “mosmon” en estan “load”, ens mostra la carrega dels 5 nodes que componen el clúster.

|
|
|
|
|
|
Un script o guió, és un fitxer de text que conté una sèrie d'instruccions les quals es poden executar en la línia de comandes d'una terminal. En aquest sentit són iguals als fitxers amb extensió “bat” del sistema operatiu MS-DOS, tot i que, òbviament com en Linux no existeix el concepte d'extensió, poden tenir qualsevol nom. L'únic requisit és que aquest fitxer de text tingui permisos d'execució. Per fer un fitxer de text executable, utilitzem la comanda “chmod”, i per executar-lo “./fitxer”.
La terminal de GNU/Linux “bash”, és una shell molt potenta, això fa que l'elaboració de shell scripts sigui molt útil sobretot per facilitar i fer més còmodes certs processos.
En el projecte CLARR, s'han creat alguns scripts, molt senzills, però útils, que exposem a continuació.
Temporitzador
S'executa un procés i al finalitzar mostra el temps en que ha esta iniciat, i finalitzat. És molt útil per calcular el que es triga al realitzar un procés.
|
#!/bin/bash echo “Teclegi la comanda” read comanda date1=$(date) $comanda date2=$(date) echo “Inici: $date1” echo ”Final: $date2” |
Node-Stop
Amb aquest script podem aturar els nodes remotament.
|
#!/bin/bash echo “Host o IP del node a aturar” read ip ssh $ip << EOF shutdown -h now EOF echo “$ip aturant-se...” |
Node-Exec
Executa una comanda a tots els nodes del nostre clúster, menys al servidor. Aquest script s'ha de modificar segons la distribució de les IP específica del clúster.
|
#!/bin/bash echo “Teclegi la comanda a executar en tots els nodes” read com ssh node2 << EOF $com EOF ssh node3 << EOF $com EOF [repetir per tots els nodes...] |
10.1 Valoració del projecte
El tema d'aquest projecte mai ha estat totalment definit fins arribar a data d'avui, on he pogut observar finalment quin és el seu veritable aspecte. En cap moment he disposat d'uns coneixements suficientment amplis que m'hagin permès pronosticar el que acabaria elaborant, doncs a mesura que anava adquirint coneixements, l'ambició de superar-me creixia i es manifestava en un projecte més complicat. Fins fa uns dies no he tingut la certesa que aquest projecte funcionaria.
Veritablement la primera idea que tenia sobre el CLARR s'allunya molt de la vertadera. Inicialment pretenia fer un treball bàsicament textual, el títol era “La supercomputació a Catalunya”. Després de dur a terme una petita recopilació d'informació, (inclòs vaig arribar a contactar amb la CESCA “Centre de Supercomputació de Catalunya”), va ser llavors quan vaig conèixer el concepte de clúster, i em va fascinar de tal manera que vaig decidir canviar totalment el rumb del projecte. Tot i que encara no sabia com, tenia clar que faria un treball pràctic sobre l'elaboració d'un mini-superordinador.
Seguint amb aquesta tònica, més endavant, quan ja havia començat la part pràctica, llegint un manual, em va cridar l’atenció un apartat d’un manual. Parlava de l'arrencada sense disc dur (diskless), em va semblar un procés molt interessant. Era una manera d'estalviar energia, soroll, escalfaments i despeses econòmiques, que, a més, donava un major aspecte de supercomputador, ja que tot seria emmagatzemat dins una mateixa caixa. Arribat a aquest punt, el CLARR va començar a agafar forma. Posteriorment el projecte va avançar i va evolucionar fins arribar al que podem observar en aquests fulls de paper.
Realment, crec que el CLARR m'ha ensenyat més a mi, que jo a ell. He adquirit un ventall immens de coneixements en relació als que posseïa, ja que en relació al món de la supercomputació són minúsculs. Crec que el que vertaderament m’ha il·lustrat, han estat els numerosos problemes amb que m'he topat. Si els redactés tots probablement ompliria varies pàgines, òbviament al projecte he mencionat únicament la solució a aquests. A més, he patit l'inconvenient de viure lluny de la gran ciutat, doncs no he trobat ningú que domini els temes amb que he tractat, i per tant no he tingut cap recolzament tècnic.
10.2 El CLARR, els clústers
Referent al CLARR, el rendiment que s'ha obtingut no és ben bé el que imaginava que s'obtindria, tot i això no estic descontent amb l'aconseguit. S'ha de valorar que he treballat amb màquines força antigues, totes reciclades, això comporta diversos problemes amb el maquinari. A més si analitzem més estrictament els aspectes tècnics, ens trobem amb que un sol ordinador ha de gestionar la càrrega de disc dur de 5 ordinadors, i aquest no és més que un i586 a 233MHz. Si no haguéssim utilitzat la propietat diskless possiblement els resultat hagués estat més alt.
Tot i això, tenint en compte la meva dedicació, els coneixements que posseïa quan vaig començar, i els pocs recursos dels quals disposava, el producte final té un cert mèrit, (doncs per exemple, en la compressió d'àudio s'ha aconseguit un rendiment del 65% sobre l'ordinador individual). Òbviament degut a l'immens avanç de l’informàtica, si ho comparem amb els ordinadors dels que disposem avui en dia, els resultats semblen ridículs.
Després d'haver estudiat el sistema de clústering, i haver realitzat aquest petit experiment, arribo a la conclusió de que és una alternativa als superordinadors molt assequible i altament interessant en el camp científic, on aquest tipus de tecnologia és realment aprofitada. En canvi, en el camp empresarial no és tan útil, ja que requereix una despesa de diners important per la contractació dels tècnics degut a la complexitat de la seva elaboració. És exclusivament rendible en el cas d'empreses destinades estrictament a cobrir les necessitats que un clúster ofereix, per exemple un servidor web. Per últim, en el camp domèstic, no existeix un aprofitament suficientment gran per cobrir les despeses que aquest comporta, energia, espai, soroll... És absolutament absurd l'ús domèstic dels clústers.
10.3 Una alternativa per l'institut
La xifra de despesa econòmica que representa per a l'institut la compra i manteniment de l'equipament informàtic és extremadament alta. Elaborant aquest treball m'he adonat de l'existència d'una alternativa que comportaria multitud d'avantatges enfront això.
Els ordinadors de les aules d'informàtica dels alumnes, disposen de tota una sèrie de maquinari d'última generació, computadores personals amb processadors Pentium 3 i 4, discs durs d'alta capacitat, memòries relativament grans, etc. Proposo un sistema en el qual s'aconseguiria el mateix rendiment en cada ordinador amb un cost més assequible. Es tracta, com hem estudiat anteriorment, del funcionament sense disc dur o “diskless”, les màquines serien terminals sense disc rígid connectades via xarxa a un servidor el qual les allotjaria en el seu. Això comportaria les següents millores:
La reducció de costos de manteniment del programari en gran quantitat de màquines, amb l'inici per xarxa els fitxers són mantinguts en el servidor, Això comporta l'avantatja de poder ser administrats en una sola màquina.
La possibilitat de commutar entre diferents sistemes operatius amb immensa facilitat. Podríem utilitzar tant Windows com GNU/Linux o qualsevol altre.
Una administració més estricta i amplia, ja que és un sol ordinador el que ho controla tot.
Una reducció important dels costos econòmics, ja que es podria prescindir dels discs durs, i els ordinadors no haurien de ser tan potents, inclòs bastarien senzills i586 300Mhz amb 64MB.
Per que tot aquest sistema funciones, això sí, seria necessari un servidor relativament potent, el qual podria ser perfectament, per reduir encara més els costos, un clúster de computadors.
Un altra alternativa que podria fer disminuir, en menor mesura, les despeses econòmiques, seria la utilització de programari lliure. L'ideal seria una completa substitució del sistema operatiu Microsoft Windows per GNU/Linux, ja que aquest segon és de lliure distribució i no s'haurien de pagar llicències per utilitzar-lo. Però si aquest és considerat un canvi massa brusc respecte l'alumnat, existeix la possibilitat d'utilitzar programari lliure sota l'entorn de Windows. Un exemple és OpenOffice, una alternativa gairebé idèntica al Office de Microsoft, inclòs millorada, totalment gratuïta.
gcc: GNU C Compiler, el compilador de llenguatge C del projecte GNU.
GPL: General Public License. Llicència utilitzada per el programari GNU.
Hostname: Nom d’un equip que l’identifica en una xarxa
HOWTO: manual d’instruccions
Kernel: Significa cor. És el nucli d’un sistema operatiu el qual fa d’intermediari entre l’usuari i els programes, i el maquinari del l’ordinador.
Lilo/Grub: Gestors d’arrencada del sistema GNU/Linux.
Linux: Nom del nucli creat per Linus Torvalds
Muntar i desmuntar: Procés pel qual un sistema d’arxius es fa o es deixa de fer accessible sota un directori del sistema d’arxius local.
PATH: Variable que conté els directoris on cercarà cada programa que executem en la terminal.
PID: Process ID, nombre que identifica un procés.
Root: Administrador del sistema GNU/Linux.
X: Quant parlem de les X ens referim al sistema gràfic X-Windows.
Software/Hardware: Programari/Maquinari.
C: És un llenguatge de programació creat el 1969 per Ken Thompson y Dennis M Ritchie als laboratoris BELL basant-se en els lelnguates BCPL i B.
IP: Internet Protocol. Direcció formada per 12 nombres que identifica un ordiandors dins una xarxa.
TCP/IP: És la base d’internet que serveix per enllaçar computadores. És un conjunt de protocols que defineixen com és poden comunicar entre si els ordinadors.
UDP: User Datagram
Protocol. Protocol de nivell de transport basat en
datagrames.
netmask: Màscara de xarxa, indica el
rang de direccions IP que poden formar part d’una mateixa
xarxa.
Router: dispositiu intermediari de xarxa que s’encarrega de la seva gestió
MAC: És un nombre format per lletres i números, que posseeixen les targetes de xarxa per identificar-se.
Runlevel: Nivel d’execució. Els sistemes GNU/Linux poden executar-se de maneres diferents segons el runlevel al que es trobin.
Terminal: Un dispositiu mecànic capaç d’establir una connexió amb uns servidor.
Diskless: Propietat que significa “sense disc dur”.
Clúster: un conjunt
d'unitats funcionals interconnectades per mitjà d'una xarxa
que actuen com una sola unitat.
BIOS: Basic Input Output
System. Sistema d’arrencada d’un ordinador.
FTP: File Transfer Protocol. Protocol de xarxa específic per la transferència d’arxius.
The very verbose Debian 3.0 Installation Walkthrough, Clinton De Young
http://www.onews.com/sroty.php?news_id=2016
Enciclopedia virtual Wikipedia
Serveis de xarxa amb GNU/Linux, Jordi BOrt i Marc Guri
http://www.xtec.es/formacio/curstele/d70
Web dedicada al clústering: hispacluster
The OpenMosix Howto
http://howto.x-tend.be/openMosix-HOWTO
LTSP, Linux Terminal Server Project Howto
http://www.ltsp.org/documentation/ltsp-4.1/ltsp-4.1-2-en.html
Web official del projecte Beowulf
Projecte sobre clúster d’alta disponibilitat en GNU/Linux
Llibre: “Manual práctico de redes área local”
Rafael Moreno Vozmediano. – Belenguer