You are on page 1of 50

Cluster

Verso 1.0.0

Sumrio
I

Sobre essa Apostila

II Informaes Bsicas

III GNU Free Documentation License

10

IV

19

Cluster

1 O que Cluster
2 Plano de ensino
2.1 Objetivo . . .
2.2 Pblico Alvo .
2.3 Pr-requisitos
2.4 Descrio . .
2.5 Metodologia .
2.6 Cronograma
2.7 Programa . .
2.8 Avaliao . .
2.9 Bibliografia .

20
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

3 Lio 1 - Introduo
3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Um pouco de histria . . . . . . . . . . . . . . . . . . . .
3.3 Tipos de cluster . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Balanceamento de Carga . . . . . . . . . . . . . . . . . .
3.5 Porcessamento Distribudo . . . . . . . . . . . . . . . . .
3.5.1 Lio 2 - Alta disponibilidade . . . . . . . . . . . .
3.6 Alta disponibilidade . . . . . . . . . . . . . . . . . . . . . .
3.7 Disponibilidade . . . . . . . . . . . . . . . . . . . . . . . .
3.8 Redundncia . . . . . . . . . . . . . . . . . . . . . . . . .
3.9 Falha . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10 Erro e Defeito . . . . . . . . . . . . . . . . . . . . . . . . .
3.11 Failover e Failback . . . . . . . . . . . . . . . . . . . . . .
3.11.1 Lio 3 - Uma soluo para a Alta Disponibilidade
3.12 Uma soluo para alta disponibilidade . . . . . . . . . . .
1

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

21
21
21
21
21
21
21
22
22
23

.
.
.
.
.
.
.
.
.
.
.
.
.
.

24
24
24
25
25
25
26
26
26
27
28
28
28
28
28

CDTC
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21
3.22
3.23
3.24
3.25
3.26
3.27
3.28
3.29
3.30
3.31
3.32
3.33
3.34
3.35
3.36
3.37
3.38
3.39
3.40
3.41
3.42
3.43

Centro de Difuso de Tecnologia e Conhecimento


RAID . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
DRBD . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Consistncia de dados . . . . . . . . . . . . . . . . . . .
Heartbeat . . . . . . . . . . . . . . . . . . . . . . . . . .
MON . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.17.1 Lio 4 - Configurando a rede . . . . . . . . . . .
Procurando pelas ferramentas . . . . . . . . . . . . . .
Configurando a rede . . . . . . . . . . . . . . . . . . . .
3.19.1 Lio 5 - Compilando o kernel . . . . . . . . . .
O kernel . . . . . . . . . . . . . . . . . . . . . . . . . . .
Compilando o kernel . . . . . . . . . . . . . . . . . . . .
Instalando o novo kernel . . . . . . . . . . . . . . . . . .
3.22.1 Lio 6 - Instalao e configurao do DRBD . .
DRBD . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instalando os pr-requisitos . . . . . . . . . . . . . . . .
Instalando o DRBD . . . . . . . . . . . . . . . . . . . . .
Configurando o DRBD . . . . . . . . . . . . . . . . . . .
Entendendo o drbd.conf . . . . . . . . . . . . . . . . . .
Utilizando o DRBD . . . . . . . . . . . . . . . . . . . . .
Interpretando o /proc/drbd . . . . . . . . . . . . . . . . .
Finalizando . . . . . . . . . . . . . . . . . . . . . . . . .
3.30.1 Lio 7 - Instalao e configurao do Heartbeat
Heartbeat . . . . . . . . . . . . . . . . . . . . . . . . . .
Instalando os pr-requisitos . . . . . . . . . . . . . . . .
Instalando o Heartbeat . . . . . . . . . . . . . . . . . . .
Configurando o Heartbeat . . . . . . . . . . . . . . . . .
Configurando o ha.cf . . . . . . . . . . . . . . . . . . . .
Configurando o haresources . . . . . . . . . . . . . . .
Configurando o authkeys . . . . . . . . . . . . . . . . .
Iniciando o Heartbeat . . . . . . . . . . . . . . . . . . .
3.38.1 Lio 8 - Instalao e configurao do MON . .
MON . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Instalando os pr-requisitos . . . . . . . . . . . . . . . .
Instalando o MON . . . . . . . . . . . . . . . . . . . . .
Configurando o MON . . . . . . . . . . . . . . . . . . .
Heartbeat.alert . . . . . . . . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Brasil/DF
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

30
30
30
31
31
31
31
32
33
33
33
35
35
35
35
36
36
37
39
40
42
42
42
42
43
44
44
44
45
46
46
46
46
47
47
48

Parte I

Sobre essa Apostila

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Contedo
O contedo dessa apostila fruto da compilao de diversos materiais livres publicados na internet, disponveis em diversos sites ou originalmente produzido no CDTC (http://www.cdtc.org.br.)
O formato original deste material bem como sua atualizao est disponvel dentro da licena
GNU Free Documentation License, cujo teor integral encontra-se aqui reproduzido na seo de
mesmo nome, tendo inclusive uma verso traduzida (no oficial).
A reviso e alterao vem sendo realizada pelo CDTC (suporte@cdtc.org.br) desde outubro
de 2006. Crticas e sugestes construtivas sero bem-vindas a qualquer hora.

Autores
A autoria deste de responsabilidade de Frederico Oliveira de Paula (fredaodepaula@cdtc.org.br).
O texto original faz parte do projeto Centro de Difuso de Tecnologia e Conhecimento que
vm sendo realizado pelo ITI (Instituto Nacional de Tecnologia da Informao) em conjunto com
outros parceiros institucionais, e com as universidades federais brasileiras que tem produzido e
utilizado Software Livre apoiando inclusive a comunidade Free Software junto a outras entidades
no pas.
Informaes adicionais podem ser obtidas atravs do email ouvidoria@cdtc.org.br, ou da
home page da entidade, atravs da URL http://www.cdtc.org.br.

Garantias
O material contido nesta apostila isento de garantias e o seu uso de inteira responsabilidade do usurio/leitor. Os autores, bem como o ITI e seus parceiros, no se responsabilizam
direta ou indiretamente por qualquer prejuzo oriundo da utilizao do material aqui contido.

Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br) .
Permission is granted to copy, distribute and/or modify this document under the terms
of the GNU Free Documentation License, Version 1.1 or any later version published by
the Free Software Foundation; with the Invariant Chapter being SOBRE ESSA APOSTILA. A copy of the license is included in the section entitled GNU Free Documentation
License.

Parte II

Informaes Bsicas

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Sobre o CDTC
Objetivo Geral
O Projeto CDTC visa a promoo e o desenvolvimento de aes que incentivem a disseminao de solues que utilizem padres abertos e no proprietrios de tecnologia, em proveito do
desenvolvimento social, cultural, poltico, tecnolgico e econmico da sociedade brasileira.
Objetivo Especfico
Auxiliar o Governo Federal na implantao do plano nacional de software no-proprietrio e
de cdigo fonte aberto, identificando e mobilizando grupos de formadores de opinio dentre os
servidores pblicos e agentes polticos da Unio Federal, estimulando e incentivando o mercado
nacional a adotar novos modelos de negcio da tecnologia da informao e de novos negcios
de comunicao com base em software no-proprietrio e de cdigo fonte aberto, oferecendo
treinamento especfico para tcnicos, profissionais de suporte e funcionrios pblicos usurios,
criando grupos de funcionrios pblicos que iro treinar outros funcionrios pblicos e atuar como
incentivadores e defensores dos produtos de software no proprietrios e cdigo fonte aberto, oferecendo contedo tcnico on-line para servios de suporte, ferramentas para desenvolvimento de
produtos de software no proprietrios e do seu cdigo fonte livre, articulando redes de terceiros
(dentro e fora do governo) fornecedoras de educao, pesquisa, desenvolvimento e teste de produtos de software livre.

Guia do aluno
Neste guia, voc ter reunidas uma srie de informaes importantes para que voc comece
seu curso. So elas:
Licenas para cpia de material disponvel;
Os 10 mandamentos do aluno de Educao a Distncia;
Como participar dos foruns e da wikipdia;
Primeiros passos.
muito importante que voc entre em contato com TODAS estas informaes, seguindo o
roteiro acima.

Licena
Copyright 2006, Instituto Nacional de Tecnologia da Informao (cdtc@iti.gov.br).
6

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

dada permisso para copiar, distribuir e/ou modificar este documento sob os termos
da Licena de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior
pblicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".

Os 10 mandamentos do aluno de educao online

1. Acesso Internet: ter endereo eletrnico, um provedor e um equipamento adequado


pr-requisito para a participao nos cursos a distncia;
2. Habilidade e disposio para operar programas: ter conhecimentos bsicos de Informtica necessrio para poder executar as tarefas;
3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distncia conta muitos pontos, pois ir colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores;
4. Comportamentos compatveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e se fazendo ser respeitado pelos mesmos;
5. Organizao pessoal: planejar e organizar tudo fundamental para facilitar a sua reviso
e a sua recuperao de materiais;
6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigaes e
realiz-las em tempo real;
7. Curiosidade e abertura para inovaes: aceitar novas idias e inovar sempre;
8. Flexibilidade e adaptao: requisitos necessrio mudana tecnolgica, aprendizagens
e descobertas;
9. Objetividade em sua comunicao: comunicar-se de forma clara, breve e transparente
ponto - chave na comunicao pela Internet;
10. Responsabilidade: ser responsvel por seu prprio aprendizado. O ambiente virtual no
controla a sua dedicao, mas reflete os resultados do seu esforo e da sua colaborao.

Como participar dos fruns e Wikipdia


Voc tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira o uso dos fruns de notcias e de dvidas gerais que se distinguem pelo uso:
. O frum de notcias tem por objetivo disponibilizar um meio de acesso rpido a informaes
que sejam pertinentes ao curso (avisos, notcias). As mensagens postadas nele so enviadas a
7

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

todos participantes. Assim, se o monitor ou algum outro participante tiver uma informao que
interesse ao grupo, favor post-la aqui.
Porm, se o que voc deseja resolver alguma dvida ou discutir algum tpico especfico do
curso. recomendado que voc faa uso do Frum de dvidas gerais que lhe d recursos mais
efetivos para esta prtica.
. O frum de dvidas gerais tem por objetivo disponibilizar um meio fcil, rpido e interativo
para solucionar suas dvidas e trocar experincias. As mensagens postadas nele so enviadas
a todos participantes do curso. Assim, fica muito mais fcil obter respostas, j que todos podem
ajudar.
Se voc receber uma mensagem com algum tpico que saiba responder, no se preocupe com a
formalizao ou a gramtica. Responda! E no se esquea de que antes de abrir um novo tpico
recomendvel ver se a sua pergunta j foi feita por outro participante.
A segunda forma se d pelas Wikis:
. Uma wiki uma pgina web que pode ser editada colaborativamente, ou seja, qualquer participante pode inserir, editar, apagar textos. As verses antigas vo sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
timo suporte a processos de aprendizagem colaborativa. A maior wiki na web o site "Wikipdia", uma experincia grandiosa de construo de uma enciclopdia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em portugus pelos links:
Pgina principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaborao com a aprendizagem do grupo!

Primeiros Passos
Para uma melhor aprendizagem recomendvel que voc siga os seguintes passos:
Ler o Plano de Ensino e entender a que seu curso se dispe a ensinar;
Ler a Ambientao do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas bsicas do mesmo;
Entrar nas lies seguindo a seqncia descrita no Plano de Ensino;
Qualquer dvida, reporte ao Frum de Dvidas Gerais.

Perfil do Tutor
Segue-se uma descrio do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal um modelo de excelncia: consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas honesto, imparcial, amvel, positivo, respeitador, aceita as
idias dos estudantes, paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
8

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

A classificao por um tutor desta natureza proporciona o melhor feedback possvel, crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem. Este tutor
ou instrutor:
fornece explicaes claras acerca do que ele espera e do estilo de classificao que ir
utilizar;
gosta que lhe faam perguntas adicionais;
identifica as nossas falhas, mas corrige-as amavelmente, diz um estudante, e explica porque motivo a classificao foi ou no foi atribuda;
tece comentrios completos e construtivos, mas de forma agradvel (em contraste com um
reparo de um estudante: os comentrios deixam-nos com uma sensao de crtica, de
ameaa e de nervossismo)
d uma ajuda complementar para encorajar um estudante em dificuldade;
esclarece pontos que no foram entendidos, ou corretamente aprendidos anteriormente;
ajuda o estudante a alcanar os seus objetivos;
flexvel quando necessrio;
mostra um interesse genuno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
escreve todas as correes de forma legvel e com um nvel de pormenorizao adequado;
acima de tudo, devolve os trabalhos rapidamente;

Parte III

GNU Free Documentation License

10

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

(Traduzido pelo Joo S. O. Bueno atravs do CIPSGA em 2001)


Esta uma traduo no oficial da Licena de Documentao Livre GNU em Portugus Brasileiro. Ela no publicada pela Free Software Foundation, e no se aplica legalmente a distribuio
de textos que usem a GFDL - apenas o texto original em Ingls da GNU FDL faz isso. Entretanto,
ns esperamos que esta traduo ajude falantes de portugus a entenderem melhor a GFDL.
This is an unofficial translation of the GNU General Documentation License into Brazilian Portuguese. It was not published by the Free Software Foundation, and does not legally state the
distribution terms for software that uses the GFDLonly the original English text of the GFDL does
that. However, we hope that this translation will help Portuguese speakers understand the GFDL
better.
Licena de Documentao Livre GNU Verso 1.1, Maro de 2000
Copyright (C) 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
permitido a qualquer um copiar e distribuir cpias exatas deste documento de licena, mas
no permitido alter-lo.

INTRODUO
O propsito desta Licena deixar um manual, livro-texto ou outro documento escrito "livre"no
sentido de liberdade: assegurar a qualquer um a efetiva liberdade de copi-lo ou redistribui-lo,
com ou sem modificaes, comercialmente ou no. Secundariamente, esta Licena mantm
para o autor e editor uma forma de ter crdito por seu trabalho, sem ser considerado responsvel
pelas modificaes feitas por terceiros.
Esta Licena um tipo de "copyleft"("direitos revertidos"), o que significa que derivaes do
documento precisam ser livres no mesmo sentido. Ela complementa a GNU Licena Pblica Geral (GNU GPL), que um copyleft para software livre.
Ns fizemos esta Licena para que seja usada em manuais de software livre, por que software
livre precisa de documentao livre: um programa livre deve ser acompanhado de manuais que
provenham as mesmas liberdades que o software possui. Mas esta Licena no est restrita a
manuais de software; ela pode ser usada para qualquer trabalho em texto, independentemente
do assunto ou se ele publicado como um livro impresso. Ns recomendamos esta Licena principalmente para trabalhos cujo propsito seja de introduo ou referncia.

APLICABILIDADE E DEFINIES
Esta Licena se aplica a qualquer manual ou outro texto que contenha uma nota colocada pelo
detentor dos direitos autorais dizendo que ele pode ser distribudo sob os termos desta Licena.
O "Documento"abaixo se refere a qualquer manual ou texto. Qualquer pessoa do pblico um

11

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

licenciado e referida como "voc".


Uma "Verso Modificada"do Documento se refere a qualquer trabalho contendo o documento
ou uma parte dele, quer copiada exatamente, quer com modificaes e/ou traduzida em outra
lngua.
Uma "Seo Secundria" um apndice ou uma seo inicial do Documento que trata exclusivamente da relao dos editores ou dos autores do Documento com o assunto geral do
Documento (ou assuntos relacionados) e no contm nada que poderia ser includo diretamente
nesse assunto geral (Por exemplo, se o Documento em parte um livro texto de matemtica, a
Seo Secundria pode no explicar nada de matemtica).
Essa relao poderia ser uma questo de ligao histrica com o assunto, ou matrias relacionadas, ou de posies legais, comerciais, filosficas, ticas ou polticas relacionadas ao mesmo.
As "Sees Invariantes"so certas Sees Secundrias cujos ttulos so designados, como
sendo de Sees Invariantes, na nota que diz que o Documento publicado sob esta Licena.
Os "Textos de Capa"so certos trechos curtos de texto que so listados, como Textos de Capa
Frontal ou Textos da Quarta Capa, na nota que diz que o texto publicado sob esta Licena.
Uma cpia "Transparente"do Documento significa uma cpia que pode ser lida automaticamente, representada num formato cuja especificao esteja disponvel ao pblico geral, cujos
contedos possam ser vistos e editados diretamente e sem mecanismos especiais com editores
de texto genricos ou (para imagens compostas de pixels) programas de pintura genricos ou
(para desenhos) por algum editor de desenhos grandemente difundido, e que seja passvel de
servir como entrada a formatadores de texto ou para traduo automtica para uma variedade
de formatos que sirvam de entrada para formatadores de texto. Uma cpia feita em um formato
de arquivo outrossim Transparente cuja constituio tenha sido projetada para atrapalhar ou desencorajar modificaes subsequentes pelos leitores no Transparente. Uma cpia que no
"Transparente" chamada de "Opaca".
Exemplos de formatos que podem ser usados para cpias Transparentes incluem ASCII simples sem marcaes, formato de entrada do Texinfo, formato de entrada do LaTex, SGML ou XML
usando uma DTD disponibilizada publicamente, e HTML simples, compatvel com os padres, e
projetado para ser modificado por pessoas. Formatos opacos incluem PostScript, PDF, formatos
proprietrios que podem ser lidos e editados apenas com processadores de texto proprietrios,
SGML ou XML para os quais a DTD e/ou ferramentas de processamento e edio no estejam
disponveis para o pblico, e HTML gerado automaticamente por alguns editores de texto com
finalidade apenas de sada.
A "Pgina do Ttulo"significa, para um livro impresso, a pgina do ttulo propriamente dita,
mais quaisquer pginas subsequentes quantas forem necessrias para conter, de forma legvel,
o material que esta Licena requer que aparea na pgina do ttulo. Para trabalhos que no
tenham uma pgina do ttulo, "Pgina do Ttulo"significa o texto prximo da apario mais proeminente do ttulo do trabalho, precedendo o incio do corpo do texto.

12

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

FAZENDO CPIAS EXATAS


Voc pode copiar e distribuir o Documento em qualquer meio, de forma comercial ou no
comercial, desde que esta Licena, as notas de copyright, e a nota de licena dizendo que esta
Licena se aplica ao documento estejam reproduzidas em todas as cpias, e que voc no acrescente nenhuma outra condio, quaisquer que sejam, s desta Licena.
Voc no pode usar medidas tcnicas para obstruir ou controlar a leitura ou confeco de
cpias subsequentes das cpias que voc fizer ou distribuir. Entretanto, voc pode aceitar compensao em troca de cpias. Se voc distribuir uma quantidade grande o suficiente de cpias,
voc tambm precisa respeitar as condies da seo 3.
Voc tambm pode emprestar cpias, sob as mesmas condies colocadas acima, e tambm
pode exibir cpias publicamente.

FAZENDO CPIAS EM QUANTIDADE


Se voc publicar cpias do Documento em nmero maior que 100, e a nota de licena do
Documento obrigar Textos de Capa, voc precisar incluir as cpias em capas que tragam, clara
e legivelmente, todos esses Textos de Capa: Textos de Capa da Frente na capa da frente, e
Textos da Quarta Capa na capa de trs. Ambas as capas tambm precisam identificar clara e
legivelmente voc como o editor dessas cpias. A capa da frente precisa apresentar o ttulo completo com todas as palavras do ttulo igualmente proeminentes e visveis. Voc pode adicionar
outros materiais s capas. Fazer cpias com modificaes limitadas s capas, tanto quanto estas
preservem o ttulo do documento e satisfaam a essas condies, pode ser tratado como cpia
exata em outros aspectos.
Se os textos requeridos em qualquer das capas for muito volumoso para caber de forma
legvel, voc deve colocar os primeiros (tantos quantos couberem de forma razovel) na capa
verdadeira, e continuar os outros nas pginas adjacentes.
Se voc publicar ou distribuir cpias Opacas do Documento em nmero maior que 100, voc
precisa ou incluir uma cpia Transparente que possa ser lida automaticamente com cada cpia
Opaca, ou informar, em ou com, cada cpia Opaca a localizao de uma cpia Transparente
completa do Documento acessvel publicamente em uma rede de computadores, qual o pblico
usurio de redes tenha acesso a download gratuito e annimo utilizando padres pblicos de
protocolos de rede. Se voc utilizar o segundo mtodo, voc precisar tomar cuidados razoavelmente prudentes, quando iniciar a distribuio de cpias Opacas em quantidade, para assegurar
que esta cpia Transparente vai permanecer acessvel desta forma na localizao especificada
por pelo menos um ano depois da ltima vez em que voc distribuir uma cpia Opaca (diretamente ou atravs de seus agentes ou distribuidores) daquela edio para o pblico.
pedido, mas no obrigatrio, que voc contate os autores do Documento bem antes de
redistribuir qualquer grande nmero de cpias, para lhes dar uma oportunidade de prover voc
com uma verso atualizada do Documento.

13

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

MODIFICAES
Voc pode copiar e distribuir uma Verso Modificada do Documento sob as condies das sees 2 e 3 acima, desde que voc publique a Verso Modificada estritamente sob esta Licena,
com a Verso Modificada tomando o papel do Documento, de forma a licenciar a distribuio
e modificao da Verso Modificada para quem quer que possua uma cpia da mesma. Alm
disso, voc precisa fazer o seguinte na verso modificada:
A. Usar na Pgina de Ttulo (e nas capas, se houver alguma) um ttulo distinto daquele do Documento, e daqueles de verses anteriores (que deveriam, se houvesse algum, estarem listados
na seo "Histrico do Documento"). Voc pode usar o mesmo ttulo de uma verso anterior se
o editor original daquela verso lhe der permisso;
B. Listar na Pgina de Ttulo, como autores, uma ou mais das pessoas ou entidades responsveis pela autoria das modificaes na Verso Modificada, conjuntamente com pelo menos cinco
dos autores principais do Documento (todos os seus autores principais, se ele tiver menos que
cinco);
C. Colocar na Pgina de Ttulo o nome do editor da Verso Modificada, como o editor;
D. Preservar todas as notas de copyright do Documento;
E. Adicionar uma nota de copyright apropriada para suas prprias modificaes adjacente s
outras notas de copyright;
F. Incluir, imediatamente depois das notas de copyright, uma nota de licena dando ao pblico
o direito de usar a Verso Modificada sob os termos desta Licena, na forma mostrada no tpico
abaixo;
G. Preservar nessa nota de licena as listas completas das Sees Invariantes e os Textos de
Capa requeridos dados na nota de licena do Documento;
H. Incluir uma cpia inalterada desta Licena;
I. Preservar a seo entitulada "Histrico", e seu ttulo, e adicionar mesma um item dizendo
pelo menos o ttulo, ano, novos autores e editor da Verso Modificada como dados na Pgina de
Ttulo. Se no houver uma sesso denominada "Histrico"no Documento, criar uma dizendo o
ttulo, ano, autores, e editor do Documento como dados em sua Pgina de Ttulo, ento adicionar
um item descrevendo a Verso Modificada, tal como descrito na sentena anterior;
J. Preservar o endereo de rede, se algum, dado no Documento para acesso pblico a uma
cpia Transparente do Documento, e da mesma forma, as localizaes de rede dadas no Documento para as verses anteriores em que ele foi baseado. Elas podem ser colocadas na seo
"Histrico". Voc pode omitir uma localizao na rede para um trabalho que tenha sido publicado
pelo menos quatro anos antes do Documento, ou se o editor original da verso a que ela se refira
der sua permisso;
K. Em qualquer seo entitulada "Agradecimentos"ou "Dedicatrias", preservar o ttulo da
14

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

seo e preservar a seo em toda substncia e fim de cada um dos agradecimentos de contribuidores e/ou dedicatrias dados;
L. Preservar todas as Sees Invariantes do Documento, inalteradas em seus textos ou em
seus ttulos. Nmeros de seo ou equivalentes no so considerados parte dos ttulos da seo;
M. Apagar qualquer seo entitulada "Endossos". Tal sesso no pode ser includa na Verso
Modificada;
N. No reentitular qualquer seo existente com o ttulo "Endossos"ou com qualquer outro
ttulo dado a uma Seo Invariante.
Se a Verso Modificada incluir novas sees iniciais ou apndices que se qualifiquem como
Sees Secundrias e no contenham nenhum material copiado do Documento, voc pode optar
por designar alguma ou todas aquelas sees como invariantes. Para fazer isso, adicione seus
ttulos lista de Sees Invariantes na nota de licena da Verso Modificada. Esses ttulos precisam ser diferentes de qualquer outro ttulo de seo.
Voc pode adicionar uma seo entitulada "Endossos", desde que ela no contenha qualquer coisa alm de endossos da sua Verso Modificada por vrias pessoas ou entidades - por
exemplo, declaraes de revisores ou de que o texto foi aprovado por uma organizao como a
definio oficial de um padro.
Voc pode adicionar uma passagem de at cinco palavras como um Texto de Capa da Frente
, e uma passagem de at 25 palavras como um Texto de Quarta Capa, ao final da lista de Textos
de Capa na Verso Modificada. Somente uma passagem de Texto da Capa da Frente e uma de
Texto da Quarta Capa podem ser adicionados por (ou por acordos feitos por) qualquer entidade.
Se o Documento j incluir um texto de capa para a mesma capa, adicionado previamente por
voc ou por acordo feito com alguma entidade para a qual voc esteja agindo, voc no pode
adicionar um outro; mas voc pode trocar o antigo, com permisso explcita do editor anterior que
adicionou a passagem antiga.
O(s) autor(es) e editor(es) do Documento no do permisso por esta Licena para que seus
nomes sejam usados para publicidade ou para assegurar ou implicar endossamento de qualquer
Verso Modificada.

COMBINANDO DOCUMENTOS
Voc pode combinar o Documento com outros documentos publicados sob esta Licena, sob
os termos definidos na seo 4 acima para verses modificadas, desde que voc inclua na combinao todas as Sees Invariantes de todos os documentos originais, sem modificaes, e liste
todas elas como Sees Invariantes de seu trabalho combinado em sua nota de licena.
O trabalho combinado precisa conter apenas uma cpia desta Licena, e Sees Invariantes
Idnticas com multiplas ocorrncias podem ser substitudas por apenas uma cpia. Se houver
mltiplas Sees Invariantes com o mesmo nome mas com contedos distintos, faa o ttulo de
15

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

cada seo nico adicionando ao final do mesmo, em parnteses, o nome do autor ou editor
origianl daquela seo, se for conhecido, ou um nmero que seja nico. Faa o mesmo ajuste
nos ttulos de seo na lista de Sees Invariantes nota de licena do trabalho combinado.
Na combinao, voc precisa combinar quaisquer sees entituladas "Histrico"dos diversos documentos originais, formando uma seo entitulada "Histrico"; da mesma forma combine
quaisquer sees entituladas "Agradecimentos", ou "Dedicatrias". Voc precisa apagar todas as
sees entituladas como "Endosso".

COLETNEAS DE DOCUMENTOS
Voc pode fazer uma coletnea consitindo do Documento e outros documentos publicados
sob esta Licena, e substituir as cpias individuais desta Licena nos vrios documentos com
uma nica cpia incluida na coletnea, desde que voc siga as regras desta Licena para cpia
exata de cada um dos Documentos em todos os outros aspectos.
Voc pode extrair um nico documento de tal coletnea, e distribu-lo individualmente sob
esta Licena, desde que voc insira uma cpia desta Licena no documento extrado, e siga esta
Licena em todos os outros aspectos relacionados cpia exata daquele documento.

AGREGAO COM TRABALHOS INDEPENDENTES


Uma compilao do Documento ou derivados dele com outros trabalhos ou documentos separados e independentes, em um volume ou mdia de distribuio, no conta como uma Verso Modificada do Documento, desde que nenhum copyright de compilao seja reclamado pela
compilao. Tal compilao chamada um "agregado", e esta Licena no se aplica aos outros
trabalhos auto-contidos compilados junto com o Documento, s por conta de terem sido assim
compilados, e eles no so trabalhos derivados do Documento.
Se o requerido para o Texto de Capa na seo 3 for aplicvel a essas cpias do Documento,
ento, se o Documento constituir menos de um quarto de todo o agregado, os Textos de Capa
do Documento podem ser colocados em capas adjacentes ao Documento dentro do agregado.
Seno eles precisaro aparecer nas capas de todo o agregado.

TRADUO
Traduo considerada como um tipo de modificao, ento voc pode distribuir tradues
do Documento sob os termos da seo 4. A substituio de Sees Invariantes por tradues
requer uma permisso especial dos detentores do copyright das mesmas, mas voc pode incluir
tradues de algumas ou de todas as Sees Invariantes em adio s verses orignais dessas
Sees Invariantes. Voc pode incluir uma traduo desta Licena desde que voc tambm inclua a verso original em Ingls desta Licena. No caso de discordncia entre a traduo e a

16

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

verso original em Ingls desta Licena, a verso original em Ingls prevalecer.

TRMINO
Voc no pode copiar, modificar, sublicenciar, ou distribuir o Documento exceto como expressamente especificado sob esta Licena. Qualquer outra tentativa de copiar, modificar, sublicenciar, ou distribuir o Documento nula, e resultar automaticamente no trmino de seus direitos
sob esta Licena. Entretanto, terceiros que tenham recebido cpias, ou direitos de voc sob esta
Licena no tero suas licenas terminadas, tanto quanto esses terceiros permaneam em total
acordo com esta Licena.

REVISES FUTURAS DESTA LICENA


A Free Software Foundation pode publicar novas verses revisadas da Licena de Documentao Livre GNU de tempos em tempos. Tais novas verses sero similares em espirito verso
presente, mas podem diferir em detalhes ao abordarem novos porblemas e preocupaes. Veja
http://www.gnu.org/copyleft/.
A cada verso da Licena dado um nmero de verso distinto. Se o Documento especificar
que uma verso particular desta Licena "ou qualquer verso posterior"se aplica ao mesmo, voc
tem a opo de seguir os termos e condies daquela verso especfica, ou de qualquer verso
posterior que tenha sido publicada (no como rascunho) pela Free Software Foundation. Se o
Documento no especificar um nmero de Verso desta Licena, voc pode escolher qualquer
verso j publicada (no como rascunho) pela Free Software Foundation.
ADENDO: Como usar esta Licena para seus documentos
Para usar esta Licena num documento que voc escreveu, inclua uma cpia desta Licena
no documento e ponha as seguintes notas de copyright e licenas logo aps a pgina de ttulo:
Copyright (c) ANO SEU NOME.
dada permisso para copiar, distribuir e/ou modificar este documento sob os termos da Licena
de Documentao Livre GNU, Verso 1.1 ou qualquer verso posterior publicada pela Free Software Foundation; com as Sees Invariantes sendo LISTE SEUS TTULOS, com os Textos da
Capa da Frente sendo LISTE, e com os Textos da Quarta-Capa sendo LISTE. Uma cpia da licena est inclusa na seo entitulada "Licena de Documentao Livre GNU".
Se voc no tiver nenhuma Seo Invariante, escreva "sem Sees Invariantes"ao invs de
dizer quais so invariantes. Se voc no tiver Textos de Capa da Frente, escreva "sem Textos de
Capa da Frente"ao invs de "com os Textos de Capa da Frente sendo LISTE"; o mesmo para os
Textos da Quarta Capa.
Se o seu documento contiver exemplos no triviais de cdigo de programas, ns recomendamos a publicao desses exemplos em paralelo sob a sua escolha de licena de software livre,

17

CDTC

Centro de Difuso de Tecnologia e Conhecimento

tal como a GNU General Public License, para permitir o seu uso em software livre.

18

Brasil/DF

Parte IV

Cluster

19

Captulo 1

O que Cluster
Um cluster um sistema formado por um conjunto de computadores (ns) que trabalham em
conjunto como se fossem apenas uma grande mquina. Este tipo de implementao utiliza-se
de um tipo especial de sistema operacional classificado como sistema distribuido. construdo
muitas vezes a partir de computadores convencionais (desktops), sendo que estes vrios computadores so ligados em rede e comunicam-se atravs do sistema de forma que trabalhem como
se fosse uma nica mquina de grande porte.
Para que o aluno realize este curso de maneira satisfatria necessrio que tenha ao menos
conhecimento intermedirio sobre o ambiente GNU/Linux.
Ao final deste curso o aluno ter conhecimento suficiente para instalar, configurar e resolver
problemas com relao a clusters de Alta disponibilidade.
O curso, com base na distribuio Debian, tem duas semanas, o contedo do curso estar
visvel somente a partir da data de incio. Para comear o curso voc deve ler o Guia do aluno a
seguir.

20

Captulo 2

Plano de ensino
2.1 Objetivo
Qualificar tcnicos para a construo de clusters de alta disponibilidade utilizando a soluo:
Linux+DRBD+Heartbeat+MON.

2.2 Pblico Alvo


Tcnicos que desejem montar clusters de alta disponibilidade.

2.3 Pr-requisitos
Os usurios devero ser, necessariamente, indicados por empresas pblicas e ter conhecimento intermedirio acerca do Ambiente Linux e redes de computadores.

2.4 Descrio
O curso ser realizado na modalidade Educao a Distncia e utilizar a Plataforma Moodle
como ferramenta de aprendizagem. O curso tem durao de duas semanas e possui um conjunto
de atividades (lies, fruns, glossrios, questionrios e outros) que devero ser executadas de
acordo com as instrues fornecidas. O material didtico est disponvel on-line de acordo com
as datas pr-estabelecidas em cada tpico.

2.5 Metodologia
O curso est dividido da seguinte maneira:

2.6 Cronograma
Descrio das atividades
Semana 1
21

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Introduo,
Conceitos bsicos,
Configurao da rede,
Compilao do kernel,
Instalao do DRBD.
Semana 2
Instalao do Heartbeat,
Intalao do MON,
Avaliao de aprendizagem,
Avaliao do curso.
Como mostrado na tabela acima, a cada semana ser disponibilizado um conjunto de mdulos.
recomendvel que o participante siga as datas estabelecidas.
As lies contm o contudo principal. Elas podero ser acessadas quantas vezes forem necessrias, desde que esteja dentro da semana programada. Ao final de uma lio, voc receber
uma nota de acordo com o seu desempenho. Responda com ateno s perguntas de cada lio,
pois elas sero consideradas na sua nota final. Caso sua nota numa determinada lio for menor
do que 6.0, sugerimos que voc faa novamente esta lio.
Ao final do curso ser disponibilizada a avaliao referente ao curso. Tanto as notas das lies
quanto a da avaliao sero consideradas para a nota final. Todos os mdulos ficaro visveis
para que possam ser consultados durante a avaliao final.
Aconselhamos a leitura da "Ambientao do Moodle"para que voc conhea a plataforma de Ensino a Distncia, evitando dificuldades advindas do "desconhecimento"sobre a mesma.
Os instrutores estaro a sua disposio ao longo de todo curso. Qualquer dvida dever ser
enviada ao frum. Diariamente os monitores daro respostas e esclarecimentos.

2.7 Programa
Semana 1:
* Introduo; * Conceitos bsicos; * Configurao da rede; * Compilao do kernel; * Instalao do DRBD.
Semana 2:
* Instalao do Heartbeat; * Intalao do MON.

2.8 Avaliao
Toda a avaliao ser feita on-line.
Aspectos a serem considerados na avaliao:
Iniciativa e autonomia no processo de aprendizagem e de produo de conhecimento;
22

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Capacidade de pesquisa e abordagem criativa na soluo dos problemas apresentados.


Instrumentos de avaliao:
Participao ativa nas atividades programadas.
Avaliao ao final do curso.
O participante far vrias avaliaes referente ao contedo do curso. Para a aprovao e
obteno do certificado o participante dever obter nota final maior ou igual a 6.0 de acordo
com a frmula abaixo:
Nota Final = ((ML x 7) + (AF x 3)) / 10 = Mdia aritmtica das lies
AF = Avaliaes

2.9 Bibliografia
http://pt.wikipedia.org
http://www.linux-ha.org
http://www.drbd.org
http://www.kernel.org/software/mon/
http://ha.linuxchix.org.br/
http://www.br.debian.org/doc/

23

Captulo 3

Lio 1 - Introduo
3.1 Introduo
Um cluster um sistema formado por um conjunto de computadores (ns) que trabalham em
conjunto como se fossem apenas uma grande mquina. Este tipo de implementao utiliza-se
de um tipo especial de sistema operacional classificado como sistema distribuido. construdo
muitas vezes a partir de computadores convencionais (desktops), sendo que estes vrios computadores so ligados em rede e comunicam-se atravs do sistema de forma que trabalhem como
se fosse uma nica mquina de grande porte.

3.2 Um pouco de histria


A idia inicial que conduz ao cluster foi desenvolvida na dcada de 1960 pela IBM como
uma forma de interligar grandes mainframes,visando obter uma soluo comercialmente vivel
de paralelismo. Nesta poca o sistema HASP (Houston Automatic Spooling Priority) da IBM e
seu sucessor, JES (Job Entry System) proviam uma maneira de distribuir tarefas nos mainframes
interligados. A IBM ainda hoje suporta o cluster de mainframes atravs do Parallel Sysplex System que permite ao hardware, sistema operacional, middleware, e o software de gerenciamento
do sistema prover uma melhora dramtica na performance e custo ao permitir que usurios da
grandes mainframes continuem utilizando suas aplicaes existentes.

Entretanto, o cluster ganhou fora at que trs tendncias convergiram nos anos 1980: microprocessadores de alta performance, redes de alta velocidade, e ferramentas padronizadas
para computao distribuda de alto desempenho. Uma quarta tendncia possvel a crescente
necessidade de poder de processamento para aplicaes cientficas e comerciais unida ao alto
custo e a baixa acessibilidade dos tradicionais dos supercomputadores.

No final de 1993, Donald Becker e Thomas Sterling iniciaram um esboo de um sistema de


processamento distribudo, construdo a partir de hardware convencional como uma medida de
combate aos custos dos supercomputadores. No incio de 1994, trabalhando no CESDIS, com
o patrocnio do projeto HTPCC/ESS, nasce o primeiro cluster e, conseqentemente, o projeto
Beowulf.

24

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

O prottipo inicial era um cluster de 16 processadores DX4 ligados por dois canais Ethernet
acoplados (Ethernet Bolding). A mquina foi um sucesso instantneo, e esta idia rapidamente
se espalhou pelos meios acadmicos e pela NASA e outras comunidades de pesquisa.

3.3 Tipos de cluster


Existem basicamente trs tipos de cluster:
Cluster de alta disponibilidade - Um cluster de alta disponibilidade visa a manter os servios
prestados por um sistema a outro mesmo que esse venha a falhar internamente. A est implcito
o conceito de mascaramento de falhas, atravs de redundncia ou replicao. Um determinado
servio, que se quer altamente disponvel, colocado por trs de uma camada de abstrao, que
permita mudanas em seus mecanismos internos mantendo intacta a interao com elementos
externos. Este tipo de implementao usado principalmente em aplicaes crticas onde o servio no pode ficar indisponvel em momento algum, mesmo em caso de falha de hardware.

Para temos uma idia mais concreta pense numa grande loja virtual, imagine qual seria o
prejuzo se o site ficasse indisponvel por 10 minutos!!! Clusters de alta disponibilidade visam
a resolver este tipo de problema. A idia bsica por trs dessa implementao que caso um
n venha a falhar outro assuma no mesmo momento sem que seja percebido pelos usurios do
servio.

3.4 Balanceamento de Carga


Cluster de balanceamento de carga - Essa implementao permite a distribuio das requisies de recursos para todas as mquinas que fazem parte do cluster. Este tipo de implementao
muito comum em servidores web e funciona da seguinte maneira: uma mquina responsvel por distribuir as requisies entre os diversos ns, cada n faz o seu trabalho e manda uma
resposta, o sistema que fez a requisio v tudo isso como apenas uma mquina.

3.5 Porcessamento Distribudo


Cluster de processamento distribudo - Esse tipo de cluster tem como objetivo dividir toda
tarefa computacional em diversas tarefas pequenas que podem ser realizadas por diversos pcs
ao mesmo tempo. A idia mais ou menos parecida com a do cluster de balanceamento de carga.
Essa implementao muito utilizada em clculo de problemas matemticos e renderizao de
imagens.

25

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.5.1 Lio 2 - Alta disponibilidade

3.6 Alta disponibilidade


Cada vez mais o homem depende de mquinas e de diversos sistemas computacionais. Alguns desses sistemas no podem ficar insdisponveis por menor que seja o intervalo de tempo.
Podemos pensar, por exemplo, num banco. totalmente inaceitvel que o sistema de caixas
eletrnicos de um banco fique indisponvel por um tempo menor que seja, isso pode causar
grande prejuzo a instituio.
Uma loja virtual (submarino, mercadolivre, bestbuy) um sistema crtico e que tem que ficar
o tempo todo disponvel, a simples queda de um servidor de banco de dados pode causar prejuzo devido a interrupo nas vendas.
Para garantir que o sistema esteja sempre, ou a maior parte do tempo, disponvel so necessrias diversas atitudes quando da implementao desse sistema. Vrias podem ser as causas
das falhas, tanto pode ser um problema de hardware como pode ser um problema de software,
por isso deve haver a redundncia de hardware e de software.
A alta disponibilidade tem por objetivo manter um sistema que provm algum tipo de servio
atravs de uma rede, mesmo que este passe por problemas de falhas de hardware, de manunteo, de fornecimento de energia, atualizao de softwares. Para manter um sistema seguindo
essa poltica so necessrias aes de manuteno e administrao, no basta apenas instalar
e configurar para que tudo funcione corretamente, deve-se trabalhar ao mximo para fazer com
que o tempo que um servio que fica no ar seja o maior possvel.

3.7 Disponibilidade
Disponibilidade a probabilidade de um sistema estar funcional e pronto para uso em um
determindado instante. Quanto mais disponvel for um sistema, maior ser a probabilidade de
estar funcional.
A disponibilidade pode ser dividida em trs tipos:
Disponibildade bsica - a disponibilidade de computadores comuns, mquina desta classe
esto disponveis 99
Alta disponibilidade - a disponibilidade de sistemas montados com redundncia em todos os pontos provveis de falha, esse tipo de implementao deve ser feita de maneira a
torn-lo capaz de detectar, corrigir e esconder falhas. A tabela a seguir mostra o nvel de
disponibilidade e o tempo que o sistema permanece indisponvel por unidade de tempo:

26

CDTC

Centro de Difuso de Tecnologia e Conhecimento


Disponibilidade (%)
95
96
97
98
99
99,9
99,99
99,999

Indisponibilidade/ano
18 dias 6: 00: 00
14 dias 14: 24: 00
10 dias 22: 48: 00
7 dias 7: 12: 00
3 dias 15: 36: 00
0 dias 8: 45: 35,99
0 dias 00: 52: 33,60
0 dias 00: 05: 15,36

Brasil/DF

Indisponibilidade/ms
1 dia 12: 00: 00
1 dia 4: 48: 00
0 dias 21: 36: 00
0 dias 14: 24: 00
0 dias 7: 12: 00
0 dias 00: 43: 11,99
0 dias 00: 04: 19,20

Disponibilidade contnua - nessa implementao o sistema ficaria disponvel 100

3.8 Redundncia
Para manter a disponibilidade de um servio essencial que haja redundncia em todos as
partes para que sejam diminuidos os pontos de falha, conhecidos como SPOF (Single Point of
Failure). Quanto maior a redundncia implementada menor a probabilidade de interrupes. A
figura abaixo ilustra um cluster de alta disponibilidade projetado para prover um servio de forma
ininterrupta.

Note que na figura h redundncia em todos os pontos: os servidores esto replicados, todos
os dados esto replicados (RAID/Shared Storage), a energia, os switches, tudo construdo de
forma a manter o sistema "em p"sob qualquer condio.

27

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.9 Falha
Um dos objetivos de implementar um sistema de alta disponibilidade tornar esse sistema
imune a falhas. Falha um problema ocorrido devido ao mau funcionamento do hardware. Para
todo tipo de falha existe uma soluo, a queda de energia pode ser tratada, por exemplo, com
o uso de no-breaks; um switch queimado pode acabar com a comunicao do sistema com os
clientes, para resolver esse problema pode-se usar dois switches.
Resumindo, todos os SPOFs podem ser tratados de modo a tornar o sistema imune a falhas
(problemas com respeito ao hardware), esse tipo de implementao geralmente encarece a construo do sistema, mas torna-o mais seguro e livre de problemas.

3.10 Erro e Defeito


Um problema com o hardware que compe um sistema (falha), pode causar uma distoro
durante a transferncia dos dados, como por exemplo, a troca de um bit de 0 para 1. Este tipo de
problema denomindado erro.
Esse erro pode ser propagado durante a execuo de alguma tarefa causando um defeito que
pode acarretar o travamento de parte do sistema ou gerao de mensagens de erro, situaes
que podem ser percebidas pelos usurios e que devem ser evitadas.

3.11 Failover e Failback


A ao de uma mquina assumir o servio de outra chamada de failover. desejado que
esse procedimento seja feito de forma automtica, se tiver que ser feito de forma manual pode
ter alguns problemas quanto disponibilidade do servio. Um failover manual exige que algum
monitore o servio e em caso de problema execute o failover, esse procedimento pode levar algum tempo, o que no aceitvel em sistemas crticos.
O procedimento inverso ao failover o failback. Logo aps a realizao de um failover, cabe
ao administrador do sistema reparar todos os problemas e tornar a mquina novamente disponvel. Assim que a mquina est novamente disponvel pode-se fazer com que esta volte a fornecer
os servios, isso pode ser feito de maneira manual ou automtica.

3.11.1 Lio 3 - Uma soluo para a Alta Disponibilidade

3.12 Uma soluo para alta disponibilidade


A viso deste curso mais em cima dos procedimentos referentes aos softwares que compem um cluster, no sero abordados profundamente aspectos referentes ao hardware.
O ambiente idealizado durante o decorrer do curso ser o de um servidor web que deve permacer
disponvel o maior tempo possvel, sem que haja queda nos servios prestados. Os clientes se
conectaro ao servidor web por um ip que ser o ip do cluster, no cluster cada n (para finalidades
prticas chamaremos os computadores de ns ou nodos) ter o seu prprio ip interno que no
28

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

poder ser visto pelos clientes. Um n ser o primrio e ficar com o ip do cluster disponibilizando
os servios, caso esse n venha a falhar, os servios sero disponibilizados por outro n e este
passar a atender pelo ip do cluster. Pode parecer um pouco confuso agora, porm ficar mais
claro adiante.
A configurao do servidor ser mais ou menos como na imagem abaixo:

Os dois computadores so ligados cada um a um no-break para evitar que a queda de energia acarrete o desligamento da mquina. Note que esto ligados em no-breaks diferentes,
pois se estivessem ligados no mesmo equipamento uma simples queima de circuito deste
causaria indisponibilidade total do servio;
entre eles h uma conexo dedicada via cabo cross-over para a comunicao, mais tarde
veremos qual a finalidade dessa conexo;
o uso de dois switches uma boa prtica, assim como no caso do no-break, se os dois
servidores estivessem ligados no mesmo equipamento, a falha deste acarretaria a indisponibilidade do sistema;
h uma redundncia dos dados atravs de um sistema de RAID, para que os dados de
um n sejam os mesmos do outro, essa RAID ser feita atravs da rede interna e sero
utilizados os prprios HDs das mquinas para armazenar os dados.

29

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.13 RAID
RAID (Redundant Array of Independent Disks ou Arranjo Redundante de Discos Independentes) um arranjo de dois ou mais discos que trabalham realizando uma tarefa com o mesmo fim.
Existem vrios nveis de RAID, a usada no nosso sistema ser a RAID 1.
RAID 1 consiste no espelhamento de dados, tudo que for gravado em um disco ser gravado
igualmente no outro, essa uma opo de alta disponibilidade para o armazenamento de dados.
No nosso caso ser implementado RAID por software, o DRBD (Distributed Replicated Block
Device ou Dispositivo de Bloco Replicado Distribudo) ser o responsvel por tal procedimento.

3.14 DRBD
O DRBD um mdulo do kernel do Linux e mais alguns scripts responsveis por espelhar
dados gravados em disco. O DRBD trabalha com dispositivos de bloco, cada um destes tem
um estatuto que pode ser primrio ou secundrio. Tudo que for gravado no dispositivo primrio
ser enviado para ser gravado tambm no dispositivo secundrio. O DRBD cria um link entre
um dispositivo virtual criado (/dev/drbd*, de alto nvel) e uma partio local do disco (/dev/hda*
de baixo nvel). Tudo "gravado"no dispositivo de alto nvel do dispositivo com estado primrio,
os dados so passados para o dispositivo de nvel mais baixo e para os dispositivos secundrios
que realizam a mesma tarefa.

Resumindo, um programa escreve alguma coisa no /dev/drbd* do n primrio do cluster, isso


ser gravado ento no /dev/hda* e passado para o n secundrio para ser gravado da mesma maneira. No caso de falha do nodo primrio, o dispositivo que era secundrio passa a ser primrio.
Assim que o n que caiu voltar, pode-se reestabelecer ou no o antigo estado das mquinas (Primrio / Secundrio), mas necessria a sincronizao dos dados, pois podem ter sido gravadas
informaes no disco e para manter a consistncia dos dados necessrio essa sincronizao.

3.15 Consistncia de dados


A consistncia dos dados um fator muito importante e por isso aconselhvel utilizar um
sistema de arquivos com suporte a journaling, no nosso caso utilizaremos ext3. A tcnica de jour30

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

naling consiste na criao de um log antes que alguma coisa seja gravada no disco, no caso de
algum problema como o desligamento inesperado da mquina no necessria uma verificao
de todo o sistema de arquivos, com o log pode-se saber quais arquivos podem ter sido afetados.
A no utilizao de um sistema de arquivos com journaling, implicar num trabalho extra, toda vez
que ocorrer um transio de estados entre os ns ser necessria uma checagem da consistncia
do sistema de arquivos utilizando o fcsk, isso pode no ser muito agradvel e prtico.

3.16 Heartbeat
Utilizaremos o programa Heartbeat para verificar a comunicao entre os nodos do cluster.
A funo do Heartbeat trocar sinais entre as mquinas para verificar se determinada mquina
est sozinha ou no. Caso o Heartbeat do n secundrio envie um sinal para o n primrio e no
obtenha resposta, ele vai considerar que est sozinho no cluster e passar a prestar os servios
que eram prestados por aquela.

3.17 MON
O ltimo utilitrio para a montagem do cluster ser o MON. Este software responsvel por
monitorar a rede interna do cluster. Caso o MON verifique que um certo computador est sozinho
na rede ele d um shutdown no Heartbeat e dessa maneira o outro n assume o servio.
Para a montagem do nosso cluster utilizaremos ento a soluo: DRBD+Heartbeat+MON+Apache
(servidor web).

3.17.1 Lio 4 - Configurando a rede

3.18 Procurando pelas ferramentas


Tudo que for feito nessa lio deve ser repetido nos dois ns do cluster. O primeiro passo para
configurar a rede no cluster verificar se possui a ferramenta para configurao da rede que ser
muito til no decorrer do curso, para isso abrimos o terminal e damos o seguinte comando:
user@: $ dpkg -l iproute
Se esse pacote no estiver instalado no sistema, instale-o de preferncia com a ferramenta APT.
Logado como root:
debian:/home/user# apt-get update
debian:/home/user# apt-get install iproute
s aguardar o sistema baixar e instalar o pacote.
(Isso vale no que a distribuio base para este curso, fica a cargo do aluno saber como se efetua tal procedimento na sua distribuio, nada impede tambm que seja perguntado nos fruns)
Geralmente as distribuies j vem com essa ferramenta. Agora podemos dar o comando abaixo
para verificar o estado atual das interfaces de rede:
user@: $/sbin/ifconfig
Aparecer algo como:
31

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

eth0 Link encap:Ethernet HWaddr 08:00:46:7A:02:B0


inet addr:192.168.0.3 Bcast:192.168.0.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:23363 errors:0 dropped:0 overruns:0 frame:0
TX packets:21798 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:13479541 (12.8 MiB) TX bytes:20262643 (19.3 MiB)
Interrupt:9
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:230172 errors:0 dropped:0 overruns:0 frame:0
TX packets:230172 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:22685256 (21.6 MiB) TX bytes:22685256 (21.6 MiB)

As interfaces eth0 e lo esto ativas, a eth0 utilizada para se comunicar com a rede, a lo (loopback) utilizada para que o computador responda a si mesmo. No nosso caso utilizaremos a
interface Ethernet (eth) para a comunicao entre os nodos.
Para a melhor compreenso vamos definir como user@: um usurio qualquer do sistema
e o usurio logado como root, note sempre o diretrio onde esto sendo executados os
comandos.

3.19 Configurando a rede


Para executar os passos a seguir necessrio estar logado como super-usurio:
user@: $ su
Password:
Cada nodo do cluster ter um ip fixo, esse ip no ser visto pelos clientes que requisitaro os servios, ser apenas para a comunicao entre os nodos, existir um ip que ser o ip do cluster mas
isso ser definido num outro momento. Devemos editar ento o arquivo /etc/network/interfaces,
utilize o editor de sua preferncia.
debian:/home/user# nano /etc/network/intefaces
Adicione as seguintes linhas ao final do arquivo:
auto eth0:0
iface eth0:0 inet static
address 10.0.0.1
netmask 255.255.255.0
network 10.0.0.0
broacast 10.0.0.255

32

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Para levantar essa rede d o comando:


debian:/home/user# ifup eth0:0

Salve e feche o arquivo. Para nos certificarmos de que tudo ocorreu de maneira correta podemos verificar as interfaces atravs do comando ifconfig, devem aparecer ento as informaes
relativas a interface eth0:0.
eth0:0 Encapsulamento do Link: Ethernet Endereo de HWaddr 08:00:46:7A:02:B0
inet end.: 10.0.0.1 Bcast:10.0.0.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
IRQ:209 Endereo de E/S:0x8800
Esse ser ento o nodo primrio do cluster, o mesmo procedimento deve ser feito no nodo secundrio, a nica diferena o ip, o primrio responder pelo ip 10.0.0.1 e o secundrio por 10.0.0.2
(apenas mude a linha address do arquivo interfaces).
Feito isso, a rede interna do cluster estar configurada, agora pode-se usar ferramentas como o
ssh para realizar as tarefas nos dois nodos ao invs de sentar em cada mquina e realizar as
mesmas tarefas.

3.19.1 Lio 5 - Compilando o kernel

3.20 O kernel
O kernel o ncleo do sistema, ele representa a camada mais baixa de interface com o Hardware, sendo responsvel por gerenciar os recursos do Sistema operacional como um todo. no
kernel que esto definidas funes para operao com perifricos (mouse, discos, impressoras,
interface serial/interface paralela), gerenciamento de memria, entre outros. Resumidamente,
o kernel um conjunto de programas que fornece para os programas de usurio (aplicativos)
uma interface para utilizar os recursos do sistema. O kernel do Linux um kernel monoltico
carregador de mdulos, ao contrrio dos ncleos monolticos padro, os drivers de dispositivos
so facilmente configurados como mdulos, e so carregados/descarregados enquanto o sistema
corre.
Para o funcionamento do aplicativo DRBD altamente recomendvel uma compilao do kernel, como j foi dito anteriormente o DRBD formado por um mdulo do kernel e alguns scripts.
Apesar de demorada a compilao um processo razoavelmente fcil de ser realizado.
Ateno, o kernel no o sistema operacional em si, por isso um novo kernel no far com que
voc perca os seus programas, arquivos e etc.

3.21 Compilando o kernel


Para compilar o kernel precisamos antes instalar alguns pacotes, utilizaremos novamente a
ferramenta APT.
debian:/home/user# apt-get update
debian:/home/user# apt-get install libdb3-dev libncurses5-dev docbook-utils fakeroot dpatch
33

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

kernel-package
Depois de instalados todos esses pacotes baixamos os fontes do kernel, utilizaremos o 2.6.15.
debian:/home/user# apt-get install linux-source-2.6.15
Feito isso, haver agora um pacote chamado linux-source-2.6.15.tar.bz2 no diretrio /usr/src. V
at esse diretrio e descompacte o pacote.
debian:/home/user# cd /usr/src
debian:/usr/src# tar xjf /usr/src/linux-source-2.6.15.tar.bz2
Feito isso ser ento criado automaticamente o diretrio /usr/src/linux-source-2.6.15. Entre nesse
diretrio e copie o seu config, isso altamente recomendado se voc j possui um kernel funcionando perfeitamente.
debian:/usr/src# cd linux-source-2.6.15
debian:/usr/src/linux-source-2.6.15# cp /boot/config-_kernel_atual .config
Voc tambm pode configurar o kernel manualmente com o comando:
debian:/usr/src/linux-source-2.6.15# make menuconfig
O kernel deve ter a opo de carregar mdulos configurados.
Vamos agora a compilao em si.
debian:/usr/src/linux-source-2.6.15# make-kpkg rootcmd fakeroot revision custom01
append-to-version -cluster initrd binary-arch
Note que antes da cada comando existem dois -"e no apenas um!
Cada uma dos opes do comando make-kpkg tem um significado:
rootcmd - fornece meios de ganhar o acesso de super usurio necessrio para construir
um pacote .deb com o kernel;
revision - troca o nmero de reviso do Debian;
append-to-version - adiciona a palavra ao nome do kernel que voc est compilando, no
nosso caso o kernel ser o 2.6.15-cluster;
initrd - indica que junto com o kernel deve ser criado um arquivo initrd que contm todos
os mdulos para carregar o sistema;
binary-arch - produz pacotes separados kernel_headers e kernel_image.
Para saber mais sobre o comando make-kpkg leia o manual deste.
debian:/usr/src/linux-source-2.6.15# man make-kpkg
O procedimento de compilao vai levar um bom tempo dependendo da mquina, aproveite esse
tempo para dar um pesquisada na internet sobre o assunto, procure por Clusters de alta disponibilidade ou High Availability Clusters ou entre no site http://www.linux-ha.org.

34

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.22 Instalando o novo kernel


Depois de um bom tempo compilando o kernel sero criados ento dois pacotes .deb para
serem instalados (linux-image-2.6.15-cluster_custom01_i386.deb e linux-headers-2.6.15-cluster
_custom01_i386.deb), esses pacotes estaro no diretrio /usr/src. Se tudo ocorreu bem durante
a compilao basta instalar o pacote image.
debian:/usr/src/linux-source-2.6.15# cd ..
debian:/usr/src# dpkg -i linux-image-2.6.15-cluster_custom01_i386.deb
Agora voc tem disponvel um novo kernel, o 2.6.15-cluster, para acess-lo temos primeiro que
dizer ao gerenciador de boot para carreg-lo na inicializao. No GRUB:
debian:/usr/src#update-grub
Na prxima vez que o sistema for inicializado haver na tela de opes de sistemas algo como
"Debian GNU/Linux, kernel 2.6.15-cluster", basta selecionar para inicializar o sistema com o novo
kernel instalado.
No LILO:
debian:/usr/src# nano /etc/lilo.conf
Adicione o novo kernel ao arquivo lilo.conf
image=/boot/vmlinuz-2.6.15-cluster
label=Linux-2.6.15-cluster
root=/dev/hd_partio_do_sistema
read-only
Salve, feche o arquivo e reinstale o LILO com o comando:
debian:/usr/src# lilo
Na prxima vez que o sistema for inicializado escolha a opo referente ao novo kernel para
inicializ-lo.

3.22.1 Lio 6 - Instalao e configurao do DRBD

3.23 DRBD
Como j foi dito anteriomente o DRBD (Distributed Replicated Block Device) um mdulo do
kernel do Linux e mais alguns scripts responsveis por espelhar dados gravados em disco. No
nosso cluster a nica funo deste programa replicar os dados, tudo que for escrito em uma
determinada pasta do nodo principal ser replicada no nodo secundrio de forma automtica.
Sem esse programa se um nodo ficasse fora do ar, na hora que voltasse poderia haver a incompatibilidade de dados pois poderiam ter sido gravadas informaes no outro nodo durante esse
intervalo de tempo. A figura abaixo ilustra o funcionamento do DRBD.

3.24 Instalando os pr-requisitos


Depois de um longo tempo compilando o kernel, vamos instalao do DRBD.
O DRBD poderia ser instalado atravs da ferramenta APT, mas para ajudar tambm quem no
35

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

utiliza a distribuio Debian ou alguma outra derivada desta, vamos compilar e instalar atravs
do pacote baixado da intenet. Baixe o pacote do endereo http://oss.linbit.com/drbd/ , aparecero
vrias opes, mas a abordada aqui ser a 0.7.18 por isso escolha o pacote drbd-0.7.18.tag.gz .
Para a instalao do DRBD existem alguns programas que so pr-requisitos, esses sero instalados pelo APT pois a instalao de cada pacote na mo tornaria o curso muito extenso, como
eu disse anteriormente, nada impede que perguntas sejam feitas no frum. Os pacotes so:
libc6.1;
module-assistant.
Para instalar essas dependncias damos ento o comando:
debian: # apt-get install module-assistent libc6.1

3.25 Instalando o DRBD


Finalmente vamos instalar o DRBD, no diretrio onde foi baixado o programa d o comando
para descompactar:
debian:/usr/src# tar zxvf drbd-0.7.18.tar.gz
Ser criada ento uma pasta chamada drbd-0.7.18, entre nela para fazer a compilao do programa.
debian:/usr/src# cd drbd-0.7.18
debian:/usr/src/drbd-0.7.18# cd drbd
debian:/usr/src/drbd-0.7.18/drbd# make clean ; make KDIR=/diretorio/onde/esto/as/fontes
CC=gcc-3.x
Algumas coisas tem que ser notadas nesse ltimo comando, a diretiva KDIR serve para indicar
onde esto os fontes do seu kernel, no nosso caso eles devem estar em /lib/modules/2.6.15cluster/build; outro ponto importante a diretiva CC, esta serve para indicar qual compilador
deve compilar o programa, este deve ser o mesmo usado na compilao do kernel, no meu
caso foi o gcc-3.3. Levando em conta essas consideraes o comando seria make clean ; make
KDIR=/lib/modules/2.6.15-cluster/build CC=gcc-3.3 .
Se tudo ocorrer corretamente durante a compilao basta instalar.
debian:/usr/src/drbd-0.7.18/drbd# cd ..
debian:/usr/src/drbd-0.7.18/# make install

3.26 Configurando o DRBD


Se tudo ocorreu conforme o esperado durante a instalao ento vamos configurao. Como
j foi dito anteriormente o funcionamento do DRBD feito em cima de um dispositivo virtual de
alto nvel e um dispositivo de baixo nvel, devemos criar o dispositivo de alto nvel enquanto o
dispositivo de baixo nvel ser uma partio onde os dados sero gravados. Para criar um dispositivo de alto nvel:
36

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

debian: # mknod /dev/drbd0 b 147 0


O comando mknod serve para criar arquivos especiais de bloco ou caracteres, este tipo de arquivo utilizado para comunicao com o sistema operacional e no para a gravao de dados,
esta ser realizada na partio do disco rgido. O parmetro /dev/drbd0 indica o nome e onde
ser criado o arquivo; o parmetro b indica que o dispositivo um arquivo especial de bloco com
buffer; 147 e 0 indicam o maior e o menor nmero do dispositivo. Para mais informaes sobre
mknod e o parmetros s consultar o manual: "man mknod".
O dispositivo de bloco deve ser criado nos dois nodos do cluster. Para cada partio a ser
espelhada deve ser criado um dispositivo (mknod /dev/drbd1 b 147 1, mknod /dev/drbd2 b
147 2, ... ), o DRBD consegue lidar com at cinco parties.
O arquivo de configurao do DRBD o drbd.conf, nele ficam todos o parmetros para a configurao do programa.
Vamos agora configurar o DRBD.
debian: #nano /etc/drbd.conf
O drbd.conf fica mais ou menos assim:
resource drbd0
protocol B;
incon-degr-cmd "halt -f";
disk
on-io-error detach;
syncer
rate 10M;
group 1;
on 1
device /dev/drbd0;
disk /dev/hda3;
address 10.0.0.1:7789;
meta-disk internal;
on 2
device /dev/drbd0;
disk /dev/hda3;
address 10.0.0.2:7789;
meta-disk internal;

3.27 Entendendo o drbd.conf


resource drbd0
protocol B;
incon-degr-cmd "halt -f";
37

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

disk
on-io-error detach;
syncer
rate 10M;
group 1;
on 1
device /dev/drbd0;
disk /dev/hda3;
address 10.0.0.1:7789;
meta-disk internal;
on 2
device /dev/drbd0;
disk /dev/hda3;
address 10.0.0.2:7789;
meta-disk internal;

resource - seo referente a um dispositivo a ser espelhado;


protocol - o protocolo usado pelo DRBD para controlar como os dados sero escritos no
dispositivo secundrio. Existem trs protocolos: A - assim que o dado for escrito no disco
e enviado pela rede a operao de escria considerada como realizada; B - assim que o
outro novo mandar um sinal dizendo que recebeu o dado enviado a operao de escrita
considerada como realizada; C - assim que o outro nodo confirmou a escrita do dado no
disco, a operao de escrita considerada como feita. Cabe a cada um decidir o protocola
a ser usado, o A o mais leve, j o B e o C consumem muitos recursos no que diz respeito
a rede e podem congestion-la se a conexo entre os nodos no for dedicada;
incon-degr-cmd - executa o comando dado como parmetro (no nosso caso halt -f) caso o
nodo entre em modo degradado e a replicao dos dados fique inconsistente , opo a ser
utilizada caso a consitncia dos dados seja mais importante que a disponibilidade;
disk - esta seo contm os parmetros relativos ao disco;
on-io-error - se o dispositivo de nvel mais baixo reportar um erro ento uma ao executada, no nosso caso detach, que abandona o dispositivo de nvel mais baixo e entra no
modo disk less (sem disco);
syncer - esta seo utilizada para descrever os parmetros do daemon de sincronizao
do dispositivo;
rate - usado para limitar a banda que deve ser usada para a sincronizao que acontece
em background;
group - a resincronizao de todos os dispositivos de um grupo ocorre em paralelo, voc
deve evitar que a sincronizao de dispositivos que tem dispositivos de baixo nvel em um
mesmo disco sincronizem em paralelo;
38

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

on - esta seo contm os parmetros referentes a um determinado n, o valor deste parmetro deve ser o hostname da mquina, para ver esse valor damos o comando hostname
no terminal. No caso do drbd.conf acima o nodo primrio tem hostname 1 e o secundrio 2;
device - o dispositivo de alto nvel criado anteriormente;
disk - a partio onde sero gravados os arquivos;
address - o endereo ip do nodo e a porta de comunicao utilizada;
meta-disk - local onde sero gravados os meta-dados, internal quer dizer que ser na
mesma partio onde sero gravados os dados, voc pode fazer uma partio s para
os meta-dados.
Mais informaes sobre o drbd.conf podem ser encontradas em http://www.drbd.org/fileadmin
/drbd/doc/0.7.0/en/drbd.conf.html.

3.28 Utilizando o DRBD


Depois que voc configurou o arquivo drbd.conf e copiou para os dois nodos o DRBD j pode
ser inicializado para isso damos o comando:
debian: # /etc/init.d/drbd start
Isso deve ser feito nos dois nodos, para ver o status do DRBD podemos dar o comando:
debian: # cat /proc/drbd
Aparecer algo como:
version: 0.7.0 svn $Rev: 1442 $ (api:74/proto:74)
0: cs:Connected st:Secondary/Secondary ld:Inconsistent
ns:0 nr:0 dw:0 dr:0 al:0 bm:1 lo:0 pe:0 ua:0 ap:0
Como pode ser notado a conexo entre secundrio e secundrio e os dados esto inconsistentes, para incializar a sincronizao dos nodos e definir qual ser o nodo primrio devemos
ento dar o comando no nodo primrio:
debian: # drbdadm do-what-I-say primary all
Aparecer algo como:

drbd0: Resync started as SyncSource (need to sync 5000 KB [1250 bits set]).
version: 0.7.0 svn $Rev: 1442 $ (api:74/proto:74)
0: cs:SyncSource st:Primary/Secondary ld:Consistent
ns:9276 nr:0 dw:0 dr:9404 al:0 bm:2 lo:0 pe:915 ua:32 ap:0
[=========>..........] sync'ed: 50.0% (4380/5000)K
finish: 0:00:05 speed: 620 (620) K/sec
Essa sada significa que o DRBD est sincronizando os dados entre os nodos. O processo de
sincronizao pode demorar um pouco, a mudana do valor rate da seo syncer pode ajudar a
aumentar a velocidade.
39

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Vamos testar agora um pouquinho do DRBD.


Primeiramente com o DRBD inicializado e sincronizado vamos montar a partio em um local
definido, devemos escolher uma pasta que ser o ponto de montagem, algo como /mnt/dados.
debian: # mkdir /mnt/dados (essa pasta deve existir nos dois nodos)
debian: # mount /dev/drbd0 /mnt/dados
Note que o dispositivo a ser montado o /dev/drbd0 e no a partio onde os dados sero
gravados (/dev/hda3), o drbd0 ser tratado como se fosse a partio original (hda3), tudo ser
gravado nesse dispositivo. Vamos listar agora esse novo diretrio, provavelmente ele estar vazio.
debian: # ls /mnt/dados
Vamos criar um arquivo qualquer:
debian: # cd /mnt/dados
debian:/mnt/dados# touch teste.txt
Vamos listar o diretrio novamente para verificar se o arquivo foi realmente criado:
debian:/mnt/dados# ls teste.txt
Agora vamos desmontar o dispositivo e parar o DRBD:
debian:/mnt/dados# umount /dev/drbd0
debian:/mnt/dados# /etc/init.d/drbd stop
Vamos tornar o nodo secundrio em primrio, montar o dispositivo e verificar que o arquivo que
foi criado no outro nodo est devidamente replicado:
debian: # /etc/init.d/drbd start
debian: # drbdadm do-what-I-say primary all
debian: # mount /dev/drbd /mnt/dados
debian: # ls /mnt/dados teste.txt
Uma coisa importante a ser notada que obviamente os dados do dispositivo drbd0 no podem ser acessados se este no estiver montado, por esse motivo impossvel acessar os dados
no nodo secundrio pois o dispositivo no estar montado neste, montar o /dev/drbd0 no nodo
secundrio enquanto o mesmo estiver montado no primrio pode acarretar em corrompimento do
sistema de arquivos, coisa que no muito desejada (no monte nem no modo readonly).

3.29 Interpretando o /proc/drbd


Quando voc executa o comando:
debian: # cat /proc/drbd
Aparece uma espcie de log.
version: 0.7.0 svn $Rev: 1442 $ (api:74/proto:74)
0: cs:Connected st:Secondary/Secondary ld:Inconsistent
ns:0 nr:0 dw:0 dr:0 al:0 bm:1 lo:0 pe:0 ua:0 ap:0
Esse log tem vrios parmetros:
40

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

cs - conection state (estado da conexo) - esse parmetro pode assumir os valores:


1. Unconfigured (desconfigurado) - o dispositivo espera por configurao;
2. StandAlone (estado de espera) - no est tentando conectar a um n, pedidos de
entrada e sada so passados apenas localmente;
3. Unconnected (desconectado) - estado transitrio;
4. WFConnection - um dispositivo espera por configurao do outro lado;
5. WFReportParams - estado transitrio, enquanto espera pelo primeiro pacote na nova
conexo TCP;
6. Connected (conectado) - tudo est ocorrendo com deveria;
7. WFBitMap S, T - estado transitrio enquanto comea a sincronizao;
8. SyncSource - sincronizao em progresso, o n tem os dados certos;
9. SyncTarget - sincronizao em progresso, o n tem dados inconsistentes;
10. PausedSyncS,T - a sincronizao do dispisitivo foi interrompida enquanto o dispositivo
de maior prioridade estava resincronizando;
11. SkippedSyncS,T - isso nuca deve ser visto, apenas para desenvolvedores.
st - state (estado), Local/Remote (Local/Remoto) - esse parmetro pode assumir os valores:
1. Primary (primrio) - o nodo ativo, o meio de acessar o dispositivo;
2. Secundary (secundrio) - o nodo passivo, no acessa o dispositivo, apenas espera os
dados para serem espelhados;
3. Unknown (desconhecido) - sem funo alguma;
Id - local data consistency (consistncia dos dados locais) - parmetro que mostra a consistncia dos dados locais, Consistent (consistente) ou Inconsistent (inconsistente).
ns - network send (enviado pela rede);
nr - network receive (recebido pela rede);
dw - disk write (escrito no disco);
dr - disk read (lido do disco);
al - activity log updates (atualizaes do registro de atividade);
bm - bitmap updates (atualizaes de bitmap);
lo - reference count on local device (contagem de referncia no dispositivo local);
pe - pending (pendente);
ua - unackd, ainda esperando por ack;
ap - application requests expecting io-completion (requisies da aplicao esperando por
finalizao de IO (entrada e sada)).

41

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.30 Finalizando
Antes de terminar adicione ao fstab o /dev/drbd0 para ser montado automaticamente, isso
funcionar principalmente com o heartbeat.
debian: # nano /etc/fstab
Adicione a linha: /dev/drbd0 /mnt/dados ext3 defaults,noauto 0 0
Obs.: O espao entre os parmetros uma tabulao, por isso essa linha deve ser digitada
assim: /dev/drbd0-> pressione TAB ->/mnt/dados-> pressione TAB ->...; isso pode parecer bvio
para algumas pessoas, mas para outras no.
Finalmente o DRBD est todo configurado e pronto para ser utilizado, mas este sozinho no tem
tanta utilidade pois o mesmo no capaz, por exemplo, de inicializar o servio drbd nodo secundrio em caso de queda do primrio (para isso utilizaremos o heartbeat).
O site do DRBD tem bastante informao e de qualidade, com alguns contedos em portugus,
para acessar o mesmo: http://www.drbd.org/.

3.30.1 Lio 7 - Instalao e configurao do Heartbeat

3.31 Heartbeat
Agora que j temos o DRBD instalado nas duas mquinas e totalmente funcional, temos que
fazer com que o cluster seja capaz de se auto-ajustar em caso de falha, ou seja, se o nodo primrio vier a falhar o secundrio tem de assumir todas as suas funes, inclusive a replicao dos
dados que, como j foi dito anteriormente, o DRBD no capaz de realizar esse failover sozinho.
Heartbeat significa batimento cardaco, a funo do programa Heartbeat trocar pulsos entre
os nodos para dizer que estes ainda esto vivos. Seguindo o nosso exemplo, o Heartbeat troca
pulsos (heartbeats) entre os nodos atravs da interface ethernet dedicada entre esses dois ns,
geralmente recomendado que haja dois canais de comunicao entre os nodos, um serial e
um ethernet, para caso um destes venha a falhar o outro permita a monitorao pelo Heartbeat.
O grande problema de existir apenas uma interface de comunicao que caso uma placa de
rede, por exemplo, queime, ocorreria o que chamamos de Split Brain Syndrome (Sndrome de
Crebro Dividido), essa situao totalmente indesejada. Se essa infeliz falha ocorrer enquanto
de um lado o nodo secundrio acha que o primrio caiu e assume todos os servios, do outro, o
nodo primrio percebe que o secundrio caiu mas mesmo assim continua a disponibilizar os servios, isso causar uma confuso enorme principalmente se houver uma base de dados e essa
for atualizada nesse intervalo de tempo. Observando ento esse problema notamos que no
nada recomendvel testar o sistema retirando o cabo de rede ou disabilitando qualquer que seja
a interface de comunicao.

3.32 Instalando os pr-requisitos


O Heartbeat tambm poderia ser instalado atravs da ferramenta APT, mas pelo mesmo
motivo do DRBD instalaremos a partir de pacotes. Baixe o pacote do endereo http://linuxha.org/download/index.html , aparecero vrias opes, mas a abordada aqui ser a 1.2.4 por
isso escolha o pacote heartbeat-1.2.4.tar.gz .
Para a instalao do Heartbeat existem alguns programas que so pr-requisitos, esses sero
42

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

instalados pelo APT pois a instalao de cada pacote na mo tornaria o curso muito extenso,
como eu disse anteriormente, nada impede que perguntas sejam feitas no frum. Os pacotes
so:
iproute;
adduser;
libc6.1;
libc6;
libglib1.2;
libnet1;
libpils0;
libstonith0;
libatm1.
Algumas dessa ferramentas j devem estar instaladas como o iproute e adduser. Para instalar
essas dependncias damos ento o comando:
debian: # apt-get install iproute adduser libc6.1 libc6 libglib1.2 libnet1 ibpils0 libstonith0
libatm1
Os que no forem usurios podem ter alguns problemas, mas nada que um pouco de esforo
e algumas perguntasno frum no resolvam.

3.33 Instalando o Heartbeat


Vamos instalar ento o Heartbeat. No diretrio onde foi baixado o programa d o comando
para descompactar:
debian:/usr/src# tar zxvf heartbeat-1.2.4.tar.gz
Ser criada ento uma pasta chamada heartbeat-1.2.4, entre nela para fazer a compilao do
programa.
debian:/usr/src# cd heartbeat-1.2.4
debian:/usr/src/heartbeat-1.2.4# make clean ; make CC=gcc-3.x
debian:/usr/src/heartbeat-1.2.4# make install
Para evitar problemas, vamos utilizar o mesmo compilador do kernel e do DRBD. Em geral, a
instalao do Heartbeat no cria muitos problemas.
Depois de ter instalado num dos ns s instalar no outro, os usurios podem fazer uma coisa
mais prtica ainda, criar um pacote para instalar na outra mquina sem ter que recompilar. Para
criar o pacote damos o comando:
debian:/usr/src/heartbeat-1.2.4# dpkg-buildpackage -us -uc -b
Sero criados vrios pacotes .deb, basta copi-los para o outro nodo e instalar com o comando:
debian:/usr/src/heartbeat-1.2.4# dpkg -i pacote_a_instalar.deb

43

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

3.34 Configurando o Heartbeat


Agora que o Heartbeat foi compilado e instalado falta apenas configurar os trs scripts de
configurao: ha.cf, haresources e authkeys.
Antes de tudo devemos criar um grupo chamado haclient e um usurio hacluster.
debian: # addgroup haclient
debian: # adduser hacluster
Agora v no diretrio com os fontes e entre no diretrio doc onde existem exemplos dos arquivos
de configurao, voc deve copi-los para /etc/ha.d, crie essa pasta se ela no existir.
debian: # cd /usr/src/heartbeat-1.2.4
debian:/usr/src/heartbeat-1.2.4# cd doc
debian:/usr/src/heartbeat-1.2.4/doc# cp ha.cf haresources authkeys /etc/ha.d/

3.35 Configurando o ha.cf


O primeiro arquivo a ser configurado o ha.cf, nele ficam as configuraes gerais que dizem
respeito ao Heartbeat.
#Define o arquivo de debug, til em algumas situaes debugfile /var/log/ha-debug #Define o
arquivo com os logs, muito til para verificar o funcionamento do programa logfile /var/log/ha-log
#Define o tempo entre os heartbeats em 2 segundos keepalive 2 #Um nodo declarado morto
aps 30 segundos deadtime 30 #Tempo antes de enviar um warning de late heartbeat (heartbeat
atrasado) para o arquivo de log warntime 10 #Como algumas redes demoram a funcionar aps a
reinicializao, esse parmetro deve ser definido para tratar essa situao (deve ser pelo menos o
dobro do deadtime) initdead 60 #Configurao da rede mcast eth0:0 255.0.0.0 694 1 0 #Se essa
opo estiver ativada, supondo que o nodo primrio fique fora do ar, na hora que ele voltar todos
os servios deixaro o nodo secundrio e voltaro para o primrio autofailback on #Os nodos que
fazem parte do cluster, a opo "uname -n"no terminal exibe o nome do nodo node 1 node 2
Copie este arquivo para o outro nodo, o mesmo deve ser idntico nos dois nodos.
Mais informaes sobre a configurao do ha.cf: http://www.linux-ha.org/ha.cf

3.36 Configurando o haresources


O haresources o arquivo responsvel por levantar os servios a serem monitorados, no
nosso caso o DRBD e o apache, este foi definido como o nosso servidor web.
Antes de mais nada vamos instalar o apache:
debian: # apt-get install apache
No ser abordado o uso do apache neste curso pois o objetivo no ensinar a montar um servidor e sim um sistema de alta disponibilidade. Para testar se o apache foi instalado corretamente
simplismente abra um browser qualquer (Firefox, Epiphany, Mozilla ...) e na barra de endereos
digite "http://localhost", se tudo estiver certo aparecer uma pgina de apresentao do apache.
Depois que o apache for instalado ele geralmente incializado, faa com que ele pare pois o
Heartbeat que deve inicializar todos os programas a serem monitorados.
debian: # /etc/init.d/apache stop

44

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

Agora finalmente vamos configurar o haresources.


debian: # nano /etc/ha.d/haresources/
Basta adicionar a linha:
1 IPaddr::10.0.0.100 drbddisk Filesystem::/dev/drbd0::/mnt/dados::ext3 apache
Essa linha diz ao Heartbeat qual o nodo (1), o ip do cluster (10.0.0.100) e os programas a serem
inicializados (drbddisk e apache).
Obs1.: O ip do cluster o ip pelo qual o servidor ser acessado, no deve ser definido em nenhum outro local, nem no /etc/network/interfaces.
Obs2.: O drbddisk fica no diretrio /etc/ha.d/resource.d
/drbddisk, ele responsvel por incializar o DRBD e todos os procedimentos correlatos.
Obs3.: Alguns parmetros foram passados no que diz respeito ao sistema de arquivos, esses
parmetros foram passados para o drbddisk, atitude muito recomendada.
Copie este arquivo para o outro nodo, o mesmo deve ser idntico nos dois nodos.
Mais informaes sobre a configurao do haresources: http://www.linux-ha.org/haresources. Copie este arquivo para o outro nodo, o mesmo deve ser idntico nos dois nodos.

3.37 Configurando o authkeys


O ltimo arquivo a ser configurado o authkeys, nele ficam as informaes que dizem respeito
autenticao. Podem ser escolhidos trs mtodos de autenticao:
sha1 - se voc quer o mtodo mais seguro sem se importar com o consumo da CPU, utilize
esse mtodo;
md5 - se a rede no segura mas voc quer economizar recursos da CPU, utilize esse
mtodo;
crc - se o heartbeat est sendo executado em uma rede segura use este mtodo, o que
exige menos recursos.
Para configurar este arquivo:
debian: # nano /etc/ha.d/authkeys
Para crc adicione as linhas:
auth 2
2 crc
Para md5:
auth 1
1 md5 uma_chave_que_voc_desejar
Para sha1:
auth 1 1 sha1 uma_chave_que_voc_desejar
Devemos agora mudar a permisso do arquivo para 600:
45

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

debian: # chmod 600 /etc/ha.d/authkeys


Copie este arquivo para o outro nodo do cluster.

3.38 Iniciando o Heartbeat


Depois de todo esse trabalho, todos os scripts configurados, vamos iniciar o Heartbeat:
debian1: # /etc/init.d/heartbeat start
Para acompanhar os logs da inicializao:
debian1: # cat /var/log/ha-log
muito importante acompanhar os logs de inicializao pois eles dizem os erros que podem estar
acontecendo.
Executando o comando ifconfig podemos ver que a interface que foi definida para ser o ip do
cluster est levantada:
debian1: # ifconfig
eth0:0 Encapsulamento do Link: Ethernet Endereo de HW 00:11:C8:86:AF:F4
inet end.: 10.0.0.100 Bcast:10.0.0.255 Masc:255.255.255.0
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
IRQ:193 Endereo de E/S:0x8800
Pronto, agora voc tem um servidor web de alta disponibilidade quase completo, para testar o
servidor basta digitar o ip do cluster na barra de endereos de qualquer navegador e se tudo
estiver correto aparecer a pgina inicial do apache.
Lembre-se que para testar a disponibilidade do sistema no nada recomendvel retirar o cabo
de rede, tente algo como finalizar o heartbeat, desligar uma das mquinas ou qualquer outra
coisa do tipo.

3.38.1 Lio 8 - Instalao e configurao do MON

3.39 MON
O ltimo software para a configurao do cluster o monitor MON, ele tem a funo de
verificar os servios e o estado da rede e tomar uma atitude no caso de problemas, no nosso
caso a atitude ser o desligamento do Heartbeat. Uma situao que o MON agiria seria se, por
exemplo, a placa de rede que comunica o nodo primrio rede externa queimasse ou por algum
motivo parasse de responder rede externa, nessa situao o MON derrubaria o Heartbeat, com
isso na outra mquina o Heartbeat seria levantado e o servio continuaria disponvel.
O mon trabalha com alguns scripts, os monitores e os alertas, os monitores tem como funo
monitorar um dado servio, os alertas executam alguma ao quando so devidamente invocados
pelos monitores.

3.40 Instalando os pr-requisitos


O MON pode ser baixado em ftp://ftp.kernel.org/pub/software/admin/mon/, a verso utilizada
ser a 0.99.2, escolha ento o pacote mon-0.99.2.tar.gz. Antes de mais nada vamos intalar os
46

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

pr-requisitos:
libgcc1;
libmon-perl;
libtime-hires-perl;
libtime-period-perl;
perl;
fping.
Agora s intalar:
debian: # apt-get install libgcc1 libmon-perl libtime-hires-perl libtime-period-perl perl fping

3.41 Instalando o MON


O primeiro passo para a instalao do programa descompactar o arquivo baixado:
debian:/usr/src# tar zxvf mon-0.99.2.tar.gz
Vamos criar um diretrio para o MON:
debian:/usr/src# mkdir /etc/ha.d/mon
Agora devemos copiar os arquivos do mon para esse diretrio:
debian:/usr/src# cp -r /etc/ha.d/mon/ /usr/src/mon-0.99.2
Vamos agora editar o arquivo /etc/services:
debian:/usr/src# cd /etc debian:/etc# nano services
Devemos adicionar as seguintes linhas no arquivo:
mon 2583/tcp mon 2583/udp

3.42 Configurando o MON


O ltimo passo para terminar a instalao do MON a configurao, para tal devemos editar
o arquivo mon.cf. Um exemplo deste arquivo pode ser encontrado no diretrio etc do diretrio do
mon (/etc/ha.d/mon/etc/exemple.cf), ele deve ficar parecido com esse:
cfbasedir = /etc/ha.d/mon/etc
alertdir = /etc/ha.d/mon/alert.d
mondir = /etc/ha.d/mon/mon.d
maxprocs = 20
histlength = 100
historicfile = /var/log/mon.log
randstart = 60s
hostgroup cluster 1.0.0.1 1.0.0.2 192.168.1.198
watch cluster
service fping
interval 1m
monitor fping.monitor -a
47

CDTC

Centro de Difuso de Tecnologia e Conhecimento

Brasil/DF

period wd Mon-Fri
alert mail.alert root@localhost
alert heartbeat.alert
alertevery 1h
period wd Sat-Sun
alert heartbeat.alert
alert mail.alert host@localhost
Depois de configurado este arquivo, basta iniciar o MON:
:/etc/ha.d/mon# ./mon -f -c /etc/ha.d/mon/mon.cf -b

3.43 Heartbeat.alert
Como pde ser visto no arquivo de configurao exemplo do MON, em caso de erro alguns
alertas so chamados, entre eles o heartbeat.alert. A nica funo do script heartbeat.alert
desligar o Heartbeat em caso de falha, o contedo desse script :
#!/usr/bin/perl
#
# Shutdown heartbeat
# derived from Jim Trockis alert.template
#
# Jim Trocki, trockij@transmeta.com
# Sandro Poppi, spoppi@gmx.de
#
# Copyright (C) 1998, Jim Trocki
# 2001, Sandro Poppi
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
use Getopt::Std;
getopts ("s:g:h:t:l:u");
#
48

CDTC

Centro de Difuso de Tecnologia e Conhecimento

# the first line is summary information, adequate to send to a pager


# or email subject line
#
#
# the following lines normally contain more detailed information,
# but this is monitor-dependent
#
# see the "Alert Programs"section in mon(1) for an explanation
# of the options that are passed to the monitor script.
#
$summary=<STDIN>;
chomp $summary;
$t = localtime($opt_t);
($wday,$mon,$day,$tm) = split (/\s+/, $t);
print EOF;
Alert for group $opt_g, service $opt_s
EOF
print "This alert was sent because service was restored\n"
if ($opt_u);
print EOF;
This happened on $wday $mon $day $tm
Summary information: $summary
Arguments passed to this script: @ARGV
Detailed information follows:
EOF
# shutdown heartbeat
system ("/etc/init.d/heartbeat stop");

49

Brasil/DF

You might also like