Usando MongoDB como storage de arquivos #2

julho 21st, 2011 by caferrari Leave a reply »

No post anterior foi mostrado como montar um replicaSet para guardarmos nossos arquivos, aqui vou mostrar como configurar o servidor de aplicação e uma instância do MongoDB como arbitro.

Minha aplicação vai rodar também em uma maquina Ubuntu Server 11.04, com o PHP5.3, vamos configurar isso tudo de uma vez!

Instalação do PHP

Vamos precisar instalar alguns pacotes para tudo funcionar, comece instalando o mongodb, da mesma forma que foi feito no item “instalação” do post anterior, depois vamos precisar de mais alguns pacotes:

sudo aptitude install libapache2-mod-php5 php-apc php-pear php5-dev build-essential
  • libapache2-mod-php5: Instala o apache2, o php5 e claro, o modulo do apache
  • php-apc: Modulo de cache de opcode do php, para performance =)
  • php-pear: Vamos precisar paixar o modulo do mongo para o php
  • php5-dev e build-essential: Para que o modulo possa ser compilado

Depois de tudo instalado, vamos configurar o php para poder acessar o mongo e reiniciar o apache

sudo pecl install mongo
sudo sh -c 'echo "extension=mongo.so" > /etc/php5/apache2/conf.d/mongodb.ini'
sudo service apache2 restart

Configuração do Árbitro

Como disse no post anterior, o Árbitro é uma instância do mongo que existe apenas para decidir qual dos membros do replicaSet será o novo Master caso algum venha a falhar de alguma forma.

Primeiro edite todos os arquivos /etc/hosts das maquinas do replicaSet e adicione o IP do árbitro (que no meu caso é o IP do servidor de aplicação) e também adicione estas entradas no servidor de aplicação

192.168.0.100      arquivo1a 
192.168.0.101      arquivo1b
192.168.0.102      arquivo1bkp
192.168.0.99       arquivo1arbiter

Depois disso, faça login no servidor que é o seu nó Master do replicaSet, verifique quem é acessando:

http://192.168.0.101:28017/_replSet

e vamos configurar, acesse a administração do mongo:

mongo admin

e adicione o arbitro ao replicaSet:

rs.addArb("arquivo1arbiter")

feito isso, de ctrl+c e confira o status do seu replicaSet (http://192.168.0.101:28017/_replSet):

Com isso nosso replicaSet está pronto para receber nossa aplicação, faça testes desligando o processo de seus clientes e veja como um outro assume, neste caso, se o servidor arquivo1a e arquivo1b caírem, a aplicação para, mas é muito simples adicionar novos nós para aumentar essa segurança,  o mínimo para um replicaSet de produção são 3 instâncias para armazenamento, uma de backup e um arbitro.

até a próxima parte.

Advertisement

Trackbacks /
Pingbacks

  1. http://links.soudev.com.br

Deixe uma resposta