Tuto - Téo Espelhamento

9
Cenário A configuração dos servidores, ambos com Sistema Operacional Debian 6 (Squeeze), é a seguinte: Servidor: /dev/sda1 – 5 GB - Primária /dev/sda2 – 5GB – Primária / dev/sda5 – 5GB – Swap - Lógica Espelho: /dev/sda1 – 5 GB - Primária /dev/sda2 – 5GB – Primária / dev/sda5 – 5GB – Swap - Lógica

description

espelhamento de servidores

Transcript of Tuto - Téo Espelhamento

Page 1: Tuto - Téo Espelhamento

Cenário

A configuração dos servidores, ambos com Sistema Operacional Debian 6 (Squeeze), é a seguinte:

Servidor:

/dev/sda1 – 5 GB - Primária

/dev/sda2 – 5GB – Primária

/ dev/sda5 – 5GB – Swap - Lógica

Espelho:

/dev/sda1 – 5 GB - Primária

/dev/sda2 – 5GB – Primária

/ dev/sda5 – 5GB – Swap - Lógica

Page 2: Tuto - Téo Espelhamento

Preparação:

Instale o Debian Squeeze e desmonte a partição criada para o espelhamento neste caso a /dev/sda2:

root@servidor:~# umount /cmsi

root@espelho:~# umount /cmsi

Comente no fstab a linha que monta a partição no boot, pois isso será controlado pelo DRBD:

root@servidor:~# nano /etc/fstab

root@espelho:~# nano /etc/fstab

Configurar as interfaces de rede:

root@servidor:~# cat /etc/network/interfaces

# The loopback network interfaceauto loiface lo inet loopback

# The primary network interface# Heartbeatauto eth0iface eth0 inet staticaddress 10.0.41.11netmask 255.255.255.0network 10.0.41.0

# drbd interfaceauto eth1iface eth1 inet staticaddress 192.168.0.1netmask 255.255.255.0network 192.168.0.0

root@espelho:~# cat /etc/network/interfaces

# The loopback network interfaceauto loiface lo inet loopback

# The primary network interface# Heartbeatauto eth0iface eth0 inet staticaddress 10.0.41.12netmask 255.255.255.0network 10.0.41.0

# drbd interfaceauto eth1iface eth1 inet staticaddress 192.168.0.2netmask 255.255.255.0network 192.168.0.0

Page 3: Tuto - Téo Espelhamento

DRBD

Instalação do DRBD:

root@servidor:~# apt-get install drbd-utils modprobe

root@espelho:~# apt-get install drbd-utils modprobe

root@servidor:~# modprobe drbd

root@espelho:~# modprobe drbd

Configurar os hosts pra responder o ping por nome:

root@servidor:~# nano /etc/hosts

127.0.0.1 localhost192.168.0.1 servidor192.168.0.2 espelho

root@espelho:~# nano /etc/hosts

127.0.0.1 localhost192.168.0.1 servidor192.168.0.2 espelho

Criar o recurso configurado no arquivo.res:

root@servidor:~# cat /etc/drbd.d/cmsi.res

root@espelho:~# cat /etc/drbd.d/cmsi.res

#/etc/drbd.d/cmsi.res# espelhamento resource cmsi {

protocol C;device /dev/drbd1 minor 1;disk /dev/sda2;meta-disk internal;# following 2 definition are equivalent

#node1on servidor {

address 192.168.0.1:7801;disk /dev/sda2;

}#node 2on espelho {

address 192.168.0.2:7801;disk /dev/sda2;

}# floating 192.168.5.41:7801;# floating 192.168.5.42:7801;net {

after-sb-0pri discard-younger-primary; #discard-zero-changes;after-sb-1pri discard-secondary;after-sb-2pri call-pri-lost-after-sb;

}}

Page 4: Tuto - Téo Espelhamento

Zerar a partição :

root@servidor:~# dd if=/dev/zero of=/dev/sda2 bs=1M count=1root@servidor:~# drbdadm -- --discard-my-data connect cmsi

root@espelho:~# dd if=/dev/zero of=/dev/sda2 bs=1M count=1 root@espelho:~# drbdadm -- --discard-my-data connect cmsi

Criar o disco virtual:

root@servidor:~# drbdadm create-md cmsi

root@espelho:~# drbdadm create-md cmsi

Levantar o espelhamento:

root@servidor~# # drbdadm up all

root@espelho:~# # drbdadm up all

Definir o primário:

root@servidor# drbdadm -- -o primary cmsi

Formatar a partição utilizada no espelhamento:

root@servidor:~# mkfs.ext3 /dev/drbd2

root@espelho:~# mkfs.ext3 /dev/drbd2

Inicializar o DRBD:

root@servidor:~# /etc/init.d/drbd start

root@espelho:~# /etc/init.d/drbd start

Verificar o serviço do DRBD:

root@servidor:~# cat /proc/drbd

1: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:524236

root@servidor:~# drbdadm -- --overwrite-data-of-peer primary cmsi

Colocar o Servidor como primário:

root@servidor:~# drbdadm primary all root@servidor:~# cat /proc/drbd

1: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----ns:142564 nr:0 dw:0 dr:143048 al:0 bm:8 lo:16 pe:6 ua:25 ap:0 ep:1 wo:b oos:381836[====>...............] sync'ed: 27.4% (381836/524236)Kfinish: 0:00:34 speed: 11,016 (10,168) K/sec

Adicione no fstab:

root@servidor:~# nano /etc/fstab

Page 5: Tuto - Téo Espelhamento

root@espelho:~# nano /etc/fstab

Adicione a linha:

/dev/drbd1 /cmsi ext3 noauto 0 0

Realizando testes:

Monte a pasta no Servidor:

root@servidor:~# mount /cmsi

root@servidor:~# touch /cmsi/teste

root@servidor:~# umount /cmsi

root@servidor:~# drbdadm secondary all

root@espelho:~# drbdadm primary all

root@servidor:~# mount /cmsi

root@servidor:~# ls /cmsi

HEARTBEAT

Instalação:

root@servidor:~# apt-get install heartbeat

root@espelho:~# apt-get install heartbeat

Configurar o ha.cf

root@servidor:~# nano /etc/ha.d/ha.cf

root@espelho:~# nano /etc/ha.d/ha.cf

Page 6: Tuto - Téo Espelhamento

#/etc/ha.d/ha.cf

debugfile /var/log/ha-debug

logfile /var/log/ha-log

logfacility local0

keepalive 2

deadtime 10

warntime 10

initdead 20

udpport 694

bcast eth1

auto_failback on

node servidor

node espelho

Configurando o haresouces:

root@servidor:~# nano /etc/ha.d/haresources

root@espelho:~# nano /etc/ha.d/haresources

#/etc/há.d/haresourcesservidor drbddisk::cmsi 10.0.0.15 Filesystem::/dev/drbd1::/cmsi::ext3

Configurar o authkeys:

root@servidor:~# nano /etc/ha.d/authkeys

root@espelho:~# nano /etc/ha.d/authkeys

#/etc/ha.d/authkeys

auth 3

3 md5 senha

root@servidor~# chmod 600 /etc/ha.d/authkeys

root@espelho:~# chmod 600 /etc/ha.d/authkeys

Reinicie o Heartbeat:

root@servidor:~# /etc/init.d/heartbeat

root@espelho:~# /etc/init.d/heartbeat

Page 7: Tuto - Téo Espelhamento

Script de Monitoramento do Samba

Criando Script que chama o teste:

root@servidor:~# nano monitor.sh

#monitor.sh

#!/bin/bash

case $1 in

start)

echo “Starting Samba Monitoring”

/root/teste.sh &

;;

stop)

echo “Stoping Samba Monitoring”

killall teste.sh

;;

*)

echo "Use os parâmetros => Start|Stop"

esac

Criando Script de teste do funcionamento do Samba:

root@servidor:~# nano teste.sh

#teste.sh

#!/bin/bash

while [ "1"="1" ];do

DATA=`date +%y-%m-%d-%H-%m`

TMP1=`mktemp /tmp/arq1.XXXXXX`

TMP2=`mktemp /tmp/arq2.XXXXXX`

cat /proc/drbd > $TMP1

erro1=`cat $TMP1 | grep "Primary|Secondary"`

if [ -f $erro1 ];then

ps aux | grep "smbd" > $TMP2

erro2=`cat $TMP2 | grep "/usr/sbin/smbd"`

rm -f $TMP1 $TMP2

if [ -z "$erro2" ];then

Page 8: Tuto - Téo Espelhamento

echo ""

/etc/init.d/heartbeat stop

echo "O samba parou "+"$DATA" >> /root/monitor.log

exit 1

fi

fi

done

Adicione o monitor.sh ao rc.local para ser inicializado no boot:

root@servidor:~# nano /etc/rc.local

/etc/init.d/monitor.sh start

Copiar o monitor para o init.d:

root@servidor:~# cp /root/monitor /etc/init.d/

Pronto! Agora basta dar um rebooting e verificar antes do login a saída :

Starting Samba Monitoring

By Sthéfano Silva

TÉO