ct

    Instalação do DRBD + Heartbeat + Samba

    Tutoriais

    O DRBD é um software que permite fazer RAID pela rede, ou seja, podemos replicar dados de partições inteiras pela rede. É um recurso extraordinário para servidores críticos, onde seus dados não podem ser perdidos. Nesse teste, utilizei duas máquinas virtuais criadas para documentação. As máquinas para produção são duas máquinas reais que estão funcionando atualmente com esta mesma configuração.Douglas Baiocco
    11/11/2009


    O DRBD é um software que permite fazer RAID pela rede, ou seja, podemos replicar dados de partições inteiras pela rede. É um recurso extraordinário para servidores críticos, onde seus dados não podem ser perdidos.

    Nesse teste, utilizei duas máquinas virtuais criadas para documentação. As máquinas para produção são duas máquinas reais que estão funcionando atualmente com esta mesma configuração. Tive muitos problemas para encontrar informações na internet sobre este recurso, portanto, qualquer coisa a adicionar, será bem-vinda.

    Primeiramente, as duas máquinas são Linux, rodando Debian lenny, instaladas apenas com o sistema básico. Abaixo o nome e o IP das máquinas que eu usei:

    Nome das máquinas:

    • Node1 – 192.168.241.10
    • Node2 – 192.168.241.20

    A partição que eu criei nas duas máquinas está em /dev/sda2 (segunda partição primária no primeiro disco).

    É interessante observar que os dois micros devem ter partições separadas para replicação, como por exemplo:

      Node1
      3 partições(hd de 10GB):
      5GB para a partição / - /dev/sda1
      5GB para a partição /kplus - /dev/sda2 – partição a ser replicada
      780MB para swap - /dev/sda3

      Node2
      3 partições(hd de 10GB):
      5GB para a partição / - /dev/sda1
      5GB para a partição /kplus - /dev/sda2 - partição a ser replicada
      780MB para swap - /dev/sda3

    Podemos também reservar discos inteiros para a replicação, depende muito do orçamento que pode ser gasto.

    O nome da pasta que estou utilizando para montar o sistema de arquivos /dev/sda2 é /kplus em ambas. O primeiro passo é fazer com que as duas máquinas possam ser pingadas por nomes, para isso altere o arquivo hosts:

    Node1:

    # vim /etc/hosts

    Deixar como segue:

    127.0.0.1 localhost
    127.0.1.1 node1.onomedoseudominiovaiapareceraqui node1
    192.168.241.20 node2

    Node2:

    # vim /etc/hosts

    Deixar como segue:

    127.0.0.1 localhost
    127.0.1.1 node2.onomedoseudominiovaiapareceraqui node2
    192.168.241.10 node1

    Para verificar:

    Node1:

    # ping node2

    Node2:

    # ping node1

    Em seguida, instale as ferramentas com o comando:

    Node1:

    # apt-get install drbd8-utils drbd8-modules-`uname -r`

    Node2:

    # apt-get install drbd8-utils drbd8-modules-`uname -r`

    O próximo passo é configurar o arquivo /etc/drbd.conf nas duas máquinas (deixar o arquivo exatamente igual nas duas).

    Node1:

    # vim /etc/drbd.conf

    Node2:

    # vim /etc/drbd.conf

    Adicione as linhas abaixo:

    global {
    usage-count yes;
    }

    common {
    # Velocidade de transferencia (utilize em torno de 40% a 60% da sua banda total)
    syncer { rate 100M; }
    }

    # Nome do resource em questao (sera utilizado como referencia nos comandos posteriores)
    resource dados {
    protocol C;
    handlers {
    pri-on-incon-degr "echo o > /proc/sysrq-trigger ; halt -f";
    pri-lost-after-sb "echo o > /proc/sysrq-trigger ; halt -f";
    local-io-error "echo o > /proc/sysrq-trigger ; halt -f";
    pri-lost "echo primary DRBD lost | mail -s 'DRBD Alert' email@dominio.com";
    split-brain "echo split-brain. drbdadm -- --discard-my-data connect $DRBD_RESOURCE ? |
    mail -s 'DRBD Alert' pager@braslink.com";

    }

    startup {
    degr-wfc-timeout 120; # 2 minutes.
    }

    disk {
    on-io-error detach;
    }

    net {
    sndbuf-size 512k;

    timeout 60; # 6 seconds (unit = 0.1 seconds)
    connect-int 10; # 10 seconds (unit = 1 second)
    ping-int 10; # 10 seconds (unit = 1 second)
    ping-timeout 5; # 500 ms (unit = 0.1 seconds)
    max-buffers 20480;
    cram-hmac-alg "sha1";
    shared-secret "dfadspuy234523n"; # esta chave é uma senha de conexao, de qualquer valor
    after-sb-0pri discard-older-primary;
    after-sb-1pri violently-as0p;
    after-sb-2pri disconnect;
    rr-conflict disconnect;
    }

    syncer {
    rate 100M; # novamente referente a transferencia de rede
    al-extents 257;
    }

    on node1 {
    device /dev/drbd0; #aqui será o endereço do dispositivo (disco) virtual do DRBD
    disk /dev/sda2; #aqui será a partição do disco que será replicada
    address 192.168.241.10:7788; #IP do node1
    meta-disk internal; #onde será colocado o meta-disk do drbd (ficará junto com o resto do sistema)
    }

    on node2 {
    device /dev/drbd0; #aqui será o endereço do dispositivo (disco) virtual do DRBD
    disk /dev/sda2; #aqui será a partição do disco que será replicada
    address 192.168.241.20:7788; #IP do node1
    meta-disk internal; #onde será colocado o meta-disk do drbd (ficará junto com o resto do sistema)

    }
    }

    • Meta-disk – disco temporário utilizado pelo drbd para armazenamento.

    Desmontar as partições nas duas máquinas:

    Node1:

    # umount /kplus

    Node2:

    # umount /kplus

    Em seguida, retirare a entrada para a pasta do fstab das duas máquinas (ou comente com tralha):

    Node1:

    # vim /etc/fstab

    Node2:

    # vim /etc/fstab

    É necessário zerar a partição que será replicada nas duas máquinas:

    Node1:

    # dd if=/dev/zero of=/dev/sda2 bs=1M count=128

    Node2:

    # dd if=/dev/zero of=/dev/sda2 bs=1M count=128

    Criar o disco virtual:

    Node1:

    # drbdadm create-md dados

    Node2:

    # drbdadm create-md dados

    Atar o disco nas duas máquinas:

    Node1:

    # drbdadm attach dados

    Node2:

    # drbdadm attach dados

    Sincronizar:

    Node1:

    # drbdadm syncer dados

    Node2:

    # drbdadm syncer dados

    Iniciar replicação no node1:

    Node1:

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

    Reiniciar o serviço nas duas máquinas:

    Node1:

    # /etc/init.d/drbd restart

    Node2:

    # /etc/init.d/drbd restart

    Verifique se a sincronização começou:

    Node1:

    # cat /proc/drbd

    Verifique se o resultado está parecido com o apresentado abaixo:

    version: 8.0.14 (api:86/proto:86)
    GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33
    0: cs:SyncSource st:Secondary/Secondary ds:UpToDate/Inconsistent C r---
    ns:898320 nr:0 dw:0 dr:909728 al:0 bm:54 lo:0 pe:15 ua:357 ap:0
    [==>.................] sync'ed: 18.5% (3892/4769)M
    finish: 0:00:39 speed: 99,760 (99,760) K/sec
    resync: used:2/61 hits:56431 misses:56 starving:0 dirty:0 changed:56
    act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0

    Após a sincronização ter terminado, verifique o resultado do comando novamente:

    Node1:

    # cat /proc/drbd

    Verifique se o resultado está parecido com o apresentado abaixo:

    version: 8.0.14 (api:86/proto:86)
    GIT-hash: bb447522fc9a87d0069b7e14f0234911ebdab0f7 build by phil@fat-tyre, 2008-11-12 16:40:33
    0: cs:Connected st:Secondary/Secondary ds:UpToDate/UpToDate C r---
    ns:4883572 nr:0 dw:0 dr:4883572 al:0 bm:299 lo:0 pe:0 ua:0 ap:0
    resync: used:0/61 hits:304925 misses:299 starving:0 dirty:0 changed:299
    act_log: used:0/257 hits:0 misses:0 starving:0 dirty:0 changed:0

    Definindo máquina primária:

    Node1:

    # drbdadm primary all

    Node2:

    # drbdadm secondary all

    Formate o disco virtual no node1:

    Node1:

    # mkfs.reiserfs /dev/drbd0

    Caso precise alterar a máquina primária e secundária, use:

    Node1:

    # drbdadm secondary all

    Node2:

    # drbdadm primary all

    Adicione no fstab das duas máquinas:

    Node1:

    # vim /etc/fstab

    Adicione a linha:

    /dev/drbd0 /kplus reiserfs noauto 0 0

    Node2:

    # vim /etc/fstab

    Adicione a linha:

    /dev/drbd0 /kplus reiserfs noauto 0 0

    Realizando testes:

    Monte a pasta no node1:

    Node1

    # mount /kplus

    Crie um arquivo na pasta montada, com qualquer conteúdo:

    Node1

    # ls / > /kplus/teste.txt

    Verifique se o arquivo foi criado:

    Node1

    # ls /kplus

    Desmonte a pasta:

    Node1

    # umount /kplus

    Defina o node1 como secundário:

    Node1

    # drbdadm secondary all

    Defina o node2 como primário:

    Node2

    # drbdadm primary all

    Monte a pasta no node2:

    Node2

    # mount /kplus

    Verifique se o arquivo foi criado:

    Node2

    # ls /kplus



    Página 01 de 04
        



    Blog:

    Add to Google

    » Gostou do texto?
    Veja nossos livros impressos:

    Smartphones | Linux | Hardware
    Redes | Servidores


    ... ou encontre o que procura usando a busca:

cb
ct
Atualizações



[19/03] Montando um DVD de vídeo na unha, via terminal (atualizado)
[18/03] Core i7: Gulftown e a era dos 6 núcleos
[17/03] Artigo: Primeiras impressões do Haiku (alfa)
[16/03] Criando um sistema de recuperação usando o SystemRescueCD
[15/03] Processadores AMD, parte 2: Phenom II e o Athlon II
[14/03] AMD 890GX
[13/03] Dica: kMyFirewall, um firewall gráfico para o KDE
[12/03] Processadores AMD, parte 1: o Phenom
[11/03] Artigo: Uma olhada no PC-BSD 8.0
[10/03] Artigo: Investigando os modelos do Eee PC
[09/03] Artigo: nVidia Optimus
[05/03] Artigo: Comparativo de desktops: Zenwalk, Salix OS e GoblinX
[03/03] Artigo: Meego: a fusão entre Maemo e Moblin
[02/03] Artigo: Uma breve análise do Linux Mint 8 'Helena'
[01/03] Processadores: Chipsets e placas para o Core 2 Duo, Quad e Celeron
[26/02] Tutorial: Criando um loop de vídeo com o Kino e o Audacity
Destaques



» Hardware o Guia Definitivo, disponível para leitura online
» Como um HD funciona: Head Switch Time
» Redes: TCP/IP, endereçamento e portas
» O básico para o Debian Lenny no desktop
» Configurando um servidor de rede local com o Ubuntu, fácil
» Uma breve análise do Linux Mint 8 'Helena'
» Programação Orientada a Objetos: uma introdução
» Smartphones: TCPMP e CorePlayer
» PCI Express: compatibilidade, linhas de dados e o PCIe 2.0
» Dual-SIM: Usando dois chips no mesmo aparelho
» Smartphones e telas: Tamanho e touchscreen
Receba as atualizações diariamente por e-mail:
Assine o RSS Veja todas as atualizações... Add to Google
cb
Livros de Carlos E. Morimoto Contato HOME