Configurando a resolução de nomes
Os dois servidores deverão resolver os nomes, uns dos outros, para tornar esta resolução independente do servidor DNS, é recomendada a configuração do /etc/hosts conforme o exemplo abaixo:
# vi /etc/hosts
10.1.1.23 spotlight, server01
10.1.1.26 Lvia, server02
Testando resolução de nomes
Para testar se as duas estão se enxergando na rede, pode-se tentar pingar os respectivos hostnames:
# ping spotlight
# ping lvia
Caso o ping não funcione, deverá ser verificada a configuração de rede lógica e física das máquinas, bem como do /etc/hosts.
O arquivo de configuração do DRBD
O arquivo de configuração utilizado pelo DRBD é o /etc/drbd.conf, caso este arquivo não esteja corretamente configurado, o drbd não irá funcionar corretamente.
Os parâmetros que são obrigatórios de serem alterados são: hostname, device, disk, meta-disk, address and port na seção "on <hostname> {}".
on spotlight {
device /dev/drbd0;
disk /dev/hda4;
address 10.1.1.23:7788;
meta-disk internal;
}
on Lvia {
device /dev/drbd0;
disk /dev/hdc2;
address 10.1.1.23:7788;
meta-disk internal;
}
OBS: O hostname no arquivo de configuração deverá ser idêntico ao no /etc/hosts. Cuidado, o DRBD é case sensitive. Lvia é diferente de lvia.
Carregando o módulo do drbd
Para que o drbd funcione, é necessário que seja carregado o seu módulo nas duas máquinas que irão executar o sistema.
Execute o comando abaixo nas nas duas máquinas:
# modprobe drbd
Caso não apareçam mensagens de erro, o módulo deverá ter sido carregado com sucesso.
Testando se o módulo carregou corretamente
Verifique o conteúdo do arquivo /proc/drbd com o seguinte comando:
# cat /proc/drbd
O resultado deverá ser parecido com:
version: 0.7.19 (api:78/proto:74)
SVN Revision: 2212 build by root@spotlight, 2006-06-22 21:12:58
0: cs:Unconfigured
1: cs:Unconfigured
Iniciando e conectando o DRBD
Após a carga dos módulos, será necessário iniciar e conectar o drbd dos dois servidores. Para esta finalidade execute o comando abaixo:
# drbdadm up all
Caso não apareçam mensagens de erro, o drbd deverá ter sido inicializado e conectado corretamente.
Testando se o DRBD iniciou e conectou
Para verificar se o DRBD iniciou e conectou com sucesso, execute o comando:
# cat /proc/drbd
O resultado deverá ser semelhante a:
version: 0.7.19 (api:78/proto:74)
SVN Revision: 2212 build by root@spotlight, 2006-06-22 21:12:58
0: cs:Connected st:Secondary/Secondary ld:Inconsistent
ns:0 nr:0 dw:0 dr:0 al:0 bm:656 lo:0 pe:0 ua:0 ap:0
1: cs:Unconfigured
O importante nessa saída são as a linhas do dispositivo drbd que foi criado (0).
cs:Connected
A chave cs: armazena a informação de conexão do drbd, seu conteúdo sendo Connected significa que o dispositivo drbd está conectado entre as duas máquinas.
st:Secondary/Secondary
A chave st: é responsável por armazenar a informação sobre o estado das máquinas. O seu conteúdo Secondary/Secondary significa que as duas máquinas estão como secundárias.
ld:Inconsistent
A chave ld: é responsável por armazenar a informação sobre a consistência da sincronização entre as máquinas. O seu conteúdo Inconsistent significa que os dados dos discos são diferentes e estão inconsistentes. Isto é normal, neste momento, pois os discos ainda não foram sincronizados.
Tornar uma das máquinas primária
Este procedimento deverá ser realizado cuidadosamente, pois a partir deste momento, o drbd estará sincronizando os dados da máquina que foi definida como primária para a máquina secundária. Isto significa que TODOS os dados na partição usada pelo drbd na máquina secundária, serão apagados, além disso, os dados da máquina primária serão espelhados na máquina secundária.
Em uma das máquinas execute o seguinte comando:
# drbdadm primary all
Se ocorrer um erro, não se preocupe, é normal, isso acontece pois o drbd se recusa a se tornar primário caso o id seja inconsistente.
Para resolver este problema é necessário pedir para o drbd forçar esta sincronização. Isso é feito através do parâmetro --do-what-I-say, esta "funcionalidade" foi criada para evitar que os dados da máquina secundária fossem apagados, sem o real consentimento e consciência do administrador do sistema. Na versão 0.8 do drbd, o parâmetro --do-what-I-say foi substituído por --overwrite-data-of-peer com o objetivo de fazer mais sentido para os usuários do drbd.
Tente tornar uma das máquinas como primária, desta vez com os parâmetros corretos para esta primeira sincronia.
# drbdadm -- --do-what-I-say primary all
Caso não apareça nenhuma mensagem de erro, significa que o comando foi bem sucedido.
Acompanhando o progresso da sincronização
O progresso da sincronização entre os servidores é informado no arquivo /proc/drbd. Iremos utilizar o comando watch para acompanhar este progresso.
# watch -n1 cat /proc/drbd
version: 0.7.19 (api:78/proto:74)
SVN Revision: 2212 build by root@spotlight, 2006-06-22 21:12:58
0: cs:SyncSource st:Primary/Secondary ld:Consistent
ns:196740 nr:0 dw:0 dr:196876 al:0 bm:668 lo:0 pe:4 ua:34 ap:0
[>...................] sync'ed: 3.8% (5053/5245)M
finish: 0:07:55 speed: 10,848 (10,352) K/sec
1: cs:Unconfigured
Quando a sincronização estiver concluída, o resultado do comando "cat /proc/drbd" deverá ser semelhante ao abaixo:
version: 0.7.19 (api:78/proto:74)
SVN Revision: 2212 build by root@spotlight, 2006-06-22 21:12:58
0: cs:Connected st:Primary/Secondary ld:Consistent
ns:5371188 nr:0 dw:0 dr:5371188 al:0 bm:984 lo:0 pe:0 ua:0 ap:0
1: cs:Unconfigured
Um detalhe importante e que deverá ser reparado é que o estado em uma das máquinas será primário e na outra secundário, além disso é importante reparar que o ld está consistente, demonstrando que os dispositivos das duas máquinas estão sincronizados.