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 Arbitro
Como disse no post anterior, o Arbitro é uma instancia 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 arbitro (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.
