Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Sistema distruibuido de arquivos DFS
29/10/2010, 07:26
Resposta: #7
Re: Sistema distruibuido de arquivos DFS
Olá amigos, depois de pesquisas e testes consegui fazer o DRBD rodar, usei duas maquinas com hardware distinto, porém os HDs eram iguais, dois discos de 500GB da seagate, segue tutorial.

Servidores node1 e node2

Node1 ip 192.168.0.195/24
Node2 ip 192.168.0.194/24
Instalação
A instalação do drbd no Debian é simplificada, pois este sistema já possui todos os pacotes necessários para a utilização dele.

Este manual irá cobrir a instalação a partir do module-assistant, o drbd poderia ser instalado de outras maneiras, mas este não é o escopo desta documentação.

Instalando pré-requisitos:

# apt-get install module-assistant

Atualizando o module-assistant:

# m-a update


## Instalação do DRBD node1 e node2

aptitude install drbd8-utils


## configurar arquivo hosts
[email protected]:/etc# cat hosts
127.0.0.1 localhost
192.168.0.195 node1.vannucci.br node1
192.168.0.194 node2.vannucci.br node2

[email protected]:/etc# cat hosts
127.0.0.1 localhost
192.168.0.194 node2.vannucci.br node2
192.168.0.195 node1.vannucci.br node1

## configurar o arquivo drbd.conf em /etc
vi drbd.conf

global { usage-count no; }
common { syncer { rate 100M; } }
resource mirror1 {
protocol C;
startup {
wfc-timeout 15;
degr-wfc-timeout 60;
}
net {
cram-hmac-alg sha1;
shared-secret "secret";
}
on node1 {
device /dev/drbd0;
disk /dev/sda2;
address 192.168.0.195:7788;
meta-disk internal;
}
on node2 {
device /dev/drbd0;
disk /dev/sda2;
address 192.168.0.194:7788;
meta-disk internal;
}


## :::: desmontar a partição que será replicada nos dois nos
node1 e node2
umount /database



## zerar a partição que será replicada nas duas máquinas
dd if=/dev/zero of=/dev/sda2 bs=1M count=128



[email protected]:/etc# dd if=/dev/zero of=/dev/sda2 bs=1M count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 1,3471 s, 99,6 MB/s



[email protected]:/etc# dd if=/dev/zero of=/dev/sda2 bs=1M count=128
128+0 records in
128+0 records out
134217728 bytes (134 MB) copied, 1,84824 s, 72,6 MB/s



## CRIAR O DISCO VIRTUAL nas duas maquinas, fique atendo ao nome do recurso dentro do arquivo
drdb.conf que é utilizado para essa atividade

[email protected]:/etc# drbdadm create-md mirror1
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.


## carregar o modulo
modprobe drbd


## Atar o disco nas duas máquinas
drbdadm attach msv

## inicia drbd
[email protected]:/etc# /etc/init.d/drbd start


## ver status
node1 segue

[email protected]:/etc# cat /proc/drbd
version: 8.3.3 (api:88/proto:86-91)
GIT-hash: 49bfeeaf3690ad0b9afd5376feda9e9eb34a30f3 build by [email protected], 2010-10-27 15:17:08
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:371082100


node2 segue
[email protected]:/etc# cat /proc/drbd
version: 8.3.3 (api:88/proto:86-91)
GIT-hash: 49bfeeaf3690ad0b9afd5376feda9e9eb34a30f3 build by [email protected], 2010-10-27 17:15:56
0: cs:Connected ro:Secondary/Secondary ds:Inconsistent/Inconsistent C r----
ns:0 nr:0 dw:0 dr:0 al:0 bm:0 lo:0 pe:0 ua:0 ap:0 ep:1 wo:b oos:371082100


:::::::::: atenção agora
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 [email protected], 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 diferent


## Definir a maquina primaria, execute no node1
drbdadm primary all

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.
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
para a versão 8 use
# drbdadm -- --overwrite-data-of-peer primary all

Caso não apareça nenhuma mensagem de erro, significa que o comando foi bem sucedido.


## Para verificar o status no node 1 execute a verificação usando cat

[email protected]:/etc# cat /proc/drbd
version: 8.3.3 (api:88/proto:86-91)
GIT-hash: 49bfeeaf3690ad0b9afd5376feda9e9eb34a30f3 build by [email protected], 2010-10-27 15:17:08
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----
ns:790232 nr:0 dw:0 dr:796188 al:0 bm:48 lo:1 pe:78 ua:179 ap:0 ep:1 wo:b oos:370294356
[>....................] sync'ed: 0.3% (361612/362384)M
finish: 8:11:45 speed: 12,532 (11,584) K/sec

Note que em 0: cs: temos a informação ro:Primary/Secondary ainda Inconsistent , o mais importante a partir desse ponto foi a definição da maquina primária, note que agora os discos estão sincronizados como pode ser observado em cs:SyncSource

Para acompanhar a replicação de dados use o comando

watch -n1 cat /proc/drbd

o resultado apresentado será

Every 1,0s: cat /proc/drbd Thu Oct 28 07:32:31 2010

version: 8.3.3 (api:88/proto:86-91)
GIT-hash: 49bfeeaf3690ad0b9afd5376feda9e9eb34a30f3 build by [email protected], 2010-10-27 15:17:08
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r----
ns:5135804 nr:0 dw:0 dr:5141372 al:0 bm:313 lo:1 pe:90 ua:167 ap:0 ep:1 wo:b oos:365949172
[>....................] sync'ed: 1.4% (357372/362384)M
finish: 7:56:29 speed: 12,784 (11,480) K/sec



Usando o DRBD

A partir do momento que o drbd estiver configurado, os discos rígidos individuais de cada máquina não deverão ser utilizados diretamente. Todo acesso deverá ser realizado através do dispositivo "virtual" /dev/drbd0.

As aplicações que são executadas em userland não irão enxergar nenhuma diferença entre o dispositivo drbd e qualquer outro dispositivo de blocos.

Desta forma teoricamente é possível fazer qualquer coisa que se pode fazer com um dispositivo de blocos com o dispositivo drbd.

IMPORTANTE: Para acessar, formatar, montar, particionar e etc o dispositivo drbd, é necessário que a máquina que vá acessar o dispositivo seja primária. O Drbd 0.7 não deve ser usado em duas máquinas como primária ao mesmo tempo, sobre o risco, caso não funcione, de corromper os dados e sistemas de arquivos dos discos.

Formatando o dispositivo criado:
Poderá ser utilizada qualquer ferramenta de criação de qualquer sistema de arquivos.
Neste documento será utilizado o sistema de arquivos ext3 e o utilitário mkfs.ext3.
Na máquina primária execute o comando:

# mkfs.ext3 /dev/drbd0


[email protected]:/database# mkfs.ext3 /dev/drbd0
mke2fs 1.41.9 (22-Aug-2009)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
23199744 inodes, 92770525 blocks
4638526 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
2832 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968

Writing inode tables: 217/2832


formatando o dispositivo criado:

Poderá ser utilizada qualquer ferramenta de criação de qualquer sistema de arquivos.

Neste documento será utilizado o sistema de arquivos ext3 e o utilitário mkfs.ext3.

Na máquina primária execute o comando:

# mkfs.ext3 /dev/drbd0

Montando o dispositivo criado:

Na máquina primária execute o comando:

# mount -t ext3 /dev/drbd0 /database

Desmontando o dispositivo criado:

Na máquina primária execute o comando:

# umount /dev/drbd0

Rodando fsck no dispositivo criado:

Na máquina primária execute o comando:

# fsck /dev/drbd0

Alternando entre Primário e Secundário:
Na máquina primária execute o comando:

# drbdadm secondary all

Na máquina secundária execute o comando:

# drbdadm primary all


Utilizando o script de inicialização do DRBD

Agora já é possível parar o serviço através do script.

# /etc/init.d/drbd stop

Para iniciar o serviço utilize:

# /etc/init.d/drbd start
Procedimento manual

Para parar o drbd, torne a máquina secundária:

# drbdadm secondary all

Desligue e desconecte o drbd:

# drbdadm down all

Por fim, remova o módulo:

# rmmod drbd


Testando se tudo está funcionando corretamente
Monte o dispositivo na máquina primária:

# mount -t ext3 /dev/drbd0 /database

Crie um arquivo no diretório onde foi montado o drbd, por exemplo:

# cd /database/ ; echo funcionou > teste
# ls

Verifique o espaço disponível no dispositivo:

# df -h /dev/drbd0

Desmonte o dispositivo: (desmontamos para poder colocar a maquina primaria como secundária)

# cd / ; umount /dev/drbd0

Torne a máquina primária em secundária:

# drbdadm secondary all

Tornar a outra máquina em primária:

Na outra máquina digite:

# drbdadm primary all

Montar o dispositivo na nova máquina primária: (Agora a maquina secundária será a primária)

# mount -t ext3 /dev/drbd0 /database

Verificar se o arquivo criado na antiga primária existe na nova primária:

# ls /database
# cat /database/teste

Se funcionou parabéns, por você ter conseguido ler este documento até o final e por ter uma instalação plenamente funcional do drbd.


Ahh, a fonte desses dados é do site VOL
[ http://www.vivaolinux.com.br/artigo/Ins ... /?pagina=1 ]


Obrigado andlss pela atenção ao tópico, e ajuda !!
Um grande abraço para todos!!

Fran
Why use Windows if we've got doors ?
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Mensagens neste Tópico
Re: Sistema distruibuido de arquivos DFS - fransdantas - 29/10/2010 07:26

Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS