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!