UF4: Alta disponibilitat

Resultats d'aprenentatge:

  1. Implanta solucions d’alta disponibilitat emprant tècniques de virtualització i configurant els entorns de prova.

Alta disponibilitat

Un sistema és segur si acompleix:

  • Fiabilitat: funcionament correcte dels sistemes, realitzant les tasques tal com han estat previstes.
  • Confidencialitat: garantir que l’accés a les dades del sistema està restringit únicament a les persones autoritzades.
  • Integritat: assegurar que les dades del sistema no han estat manipulades per persones no autoritzades i que per tant no s’han vist alterades.
  • Disponibilitat: capacitat del sistema per ser accessible i operatiu el màxim de temps possible.

Els sistemes d’alta disponibilitat són sistemes informàtics que han estat dissenyats seguint un conjunt de normes i tècniques per tal que el sistema pugui estar disponible sempre o, si més no, el màxim de temps possible.

Per tal que els sistemes informàtics tingui una elevada disponibilitat caldrà implantar solucions de programari i de maquinari.

En el procés de disseny cal determinar les necessitats d’alta disponibilitat que tindrà el nostre sistema i fins a quin nivell és necessari implantar aquest tipus de solucions. En funció del tipus de negoci, no cal que els sistemes estiguin disponibles les vint-quatre hores del dia i, per tant, es poden programar aturades per realitzar tasques de manteniment. I en cas que es produeixi una aturada inesperada, sovint no impediran l’activitat econòmica que es desenvolupa.

El temps d’inactivitat és el període de temps en què el nostre sistema no està operatiu i, per tant, no pot respondre a les peticions que realitzin els usuaris. En funció de les causes podem diferenciar dos tipus de temps d’inactivitat: planificat o no planificat.

El temps no planificat pot ocórrer per:

  • Fallades de maquinari
  • Talls i fluctuacions del subministrament elèctric
  • Pèrdua o bloqueig de la informació
  • Fallada en la infraestructura de comunicacions
  • Saturació en els servidors de processament de dades

Un projecte d'implantació d'alta disponibilitat ha de tenir les següents fases:

  • Coneixement del sistema i identificació de riscos
  • Establiment dels objectius a assolir
  • Disseny i planificació
  • Implantació
  • Mesura per validar els objectius
  • Control i monitoratge

Acord de nivell de servei

L'alta disponibilitat s'ha d'acordar entre les parts implicades. Això es fa habitualment mitjançant un acord de nivell de servei (SLA en anglès: "Service Level Agreement"), un contracte escrit entre el proveïdor de servei i el seu client en què es documenta el nivell acordat per a la qualitat del servei.

Els termes acordats en un SLA inclouen:

  • Quins són els serveis objecte del contracte: quins sistemes, a quines hores (8x5, 10x5, 24x7 o 24x365).
  • La fiabilitat del sistema. Es pot mesurar com a % de disponibilitat: ((X - Y) / X) * 100, on X = temps objectiu i Y = temps d'inactivitat. Se sol parlar de "X nous": 3 nous (99,9%), 4 nous (99,99%), etc.
  • El temps de resposta. Des que es produeix un problema i/o es contacta al client.
  • Com se supervisa i monitora el sistema. Maquinari, persones implicades, etc.
  • Com es reporten els problemes. Mitjans, si hi ha un gestor d'incidències, etc.
  • El temps per a resoldre un problema. Normalment, es tracta d'una taula que associa un temps en funció de la gravetat del problema.
  • Les repercussions de no complir els compromisos. Poden ser econòmiques.

Estratègies

Els sistemes altament disponibles poden seguir, principalment, les següents estratègies:

  • Alta disponibilitat: es tracta d'evitar interrupcions no planificades mitjançant l'eliminació de punts únics de fallida.
  • Operació contínua: es tracta d'evitar interrupcions planificades.
  • Disponibilitat contínua: es tracta d'evitar qualsevol tipus d'interrupció.

Les estratègies de disponibilitat es contraposen:

  • Alta: reactiva, commutació per error (failover), recuperació.
  • Contínua: proactiva, redundància, prevenció i detecció d'errors.

Alta disponibilitat

En l'alta disponibilitat, volem reduir els riscos associats als components crítics del sistema:

  • Reduir la freqüència de les interrupcions.
  • Minimitzar la duració de les interrupcions.
  • Minimitzar l'impacte al sistema d'una interrupció.
  • Prevenir futures interrupcions.

Disponibilitat contínua

Quan cau un arbre al bosc i no hi ha ningú al voltant, fa soroll? La disponibilitat contínua es fa aquesta mateixa pregunta. Si la fallida es pot recuperar abans que l'usuari sàpiga que ha passat, és realment una fallida?

L'arquitectura habitual per aquests sistemes és activa/activa. És a dir: hi ha més d'un sistema disponible i actiu. Això obliga també a fer un disseny de les aplicacions que suporti aquesta arquitectura:

  • Mecanismes que permetin més d'una escriptura simultània a les mateixes dades.
  • Mecanismes que mantinguin la coherència de dades entre els sistemes actius.

Solucions

A continuació veurem algunes estratègies associades a la disponibilitat dels sistemes.

Maquinari redundant

Maquinari redundant

Cal identificar els components més crítics per a la continuïtat del sistema. Principalment, fonts d'alimentació, discos durs i memòria.

Els components tenen associada una dada proporcionada pel fabricant, l'MTBF: "Mean Time Between Failures". Aquesta dada ens proporciona informació de la probabilitat que un component tingui una fallada.

L'MTBF es pot utilitzar per dimensionar els components del sistema, i reduir la probabilitat d'una fallada. Per exemple: si dupliquem, la probabilitat de què els dos components fallin serà el producte (probabilitat màxima 1).

Servidors redundants

La tècnica consisteix a duplicar els servidors sencers. El tipus de redundància es pot classificar, en funció de la capacitat de resposta en cas de fallada, en:

  • Redundància en calent: els dos estan sincronitzats, però només un servidor atén les peticions, i en cas de fallada, l'altre pren el relleu instantàniament.
  • Redundància intermèdia: el secundari només se sincronitza de tant en tant, i caldria actualitzar-lo amb les dades del principal quan aquest falla.
  • Redundància freda: el secundari no està actualitzat, i quan hi ha la fallada, cal instal·lar i bolcar totes les dades.

Subministrament elèctric

Al nostre sistema, poden haver talls del subministrament elèctric, fallades dins de les nostres instal·lacions, o avaries d'algun dispositiu elèctric dels equips. Les possibles solucions serien:

  • Subministrament redundant: contractar més d'un proveïdor.
  • Arquitectura elèctrica redundada: tenir dues línies independents d'alimentació per cada equip crític.
  • SAIs: permeten estabilitzar el subministrament i autonomia per seguir treballant o permetre apagar els equips.
  • Redundància de dispositius: tenir equips amb fonts d'alimentació redundades, o bé clústers d'alimentació.

Sistemes d'emmagatzematge

La tecnologia RAID (Redundant Array of Independent Disks) permet combinar dos o més discos perquè siguin tractats pel sistema com una única unitat lògica. Hi ha diferents tipus de RAID, que ofereixen diferents tipus i nivells de tolerància a fallades.

El RAID pot realitzar-se de dues formes:

  • Maquinari: tenen millor rendiment i solen permetre hot swapping (substitució sense aturar el sistema).
  • Programari: el sistema operatiu és qui gestiona el RAID, i per tant carrega el processador (CPU).

Les funcionalitats més habituals que implementen els diferents tipus de discos RAID són:

  • striping: les dades seqüencials se segmenten en diferents dispositius físics per a millorar el rendiment.
  • mirroring: les dades es repliquen en diferents dispositius físics per a millorar la disponibilitat.
  • paritat: habitualment, en un tercer disc (disc de paritat) es fa un XOR dels altres dos discs, permetent que una fallada d'un disc es pugui reconstruir. Es pot fer amb qualsevol nombre de discs, i el disc de paritat és el XOR de tots ells.
Exemple de paritat (disc 3 de paritat):

Disc 1: 01101101
Disc 2: 11010100
Disc 3: 10111001 (XOR)

Suposem que falla el disc 2. Llavors hem de fer el XOR de Disc 1 i Disc 3:
Disc 1: 01101101
Disc 3: 10111001
Disc 2: 11010100 (reconstrucció)

Recuperació XOR amb tres discs:

inici      paritat    error (C)  xor
A B C x    A B C x    A B C x    A B C x
1 0 1 -    1 0 1 0    1 0 - 0        1
1 1 0 -    1 1 0 0    1 1 - 0        0
0 0 0 -    0 0 0 0    0 0 - 0        0
0 1 1 -    0 1 1 0    0 1 - 0        1
1 0 0 -    1 0 0 1    1 0 - 1        0
0 1 0 -    0 1 0 1    0 1 - 1        0
0 1 1 -    0 1 1 0    0 1 - 0        1
1 1 1 -    1 1 1 1    1 1 - 1        1

A dins dels nivells de RAID més habituals tenim els nivells estàndar i els nivells anidats:

  • RAID 0: es fa striping ➡ més ràpid.
  • RAID 1: es fa mirroring ➡ redundància.
  • RAID 2: es fa striping a nivell de bit amb paritat (Hamming-code). Poc utiilitzat.
  • RAID 3: es fa striping a nivell de byte amb paritat. Poc utiilitzat.
  • RAID 4: Es fa striping a nivell de bloc amb paritat ➡ més ràpid i redundància.
  • RAID 5: Es fa striping a nivell de bloc amb paritat distribuïda ➡ més ràpid i redundància. Pot seguir treballant amb un disc menys.
  • RAID 6: Es fa striping a nivell de bloc amb doble paritat distribuïda ➡ més ràpid i redundància. Pot seguir treballant amb dos discs menys.
  • RAID 0 + 1 (mirror of stripes): es fa RAID 0 dins de RAID 1. ➡ més ràpid i redundància. Requereix 4 discs.
  • RAID 1 + 0 (strip of mirrors): es fa RAID 1 dins de RAID 0. ➡ més ràpid i redundància. Requereix 4 discs.

Centres de processament de dades secundaris

Un Centre de Processament de Dades (CPD) secundari està dissenyat per entrar en funcionament quan el centre principal deixa d'estar operatiu. Pel seu alt cost, només són recomanables per a grans empreses amb necessitats de disponibilitat total.

Els CPD secundaris han de localitzar-se a una distància mínima de 30-50 km per evitar que els dos CPD quedin implicats en el mateix desastre natural.

Les actualitzacions de dades entre els dos CPD poden ser:

  • Síncrones: es manté el tot moment una còpia exacta de les dades.
  • Asíncrones: les actualitzacions són per lots, i per tant es podrien perdre dades.

Xarxes i sistemes d'emmagatzematge en xarxa

Hi ha dos sistemes, principalment, que permeten disposar en tot moment de dades compartides a la xarxa:

  • NAS (Network Attached Storage): són dispositius d'emmagatzematge que es connecten a la xarxa corporativa i permeten compartir dades. Internament, solen tenir implantats esquemes RAID. L'accés de les dades es fa mitjançant protocols com CIFS, NFS o SMB, i és a nivell de fitxers, no blocs. Això fa que el rendiment sigui molt més baix que un accés local.
  • SAN (Storage Area Network): aquests tipus de xarxa té els dispositius d'emmagatzematge connectats a una xarxa d'alta velocitat (fibra òptica o iSCSI), i l'accés és semblant en rendiment a l'accés local en estar orientat a blocs. El cost és molt més elevat que els NAS.

Bases de dades d'alta disponibilitat

A l'hora d'implantar un sistema de bases de dades, és important fer un bon disseny que permeti la seva escalabilitat posterior i un rendiment alt de les consultes.

Per millorar la seva disponibilitat, podem tenir un sistema amb una BBDD primària i una secundària que sigui una rèplica exacta. Això permetria que la secundària entri en funcionament davant una fallada de la primària. També és important que estiguin en servidors separats, per disminuir el risc si tenen una caiguda.

La còpia de la informació pot ser:

  • Síncrona: cada transacció es reprodueix a totes les bases de dades. Permeten la commutació automàtica quan hi ha una fallada.
  • Asíncrona: la transacció es valida al servidor en producció, i es retarda la còpia lleugerament al servidor secundari, millorant el rendiment del sistema en producció. La commutació ha de ser manual, habitualment.

Comunicacions redundants

Per tal de garantir la connectivitat entre clientes i servidors, la majoria de servidors disposen de dues targetes de xarxa. A més, dues targetes permeten comunicar-se amb el doble d'amplada de banda.

Tots els dispositius de xarxa (encaminadors, commutadors, concentradors...) haurien d'estar redundats.

També els canals de comunicació haurien de replicar-se, per exemple, utilitzant arquitectures d'anell que permeti que la fallada d'un canal de comunicació entre dos nodes no faci fallar tot el sistema. Quan s'utilitza l'anell, el protocol STP (Spanning Tree) serveix per resoldre problemes de bucles infinits.

Les comunicacions entre seus i amb altres proveïdors o clients Internet requereixen també alta disponibilitat. Això s'aconsegueix tenint més d'un proveïdor d'accés a Internet. De retruc, tenim una amplada de banda millor.

Repartiment de càrrega

El repartiment de càrrega millora la distribució de càrregues de treball a través de múltiples recursos informàtics, com ara màquines, un clúster de màquines, enllaços de xarxa, unitats de processament centralitzades o unitats de disc.

En si mateix no és una solució de disponibilitat, però pot evitar la saturació dels recursos en condicions normals. I en condicions de fallades permetria mantenir el servei, tot i amb un rendiment reduït.

L'escalabilitat és la capacitat d'un sistema per a gestionar càrregues de treball més grans, o per a ser fàcilment expandit en funció d'un increment en la demanda de recursos de xarxa, processament, bases de dades o arxius.

Es pot aconseguir de dues maneres:

  • Horitzontal: afegint nodes idèntics als existents, redistribuint la càrrega.
  • Vertical: expandint els recursos d'un node amb més processament, memòria, emmagatzemament, etc.

Clúster de servidors

Un clúster és un conjunt d’unitats funcionals amb característiques similars interconnectades per mitjà d’una xarxa d’alta velocitat i configurades perquè actuïn coordinadament, com una sola unitat.

Hi ha dos tipus:

  • D'alt rendiment: es basa en el processament en paral·lel, i permet la distribució de tasques al llarg d'una sèrie de nodes que es troben interconnectats. Permet sumar la capacitat de processament de tots els nodes que componen el clúster. Molt sovint, aquests clústers implementen algun tipus d'alta disponibilitat, tot i que no és la seva finalitat.
  • D'alta disponibilitat: els nodes estan monitorats, i si es produeix una fallada de maquinari o programari, es restaura automàticament el servei en un altre servidor. Solen ser dos servidors, i permeten realitzar tasques de manteniment sense deixar d'oferir el servei. Tenim dues configuracions:
    • Actiu-actiu: tots els nodes estan actius i executen els mateixos recursos.
    • Actiu-passiu: només el node actiu està operatiu, i el passiu només entra en acció quan hi ha una fallada.

Plans de contingència

El pla de contingència recull el conjunt de procediments alternatius que permetrien a l’empresa continuar treballant de manera normal en el cas que alguna de les seves funcionalitats es veiés afectada per un accident intern o extern.

Per elaborar-ne un, cal:

  • Realitzar un anàlisi de riscos: identificar les causes i conseqüències de les amenaces que pot patir el nostre sistema.
  • Definir les solucions o processos per evitar o mitigar l'impacte. Cal començar descrivint les amenaces amb probabilitat i impacte més alts, i acabant amb els de probabilitat i impacte més baix.

Les possibles solucions serien de tres tipus:

  • Preventives: accions per prevenir les amenaces.
  • D'actuació: accions a realitzar quan es manifesta l'amenaça.
  • De recuperació: accions per recuperar el funcionament del sistema.

Els procediments d'actuació haurien de contenir:

  • Les accions a realitzar.
  • La metodologia i protocol a seguir.
  • Els materials necessaris.
  • Les persones implicades: les seves funcions i responsabilitat.

Un pla de contingència s'ha de revisar periòdicament. Cada cop que es posa en funcionament, s'ha de fer una valoració per a identificar possibles millores.

Hi ha dos plans de contingència que totes les empreses haurien d'elaborar:

  • El pla de recuperació en cas de desastre: com protegim els nostres sistemes d'informació de totes les situacions no planificades? Hem de tenir procediments per recuperar els nostres sistemes.
  • El pla de continuïtat del negoci: com podem seguir amb la nostra activitat davant les situacions no previstes que afecten els nostres sistemes? Hem de tenir una estratègia i identificar qui serà responsable per dur a terme el pla.

Virtualització

La virtualització consisteix a crear amb un programa específic una capa d’abstracció sobre una màquina física perquè els seus recursos puguin ser compartits i utilitzats per múltiples usuaris. Es poden virtualitzar servidors, sistemes d’emmagatzematge, connexions de xarxa, estacions de treball, aplicacions i sistemes operatius.

Tots els servidors tenen un monitor de les màquines virtuals (VMM: Virtual Machine Monitor), o hipervisor, que les gestiona.

Els objectius de la virtualització són:

  • Millorar els índexs d'utilització del maquinari, en compartir-lo.
  • Abordar els problemes d’espai en els centres de processament de dades.
  • Reduir costos en el subministrament elèctric en reduir el nombre de servidors físics.
  • Reduir costos d’operació.
  • Afegir flexibilitat i escalabilitat.
  • Disposar d'un pla de recuperació en cas de desastre.
  • Mantenir compatibilitat d’aplicacions antigues.
  • Tenir un entorn de proves.

Tipus de virtualització

Servidors

Es poden tenir diferents servidors amb diferents sistemes operatius dins d'un únic servidor físic.

  • Nativa: l'hipervisor s'executa directament en el maquinari físic, i a sobre tenim les màquines virtuals (Xen, VMware ESXi, KVM)
  • Allotjada: l'hipervisor s'executa sobre un sistema operatiu convencional, per a després virtualitzar diferents sistemes operatius (VirtualBox, VMware)
  • Paravirtualització: és una virtualització nativa, però les màquines virtuals disposen de privilegis que els permeten accedir directament a alguns recursos de la màquina física. Implementat en alguns kernels de sistemes operatius tipus Linux, i funcionant a alguns hipervisors.

Escriptoris

La virtualització d’escriptoris trenca amb la concepció que l’escriptori són tots els programes i les dades ubicats en una màquina física, i el defineix com el conjunt d’aplicacions i dades amb què un usuari treballa, independentment del dispositiu amb què accedeixi.

Avantatges:

  • Augment de la seguretat i productivitat: els usuaris no instal·len software, tot es gestiona centralitzadament.
  • Seguretat de les dades: es poden gestionar fàcilment les còpies de seguretat, i no pots extreure informació confidencial.
  • Reducció de costos: els clients són lleugers i més econòmics, i el manteniment és centralitzat, evitant desplaçaments.
  • Respecte al medi ambient: menys despesa d'energia.
  • Continuïtat de negoci i reducció del temps d'inactivitat: si falla el maquinari, podem accedir des d'un altre lloc físic.
  • Fàcil escalabilitat, ja que l'escriptori es crea virtualment.

Aplicacions

Permet que les aplicacions estiguin allotjades a un servidor principal, o bé que es puguin descarregar i instal·lar al client quan calguin. D'aquesta forma, es pot controlar que tots els usuaris utilitzin la darrera versió.

Conceptes relacionats amb la virtualització

Migració en calent

La migració en calent (en anglès, live migration) consisteix a poder traslladar una màquina virtual des d’una màquina física a una altra sense que l’usuari se n’adoni. S’anomena migració en calent, ja que mentre s’està movent d’un lloc a un altre la màquina virtual continua estant operativa.

Aquest procés millora la gestió del rendiment, redueix el temps d'inactivitat i afavoreix l'escalabilitat de les aplicacions i serveis.

Implica la migració dels següents components: memòria, disc dur, connexions de xarxa i processador.

Alta disponibilitat

La virtualització és una de les tècniques més eficients i econòmiques per a garantir l'alta disponibilitat als sistemes d'informació.

Aquests són els principals avantatges:

  • Alta disponibilitat de totes les aplicacions
  • Repartiment de càrrega
  • Recuperació en cas de desastre
  • Protecció i gestió dels escriptoris corporatius
  • Flexibilitat i escalabilitat

Informàtica en núvol

La informàtica en núvol és la disponibilitat sota demanda de recursos del sistema informàtic, especialment emmagatzematge de dades i potència de càlcul, sense una gestió activa per part de l'usuari. Els serveis que es proporcionen es poden adaptar a les demandes del negoci, i (segons el servei) els clients no s'han de preocupar del maquinari, el manteniment o les actualitzacions.

Les empreses que proporcionen aquests serveis ho fan utilitzant infraestructures d'alta disponibilitat, i per tant el client no s'ha de preocupar d'aquest aspecte. També permet reduir costos, facilitar l'accessibilitat i tenir una flexibilitat a l'hora d'adaptar-se a les necessitats del negoci.

També hi ha incerteses associades al servei: quin nivell de servei es rebrà per part del proveïdor, la dependència de productes propietaris o la ubicació de la informació en relació a les normatives de protecció de dades.

Els serveis es poden classificar en:

  • Programari com a servei (SaaS): s'ofereix un programari accessible per la xarxa. No es paguen llicències, sinó per ús. Exemples: Dropbox, Google Apps.
  • Plataforma com a servei (PaaS): s'ofereix una plataforma base on es poden instal.lar aplicacions. Exemples: Google App Engine, Microsoft Azure.
  • Infraestructura com a servei (IaaS): s'ofereix una plataforma virtualitzada amb capacitat de procés i emmagatzematge. Exemples: qualsevol proveidor de servidors privats virtuals (VPS).

Eines de virtualització

Sistemes propietaris

Els principals són VMware, Microsoft i Citrix.

Sistemes lliures

Tenim VMware, Virtual PC, QEMU, KVM, Linux-Vserver, Xen.

Maquinari específic per virtualitzar

Tant Hewlett-Packard com Dell disposen productes específics per a virtualitzar.