sexta-feira, 24 de junho de 2011

JBoss - WAR com diretório compartilhado

Estes dias me deparei com a seguinte situação, uma aplicação WAR que necessitava de um diretório compartilhado para armazenar arquivos. Um JBoss em cluster, então nada de diretório local, deste modo tinha duas soluções: NFS, GFS ou OCF2.

Bom, NFS não me pareceu uma boa solução, pois teria um ponto único de falha, no caso o servidor NFS. Restava então a solução GFS ou OCF2, GFS não era possível por causa do cluster estar em um Xen Server da Citrix que não suporta fencing device, logo estava eliminado, me restou o OCFS.

Só que como o cluster do JBoss tinha duas instâncias por VM, ou seja, 101 e 102 e 201 e 202, não era possível criar um ponto de montagem OCFS2 para ambas as instâncias sem reescrever a aplicação.

O ponto de montagem deveria ser por exemplo: /opt/jboss-eap-5.1/jboss-as/server/101/deploy/my.war/userfiles

Então teria que ter dois pontos de montagem:

/opt/jboss-eap-5.1/jboss-as/server/101/deploy/my.war/userfiles
/opt/jboss-eap-5.1/jboss-as/server/102/deploy/my.war/userfiles

E atualmente o ponto de montagem configurado era /dados e os arquivos necessários estavam em /dados/usersfiles

Tentei um link simbólico: ln -s /dados /opt/jboss-eap-5.1/jboss-as/server/101/deploy/my.war/userfiles

Não funcionou.

Solução: Movi a pasta deploy para /dados(OCF2) e o userfiles para /dados/deploy/my.war, ficando /dados/deploy/my.war/userfiles

Após criei os seguintes links simbólicos:

ln -s /dados/deploy /opt/jboss-eap-5.1/jboss-as/server/101/deploy
ln -s /dados/deploy /opt/jboss-eap-5.1/jboss-as/server/102/deploy

O JVMRoute deixei no arquivo de inicialização das instâncias, exemplo /etc/init.d/jboss-init-101

Pronto, o JBoss entendeu o link da pasta deploy e 100% funcionando.

É uma dificuldade peculiar, mas de peculiaridades é feita a vida.

Nenhum comentário:

Postar um comentário