Balanceamento de carga de um compartilhamento de arquivos do Windows usando o HA-Proxy

5

Depois de puxar meu cabelo para fora do DFS, acabei tendo essa idéia estranha e potencialmente perigosa em que, possivelmente, eu poderia usar o HA-Proxy para balancear a carga de um compartilhamento de arquivos entre servidores.

Fiz alguns rastreamentos de pacotes corretivos e parece que a porta TCP 445 é a única coisa envolvida no uso do compartilhamento de arquivos do Windows. Eu sempre pensei por muitos anos que o UDP 139, 135 etc também estavam envolvidos em pelo menos estabelecer a conexão - mas aparentemente não!

Então eu configurei um teste básico:

listen SMBTest *:445
  mode tcp
  server Smb1 172.16.61.201:445
  server Smb2 172.16.61.202:445

E você nunca vai adivinhar o que ... funciona ??? (!)

Agora, obviamente, há toda a preocupação com a sincronização entre os servidores de arquivos (é claro). Isso poderia ser facilmente resolvido com um pouco de script Robocopy.

E considerando que eu só preciso de um compartilhamento de arquivos somente para leitura HA, não haverá problemas com relação ao bloqueio de arquivos, etc.

  • Alguém pode me dizer se o que estou jogando aqui é fogo? Eu realmente não achei que funcionaria e agora estou um pouco chocado.
  • Quais seriam as desvantagens?
  • Isso poderia ser invocado para um ambiente de produção?
por nbevans 04.03.2011 / 15:54

1 resposta

2

A replicação de arquivos é um problema muito mais difícil do que você pode imaginar.

A replicação de arquivos normalmente não é bem dimensionada. Você começará a ver problemas quando o número de arquivos do seu processamento for de meio milhão ou mais, ou a cópia demorar mais do que o necessário para fazer a sincronização, para que você precise manter a sessão por mais tempo e reduzir a duração da sincronização. intervalos entre cópias ou copie menos arquivos.

Pelo pouco que sei sobre sua carga de trabalho específica, isso ainda pode ser bom para você. Você disse que o compartilhamento de arquivos é somente leitura, o que me leva a acreditar que você atualizou os dados em grandes quantidades de lote. O Robocopy pode ser lento nessas circunstâncias, já que o intervalo entre as mudanças é tão longo que isso pode ser um risco aceitável.

Como o HAProxy oferece inteligência comparativa a um balanceador de carga da camada 4 nessa configuração, talvez seja mais vantajoso usar um balanceador de carga da camada 4, já que eles geralmente lidam com mais throughput com menos latência sob altas cargas. Isso pode não se aplicar ao seu problema, mas sim para pensar.

Se você precisar de recursos e desempenho (como compartilhamentos de r / w que precisam ser sincronizados), isso não funcionará. Se você acha que precisará disso com esse conjunto de dados no futuro, considere sua solução com cuidado, já que seu conjunto de dados pode ter terabytes de tamanho e não gostaria de estar em uma situação em que você precisa refazer o upload e enviá-lo novamente para um nova solução.

    
por 20.03.2011 / 11:53