SlideShare a Scribd company logo
1 of 22
Download to read offline
Alta Disponibilidade na Prática
  utilizando servidores Linux



   - Tito Lívio Castro
   - Edison Pignaton de Freitas
   - Jorgito Matiuzzi Stochero



   6º Fórum Internacional de Software Livre
Roteiro

   Introdução
   Tolerância a falhas
   Metodologia de projeto de sistemas
    tolerantes a falhas
   Estudo de Caso
   Implementação
   Demonstração
Introdução

   Disponibilidade de um sistema computacional
    é a probabilidade de que este sistema esteja
    funcionando e pronto para uso
    Classes
    –   Disponibilidade Básica (99% a 99,9%)
    –   Alta Disponibilidade (99,99% a 99,999%)
    –   Disponibilidade Contínua (99,999...%)
Introdução

   Alta Disponibilidade é uma sub-área da
    Tolerância a Falhas que visa manter a
    disponibilidade dos serviços prestados por um
    sistema computacional
    –   redundância de hardware
    –   reconfiguração de software
    –   Vários computadores juntos agindo como um só,
        cada um monitorando os outros e assumindo seus
        serviços caso perceba que algum deles falhou
Conceitos básicos
   Falha
    –   Origem do problema
    –   Ex. :um bloco de código inconsistente
   Erro
    –   Consequência da falha, gerando comportamento não
        desejado do sistema
    –   Ex. : buffer overflow
   Defeito
    –   Resultado aparente do comportamento indevido
    –   Ex. Crash devido ao buffer overflow
Conceitos básicos
   Failover
    –   Uma máquina assume os serviços de outra, quando esta
        última falha
    –   Automático ou manual (pode ou não ser transparente)
   Failback
    –   Processo inverso do failover, executado quando o
        servidor que apresentou falha é recolocado em sv
Tolerância a Falhas

   Como conseguir ???
    – Redundância
    – Monitoração
    – Reação imediata
Metodologia de Projeto
   Definição de objetivos
     – Custo, desempenho, confiabilidade
   Limitação de escopo
     – Tipo de falhas consideradas, que partes do
       sistema serão tolerantes a falhas
   Definição de níveis de tratamento
   Definição da reconfiguração e reparos
   Projeto dos mecanismos de tratamento
   Identificação do hard core
   Avaliação do resultado
Estudo de Caso


   Servidor de Arquivos e Autenticação
   600 estações de trabalho
   Ambiente heterogêneo
   Necessidade de alta disponibilidade
Estudo de Caso


   Requisitos
    –   Custo: baixo
    –   Desempenho: tempo de acesso aos arquivos no
        servidor próximo ao tempo de acesso de arquivos
        locais
    –   Confiabilidade: o sistema não deve sair do ar em
        horários de expediente normal (acima de 99%)
Estudo de Caso


   Escopo
    –   Falhas consideradas
            Degradação de hardware
            Falhas de software
    –   Partes tolerantes
            Acesso, edição e armazenamento de arquivos
            Sistema de autenticação
Estudo de Caso

   Níveis de Tratamento
    –   Falhas consideradas em nível de componentes
        individuais (LDAP, samba, hw, etc)
    –   Erros serão considerados do tipo paradas imprevistas
        (crash)
    –   Defeitos: não acesso aos dados e impossibilidade de
        autenticação
   Mecanismos de Tratamento
    –   Detecção de erros durante a operação do sistema
    –   Recuperação através do mascaramento do defeito para o
        usuário
Estudo de Caso

   Recuperação e reparos
    –   Replicação da base de usuários
    –   Recovery da base de usuários
    –   Replicação dos dados
    –   Acesso aos dados replicados
   Projeto dos mecanismos de tratamento
    –   Detecção: técnica de heartbeat (heartbeat)
    –   Tratamento: mascaramento (heartbeat/drbd/slurp)
Estudo de Caso

   Solução para Replicação - RAID Nível 1
    –   Escrita nos discos “D” de dados é replicada nos
        discos “D´” -> Esquema de Espelhamento
         D                 D´        Variantes:
              a                 a´   - Hw: componentes prontos
                                        unidos por barramentos
              b                 b´      (somente um nível possível
                                        de falha)
                                     - Sw: controle por
                                        sincronização (baixo custo
                                        e maior flexibilidade)
Hardcore

   2 servidores com SO Suse
    9.2 (+ 1 p/desenvolvimento)
   2 placas de rede
     – Ligação direta entre os
       dois
     – Acesso dos clientes em
       diferentes switches
   Samba e OpenLDAP
   Heartbeat + DRBD + Mon
Hardcore

SERVIÇOS
   Samba (versão 3.0.9-2.1)
   OpenLDAP (versão 2.2.15-5.1)
   Apache (versão 2.0.50-7.3)


ALTA DISPONIBILIDADE
   DRBD -Duplicated Redundant Block Device – (versão
    0.7.10 - http://oss.linbit.com/drbd)
   Heartbeat (versão 1.2.3-3.1)
   Mon (versão 0.99.2-354)
DRBD

   Replicação de disco através da rede
   Driver de bloco para o kernel que cria um dispositivo
    de bloco virtual (disco real local + conexão de rede)
HeartBeat

   Monitoração dos nodos do cluster
   Coordena as ações de failover e failback
   Solução de reativação automática de serviços são
    baseadas neste pacote
Mon

   Monitoração Periódica dos Serviços (rápida e ágil)
   Pode enviar alertas por e-mail, pagers, celulares e
    logs.
   Conceitos principais
     – Máquinas (hostgroup) + Serviços + Monitores +
       Alertas
Ambiente de Teste

   SITUAÇÃO INICIAL   APÓS O CRASH DO
                         PRIMÁRIO
DEMONSTRAÇÃO


• Configuração dos serviços

• Teste da alta disponibilidade
Demonstração

More Related Content

What's hot

Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: IntroduçãoAlexandre Duarte
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUAlexandre Duarte
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: ThreadsAlexandre Duarte
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threadsPaulo Fonseca
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoAlexandre Duarte
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senaiCarlos Melo
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsEvandro Júnior
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de EscalonamentoJunior Cesar
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processosComputação Depressão
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no WindowsFee Kosta
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threadsSilvino Neto
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dadosSuissa
 

What's hot (20)

Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Visão Geral: Introdução
Visão Geral: IntroduçãoVisão Geral: Introdução
Visão Geral: Introdução
 
Gerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPUGerências de Processos: Escalonamento de CPU
Gerências de Processos: Escalonamento de CPU
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Apresentacao Aula03 So
Apresentacao Aula03 SoApresentacao Aula03 So
Apresentacao Aula03 So
 
Gerências de Processos: Threads
Gerências de Processos: ThreadsGerências de Processos: Threads
Gerências de Processos: Threads
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Apostila 5 processos e threads
Apostila 5   processos e threadsApostila 5   processos e threads
Apostila 5 processos e threads
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Gerências de Processos: Sincronização
Gerências de Processos: SincronizaçãoGerências de Processos: Sincronização
Gerências de Processos: Sincronização
 
Processamento paralelo
Processamento paraleloProcessamento paralelo
Processamento paralelo
 
Processos threads senai
Processos threads senaiProcessos threads senai
Processos threads senai
 
Arquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e ThreadsArquitetura de Computadores: Processos e Threads
Arquitetura de Computadores: Processos e Threads
 
Algoritimos de Escalonamento
Algoritimos de EscalonamentoAlgoritimos de Escalonamento
Algoritimos de Escalonamento
 
2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos2009 1 - sistemas operacionais - aula 3 - processos
2009 1 - sistemas operacionais - aula 3 - processos
 
Escalonamento no Windows
Escalonamento no WindowsEscalonamento no Windows
Escalonamento no Windows
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Cluster e replicação em banco de dados
Cluster e replicação em banco de dadosCluster e replicação em banco de dados
Cluster e replicação em banco de dados
 
SO-04 Escalonamento de Processos
SO-04 Escalonamento de ProcessosSO-04 Escalonamento de Processos
SO-04 Escalonamento de Processos
 

Similar to Alta Disponibilidade na Prática utilizando servidores Linuxes Linux

Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxMario Bittencourt
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixAndré Déo
 
[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows AzureVitor Tomaz
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhsAnderson Lago
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoMauro Tapajós
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoFrederico Madeira
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxMauro Tapajós
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionaisDuFelix02
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosMauro Tapajós
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univemevandrovv
 
Segurança Através de Gerência de Configurações
Segurança Através de Gerência de ConfiguraçõesSegurança Através de Gerência de Configurações
Segurança Através de Gerência de ConfiguraçõesJeronimo Zucco
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxFrederico Madeira
 
Linux Real-Time e Java Real Time, um mundo sem delays! por Flávio Buccianti
Linux Real-Time e Java Real Time, um mundo sem delays! por Flávio BucciantiLinux Real-Time e Java Real Time, um mundo sem delays! por Flávio Buccianti
Linux Real-Time e Java Real Time, um mundo sem delays! por Flávio BucciantiJoao Galdino Mello de Souza
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1Universal.org.mx
 

Similar to Alta Disponibilidade na Prática utilizando servidores Linuxes Linux (20)

Alta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/LinuxAlta disponibilidade em ambiente GNU/Linux
Alta disponibilidade em ambiente GNU/Linux
 
Aula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosdsAula sd 2008_02aspectosprojectosds
Aula sd 2008_02aspectosprojectosds
 
Zabbix 2010
Zabbix 2010Zabbix 2010
Zabbix 2010
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com Zabbix
 
[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure[24HOP] SQL Server em maquinas virtuais do Windows Azure
[24HOP] SQL Server em maquinas virtuais do Windows Azure
 
(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs(01) intro+inicializacao+boot loader+fhs
(01) intro+inicializacao+boot loader+fhs
 
Aspectos do kernel Linux e Instalação
Aspectos do kernel Linux e InstalaçãoAspectos do kernel Linux e Instalação
Aspectos do kernel Linux e Instalação
 
SI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de CódigoSI - Processos, Threads, Virtualização e Migração de Código
SI - Processos, Threads, Virtualização e Migração de Código
 
Ha pohlmann
Ha pohlmannHa pohlmann
Ha pohlmann
 
Suporte e Disponibilidade no Linux
Suporte e Disponibilidade no LinuxSuporte e Disponibilidade no Linux
Suporte e Disponibilidade no Linux
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e ServiçosFISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
FISL8 - Aplicações Livres para Gerenciamento de Redes e Serviços
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univem
 
Segurança Através de Gerência de Configurações
Segurança Através de Gerência de ConfiguraçõesSegurança Através de Gerência de Configurações
Segurança Através de Gerência de Configurações
 
Linux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao LinuxLinux - Sobre a Disciplina + Introdução ao Linux
Linux - Sobre a Disciplina + Introdução ao Linux
 
Linux Real-Time e Java Real Time, um mundo sem delays! por Flávio Buccianti
Linux Real-Time e Java Real Time, um mundo sem delays! por Flávio BucciantiLinux Real-Time e Java Real Time, um mundo sem delays! por Flávio Buccianti
Linux Real-Time e Java Real Time, um mundo sem delays! por Flávio Buccianti
 
2010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula12010 02 26 Sistemas Operacionais Aula1
2010 02 26 Sistemas Operacionais Aula1
 
Ruby profiling
Ruby profilingRuby profiling
Ruby profiling
 

More from elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

More from elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Alta Disponibilidade na Prática utilizando servidores Linuxes Linux

  • 1. Alta Disponibilidade na Prática utilizando servidores Linux - Tito Lívio Castro - Edison Pignaton de Freitas - Jorgito Matiuzzi Stochero 6º Fórum Internacional de Software Livre
  • 2. Roteiro  Introdução  Tolerância a falhas  Metodologia de projeto de sistemas tolerantes a falhas  Estudo de Caso  Implementação  Demonstração
  • 3. Introdução  Disponibilidade de um sistema computacional é a probabilidade de que este sistema esteja funcionando e pronto para uso  Classes – Disponibilidade Básica (99% a 99,9%) – Alta Disponibilidade (99,99% a 99,999%) – Disponibilidade Contínua (99,999...%)
  • 4. Introdução  Alta Disponibilidade é uma sub-área da Tolerância a Falhas que visa manter a disponibilidade dos serviços prestados por um sistema computacional – redundância de hardware – reconfiguração de software – Vários computadores juntos agindo como um só, cada um monitorando os outros e assumindo seus serviços caso perceba que algum deles falhou
  • 5. Conceitos básicos  Falha – Origem do problema – Ex. :um bloco de código inconsistente  Erro – Consequência da falha, gerando comportamento não desejado do sistema – Ex. : buffer overflow  Defeito – Resultado aparente do comportamento indevido – Ex. Crash devido ao buffer overflow
  • 6. Conceitos básicos  Failover – Uma máquina assume os serviços de outra, quando esta última falha – Automático ou manual (pode ou não ser transparente)  Failback – Processo inverso do failover, executado quando o servidor que apresentou falha é recolocado em sv
  • 7. Tolerância a Falhas  Como conseguir ??? – Redundância – Monitoração – Reação imediata
  • 8. Metodologia de Projeto  Definição de objetivos – Custo, desempenho, confiabilidade  Limitação de escopo – Tipo de falhas consideradas, que partes do sistema serão tolerantes a falhas  Definição de níveis de tratamento  Definição da reconfiguração e reparos  Projeto dos mecanismos de tratamento  Identificação do hard core  Avaliação do resultado
  • 9. Estudo de Caso  Servidor de Arquivos e Autenticação  600 estações de trabalho  Ambiente heterogêneo  Necessidade de alta disponibilidade
  • 10. Estudo de Caso  Requisitos – Custo: baixo – Desempenho: tempo de acesso aos arquivos no servidor próximo ao tempo de acesso de arquivos locais – Confiabilidade: o sistema não deve sair do ar em horários de expediente normal (acima de 99%)
  • 11. Estudo de Caso  Escopo – Falhas consideradas  Degradação de hardware  Falhas de software – Partes tolerantes  Acesso, edição e armazenamento de arquivos  Sistema de autenticação
  • 12. Estudo de Caso  Níveis de Tratamento – Falhas consideradas em nível de componentes individuais (LDAP, samba, hw, etc) – Erros serão considerados do tipo paradas imprevistas (crash) – Defeitos: não acesso aos dados e impossibilidade de autenticação  Mecanismos de Tratamento – Detecção de erros durante a operação do sistema – Recuperação através do mascaramento do defeito para o usuário
  • 13. Estudo de Caso  Recuperação e reparos – Replicação da base de usuários – Recovery da base de usuários – Replicação dos dados – Acesso aos dados replicados  Projeto dos mecanismos de tratamento – Detecção: técnica de heartbeat (heartbeat) – Tratamento: mascaramento (heartbeat/drbd/slurp)
  • 14. Estudo de Caso  Solução para Replicação - RAID Nível 1 – Escrita nos discos “D” de dados é replicada nos discos “D´” -> Esquema de Espelhamento D D´ Variantes: a a´ - Hw: componentes prontos unidos por barramentos b b´ (somente um nível possível de falha) - Sw: controle por sincronização (baixo custo e maior flexibilidade)
  • 15. Hardcore  2 servidores com SO Suse 9.2 (+ 1 p/desenvolvimento)  2 placas de rede – Ligação direta entre os dois – Acesso dos clientes em diferentes switches  Samba e OpenLDAP  Heartbeat + DRBD + Mon
  • 16. Hardcore SERVIÇOS  Samba (versão 3.0.9-2.1)  OpenLDAP (versão 2.2.15-5.1)  Apache (versão 2.0.50-7.3) ALTA DISPONIBILIDADE  DRBD -Duplicated Redundant Block Device – (versão 0.7.10 - http://oss.linbit.com/drbd)  Heartbeat (versão 1.2.3-3.1)  Mon (versão 0.99.2-354)
  • 17. DRBD  Replicação de disco através da rede  Driver de bloco para o kernel que cria um dispositivo de bloco virtual (disco real local + conexão de rede)
  • 18. HeartBeat  Monitoração dos nodos do cluster  Coordena as ações de failover e failback  Solução de reativação automática de serviços são baseadas neste pacote
  • 19. Mon  Monitoração Periódica dos Serviços (rápida e ágil)  Pode enviar alertas por e-mail, pagers, celulares e logs.  Conceitos principais – Máquinas (hostgroup) + Serviços + Monitores + Alertas
  • 20. Ambiente de Teste SITUAÇÃO INICIAL APÓS O CRASH DO PRIMÁRIO
  • 21. DEMONSTRAÇÃO • Configuração dos serviços • Teste da alta disponibilidade