Cluster + Gravação de arquivos em diretórios

Fala ae glr…estou com um probleminha que alguém já deve ter encarado.

Eu tenho um servidor (JBoss AS 7) que até então rodava em uma máquina junto com o mod_cluster. E neste servidor eu tenho uma pasta onde gravo arquivos como relatórios, imagens e outras mídias.

Recentemente precisei escalar meu JBoss para mais uma máquina. Com isso eu tenho dois diretórios de arquivos, um em cada cluster e não consigo fazer com que o JBOSS-1 acesse os arquivos do JBOSS-2 e vice-versa.

Alguém tem alguma sugestão ? Sem que haja quebra de segurança (deixar as pastas livres) e descartando o uso de banco de dados.

[/]s

Bom, você poderia usar um storage pra guardar os arquivos.

vc consegue falar um pouco mais sobre o assunto ? ou tem algum link de exemplo ?

Basicamente você terá uma partição de rede montada em cada nó do cluster. Dessa forma todos acessariam os mesmos arquivos.

Até quando você não tem cluster, usar essa abordagem te dá mais segurança, pois você não junta o serviço de disponibilização dos arquivos com o servidor de aplicações, podendo delegar isso pra um cluster com tolerância a falhas, backups, monitoramento e outras coisas que, se instaladas na máquina do servidor de aplicações, poderiam retirar uma fatia considerável de recursos.

[quote=Ataxexe]http://en.wikipedia.org/wiki/Clustered_file_system

Basicamente você terá uma partição de rede montada em cada nó do cluster. Dessa forma todos acessariam os mesmos arquivos.

Até quando você não tem cluster, usar essa abordagem te dá mais segurança, pois você não junta o serviço de disponibilização dos arquivos com o servidor de aplicações, podendo delegar isso pra um cluster com tolerância a falhas, backups, monitoramento e outras coisas que, se instaladas na máquina do servidor de aplicações, poderiam retirar uma fatia considerável de recursos.[/quote]

Valeu Marcelo, isso resolve o problema e ainda tem vantagens sobre o modo como eu vinha trabalhando,

abraços !!

[quote=Giulliano]
Valeu Marcelo, isso resolve o problema e ainda tem vantagens sobre o modo como eu vinha trabalhando,

abraços !![/quote]

Sempre às ordens :slight_smile:

Abraços!!

Aos que precisarem de algo parecido…deixei documentado um passo a passo.

http://giullianomorroni.com/portal/artigo/cluster_unison_cron

Você resolveu o problema de uma forma bem diferente da sugerida pelo colega, optando por sincronizar eventualmente os arquivos dentre os nós que rodam sua aplicação. Isso não introduziria a possibilidade de uma requisição ser roteada para uma máquina que ainda não sincronizou um determinado arquivo e causar um FileNotFoundException?

Com certeza existe essa possibilidade. Pro meu caso não tem problema, o período que eu determinei atende ao sistema.

Uma alternativa seri usar o “incrond” ao invés do “unison + cron”. Ele sincroniza toda vez que ocorrer um evento (parametrizado) nas pastas, ou arquivos. Eu tentei usar ele, mas não consegui configurar com sucesso, e acabei optando pelo “unison” mesmo.

Link sobre o incrond: http://www.cyberciti.biz/faq/linux-inotify-examples-to-replicate-directories/