Adicionando o segundo servidor de arquivos para um site

1

Eu rodei um site que contém muitos arquivos grandes e, mesmo depois de comprar a quantidade máxima de espaço que meu host fornece em um único servidor (unidades 8x2TB), agora estou com pouco espaço em disco.

Eu gostaria de adicionar um segundo servidor apenas para armazenar e exibir arquivos. Minha pergunta é qual é a melhor maneira de fazer isso? Montar o novo servidor usando o NFS é unidirecional. Outra maneira é reescrever meu aplicativo para utilizar vários servidores, mas isso é muito trabalho.

Existe uma maneira fácil de isolar o armazenamento subjacente do servidor da Web para que, no servidor da Web, tudo apareça como um único caminho, mas na verdade se espalhe por vários servidores?

Meu sistema operacional é Linux CentOS, meu servidor é Apache.

Observe que o único problema que estou enfrentando é o espaço em disco, não a largura de banda ou a CPU, etc. Não preciso equilibrar a carga do tráfego, apenas adicionar mais espaço.

    
por dankw2 09.04.2013 / 04:07

6 respostas

0

Eu acho que o NFS é o caminho a seguir, mas existem algumas outras opções, como o FreeNAS (baseado no FreeBSD), AoE , que significa ATA over Ethernet, e SAMBA, mas eu não recomendaria a menos que você também esteja procurando interoperabilidade do Windows.

    
por 09.04.2013 / 04:29
0

Eu não sei quanto custo você tem.Mas, neste caso, podemos usar NAS ou para melhor com SAN para substituir o espaço nos servidores. Vantagens com a área de armazenamento

  • Com o NAS / SAN, você ainda usa o NFS ou algum protocolo popular com alta velocidade para compartilhar arquivos entre vários servidores. Não precisa alterar muitas configurações nos servidores.

  • Com NAS / SAN você pode dimensionar seus sistemas a qualquer momento, você nunca encontrará os problemas sobre o espaço em disco, pois você pode solicitar muitos discos e hot plug para isso imediatamente. Incrível que, quando todos os seus servidores não precisam configurar para armazenar dados em local, e quando 1 ou 2 nós abaixo você ainda está executando seus serviços normalmente. É tão bom

Desvantagens com a SAN

  • CUSTO. Mas se você precisar pedir outro servidor com muitos discos, o que pode ser melhor?
por 09.04.2013 / 04:45
0

Quando você começa a precisar lidar com a quantidade de armazenamento de dados que tem atualmente, você realmente só tem duas opções, até onde eu vejo:

1) Use um armazenamento de objetos como o Amazon S3 ou o Rackspace Cloud Files para seus dados. Isso fornecerá uma capacidade de armazenamento quase ilimitada e livrará o servidor da necessidade de atender a esses arquivos.

2) Comece a gerenciar seu próprio equipamento. Claro, você poderia obter algum tipo de sistema de arquivos em cluster instalado e funcionando em um servidor dedicado gerenciado, mas você estará lutando contra o sistema de várias maneiras. Para garantir um armazenamento de dados confiável, você precisará de vários servidores e os custos aumentarão muito rapidamente.

    
por 09.04.2013 / 04:48
0

Sugiro obter mais espaço em disco externo. Qualquer provedor de hospedagem sério deve ser capaz de fornecer um sistema SAN, que pode se expandir quase que ilimitado. Mas eu aconselho contra o uso do NFS. Na minha experiência, o apache e o NFS nem sempre funcionam perfeitamente juntos. É melhor usar um protocolo SAN adequado, como o iSCSI. Você quer um dispositivo de disco dedicado para o seu servidor, não um compartilhamento de disco.

    
por 09.04.2013 / 05:38
0

O que você normalmente quer é escalar o tempo todo com o número de servidores. É difícil de ver sem conhecer os detalhes da nossa aplicação, mas vou sugerir o uso da natureza distribuída da sua configuração. Com o HTTP, você tem uma boa oportunidade de redirecionar solicitações para servidores diferentes, dependendo do caminho.

Bem, o NFS também funcionará, mas em algum momento seu servidor web será o gargalo

    
por 09.04.2013 / 07:30
0

Existem muitas respostas sobre as vantagens das diferentes soluções de disco, mas também há outra opção. Você poderia simplesmente ter mais de um servidor da Web e servir diferentes partes do site de diferentes servidores.

Uma possibilidade é dividir seu site com base no tipo de recurso. Por exemplo: grande parte do conteúdo é de imagens, portanto, você configura um servidor da Web separado com o nome do host images.yourdomain.com . Em seguida, você altera todos os links para imagens em seu aplicativo para não mais apontar para, por exemplo, http://www.mysite.com/images/image1.jpg e, em vez disso, aponte para http://images.yourdomain.com/image1.jpg .

Você também pode fazer isso usando mod_rewrite, para que quando um navegador solicitar um recurso de /images /whatever.jpg , ele seja reescrito para http://images.yourdomain.com/whatever.jpg .

Uma terceira opção é usar o mod_proxy, para encaminhar certas solicitações para um segundo servidor sem reescrevê-lo. A desvantagem disso é que todas as solicitações de imagens serão passadas pelos dois servidores, afetando a CPU, a memória e a rede. Mesmo que eles não sejam um problema agora, eles podem estar no futuro.

Eu não sei se isso é útil para você; isso dependeria de como seu aplicativo é escrito.

    
por 09.04.2013 / 09:02