← Hosting

Joomla em servidores balanceados

Lida 3267 vezes

Offline

raugusto 
Elite
Mensagens 3145 Gostos 33
Feedback +13

Troféus totais: 31
Trófeus: (Ver todos)
Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

Alguem sabe se é possivel implementar uma solução baseada em Joomla com dois servidores balanceados? A ideia é sempre que falha 1 o outro retoma tudo e tem sempre acesso a toda a informação. A base de dados também deverá ser balanceada.

é possivel? com algum produto de clustering?
Offline

Nuno 
Administrador
Mensagens 7780 Gostos 216
Feedback +2

Troféus totais: 42
Trófeus: (Ver todos)
100 Poll Votes Level 7 Search Mobile User Level 6 Super Combination Combination Topic Starter 50 Poll Votes 10 Poll Votes

Para ser sincero não li isto, mas pareceu-me discutirem o que queres... Na 2º pagina tens lá um pdf.

http://forum.joomla.org/viewtopic.php?t=42788
Offline

BlueEagle 
Membro
Mensagens 2221 Gostos 1
Troféus totais: 31
Trófeus: (Ver todos)
Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3

Se bem percebi o que pretendes fazer é ter 2 servidores A e B.

O Servidor A tem o site e o B é um "mirror" do servidor A .
O Servidor B entra em "acção" quando o A falha. Penso que se chama load balancing.
Offline

Miguel Dias 
Membro
Mensagens 1273 Gostos 1
Feedback +1

Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1

Nao sabia que era possivel :P tambem da para aplicar em wordpress?
Offline

BlueEagle 
Membro
Mensagens 2221 Gostos 1
Troféus totais: 31
Trófeus: (Ver todos)
Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3

A questão aqui acho que não tem a ver com o CMS usado penso que isso só seja possível através de soluções específicas para servidores, duvido que seja aplicável a shared host.
Offline

asturmas 
Administrador
Mensagens 19734 Gostos 50
Feedback +2

Troféus totais: 39
Trófeus: (Ver todos)
Mobile User Windows User Super Combination Combination Topic Starter 100 Poll Votes 50 Poll Votes 10 Poll Votes Poll Voter Poll Starter

Desde que tenhas o conteúdo nos 2 servidores, o responsável pelo balanceamento é normalmente um switch proprio e não o joomla.
Offline

marsupillami 
Equipa
Mensagens 850 Gostos 4
Feedback +1

Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 500 Posts

Possível é, mas dependerá da forma e objectivo desse balanceamento. O tal "switch" (deves estar a falar do dispositivo Layer 7 que estuda o tráfego e o distribui pelos servidores) não resolve todos os problemas, já que a aplicação também tem de ser capaz de suportar esta distribuição de dados.

O objectivo será manteres o site disponível caso um servidor vá abaixo, ou distribuição de load por exemplo? Tem de ser em tempo real, ou algum downtime não causará problemas. Será um balanceamento ao nível e Layer 7 ou algo mais elementar tipo por DNS (round-robin)? Os pontos cruciais são a base de dados e as sessões (este último em casos de distribuição de load).

Os ficheiros são facilmente sincronizáveis através de rsyncs ou outro método alternativo. Eventualmente poderás estar a utilizar uma solução centralizada de storage... Como estavas a pensar implementar isso?
Offline

raugusto 
Elite
Mensagens 3145 Gostos 33
Feedback +13

Troféus totais: 31
Trófeus: (Ver todos)
Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

com microsoft para mim isto nao tem ciencia. Com joomla e linux não sei quais as opções.

Sim existe um balanceador.
Sim, dois servidores a fazer balanceamento de carga
Não é para shared hosting, é para ter os servidores no datacenter da empresa e usufruir de todos os serviços existentes
mysql em cluster é possível? com que produto?

agora imaginem um user, acede ao backoffice do servidor 2, faz upload de um ficheiro, os dados são adicionados na bd. Tem que se ter um processo de sincronismo entre os dois aplicacionais certo? tipo dfs, ou qualquer tipo de cluster file system certo?

Offline

Santo 
Membro
Mensagens 1657 Gostos 4
Troféus totais: 31
Trófeus: (Ver todos)
Windows User Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

O MySQL permite replicação, tal como é feito com o MSSQL -> http://dev.mysql.com/doc/refman/5.0/en/replication.html

Aquilo que concerteza não irá funcionar muito bem (posso estar enganado) serão as sessões que se podem perder.

Um potencial setup seria:

Mysql Master -> Mysql slave
Jommla Master -> Joomla slaves
rsync para sincronizar os joomlas. Estes slaves "bebem" a informação no mysql slave
Admin usa os masters para trabalhar (escrita)

Adicionalmente um load balancer na frente dos joomlas é necessário para balancear a carga.

Provavelmente terás de hackar o joomla a nivel de sessões e mais alguma coisa, mas concerteza que é um setup a experimentar. No caso do acesso ao mysql slave se tornar num bottleneck podes sempre adicionar 1 mysql slave por cada joomla slave numa relação 1->1 (joom->mysql).

Usando meia duzia de VPS's e um load balancer podes perfeitamente testar o ambiente.

Saudações
Offline

raugusto 
Elite
Mensagens 3145 Gostos 33
Feedback +13

Troféus totais: 31
Trófeus: (Ver todos)
Level 6 Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Level 5 Level 4 Level 3 Level 2

thanks
Offline

marsupillami 
Equipa
Mensagens 850 Gostos 4
Feedback +1

Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 500 Posts

Para a base de dados sugiro-te que equaciones o storage engine baseado em NDB (caso a BD do Joomla seja relativamente pequena). Tem como vantagens frente ao "MySQL Replication" uma abstracção superior da aplicação e a replicação é feita em tempo real e de forma síncrona, em contraste com o "Replication", que no fundo faz uma cópia exacta da BD mas que te obriga a escreveres sempre no Master Server (e aí terás de mexer um pouco com a aplicação para que o faça).

- No caso do NDB, se um dos elementos do cluster deixa de funcionar, a aplicação continua disponível sem qualquer perda de dados, comportando-se assim como um verdadeiro cluster com "failover" e distribuição de load. A redundância será tanto maior quanto o número de elementos que adiciones ao Cluster.
- No caso do Replication, terás de fazer um setup do sistema e da aplicação para que, quando o Master ficar inacessível, faça o takeover para o Slave.

Quanto às sessões, poderás equacionar utilizar uma partição NFS para escrever no mesmo local, mas o ideal seria teres uma SAN redundante onde armazenavas tanto os dados do Joomla como as sessões na SAN.

Tudo dependerá de:
- Orçamento
- Importância do site (será que justifica o investimento? Se ficar alguns minutos em baixo é crítico?)
- Se as sessões se perderem, será crítico?

... deduzo que já tendo o load balancer (que é um investimento muito elevado), todo o restante investimento se justifique (SAN + uns 3 ou 4 servidores virtualizados). Se recorreres à virtualização como o Santo sugeriu conseguirás provavelmente tornar toda a solução bastante mais económica (em investimento e consumo energético).
Offline

anjo2 
Membro
Mensagens 3020 Gostos 0
Troféus totais: 31
Trófeus: (Ver todos)
Super Combination Combination Topic Starter 10 Poll Votes Poll Voter Poll Starter Level 5 Level 4 Level 3 Level 2

o conteúdo das sessões podem ser guardadas na base de dados, se o joomla não faz isso por definição deve haver modulos para isso