Configuração DRBD · 5 min read · Jan 28, 2026
Configuração de Exemplo do DRBD no CentOS 4.5
Configuração de Exemplo do DRBD no CentOS 4.5
O que é DRBD?
DRBD é uma abreviação de Distributed Replicated Block Device. DRBD é um dispositivo de bloco projetado para construir clusters de alta disponibilidade. Isso é feito espelhando um dispositivo de bloco inteiro via (uma rede dedicada). Você pode vê-lo como um RAID1 em rede.
Requisitos de Pré-Configuração:
Eu usei dois nós com as seguintes configurações de sistema:
- cnode1.rnd (nome do host) com o endereço IP 172.16.4.80. Sistema operacional CentOS 4.5, dois discos rígidos SCSI de 18 GB. Em relação à partição, usei o seguinte esquema em cnode1.rnd: /dev/sda1 / 13257MB ext3 primário /dev/sda2 4095MB swap primário /dev/sdb1 não montado 128MB ext3 primário (para os metadados do DRBD) /dev/sdb2 não montado 4306MB ext3 primário (usado como Disco do DRBD)
- cnode2.rnd (nome do host) com o endereço IP 172.16.4.81. Sistema operacional CentOS 4.5, um disco IDE de 10 GB. O seguinte esquema de partição foi usado em cnode2.rnd: /dev/hda1 / 4503MB ext3 primário /dev/hda2 769MB swap primário /dev/hda3 não montado 128MB ext3 primário (para os metadados do DRBD) /dev/hda4 não montado 4306MB ext3; primário (usado como Disco do DRBD)
Os tamanhos e nomes das partições podem variar de acordo com a capacidade do disco e os discos rígidos utilizados. Você pode definir um esquema de partição de acordo com suas necessidades.
Meu arquivo /etc/hosts em ambos os nós (cnode1.rnd & cnode2.rnd) é assim:
127.0.0.1 localhost.localdomain localhost
172.16.4.80 cnode1.rnd cnode2
172.16.4.81 cnode2.rnd cnode3
Instalação do DRBD:
Instale o software DRBD e o módulo do kernel do DRBD em cnode1.rnd e cnode2.rnd:
yum install -y kmod-drbd drbd Carregue o módulo do kernel do DRBD com insmod:
insmod /lib/modules/2.6.9-55.0.9.EL/extra/drbd.ko Verifique com lsmod se o módulo está carregado. Se você ver DRBD, então passe para a seção de configuração de exemplo.
Configurando o DRBD:
O arquivo de configuração do DRBD é /etc/drbd.conf. Então, vamos editar este arquivo e fazer as seguintes alterações nele e copiá-lo para o outro nó ( /etc/drbd.conf será o mesmo em ambos os nós).
Em cnode1.rnd, edite este arquivo com qualquer editor. Estou usando vi:
vi /etc/drbd.conf resource r0 {
protocol C;
incon-degr-cmd "halt -f";
startup {
degr-wfc-timeout 120; # 2 minutos.
}
disk {
on-io-error detach;
}
net {
}
syncer {
rate 3M;
group 1;
al-extents 257;
}
on cnode1.rnd {
device /dev/drbd0;
disk /dev/sdb2;
address 172.16.4.80:7789;
meta-disk /dev/sdb1[0];
}
on cnode2.rnd {
device /dev/drbd0;
disk /dev/hda4;
address 172.16.4.81:7789;
meta-disk /dev/hda3[0];
}
}
Salve suas alterações e copie para o outro nó (cnode2.rnd):
scp /etc/drbd.conf [email protected]:/etc/ Agora vamos iniciar o daemon do DRBD em ambos os nós, mas antes disso, queremos iniciar o daemon do DRBD na próxima reinicialização. Para isso, usaremos o comando chkconfig em ambos os nós.
chkconfig --level 235 drbd on /etc/init.d/drbd start Você descobrirá que o DRBD iniciou o processo de sincronização. Você pode vê-lo em execução:
/etc/init.d/drbd status ou
cat /proc/drbd Detalhes Técnicos da Configuração do drbd.conf:
Protocolos:
- Uma operação de gravação é concluída assim que os dados são gravados no disco e enviados para a rede.
- Uma operação de gravação é concluída assim que um reconhecimento de recebimento chega.
- Uma operação de gravação é concluída assim que um reconhecimento de gravação chega.
Nome do Host:
Deve corresponder exatamente à saída de
uname -n Dispositivo:
O nó do dispositivo a ser usado: /dev/drbd0 - dispositivo de bloco DRBD.
Endereço, Porta:
O endereço inet e a porta para se vincular localmente ou para se conectar ao nó parceiro.
Meta-disco:
Os discos para armazenar metadados. O DRBD permite que você coloque seus metadados no mesmo dispositivo de suporte onde coloca os dados de produção utilizáveis (metadados internos) ou em um dispositivo de bloco separado (metadados externos). Eu aloquei 128 MB para metadados em um dispositivo de bloco de metadados externo. No entanto, você pode se preocupar com a tabela abaixo para estimar os tamanhos dos metadados
| Tamanho do dispositivo de bloco | Metadados do DRBD |
| 1 GB | 2 MB |
| 100 GB | 5 MB |
| 1 TB | 33 MB |
| 4 TB | 128 MB |
incon-degr-cmd:
O que deve ser feito caso o cluster inicie em modo degradado, mas saiba que possui dados inconsistentes (o dispositivo de nível inferior relata erro de I/O).
on-io-error detach:
Se o dispositivo de nível inferior relatar erro de I/O, o nó descarta seu dispositivo de armazenamento de suporte e continua em modo sem disco.
degr-wfc-timeout:
Aguarde o tempo limite de conexão, se este nó era um cluster degradado. Isso é usado em vez de wfc-timeout (aguardar o tempo limite do cluster).
Syncer:
Limite a largura de banda usada pelo processo de ressincronização.
grupo:
Todos os dispositivos em um grupo são ressincronizados em paralelo. A ressincronização de grupos é serializada em ordem crescente.
Al-extents:
Realiza automaticamente a detecção de área quente. Com este parâmetro, você controla quão grande a área quente pode ficar. Cada extensão marca 4M do armazenamento de suporte (=dispositivo de nível inferior). Caso um nó primário saia do cluster inesperadamente, as áreas cobertas pelo conjunto ativo devem ser resincronizadas ao reingressar do nó com falha. A estrutura de dados é armazenada na área de metadados, portanto, cada alteração do conjunto ativo é uma operação de gravação no dispositivo de metadados. Um número maior de extensões resulta em tempos de ressincronização mais longos, mas menos atualizações nos metadados.
O que Fazer e o que Não Fazer:
Não tente montar um DRBD em estado secundário. Uma vez que você configure o DRBD, nunca o contorne ou acesse o dispositivo subjacente diretamente!
Testar o DRBD:
Torne cnode1.rnd primário e monte o dispositivo de bloco do nó primário (cnode1.rnd) em /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/disk Copie alguns arquivos e pastas para ele:
cp -r /root/documents /mnt/disk Agora desmonte o dispositivo de bloco do DRBD e torne o nó primário “secundário”:
umount /mnt/disk/ drbdadm secondary all Torne cnode2.rnd primário e monte o dispositivo de bloco em /mnt/disk:
drbdsetup /dev/drbd0 primary --do-what-I-say mount /dev/drbd0 /mnt/diskVocê descobrirá que os documentos existem em cnode2.rnd.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.