Recomendações
Evite editar o arquivo /etc/drbd.conf. Ao invés disso crie arquivos terminados em “.res” dentro de /etc/drbd.d/. Com isso não superlotaremos com texto o arquivo /etc/drbd.conf.
Todo arquivo criado dentro da pasta /etc/drbd.d/ que tenha o nome terminado em “.res” terá o seu conteúdo incluído automaticamente dentro de /etc/drbd.conf.
/etc/drbd.conf é o arquivo de configuração do drbd. Dentro desse arquivo temos o seguinte texto:
elder@server01:~$ cat /etc/drbd.conf # You can find an example in /usr/share/doc/drbd.../drbd.conf.example include "drbd.d/global_common.conf"; include "drbd.d/*.res";
Vemos que ele possui apenas duas linhas:
- include “drbd.d/global_common.conf”: Essa linha diz: “inclua dentro de drbd.conf todo o conteúdo do arquivo drbd.d/global_common.conf”.
- include “drbd.d/*.res”: Essa linha diz: “inclua o conteúdo de qualquer arquivo dentro de drbd.d que termine em .res”
Logicamente que esse caminho “drbd.d/global_common.conf” e “drbd.d/*.res” são caminhos relativos. Os caminhos absolutos seriam:
“/etc/drbd.d/global_common.conf” e “/etc/drbd.d/*.res”.
No artigo anterior criamos nosso resource /etc/drbd.d/meuRes.res
Como meuRes.res termina com “.res” e está dentro de drbd.d ele será incluído dentro de drbd.conf
O arquivo drbd.d/global_common.conf é um arquivo de configurações globais e comuns, isto é, qualquer configuração colocada dentro desse arquivo afetará todos os outros arquivos .res
Resumindo Linhas Duplicadas em Nosso Resource meuRes
No post DRBD: Configurando Resource – Parte 03 criamos, nos dois servidores(server01 e server02), nosso resource em /etc/drbd.d/meuRes.res e com o seguinte conteúdo:
resource meuRes { on server01 { device /dev/drbd1; disk /dev/sdb1; address 10.1.1.31:7789; meta-disk internal; } on server02 { device /dev/drbd1; disk /dev/sdb1; address 10.1.1.32:7789; meta-disk internal; } }
Apenas como dica, todas as linhas iguais(repetidas) dentro dos hosts(“on server01” e “on server02”) podem ser colocadas diretamente no topo. Veja abaixo:
resource meuRes { device /dev/drbd1; disk /dev/sdb1; meta-disk internal; on server01 { address 10.1.1.31:7789; } on server02 { address 10.1.1.32:7789; } }
Seções em drbd.conf
Dentro de seções podemos inserir opções que alterarão o modo de funcionamento do drbd.
Abaixo listamos alguns exemplos de seções:
- disk: dentro dessa seção colocamos opções para ajuste de discos(HDs, SSDS
- net: O manual do drbd apenas aponta essa seção como sendo para ajustes das propriedades do DRBD.
- startup: O manual do drbd apenas aponta essa seção como sendo para ajustes das propriedades do DRBD.
- options: opções aqui dentro dessa seção ajustam o comportamento do resource
- handlers: Aqui podemos definir “executáveis” que são iniciados pelo DRBD em resposta a alguns eventos.
Podemos inserir as Seções dentro do arquivo /etc/drbd.d/global_common.conf ou dentro do resource. Dentro do resource apenas o resource será afetado. Já dentro de global_common.conf todos os resources serão afetados.
Exemplo da seção disk dentro do resource meuRes:
resource meuRes { device /dev/drbd1; disk /dev/sdb1; meta-disk internal; disk { resync-rate 20M; } on server01 { address 10.1.1.31:7789; } on server02 { address 10.1.1.32:7789; } }
As Opções que Vão Dentro de Cada Seção
Dentro da seção disk:
on-io-error, size, fencing, disk-barrier, disk-flushes, disk-drain, md-flushes,
max-bio-bvecs, resync-rate, resync-after, al-extents, al-updates, c-plan-ahead,
c-fill-target, c-delay-target, c-max-rate, c-min-rate, disk-timeout,
discard-zeroes-if-aligned, rs-discard-granularity, read-balancing.
Dentro da Seção net:
protocol, sndbuf-size, rcvbuf-size, timeout, connect-int, ping-int, ping-timeout, max-buffers,
max-epoch-size, ko-count, allow-two-primaries, cram-hmac-alg, shared-secret, after-sb-0pri,
after-sb-1pri, after-sb-2pri, data-integrity-alg, no-tcp-cork, on-congestion, congestion-fill, congestion-extents, verify-alg, use-rle, csums-alg, socket-check-timeout.
Dentro da Seção startup:
wfc-timeout, degr-wfc-timeout, outdated-wfc-timeout, wait-after-sb, stacked-timeouts and
become-primary-on.
Dentro da Seção options:
cpu-mask, and on-no-data-accessible
Dentro da Seção handlers:
pri-on-incon-degr, pri-lost-after-sb, pri-lost, fence-peer (formerly oudate-peer), local-io-error, initial-split-brain, split-brain, before-resync-target, after-resync-target.
Conclusão
Encerro aqui este post. Não postarei explicação sobre algumas das opções das seções para que o artigo não fique muito longo.