quinta-feira, 11 de dezembro de 2008

CLUSTER - FEDORA

A seguir descrevo passo-a-passo a configuração de um cluster de alta disponibilidade utilizando o fedora. Espero que seja útil, pois é a compilação de dicas coletadas na internet e um pouco de esforço mental para juntar tudo num tutorial único.

A estrutura é montada com 02 servidores IBM cada um com 3 discos, então foi feito um RAID 5 em cada um, almentando a redundância e segurança dos dados.



MONTAGEM DO RAID 5

Na inicialização pressionar ctrl+a pra entrar no setup da controladora RAID

1- initialize drives
ins para cada disco
enter para aceitar no final
yes

2- create array
ins para cada disco
enter para aceitar

3- array properties

ARRAY TYPE: RAID 5 enter
ARRAY LABEL: mega enter
ARRAY SIZE: 273,242 enter
STRIPE SIZE: 512kb enter
READ CACHING : y
WRITE CACHING: enable with battery
CREATE RAID VIA: auto-sync
enter
enter
enter

3- manage arrays
enter

Tem que surgir tela com as propriedades do array, listando os discos que fazem parte.
esc para sair esc esc yes para sair

volume já está pronto para instalar sistema operacional.

4- Ao reiniciar equipamento, teclar F1 para entrar no setup.

SELECIONAR: start options
SELECIONAR: startup sequence option
Na linha first startup device selecionar CD/DVD-ROM
esc esc esc yes enter



particionamento

/boot 100mb
/ 10gb
/home 5gb
/dados 170gb
/dados 100gb
swap 8gb


INSTALAÇÃO DO SISTEMA OPERACIONAL

distribuicao: fedora 9
kernel: 2.6.25.3
arquitetura: i686


REQUISITOS

Instalando pré-requisitos:

Instalando o fonte do kernel e preparando para compilação:
#yum install kernel-2.6.25.3-18.fc9.x86_64
#yum install kernel-source-2.6.25.3-18.fc9.x86_64
#yum install kernel-devel-2.6.25.3-18.fc9.x86_64
#cd /usr/src/kernels/2.6.25.3-18.fc9.x86_64
#cp /boot/config-2.6.25.3-18.fc9.x86_64.config
#make oldconfig

OBS: Não precisa compilar o kernel.


INSTALANDO DRBD

Após baixar o arquivo fonte:

#cd /usr/src
#wget http://oss.linbit.com/drbd/8.2/drbd-8.2.6.tar.gz
#tar zxvf drbd-8.2.6.tar.gz
#cd /usr/src/drbd-8.2.6/drbd
#make clean ; make KDIR=/usr/src/kernels/2.6.25.3-18.fc9.x86_64
#make install
#cd /usr/src/drbd-8.2.6/
#make tools
#make install

Resolução de nomes:


# vi /etc/hosts <--- copiar em ambos equipamentos
10.1.1.1 neo, server01
10.1.1.2 trinity, server02
configuração do arquivo /etc/drbd.conf que deverá constar nos dois equipamentos

common { # Todos os recursos herdam as opções ajustadas nesta seção.
syncer { rate 80M; } # Limita a largura de banda usada em
# sincronizações. O padrão é 250 KB/s.
# A descrição de outras opções podem ser
# encontradas em ``man drbdsetup
}


resource r0 { # Configuração de recurso DRBD. Cada seção
# ``resource possui duas seções ``host.
protocol C; # Paramêtro obrigatório na seção ``resource. Indica
# como são tratados os dados enviados de nó a nó. No
# caso especifico deste protocolo, um nó só considera
# terminada a operação de replicação se o dado for escrito
# em ambos os discos.
handlers { # Indica executáveis ativados pelo drbd em resposta a
# eventos especificos.
pri-on-incon-degr "halt -f"; # ``halt é executado se o nó é primário,
# degradado e a cópia
# de dados local é inconsistente.
pri-lost-after-sb "halt -f"; # ``halt é executado se o nó é primário,
# mas perdeu os procedimentos de auto
# recuperação pós split brain.
}
startup {
wfc-timeout 10; # Tempo de espera para conexão.
degr-wfc-timeout 120;
}
disk {
on-io-error detach; # Indica o procedimento a ser tomando em caso
# de erro de entrada e saída.
# Procedimentos:
# . pass_on: O erro é reportado à camadas superiores.
# Em nó primário, para o sistema de arquivos.
# Em secundário, ignora-o.
# . panic: O nó deixa o cluster com kernel panic.
# . detach: O nó derruba o dispositivo e continua sem
# disco.
}
net {
allow-two-primaries; # Permite o uso de dois nós primários.
after-sb-0pri disconnect; # Situação de split brain com dois nós secundários.
# Nenhum procedimento de auto-recuperação é tomado.
after-sb-1pri disconnect; # Split brain com um nó primário.
after-sb-2pri disconnect; # Split brain com dois nós primários.
}
on neo {
device /dev/drbd0; # Distpositivo do DRBD.
disk /dev/sda7; # Partição física.
address 10.1.1.1:7788; # Endereço e porta do DRBD.
flexible-meta-disk internal;
}
on trinity {
device /dev/drbd0;
disk /dev/sda7;
address 10.1.1.2:7788;
meta-disk internal;
}
}

#dd if=/dev/zero of=/dev/sda7 bs=1M count=128
#drbdadm create-md r0
#drdbadm up r0
#/etc/init.d/drbd start

Acrescentar no /etc/rc.local de ambas

/etc/init.d/drbd start
/sbin/route add default gw 10.0.0.254

Alterar configuração de eth3 para servir de comunicação para drbd

/sbin/ifconfig eth3 10.1.1.1 (primeiro nó)
/sbin/ifconfig eth3 10.1.1.12 (segundo nó)

Na maquina master, montar o dispositivo no ponto de montagem /dados

/etc/fstab
/dev/drbd0 /dados ext3 defaults 0 0

Na slave deixar o ponto de montagem no fstab, mas sem deixar a montagem automatica:

/etc/fstab
/dev/drbd0 /dados ext3 noauto,defaults 0 0

Em ambas, comentar no fstab a linha que monta o /dados no /dev/sda7, pois o /dados será agora no /dev/drbd0.


Faz um tempo que não faço este procedimento, postei aqui para o caso de futuras consultas, e havendo necessidade altero o que não for mais válido.


fonte consulta:
http://www.pruonckk.org/wiki/index.php/Alta_Disponibilidade
http://www.vivaolinux.com.br