Presentación
Registrarse
Programa
Desarrollo
Participación
Normas para los autores
Comité de Honor
Comité Organizador
Comité Científico
Comité Técnico
Patrocinadores
Servidores espejo (mirrors)
Noticias
Recortes de prensa,enlaces
|
Charlas del 29/11/2000
Log de la conferencia. Se han suprimido las líneas correspondientes
a entradas y salidas de diferentes personas en el canal durante la
conferencia
[19:08] *** Now talking in #media
[19:12] (debUgo-) empezamos?
[19:12] (MJesus)yes.. as you like
[19:12] (DaniT) amos alla..
[19:13] (DaniT__) la charla se realizara en el canal #linux
[19:13] (DaniT__) las preguntas se realizaran en el canal #qc
[19:14] (DaniT__) los ponentes Mr. Riel y Mr. Tosatti
[19:14] (DaniT__) marcelo: bien.. lo primero explicar en que consiste la Alta disponibilidad
[19:15] (DaniT__) riel: hoy hablaremos de linux y alta disponibilidad
[19:15] (DaniT__) riel: si tienen alguna pregunta pueden realizarla a traves de #qc
[19:15] (DaniT__) riel: este canal debera permanecer en silencio excepto por marcelo y yo
[19:16] (DaniT__) riel: marcelo, puede explicar que es la Alta Disponibilidad?
[19:16] (debUgo-) marcelo: disponibilidad es la probabilidad que un sistema este operativo durante un tiempo dado
[19:16] (DaniT__) marcelo: ok vamos allla
[19:16] (DaniT__) marcelo: primero de todo, explicar el concepto de Alta Disponibilidad
[19:16] (DaniT__) marcelo: disponibilidad es la probabilidad de que un sistema este funcionando en un momento dado
[19:17] (DaniT__) un sistema sin ningun mecanismo para mantener su disponibilidad es considerado como de disponibilidad basica
[19:18] (DaniT__) este tipo de sistemas tienen, en teoria, una disponibilidad del 99,9%
[19:18] (DaniT__) asi que durante un año pueden estar 5 dias indisponibles
[19:18] (DaniT__) cuando un sistema tiene mas del 99,999% de disponibilidad es considerado de alta disponibilidad
[19:20] (debUgo-) #qt:riel: una pequeña corrección a los números de marcelo... 99.9% son 5 _horas_ de no disponibilidad cada año (pero eso no es muy importante)
[19:20] (DaniT__) por tanto, un sistema considerado de alta disponibilidad deberia, en teoria, tener un tiempo de indisponibilidad de 5 min en un periodo de un año
[19:22] (DaniT__) el modelo antiguo de alta disponibilidad como "tolerancia a fallos" solia estar basado en hardware
[19:22] (DaniT__) el fin del modelo antiguo consistia en mantener el equipo funcionando
[19:23] (DaniT__) riel: por tanto un solo ordenador es una pieza insustituible (relativamente hablando)
[19:25] (DaniT__) por tanto Alta disponibilidad es el conjunto de tecnicas usadas para hacer el trabajo del ordenador mas fiable
[19:25] (DaniT__) se puede hacer mejorando las estructuras de hardware o las estructuras de software
[19:26] (DaniT__) normalmente con una combinacion de ambas
[19:26] (DaniT__) el modelo de linux de alta disponibilidad esta basado en el sofware
[19:27] (DaniT__) marcelo: ahora dejenme explicar unos conceptos basicos de AD
[19:28] (DaniT__) antes de nada, es muy importante que no confiemos en un unico componente hardware en un sistema de AD
[19:29] (DaniT__) por ejemplo, puede tener dos tarjetas de red conectadas a una misma red
[19:29] (DaniT__) en caso de que una de ellas falle, el sistema intenta usar la otra
[19:30] (DaniT__) un componente hardware que no puede fallar porque el sistema entero depenede de el es llamado "Single Point of Failure" (SPOF para apreviar)
[19:31] (debUgo-) SPOF == Punto único de falla
[19:33] (DaniT__) otro concepto importante que debe ser conocido antes de continuar es "failover"
[19:37] (debUgo-) "failover" es el proceso en el cual una máquina toma el trabajo de otro nodo
[19:37] (debUgo-) "maquina" en este contexto, puede ser cualquier cosa, BTW...
[19:38] (debUgo-) si un disco falla, otro disco tomará su trabajo (hará 'take over')
[19:38] (debUgo-) si una máquina de un cluster falla, las otra máquinas tomarán su trabajo
[19:39] (debUgo-) pero para tener tolerancia a fallas (fail over), se necesita tener buen soporte en software
[19:39] (debUgo-) debido a que la mayoría del tiempo, se estarán usando componentes estándar de computadoras
[19:40] (debUgo-) marcelo: bueno, esta es toda la 'teoría' necesaria para explicar las siguientes partes
[19:40] (debUgo-) riel: dejame hacer entonces un pequeño resumen de esta introducción
[19:41] (debUgo-) 1. los computadores normales no son suficientemente fiables para algunas personas (como las tiendas de internet), asi que necesitamos un truco... ummm... método... para hacerlas más fiables
[19:41] (debUgo-) 2. alta disponibilidad es la colección de estos métodos
[19:42] (debUgo-) 3. se puede lograr alta disponibilidad usando hardware especial (muy costoso) o usando una combinación de hardware normal y software
[19:42] (debUgo-) 4. si un punto en el sistema falla y hace que todo el sistema falle, ese punto es un punto único de falla (SPOF)
[19:43] (debUgo-) 5. para lograr alta disponibilidad, no deben existir SPOFs, si una parte del sistema falla, otra parte del sistema debe tomar ese trabajo (esto es llamado 'failover')
[19:44] (debUgo-) ahora creo que debemos explicar algo sobre como trabaja la alta disponibilidad... el lado técnico
[19:44] (debUgo-) ummm momento... lo siento marcelo ;)
[19:45] (debUgo-) marcelo: ok, hablemos acerca de los componentes básicos para la alta disponibilidad (AD)
[19:45] (debUgo-) o al menos, algunos de ellos
[19:45] (debUgo-) un solo disco corriento un sistema de archivos es claramente un SPOF
[19:46] (debUgo-) si el disco falla, alguna parte del sistema que depende de los datos contenidos en el, se detendrán
[19:46] (debUgo-) para evitar que un disco se convierta en un SPOF del sistema, se puede usar RAID
[19:47] (debUgo-) RAID-1, que es una característica del kernel linux...
[19:47] (debUgo-) permite 'espejar' (duplicar) todos los datos de un dispositivo RAID en un número dado de discos
[19:48] (debUgo-) asi, cuando los datos se escriben en el dispositivo RAID, estos son replicados entre todos los discos que son parte del arreglo RAID
[19:48] (debUgo-) De esta manera, si un disco falla, el otro (o los otros) discos del arreglo RAID-1 serán capaces de continuar trabajando
[19:49] (debUgo-) riel: debido a que el sistema tenía una copia de los datos en cada disco
[19:49] (debUgo-) y puede simplemente usar las otras copias de los datos
[19:49] (debUgo-) este es otro ejemplo de "failover" (tolerancia a fallas)... cuando un componente falla, otro componente es usado para satisfacer esa función
[19:50] (debUgo-) y el administrador del sistema puede reemplazar (o reformatear/reiniciar/...) el componente que falló
[19:50] (debUgo-) esto parece realmente simple cuando no se observa con demasiada atención
[19:52] (DaniT__) pero hay un gran problema... cuando necesitas realizar un sistema a prueba de fallos?
[19:53] (DaniT__) en algunas situaciones, puede tener 2 maquinas funcionando simultaneamente y corromper datos.. si no se va con cuidado
[19:54] (DaniT__) piensen por ejemplo en 2 maquinas que sean servidores de ficheros para los mismos datos
[19:54] (DaniT__) en un momento dado, una de ellas esta funcionando y la otra eta a la espera
[19:54] (DaniT__) cuando la maquina principal falla, la otra retoma el control
[19:55] (DaniT__) y que pasa si la segunda maquina simplemente ha pensado que la pricipal ha fallado y las dos maquinas empiezan a realizar lo mismo con los datos?
[19:56] (DaniT__) cual de las copias de datos es la correcta? cual es la erronea?
[19:56] (DaniT__) o peor.. y si las dos copias son defectuosas?
[19:57] (DaniT__) para eso existen programas especiales llamados "heartbeating" (latido de corazon) que comprueban que partes del sistema estan "sanas"
[19:57] (DaniT__) para linux, uno de esos programas es el llamado "heartbeat".. marcelo y lclaudio han colaborado en el diseño de este programa
[19:58] (DaniT__) marcelo: puede explicarnos algunas de las tareas que realiza "heartbeat" ?
[19:58] (DaniT__) marcelo: claro
[19:58] (debUgo-) un programa de "heartbeating" es como un estetoscopio, pero de servicios =)
[19:58] (DaniT__) "heartbeat" es un fragmento de software que monitoriza la disponibilidad de nodos
[20:00] (DaniT__) envia "pings" a los nodos que quiere monitorizar, y en case de que uno no conteste, lo consideara "muerto"
[20:01] (Ricardo) cuando se considera que un nodo está muerto, es cuando se puede sustituir los servicios que estaba ejecutando
[20:02] (Ricardo) los servicios de los que tomamos control habrán sido configurados anteriormente en ambos sistemas
[20:02] (Ricardo) Ahora mismo, 'heartbeat' sólo funciona con dos nodos
[20:02] (Ricardo) Se ha venido usando en producción en multitud de situaciones
[20:02] (Ricardo) Hay un pequeño problema, sin embargo
[20:03] (Ricardo) ¿Qué pasa si la señora de la limpieza desconecta el cable de red que une el grupo de nodos accidentalmente?
[20:03] (Ricardo) ¿... y ambos nodos *creen* que es el único que queda vivo?
[20:04] (Ricardo) ... y ambos empiezan a destrozar los datos ...
[20:04] (Ricardo) desafortunadamente, no hay forma de prevenir esto al 100%
[20:04] (Ricardo) pero se puede aumentar la fiabilidad sencillamente con tener varios medios de comunicación
[20:05] (Ricardo) digamos, dos cables de red, y uno seria
[20:05] (Ricardo) serie
[20:05] (Ricardo) esto es lo suficientemente fiable para que el fallo de uno de los componentes no evite la buena comunicación entre los nodos
[20:06] (Ricardo) de manera que se pueda decir de forma fiable si el otro nodo está vivo o no
[20:06] (Ricardo) Esta fue la introducción a la HA (alta disponibilidad)
[20:06] (Ricardo) Ahora pondremos algunos ejemplos de HA con Linux
[20:06] (Ricardo) (de software HA)
[20:06] (Ricardo) y mostraremos cómo se usa
[20:07] (Ricardo) Tengan en cuenta que vamos a hablar de software libre para Linux
[20:08] (Ricardo) Como dijimos antes, el programa 'heartbeat' proporciona una manera de monitorizar y detectar fallos básicos de servicios
[20:08] (Ricardo) sólo para dos nodos
[20:08] (Ricardo) Como ejemplo práctico...
[20:08] (Ricardo) El servidor web de Conectiva (www.conectiva.com.br) tiene un servidor en 'suspenso' (stand by) ejecutando heartbeat
[20:10] (Ricardo) En caso de fallo del servidor primario, el nodo en espera lo detectará, y arrancará un servidor Apache
[20:12] (DaniT) dejando el servicio disponible nuevamente
[20:12] (Ricardo) Se puede monitorizar cualquier servicio (en teoría) con heartbeat
[20:12] (Ricardo) De manera que si nuestra máquina se estropea, todo el mundo puede seguir accediendo a nuestro sitio web ;)
[20:12] (Ricardo) La monitorización sólo depende del script de arranque del servicio
[20:13] (Ricardo) De manera que cualquier servicio que cuente con un script de arranque puede usar heartbeat
[20:13] (Ricardo) arjan preguntó si también se hace toma el control de la IP
[20:13] (Ricardo) Existe una IP virtual que es usada por el servicio
[20:14] (debUgo-) la cual es la dirección IP del "servidor virtual"
[20:14] (debUgo-) asi, en el caso de nuestro servidor web
[20:14] (debUgo-) la dirección IP real del primer nodo no es usada por el daemon de apache
[20:15] (debUgo-) pero la dirección IP virtual que será usada por el nodo en espera en caso de que ocurra un 'failover'
[20:16] (debUgo-) pero heartbeat, está limitado a dos nodos
[20:16] (debUgo-) esto es un gran problema para muchos sistemas grandes
[20:16] (debUgo-) SGI ha portado su sistema de AD FailSafe a Linux recientemente (http://oss.sgi.com/projects/failsafe)
[20:17] (debUgo-) FailSafe es un administrador de cluster completo que soporta hasta 16 nodos.
[20:17] (debUgo-) En estos momentos no está listo para ambientes de producción
[20:17] (Ricardo) Pero eso lo está llevando la gente del proyecto Linux HA ;)
[20:18] (Ricardo) El FailSafe de SGI es GPL.
[20:18] (Ricardo) Otro tipo de 'clustering' es LVS... El proyecto de Servidor Virtual de Linux
[20:18] (Ricardo) LVS utiliza otro enfoque diferente al clustering
[20:18] (Ricardo) Tenemos una (quizá dos) máquinas que realizan peticiones http (www)
[20:19] (Ricardo) pero esas máquinas no hacen nada, excepto enviar las peticiones a un montón de máquinas que hacen el trabajo real
[20:19] (Ricardo) también llamados "nodos de trabajo"
[20:19] (Ricardo) (working nodes)
[20:19] (Ricardo) si uno o más de los nodos de trabajo fallan, los otros harán el trabajo por ellos
[20:19] (Ricardo) y todos los rúters (las máquinas que están 'delante') harán esto:
[20:20] (Ricardo) 1) llevar la cuenta de las máquinas que están disponibles
[20:20] (Ricardo) 2) pasar las consultas http a los nodos de trabajo
[20:21] (Ricardo) el núcleo necesita un parche especial para el TCP/IP y un conjunto de utilidades en modo de usuario para que esto funcione
[20:22] (Ricardo) "Piranha", de Red Hat, es una herramienta de configuración para LVS, que la gente puede utilizar para configurar grupos LVS más sencillamente
[20:22] (Ricardo) en conectiva también estamos preparando un proyecto VA muy bueno
[20:22] (Ricardo) el proyecto en que están trabajando marcelo y Olive se llama "drdb"
[20:23] (Ricardo) el dispositivo distribuido de bloques redundantes (distributed redundant block device)
[20:23] (Ricardo) es casi lo mismo que RAID1, sólo que sobre la red
[20:23] (Ricardo) recordemos que RAID1 (mirroring) consiste en usar 2 (o más) discos para almacenar los datos
[20:23] (Ricardo) almacenando una copia en cada disco
[20:24] (Ricardo) drdb extiende esta idea para usar discos en máquinas diferentes en la red
[20:24] (debUgo-) asi, si un disco (en una máquina) falla, otras máquinas aún tendrán los datos
[20:24] (debUgo-) y si una máquina completa falla, los datos están en otra máquina... y el sistema completo, sigue funcionando
[20:24] (debUgo-) si usa esto junto a ext3 o reiserfs, la máquina que sigue funcionando puede rápidamente tomar el trabajo del sistema de archivos que había sido copiado a su propio disco
[20:24] (debUgo-) y sus programas pueden seguir corriendo
[20:25] (debUgo-) (con ext2, debe hacer primero fsck, que puede tomar mucho tiempo)
[20:25] (debUgo-) esto puede ser usado para servidores de archivos/ficheros, bases de datos, servidores web...
[20:26] (debUgo-) cualquier cosa donde se necesite los datos más recientes para trabajar...
[20:26] (debUgo-) este el fin de nuestra parte de la lectura, por favor haga las preguntas y nosotros intentaremos darle una buena respuesta
[20:27] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:27] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:27] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:27] (MJesus)4clap 5clap 6clap 7clap 8clap 9clap 10clap 11clap 12clap 13clap
[20:27] (debUgo-) btw, toda esta lectura fue improvisada por marcelo y por mi (riel)... perdón si fue un poco confusa a veces...
[20:27] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:27] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:27] (MJesus)4clap 5clap 6clap 7clap 8clap 9clap 10clap 11clap 12clap 13clap
[20:27] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:27] (MJesus)4clap 5clap 6clap 7clap 8clap 9clap 10clap 11clap 12clap 13clap
[20:28] (DaniT) fernando: preguntas aqui o en #qc ?
[20:28] (DaniT) riel: creo que solo hemos tenido una pregunta en #qc, asi que continuemos allí
[20:29] (DaniT) fernando: comentarios y preguntas en #qc
[20:30] (DaniT) arjan pregunta: los departamentos de IS estan realmente satisfechos con el "Failover" de IP ?
[20:30] (DaniT) marcelo: si
[20:31] (MJesus)a mi me gustaria tenerlo todo traducido, pero a ver...
[20:31] (avic) yo diría que os merecéis un descanso :)
[20:31] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:31] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:31] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:31] (MJesus)plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas plas
[20:31] (MJesus)hala..... al #qc y cada uno que lea
[20:31] (MJesus)si acaso mañana se traduce, ya acabamos pues
[20:31] (debUgo-) jejeje
[20:32] (DaniT) ;)
[20:32] (Ricardo) :)
[20:32] (MJesus)4 GRACIAS A LOS TRADUCTORES!!!
[20:32] (MJesus)4 GRACIAS A LOS TRADUCTORES!!!
[20:32] (MJesus)4 GRACIAS A LOS TRADUCTORES!!!
[20:32] (Ricardo) :)
[20:32] (avic) grácias
[20:33] (debUgo-) :O)
[20:33] (MJesus)ATENCION EN EL CANAL #QC CONTINUA LA FASE DE DEBATE DE ESTA CHARLA
[20:33] (MJesus)LOS QUE QUIERAN SEGURLA QUE PASEN ALLA.
Session Close: Wed Nov 29 22:07:23 2000
Y seguimos un buen rato más charlando...
Contact:
|