Post on 08-Jul-2015
UOC – Universitat Oberta de Catalunya
2012-13
Clústers d’alta
disponibilitat Informe d’ampliació
Aurora Lara Marin
AXSO – Aula 2
2
Índex 1. Introducció ...................................................................................................................3
2. Què són els clústers d'alta disponibilitat? .......................................................................3
3. Avantatges dels clústers d'alta disponibilitat ...................................................................3
4. Configuració dels clústers ..............................................................................................4
4.1. Configuració actiu/actiu .........................................................................................4
4.2. Configuració actiu/passiu .......................................................................................4
4.3. Funcionament .......................................................................................................5
5. Maquinari.....................................................................................................................6
6. Programari especialitzat ................................................................................................6
7. Implementació d'un clúster ...........................................................................................7
8. Conclusió ......................................................................................................................7
3
1. Introducció
En l'administració de servidors es va parlar de les diferents configuracions que podien tindre els
servidors i que es van classificar en dos tipus, sistemes centralitzats i sistemes distribuïts, i una
de les possibles configuracions dels sistemes distribuïts era la de clústers.
2. Què són els clústers d'alta disponibilitat?
Els sistemes clúster són un conjunt de nodes interconnectats, mínim dos, que treballen
conjuntament en la solució d'un problema. En els servidors s'ha de tindre molt en compte que
s'ha de donar suport a redundància i protecció contra fallades del sistema. Normalment això
s'aconsegueix mitjançant la replicació del maquinari més important i imprescindible pel seu
funcionament, on alguns exemples podrien ésser la utilització de RAID, fonts d'alimentació
redundants, o varies targes de xarxa, però encara que amb aquestes solucions s'aconsegueixen
incrementar la disponibilitat del sistema, per incrementar encara més aquesta disponibilitat i que
puguem parlar d'alta disponibilitat podem recórrer als sistemes en clúster.
Els clústers consisteixen en configuracions avançades de maquinari i programari, on dos o més
servidors interconnectats entre si comparteixen els sistemes d'emmagatzemament, a més pel fet
que els servidors estan interconnectats es veuen entre ells i es monitoritzen constantment;
aleshores en el moment que el maquinari o els serveis que un d'aquests servidors deixa de
funcionar, els altres ho detecten al moment i prenen les seves funcions automàticament, fins que
es repara o reprèn el servidor que ha fet fallida i li poden traspassar una altra vegada els serveis.
Amb aquest funcionament s'aconsegueix que els usuaris no detectin que en cap moment el
servidor ha fet fallida i ha deixat de prestar servei.
3. Avantatges dels clústers d'alta disponibilitat
La utilització de clúster a més de l'alta disponibilitat presenta un conjunt d'avantatges sobre
altres sistemes com poden ser millora del rendiment, tolerància a fallides o que el temps de
resposta davant falles sigui correcte, escalabilitat i reducció de costos.
L'alta disponibilitat normalment s'associava a sistemes que realitzaven missions crítiques on era
imprescindible que donessin un servei continu i fiable, però actualment s'estan utilitzant per la
millora del rendiment que presenten, ja que permeten la reducció del temps en que donen un
servei comparat amb altres sistemes degut que possibiliten la distribució de la carrega de treball.
4
A més compleixen altre de les característiques de l'alta disponibilitat com és la tolerància a
fallides, ja que oculten les possibles falles fent que els usuaris no s'adonin que els recursos en
cap moment no han estat disponibles.
4. Configuració dels clústers
Els clústers poden tindre diferents configuracions però en els clústers d'alta disponibilitat les
més utilitzades serien actiu/actiu o actiu/passiu.
4.1.Configuració actiu/actiu
Tots els servidors del clústers tenen disponibles els mateixos recursos, aleshores qualsevol d'ells
pot oferir servei, fent que hagi un repartiment de la carrega de treball entre tots els servidors
disponibles i sigui més eficient al treballar tots el servidors a la vegada; en el moment en que un
dels servidors cau el servei continua disponible a través dels altres servidors , però afecta
negativament en el sentit que aleshores la carrega que suportava aquest servidor que ha caigut
ara es reparteix entre els altres servidors i per tant es pot produir una degradació del servei.
4.2.Configuració actiu/passiu
En aquest tipus de configuració el servidor actiu és el que té els recursos i és el que donarà el
servei, mentre que els servidors passius també tenen els recursos però no fan ús d'ells i no els
activen fins que el servidor actiu deixa d'estar disponible i seran els que prestaran el servei fins
que el servidor actiu es recuperi de la fallada o torni a estar disponible.
Aquest tipus de configuració presenta l'avantatge enfront l'anterior en que ara no haurà
degradació del servei i continuarà oferint servei amb les mateixes condicions en que ho feia el
servidor actiu, però presenta els inconvenients de fer que hi ha un temps de demora degut a que
passa un temps entre que el servidor fa fallida i es migren els recursos als servidors passius, i
també altre seria que els servidors passius no proporcionen cap recurs fins que el servidor actiu
deixa d'estar disponible.
5
4.3.Funcionament
Els clústers d'alta disponibilitat tenen instal·lat un programari amb dues funcions ben
diferenciades, la primera funció és la interconnexió dels nodes, monitoritza contínuament l'estat
dels servidors i detecta les possibles fallides, i la segona seria l'administració dels serveis que
dóna el clúster i a més permet la migració d'aquests serveis en cas de produir-se una fallada.
La funcionalitat del clúster es portarà a terme de diferent manera depenent del programari que
s'hagi instal·lat, però tots tenen un funcionament amb unes característiques comunes:
o Grups de recursos : el programari del clúster permet que pugui haver una agrupació dels
recursos necessaris per donar un servei determinat. En un sistema normal el servei
consisteix en un conjunt de processos que s'executen en una màquina concreta i sobre un
sistema operatiu determinat, però en el cas dels clústers, es produeix una abstracció i
s'independitzen els processos d'un servidor i sistema operatiu específic. Els grups de
recursos corresponents a un servei determinat consistiran en una adreça IP, els sistemes de
fitxers i els scripts que permetran la posada en marxa del servei.
o Intercomunicació: el programari ha de mantindre entre tots el nodes la comunicació, a
més de donar una donar una informació global de la configuració i l'estat a aquests
mateixos nodes, això farà que la resta de nodes coneguin en tot moment quins serveis s'han
de restablir. Per mantindre en tot moment la intercomunicació i evitar problemes de
seguretat, normalment s'utilitzen xarxes IP diferents de la resta o connexions en sèrie.
o Heartbeat: perquè el clúster conegui en tot moment la disponibilitat dels servidors, els
equips estan enviant constantment senyals per confirmar que es troben actius i tot funciona
correctament.
o Monitorització de recursos : a més que el clúster en tot moment coneix la disponibilitat
dels equips o servidors, també pot monitoritzar i conèixer l'estat dels recursos o els serveis,
sabent en tot moment si es troben actius.
o Reinici de recursos : en cas de fallada habitualment els clústers el primer que fan es
intentar reactivar el recurs en el mateix servidor que el donava, però en alguns casos no és
possible reiniciar un únic recurs i el clúster el que fa és reiniciar el servei complert fent que
es puguin donar demores.
o Migració de recursos : quan no es pot reiniciar un recurs o el servidor té una fallada,
aleshores es produeix la migració dels recursos o grups de recursos a altre node que estigui
disponible.
o Dependència de recursos : en els serveis normalment intervenen diferents recursos, però
no solament això sinó que també aquests recursos es deuen activar en un ordre determinat,
aleshores el programari del clúster ha de donar l'opció d'indicar com s'ha de fer.
6
5. Maquinari
Normalment no es necessiten caracterìstiques especials en el maquinari, peró normalment en
aquest tipus de sistemes els dispos itius d'emmagatzematge de la informació són compartits per
tots el nodes però no pertanyen a un equip en concret.
A vegades es disposen configuracions especials de maquinari per millorar el rendiment o la
seguretat dels clústers, com poden ser vàries targes de xarxa, etc... però el que si que seria
convenient és que tots els nodes del clúster presentin característiques semblants tant
d'arquitectura com de sistema operatiu, perquè si hi ha molta diferència entre ells, el rendiment
es veura afectat negativament ja que el balanceig de carrega no s'efectuarà correctament.
6. Programari especialitzat
Com ja s'ha comentat en apartats anteriors, la implementació de clústers d'alta disponibilitat
requereix que s'utilitzi programari especialitzat, que té que implementar tota la funcionalitat que
ha de tindre el clúster, com per exemple la comunicació entre els nodes. Aquest tipus de
programari es pot trobar per implementar en diferents sistemes operatius, i també pot ser
programari privatiu o lliure.
Entre el programari lliure per implementar clústers en GNU/Linux podem trobar les següents
eines:
- IP Virtual Linux Server: és un projecte de codi obert, que en principi era una solució per
balanceig de carrega i que actualment es centra en desenvolupar un sistema IP avançat
de balanceig de carrega per programari, i balanceig de carrega per programari a nivell
d'aplicació i components per la gestió de clústers. Amb aquesta eina es pot implementar
un sistema altament escalable, amb una alta disponibilitat de serveis de xarxa, com per
exemple el web, correu electrònic o VoIP.
- Piranha: eina que dóna alta disponibilitat als servidors Linux.
- Kimberlite: és una solució per clústers de dos nodes i permet la connexió a discos
compartits.
- Ultramodern: programari per clústers i alta disponibilitat basat en LVS.
- Heartbeat: és un programari de control, que funciona a nivell d'aplicació i permet
implementar un sistema distribuït en clústers de manera estable, flexible i eficient; el
nombre de nodes en el clúster seria de dos o més.
7
7. Implementació d'un clúster
Per implementar un clúster dependrà si es fa per maquinari o programari, i la configuració que
es vulgui fer, però per veure com es pot fer un clúster de manera senzilla s'indicaran els passos a
seguir en la implementació d'un clúster d'alta disponibilitat amb el programari Heartbeat:
1. Configuració de les interfícies de xarxa: que serà la que després s'utilitzarà perquè el node
ofereixi els serveis, però és recomana que els nodes es comuniquin entre ells utilitzan ports
de sèrie si no és possible lús d'altres interfícies, fent que hagi diferents interfícies de
comunicació.
2. Instal·lació i configuració de SSH: ha de permetre les connexions amb claus RSA per evitar
incloure en els scripts de sincronització de dades les claus.
3. Instal·lació i configuració de Heartbeat en cada node, on la configuració consta de tres
arxius els quals es troben en el directori /etc/ha.d, el primer és el fitxer authkeys que xifra
les comunicacions entre els nodes del clúster, l'altre fitxer és el ha.cf que indicarà on
s'escriuran els logs, els temps de verificació de l'activitat dels nodes i els nodes que formen
part del clúster, i per últim el fitxer és el haresources que defineix quins serveis donarà
cada node, la adreça IP i la interfície de xarxa que utilitzará.
4. Instal·lació i configuració de les aplicacions que donarà un node.
5. Es repetiran els dos punts anterior en cada node que formi part del clúster.
6. Implementar un script per sincronitzar les dades de les aplicacions en tots els nodes.
8. Conclusió
Sembla que l'utilització dels sistemes distribuïts en clúster és una bona solució i de baix cost
comparat amb altres per proveir alta disponibilitat. Això és molt important perquè a més de
reduir el cost permet una millora del rendiment i que en tot moment els serveis estiguin a
disposició dels usuaris fent que el sistema sigui altament productiu ja que no hi ha demores molt
grans en fer que els serveis estiguin altre vegada disponibles.
A més és un procés totalment transparent pels usuaris del servei que no tenen ni que adonar-se
que hi ha hagut un fallida i és un altre equip el que li està donant servei.