0

DRBD na prática

0 Flares 0 Flares ×

DRBD é a acrónimo para o nome inglês Distributed Replicated Block Device e pode ser definido como um sistema RAID baseado em rede.

Neste howto, o DRBD será instalado como active/standby.

Observação

Novos discos devem ser apresentados em ambos servidores e preterivelmente, com mesma volumetria.

Configurando o SO e DRBD

HOSTS (Ambos os nodes)

Será necessário a referencia de nomes entre hosts. Portanto, configurar os hostnames conforme seu ambiente (IP) no arquivo hosts

10.0.2.11 drbd-cluster01
10.0.2.17 drbd-cluster02

NTP

É extremamente importante que o horario esteja sincronizado em ambos os nós. .

* Ou você utiliza o ntpdate na cron ou faz uso do deamon ntp. Caso o serviço do ntp esteja iniciado, você recebera um erro de socket quando executar a sincronia.

[root@drbd-cluster01 ~]# yum install ntpdate

Com o usuário root, executar:

[root@drbd-cluster01 ~]# crontab -e

Adicionar a linha:

1 * * * * root ntpdate -s ntp.cais.rnp.br

[root@drbd-cluster01 ~]# crontab -l
1 * * * * root ntpdate -s ntp.cais.rnp.br

Instalando os pacotes necessários para setup do filesystem ativo/passivo com DRBD (Ambos os nodes)

Adicionar o repositorio ELREPO

http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

[root@drbd-cluster01 /]# rpm -ihv http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm

Você pode listar os mirror’s disponiveis:

[root@drbd-cluster01 ~]# yum repolist

Caso a curiosidade seja muito grande, você também pode listar os pacotes e conhecer tudo que o mirror elrepo disponibiliza. Sendo assim, execute:

[root@drbd-cluster01 ~]# yum --disablerepo="*" --enablerepo="elrepo" list available

Opós setup do mirror “elrepo”. Dar continuidade na instalação dos pacotes drbd83-utils e kmod-drbd83

Obs: Suas dependencias seram automaticamente instaladas

[root@drbd-cluster01 ~]# yum install drbd83-utils.x86_64 kmod-drbd83.x86_64 -y

Será necessário carregar o modulo caso queira continuar este procedimento sem reiniciar os servidores.

[root@drbd-cluster01 ~]# modprobe drbd

Preparando o Device (Ambos os nodes)

Criar uma nova partição primaria no “novo” disco apresentado.

root@drbd-cluster01 /]# fdisk -cu /dev/sdb

Neste caso, sdb é o novo disco.

Sequencia: p,n,p,1,[enter],[enter],w

Command (m for help): p

Disk /dev/sdb: 8589 MB, 8589934592 bytes
86 heads, 1 sectors/track, 195083 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00033bc0

Device Boot Start End Blocks Id System

Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (2048-16777215, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-16777215, default 16777215):
Using default value 16777215

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Configuração do DRBD (Ambos os nodes)

Vamos agora preparar a configuração do DRBD e após replicar as configurações em ambos os nós, voltaremos a trabalhar com o filesystem formatando e validando sua sincronia.

Adicione um novo arquivo no path “/etc/drbd.d”

[root@drbd-cluster01 ~]# vi /etc/drbd.d/clusterdb.res

Adicione as seguintes linhas:

resource clusterdb

{
startup {
wfc-timeout 30;
outdated-wfc-timeout 20;
degr-wfc-timeout 30;
}
net {
cram-hmac-alg sha1;
shared-secret sync_disk;
}

syncer {
rate 10M;
al-extents 257;
on-no-data-accessible io-error;
}

on drbd-cluster01 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.0.2.11:7788;
flexible-meta-disk internal;
}

on drbd-cluster02 {
device /dev/drbd0;
disk /dev/sdb1;
address 10.0.2.12:7788;
meta-disk internal;
}
}

Criando o metadevice para o recurso clusterdb (Ambos os nodes)

[root@drbd-cluster01 ~]# drbdadm create-md clusterdb

Iniciar o serviço do DRBD e validar se esta ativo em sua runlevel (Ambos os nodes)

[root@drbd-cluster01 ~]# service drbd start
[root@drbd-cluster01 ~]# chkconfig drbd on

Apartir do servidor “node01” executar o seguinte comando para defino-lo como primario:

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

Checando o sync dos discos

cat /proc/drbd
version: 8.3.16 (api:88/proto:86-97)
GIT-hash: a798fa7e274428a357657fb52f0ecf40192c1985 build by phil@Build64R6, 2013-09-27 16:00:43
0: cs:Connected ro:Secondary/Primary ds:UpToDate/UpToDate C r-----
ns:8 nr:4 dw:12 dr:1017 al:1 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:f oos:0

:wq!

RECOMENDADO PARA VOCÊ

Avelino Ferreira

"Meu egoísmo é tão egoísta que o auge do meu egoísmo é querer ajudar..."

Dúvidas? Deixe seu comentário ou entre em contato.