A melhor maneira de espelhar dados no cluster apache de dois nós

2

Estou arquitetando uma nova estrutura de servidor e planejo ter dois cavalos de trabalho apache e um banco de dados sql atrás de ambos. Eu queria saber qual é a melhor maneira de espelhar os dados entre os servidores apache. Os dados do usuário devem ser limitados nesses servidores, pois a maioria deles estará no S1.

A partir da pesquisa preliminar que fiz até agora, li sobre o GlusterFS e o DRBD, mas um simples script rsync faria o truque?

    
por bswinnerton 05.08.2011 / 22:16

1 resposta

5

Honestamente, eu não sugeriria fazer replicação em tempo real entre as máquinas do apache. Faça com que eles tenham seu próprio código ou rsync do servidor "principal" de vez em quando. Em tempo real (ou próximo) há muita inspeção de arquivos que não é necessária 99% do tempo.

Pessoalmente, eu recomendaria ter três camadas.

Balanceamento de carga / Servidores da Web (seus processos http / php)

Servidores de arquivos (código / arquivos que precisam ser compartilhados em todos os nós da web)

Servidores de banco de dados (seus bancos de dados de back-end)

Muito mais simples do que ter replicação completa entre servidores.

Se você não tiver a capacidade de ter um servidor de arquivos dedicado (NFS / ect), Terá o "Web2" Montado "Carregamentos de usuário do Web1", Ambos os servidores da Web poderão ler & escrever para a área compartilhada, sem necessidade de sincronização, a menos que você atualize o código do site.

Web1
/var/www/website/www
/var/www/website/_files

web2
/var/www/website/www
/var/www/website/_files (NFS mouned to Web1)
/var/www/website/_files.bak (rsync copy from web1 incase web1 explodes)

Ambos os servidores são quase-vivos em termos de armazenamento, são redundantes e você não precisa adicionar nenhuma bobagem de sincronização complexa.

editar:

link

há um guia sobre como usar o NFS em uma instância do EC2.

    
por 06.08.2011 / 00:53