DRBD-Heartbeat

From Pruonckk.org

Conteúdo

drbd

dependencias

Tenha certeza que seu sistema esteja atualizado

Debian

apt-get install linux-headers-`uname -r` gcc make flex


Suse

yast -i gcc make flex linux-kernel-headers kernel-source

Download

cd /usr/src/
wget -c http://oss.linbit.com/drbd/8.2/drbd-8.2.5.tar.gz

Descompacta

tar -xzvf drbd-8.2.5.tar.gz

Compila

cd drbd-8.2.5
make
make install
cp scripts/drbd /etc/init.d/

drbd.conf

# Fique atento com as informacoes referentes a disco
# como por exemplo particoes, e etc....


global {
  usage-count yes;
}

common {
 # Velocidade de transferencia (utilize em torno de 40% a 60% da sua banda total)
 syncer { rate 100M; }                                     
}

# Nome do resource em questao (sera utilizado como referencia nos comandos posteriores)
resource r0 {
 protocol C;
 handlers {
  pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
  pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
  local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
  pri-lost "echo primary DRBD lost  | mail -s 'DRBD Alert' pager@braslink.com";
  split-brain "echo split-brain. drbdadm -- --discard-my-data connect $DRBD_RESOURCE ? | mail -s 'DRBD Alert' pager@braslink.com";
  out-of-sync "echo out-of-sync. drbdadm down $DRBD_RESOURCE. drbdadm ::::0 set-gi $DRBD_RESOURCE. drbdadm up $DRBD_RESOURCE. | mail -s 'DRBD Alert' pager@braslink.com";

 }

 startup {
  degr-wfc-timeout 120;    # 2 minutes.
 }

 disk {
  on-io-error   detach;
 }

 net {
  sndbuf-size 512k;

  timeout       60;    #  6 seconds  (unit = 0.1 seconds)
  connect-int   10;    # 10 seconds  (unit = 1 second)
  ping-int      10;    # 10 seconds  (unit = 1 second)
  ping-timeout   5;    # 500 ms (unit = 0.1 seconds)
  max-buffers     20480;
  cram-hmac-alg "sha1";
  shared-secret "dfadspuy234523n";          # esta chave é uma senha de conexao, de qualquer valor
  after-sb-0pri discard-older-primary;
  after-sb-1pri violently-as0p;
  after-sb-2pri disconnect;
  rr-conflict disconnect;
 }

 syncer {
  rate 100M;                                # novamente referente a transferencia de rede
  al-extents 257;
  cpu-mask 15;
 }

 on mailfs1 {
  device     /dev/drbd0;
  disk       /dev/md2;
  address    10.10.200.1:7788;
  flexible-meta-disk /dev/sdb3;
 }

 on mailfs2 {
  device    /dev/drbd0;
  disk      /dev/md2;
  address   10.10.200.13:7788;
  meta-disk internal;
 }
}

Ativando os serviços

Criar os recurso

drbdadm create-md r0

caso ele exiba erro por ja existir um filesystem, utilize o comando abaixo

dd if=/dev/zero of=/dev/sdb2 bs=1M count=128

verifique que /dev/sdb2 no meu caso é o disco onde vou guardar a informação do drbd, e não a partição principal.

Iniciar o serviço

/etc/init.d/drbd start

No node primario (utilize tambem o comando abaixo

drbdadm -- --overwrite-data-of-peer primary all

forçar sincronia

Utilize este comando no host secundario para iniciar a sincronia

drbdadm invalidate r0

ou no host primario o comando abaixo

drbdadm invalidate-remote r0

Heartbeat

Agora vamos instalar nas duas maquina o heartbeat, para monitorar o serviço para nós

dependencias

debian

apt-get install python2.4-dev  libpam0g-dev libgnutls-dev swig  libglib2.0-dev libnet1-dev libxml2-dev byacc
ln -s /usr/include/libxml2/libxml /usr/include

suse

yast -i python-devel pam-devel gnults-devel swig glib2-devel libnet libxml2-devel bison

download

cd /usr/src/
http://linux-ha.org/download/heartbeat-2.1.3.tar.gz

descompactar

tar -xzvf heartbeat-2.1.3.tar.gz

instalar

cd heartbeat-2.1.3
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --mandir=/usr/share/man --disable-rpath
make 
make install


Configuracoes

Uma das primeiras ações de configuração é a criação do grupo e usuário do heartbeat

groupadd hacluster
useradd -s /bin/bash -g hacluster hacluster


Arquivos

O heartbeat utiliza basicamente 3 arquivos de configurações sendo eles ha.cf , haresources e authkeys, que se localizam no diretório /etc/ha.d


ha.cf

debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility     local0
deadtime 30
warntime 10
initdead 120
bcast   eth1                                    # interface de rede, da maquina em questao
mcast eth1 225.0.0.1 694 1 0                    # note a interface aqui tambem
auto_failback on
node    node1                                   # host de nome node1 (coloque em /etc/hosts)
node    node2                                   # host de nome node2 (coloque em /etc/hosts)
ping_group group1 192.168.3.148 192.168.3.154   # ips de monitoramento da maquina
debug 1

haresources
node1          IPaddr::10.0.0.101/24 drbddisk::r0 Filesystem::/dev/drbd0::/mnt::ext3

Onde, o ip, é o ip que é utilizado pelos clientes da rede, para acessar o filesystem, r0 é o device configurado no drbd.conf e /mnt é o ponto de montagem definido.


authkeys
auth 1
1 sha1 fçaldjapdfu-fjhsdoiuf

o valor em 1 sha1 é relativo, pode ser qualquer coisa, des de que o mesmo nos dois servidores.

NOTAS

Todas as configuração do heartbeat devem ser identicas nos dois (ou mais) nodes.
NÃO ESQUEÇA DE COLOCAR OS APLICATIVOS NA INICIALIZAÇÃO DO SISTEMA

Ferramentas pessoais
Inutilidades