Sistema distruibuido de arquivos DFS
|
25/09/2010, 22:05
Resposta: #1
|
|||
|
|||
Sistema distruibuido de arquivos DFS
Olá amigos, alguem sabe como montar um sistema distruibuido de arquivos (DFS – Distributed File System do windows Server), quero montar um sistema DFS no linux equivalente ao do Windows Server, e configurar um diretorio para replicação ( Diretiva de duplicação ), para que um determinado diretorio esteja sempre disponivel para os usuarios, ou seja, tenho dois compartilhamentos, um no servidor A, e outro no servidor B, se o servidor A ficar fora do ar o servidor B terá o mesmo diretorio com todos os dados para os usuarios, assim estes arquivos sempre estarão disponiveis para a rede, conforme o exemplo em http://www.juliobattisti.com.br/artigos/windows/dfs.asp, quero montar o mesmo cenário mas usando apenas servidores LINUX, alguem sabe me informar o recurso que tenho que disponibilizar nos servidores linux para obter o mesmo resultado ?
Desde já meu muito obrigado ! |
|||
05/10/2010, 08:24
Resposta: #2
|
|||
|
|||
Re: Sistema distruibuido de arquivos DFS
Olá,
O Samba suporte este tipo de implementação que você procura. Se já é intimo do Samba, d6e uma olhada neste post do amigo Apígio Simões: http://www.aprigiosimoes.com.br/2009/09 ... o-samba-3/ Espero ter ajudado. André Luiz |
|||
14/10/2010, 14:31
Resposta: #3
|
|||
|
|||
Re: Sistema distruibuido de arquivos DFS
Olá, obrigado amigo, isso ajuda sim, fiz alguns testes aqui mas nao está funcionando, usei até um script para tentar rodar sincronizar, voce conhece algum tutorial para DRBD + heartBeat + samba para redundancia de dados ? ( Montagem de Cluster HA na distro Ubuntu Server 9.10 ) , obrigado!
( a distro que estou usando é Linux node2 2.6.31-14-generic-pae #48-Ubuntu SMP Fri Oct 16 15:22:42 UTC 2009 i686 GNU/Linux ao tentar formatar o disco virtual apresenta erro [email protected]:~# mkfs.reiserfs /dev/drbd0 mkfs.reiserfs 3.6.21 (2009 www.namesys.com) A pair of credits: Vladimir Saveliev started as the most junior programmer on the team, and became the lead programmer. He is now an experienced highly productive programmer. He wrote the extent handling code for Reiser4, plus parts of the balancing code and file write and file read. Continuing core development of ReiserFS is mostly paid for by Hans Reiser from money made selling licenses in addition to the GPL to companies who don't want it known that they use ReiserFS as a foundation for their proprietary product. And my lawyer asked 'People pay you money for this?'. Yup. Life is good. If you buy ReiserFS, you can focus on your value add rather than reinventing an entire FS. Failed to open '/dev/drbd0': Wrong medium type. As partições [email protected]:~# fdisk -l Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Disk identifier: 0x000b51f3 Device Boot Start End Blocks Id System /dev/sda1 * 1 12158 97659103+ 83 Linux /dev/sda2 12159 48631 292969372+ 83 Linux /dev/sda3 48632 58357 78124095 83 Linux /dev/sda4 58358 60801 19631430 82 Linux swap / Solaris [email protected]:~# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 92G 1002M 87G 2% / udev 2,0G 208K 2,0G 1% /dev none 2,0G 0 2,0G 0% /dev/shm none 2,0G 436K 2,0G 1% /var/run none 2,0G 0 2,0G 0% /var/lock none 2,0G 0 2,0G 0% /lib/init/rw /dev/sda3 74G 180M 70G 1% /msvsim [email protected]:~# ls /dev agpgart ecryptfs loop6 ppp ram4 sda3 tty1 tty22 tty35 tty48 tty60 usbmon2 vcsa3 binder fd loop7 psaux ram5 sda4 tty10 tty23 tty36 tty49 tty61 usbmon3 vcsa4 block full lp0 ptmx ram6 sg0 tty11 tty24 tty37 tty5 tty62 usbmon4 vcsa5 bus fuse mapper pts ram7 sg1 tty12 tty25 tty38 tty50 tty63 usbmon5 vcsa6 cdrom hpet mcelog ram0 ram8 shm tty13 tty26 tty39 tty51 tty7 vcs zero cdrw input mem ram1 ram9 snapshot tty14 tty27 tty4 tty52 tty8 vcs1 char kmsg net ram10 random snd tty15 tty28 tty40 tty53 tty9 vcs2 console log network_latency ram11 rfkill sndstat tty16 tty29 tty41 tty54 ttyS0 vcs3 core loop0 network_throughput ram12 rtc sr0 tty17 tty3 tty42 tty55 ttyS1 vcs4 cpu_dma_latency loop1 null ram13 rtc0 stderr tty18 tty30 tty43 tty56 ttyS2 vcs5 disk loop2 oldmem ram14 scd0 stdin tty19 tty31 tty44 tty57 ttyS3 vcs6 drbd0 loop3 parport0 ram15 sda stdout tty2 tty32 tty45 tty58 urandom vcsa dvd loop4 pktcdvd ram2 sda1 tty tty20 tty33 tty46 tty59 usbmon0 vcsa1 dvdrw loop5 port ram3 sda2 tty0 tty21 tty34 tty47 tty6 usbmon1 vcsa2 ) O que pode estar errado ? fonte dos dados para criar a redundancia, neste link http://www.guiadohardware.net/tutoriais ... eat-samba/ Desde já agradeço amigos !! Fran Why use Windows if we've got doors ? |
|||
14/10/2010, 16:38
Resposta: #4
|
|||
|
|||
Re: Sistema distruibuido de arquivos DFS
Olá, realmente não tenho experiencia com Linux-HA, mas encontrei este artigo do Jonas Silveira em :
http://www.jonas.net.br/?p=89 Veja se ele pode auxiliar. André Luiz |
|||
14/10/2010, 17:56
Resposta: #5
|
|||
|
|||
Re: Sistema distruibuido de arquivos DFS
Obrigado amigo, vou configurar os servidores e fazer uns testes e coloco o resultado aqui, um grande abraço!!
Fran Why use Windows if we've got doors ? |
|||
15/10/2010, 09:51
Resposta: #6
|
|||
|
|||
Re: Sistema distruibuido de arquivos DFS
Consegui instalar e configurar boa parte do sistema DRDB, o problema ocorre para a formatação do disco virtual, ao tentar formatar o disco recebo a seguinte mensagem de erro...
[email protected]:/dev# mkfs.reiserfs /dev/drbd0 mkfs.reiserfs 3.6.21 (2009 www.namesys.com) A pair of credits: Continuing core development of ReiserFS is mostly paid for by Hans Reiser from money made selling licenses in addition to the GPL to companies who don't want it known that they use ReiserFS as a foundation for their proprietary product. And my lawyer asked 'People pay you money for this?'. Yup. Life is good. If you buy ReiserFS, you can focus on your value add rather than reinventing an entire FS. Vitaly Fertman wrote fsck for V3 and maintains the reiserfsprogs package now. He wrote librepair, userspace plugins repair code, fsck for V4, and worked on developing libreiser4 and userspace plugins with Umka. Failed to open '/dev/drbd0': Wrong medium type. Pesquisei na Internet e em diversos foruns, sem sucesso, nao encontrei qualquer informação sobre como contonar este tipo de problema, todas as partiçoes estão com tabela de arquivos ext3, tentei ainda formatar este disoc virtual usando [email protected]:/dev# mkfs.ext3 /dev/drbd0 mke2fs 1.41.9 (22-Aug-2009) mkfs.ext3: Wrong medium type while trying to determine filesystem size E mesmo assim nao consegui sucesso neste disco, segue meu fstab para referencia # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 # / was on /dev/sda1 during installation UUID=89e11352-5d0e-4759-99af-f144d6c54439 / ext3 errors=remount-ro 0 1 # /database was on /dev/sda2 during installation #UUID=b8bd9e49-24c0-44fe-a563-4e1af1abccaa /database ext3 defaults 0 2 # /msvsim was on /dev/sda3 during installation UUID=4d538aa6-5419-4961-9379-2a3eab793534 /msvsim ext3 defaults 0 2 # swap was on /dev/sda4 during installation UUID=3dd758a6-f1e5-4887-b2ee-36807021f872 none swap sw 0 0 /dev/scd0 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0 /dev/drbd0 /database reiserfs noauto 0 0 Alguém aqui no forum já teve este tipo de problema na configuração de cluster HA usando DRDB ? Desde já agradeço a ajuda amigos, um grande abraço para todos !!! Fran Why use Windows if we've got doors ? |
|||
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 ? |
|||
« Anteriores | Seguintes »
|
Usuários visualizando este tópico: 1 Visitantes