UF3-NF1. Introducció als sistemes d'alta disponibilitat

De Wiki IES Marianao. Departament Informàtica
La revisió el 12:12, 2 març 2012 per Alex (Discussió | contribucions) (Implementacions)

(dif) ←Versió més antiga | Versió actual (dif) | Versió més nova→ (dif)
Dreceres ràpides: navegació, cerca

tornar Introducció als sistemes d'alta disponibilitat

Alta disponibilitat, HA

L'alta disponibilitat fa referència a garantir que un sistema està accessible (disponible) sempre, excepte moments puntual. A vegades també s'anomena 24x7.

El temps que no es troba actiu s'anomena temps d'inactivitat (outage), i tendeix a minimitzar-se

Aquests temps d'inactivitat poden ser:

  • Planejats, manteniment, actualització.
  • No planejats, falles del sistema

Normalment s'expressa amb el percentatge de temps acceptable d'activitat. Exemples de mesures (Percentatges de 9), temps màxim

  • 99 % (two nines) --> 15 minuts al dia. Equips d'oficina
  • 99,9% (three nines)
  • 99,999% (five nines) --> un segon al dia. Sistemes crítics

Evidentment el cost augmenta en proporció.

Per aconseguir implementar un sistema HA, cal aplica tècniques concretes per aconseguir aquesta disponibilitat sense intervenció humana.

Tolerància a falles

La tolerància a falles consisteix en que en cas d'errada el sistema no interromp el seu funcionament (p.e. RAID).

Els sistemes d'alta disponibilitat utilitzen tècniques per detectar els errors de maquinari o programari i redirigir el servei per garantir la disponibilitat automàticament (sense intervenció de l'usuari, failover). Per exemple mantenint un sistema de recolzament sincronitzat i inactiu.

El procés de recuperar el sistema i retornar el servei a la seva ubicació original s'anomena failback.

Balanç de càrrega (load balance)

En general el balanç de càrrega és una tècnica que distribueix el treball entre múltiples recursos: ordinadors, un cluster, connexions de xarxa, cpu's, discos, etc...

Els objectius són:

  • Optimitzar l'ús dels recursos
  • Maximitzar el rendiment
  • Minimitzar el temps de resposta
  • Evitar la sobrecàrrega

Es pot implementar

  • Programari, LVS Linux Virtual Server

Sistemes redundants

Un sistema redundant consisteix en múltiples rèpliques dels recursos, ja sigui hardware, software o dades.

Es tracta d'evitar “Single point of failure”

Aquestes rèpliques poden estar incorporats en una mateixa màquina o distribuïts en varis nodes.

Redundància local

  • Discs, RAID
  • Xarxa, ethernet bonding. Dues targetes per garantir una única connexió i ampliar-ne la capacitat
  • Entrada de corrent (Fonts d'alimentació redundants + UPS)

http://es.wikipedia.org/wiki/Archivo:PC-Netzteil_%28redundant%29.jpg

Redundància distribuïda

  • Dades
    • Compartides, múltiples nodes accedeixen a les mateixes dades
    • Sincronitzades, existeix una còpia (sincronitzada) de les dades que s'activa en cas de falla
    • Distribuïdes, les dades es distribueixen entre varis nodes
  • Components de xarxa
    • Routers, switchs. Aplicant tècniques com bonding o spannning tree
    • Línies de dades WAN
  • Servidors
    • Vàries màquines ofereixen el mateix servei, apliquen tècniques com heartbeat o load balance.

Cluster redundante.png

Cluster redundante II.png


font http://www.linux-es.org/node/211


Sistema d'emmagatzematge d'alta disponibilitat

Existeixen múltiples solucions per a gestionar l'emmagatzematge en sistemes d'alta disponibilitat.

Les tecnologies associades a l'emmagatzematge són variades, es poden dividir en tres grups

  • Sistema de fitxers en cluster, aquests sistemes de fitxers és comparteixen entre varis nodes i es munten alhora. Permeten lectura/escriptura simultània de tots els membres del cluster.
    • Disk compartit, permet accés simultani a un mateix sistema d'emmagatzematge, els nodes el munten com un dispositiu local (orientat a blocks). Si un dels nodes cau els altres mantenen l'accés a les dades.
      • OCFS, Oracle Cluster File System
      • GFS, Global File System (Red Hat)
    • Sistema de fitxers distribuïts
      • En xarxa, els nodes el munten en xarxa (orientat a fitxers, únic punt de falla): NFS, SMB
      • Amb tolerància a falles (replica dades): Coda, MooseFS
      • Paral·lels (reparteix, stripe, les dades): GlusterFS, Lustre
  • Dades en Local en els servidors, emmagatzematge redundant. Els servidors tenen les dades sincronitzades,
    • Mantenir una còpia de recolzament “exacte” de les dades (one-way file synchronization mirroring). Les modificacions del node actiu s'envien a la ubicació de recolzament. Cal implementar accions en cas de falla del node actiu (heartbeat)
    • Distribuir la càrrega entre múltiples nodes amb còpies sincronitzades de les dades (two-way file synchronization), les modificacions es poden produir en qualsevol dels nodes i es propaguen a la resta. Cal usar algun sistema de fitxers en cluster per gestionar el lock dels objectes compartits, p.e.: OCFS o GFS.
    • Tecnologies d'exemple
      • rsync, còpia simple, més senzill però no garanteix rèplica actualitzada. Bo si les dades no canvien sovint
      • drbd (like network raid 1), replica real, les dades no es consideren escrites mentre no estiguin també en el node remot
  • Tots els servidors accedeixen al mateix emmagatzematge extern
    • NAS (Network-Attached Storage), dispositiu connectat a la xarxa i dedicat a tasques de servidor d'arxius. Inclou emmagatzematge i sistema de fitxers (en general sistema de fitxers en xarxa: SMB, NFS, etc...)
    • SAN (Storage Area Network), Xarxa (ràpida) dedicada que dona accés a dispositius d'emmagatzematge (sense sistema de fitxers). Aquesta xarxa només està accessible per als dispositius que necessiten les dades, utilitzen algun protocol que permet muntar la xarxa com un dispositiu físic. Múltiples nodes poden accedir a la SAN simultàniament, cada node de la xarxa gestiona el sistema de fitxers (en general un sistema de fitxers de disc compartit: OCFS, GFS)
      • ATA over Ethernet (AoE), iSCSI mapeja SCSI over TCP/IP. Els dos poden usar les tecnologies habituals de les xarxes LAN (Cables ethernet directament connectats als servers per exemple)
      • P.e. D-Link DSN-1100-10, o http://www.coraid.com/products/san_storage
    • Híbrid NAS-SAN, p.e. distribucions específiques Openfiler, http://www.openfiler.com/


Referències http://wiki.novell.com/index.php/File_System_Primer


Clusters d'alta disponiblitat (HA Clusters)

Un cluster és un grup de computadores poc acoblades (connectades a una LAN per exemple), que treballen juntes i que es poden veure com un únic sistema.

Un cluster permet

  • Increment del rendiment, per ampliar les capacitats de càlcul o millorar el temps de resposta (Balanç de càrrega) per exemple. Múltiples ordinadors solen tenir menys cost que un únic ordinador amb les mateixes capacitats
  • Increment de la disponibilitat
  • Escalabilitat, possibilitat d'afegir nous nodes al cluster

Un HA Cluster o cluster d'alta disponibilitat és un grup de computadores (cluster) que ofereixen servei ininterromput tot i possibles falles d'algun dels components.

Elements principals.

  • Load balancer, distribueix la càrrega entre els nodes del cluster de servidors.
    • Principal
    • Recolzament, s'activa en cas d'errada del principal
  • HeartBeat, monitor del serveis, s'encarrega de detectar les errades i prendre les mesures oportunes
  • Cluster de servidors, cada node del cluster ofereix el mateix servei. Generalment mateixa configuració i prestacions.
  • Dades, en general algun sistema d'emmagatzematge redundant.

Lvs architecture.jpg

Font http://www.linuxvirtualserver.org/architecture.html


Arquitectures

http://en.wikipedia.org/wiki/High-availability_cluster#Node_configurations


Implementacions

Per a linux existeixen múltiples implementacions, frameworks

  • Piranha, Red Hat
  • Keepalived
  • Ultramonkey