![]() |
..................................................
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 |