Armazenamento de arquivos para servidores Web front-end replicados?

2

Somos uma empresa que administra um site com cerca de 800 mil visitantes únicos por mês, com uma taxa de crescimento constante de 35% a 40%. Acabamos de ter um servidor para um banco de dados mysql dedicado e um servidor front-end nginx + passageiro. Estamos atingindo o próximo gargalo depois de ficar bem por um tempo e estamos pensando em expandir horizontalmente adicionando uma solução de servidor front-end de carga balanceada (medimos o final da fonte como o gargalo). Os arquivos estão obviamente localizados no único servidor front end que temos agora.

Qual é a melhor opção para manter os arquivos do site sincronizados entre dois servidores front-end? Eu pesquisei bastante e alguém recomendou "rsync". O único problema que tenho com isso é a lacuna que você tem quando o cron job não roda por um tempo. Nosso conteúdo é atualizado com frequência e nós o divulgamos na primeira página. Outra solução parece ser o NFS e montar os arquivos para o segundo servidor front-end também. Algum problema com esta solução? Quaisquer recomendações são bem vindas.

    
por miccet 21.10.2011 / 20:37

1 resposta

1

Nós executamos o host compartilhado com um sistema de arquivos replicado AFS, e ele funciona razoavelmente bem para nós (para uma certa definição de "razoavelmente bem".) Coisas a serem observadas:

  • A execução de um servidor de sistema de arquivos de rede é uma quantidade não trivial de administração do sistema, especialmente se você quiser fazer isso bem (por exemplo, replicar seus servidores de arquivos para alta disponibilidade).

  • Você perde a capacidade de realizar certas operações do sistema de arquivos (por exemplo, relógios de granularidade e bloqueio inotify). Se você tiver um site bem comum, isso não é um problema, mas algo a ser observado (nós Eu certamente fui ferido por falta de um inotify, para recarregar aplicativos FastCGI).

  • Se você estiver usando a manipulação de sessão baseada em arquivo, precisará certificar-se de tornar as sessões fixas em um servidor ou de garantir que essas sessões sejam replicadas. Este é mais um "agora eu tenho vários servidores front-end" do que um problema de sistema de arquivos de rede.

  • Ajuste seus parâmetros de cache com cuidado. Eles podem fazer ou quebrar seu aplicativo.

  • O modelo de segurança do NFS é muito estúpido, portanto, você provavelmente desejará rotea-lo em uma rede de back-end segura.

Obviamente, a complexidade aumenta muito quando você faz isso. Boa sorte.

    
por 21.10.2011 / 20:57

Tags