Existe um protocolo de “compartilhamento de arquivos” de área local de alto desempenho?

3

Parece-me que a maioria dos protocolos de "compartilhamento de arquivos" da rede é um ou mais antigos, lentos e inseguros. Os protocolos mais usados parecem ser SMB, NFS e WebDAV.

Estou sentado aqui, olhando para o iTunes tentando escanear uma biblioteca de mídia sobre o SMB, e ela está a cerca de 2 MB por segundo. Ele é conectado por meio de rede gigabit com fio, e o compartilhamento reside em uma matriz RAID que pode gerar até 50 vezes mais throughput, mesmo ao pesquisar. Isso é ridículo!

Alguns protocolos de compartilhamento de arquivos do passado podem incluir:

  • Andrew File System
  • Protocolo 9P / Styx do Plan9 / Inferno
  • RFS do antigo System V
  • protocolo AppleShare
  • Protocolo Novell Netware

Meus requisitos são razoavelmente simples:

  • Segurança moderna - idealmente, usa chaves públicas / privadas como SSH. Tunelamento por TLS seria ótimo.
  • Alto desempenho - a verificação de um sistema de arquivos ou a leitura de dados em massa devem ser executados na velocidade que o servidor e a rede podem suportar.
  • Clientes nativos para Windows e Linux - outros seriam interessantes, mas não interessantes para mim.
  • Bloqueio de arquivo compatível com Linux e Windows.
  • Altere a notificação compatível com o Linux e o Windows.
  • Idealmente, estão disponíveis implementações de código aberto de alta qualidade, mas eu ficaria bem com uma pequena taxa de licença. (E, não, não em toda a empresa "pequeno" - eu sou um cara normal com uma família e uma hipoteca)

Estou faltando alguma coisa?

    
por Jon Watte 18.12.2011 / 23:33

2 respostas

4

O que há de errado com o NFS 4?

Modern security -- ideally, uses public/private keys like SSH. Tunneling over TLS would be great.

O NFS 4 oferece autenticação moderna. A segurança de dados deve ser feita por meio de uma VPN.

High performance -- scanning a file system or reading bulk data should run at the speed that the server and network can support.

O NFS 4 é de alto desempenho razoável para o caso geral. Muita cache, agregação de comandos, etc.

Native clients for Windows and Linux -- others would be gravy but not interesting to me.

Não tenho conhecimento de nada aqui. Qualquer solução ampla e razoável vem de um dos cantos e só é suportada como cidadão secundário no outro mundo. Dito isso: acho que é justo dizer que, por exemplo, O SMB é melhor suportado no mundo Unix (via Samba) do que, por exemplo, O NFS está no mundo do Windows.

File locking compatible with Linux and Windows.

O NFS fornece isso para você.

Change notification compatible with Linux and Windows.

Boa pergunta. Eu não acho que o NFS apóie isso de uma maneira boa. Pelo menos eu não estou ciente de nenhum comando que, por exemplo, chamaria um retorno de chamada se algo mudasse no servidor (metadados).

Para seus 2 MB / s com SMB? Deve haver algo mal configurado. SMB é certamente capaz de mais do que isso. 100 MB / s (GB wirespeed) não deve ser problema em uma configuração razoável.

    
por 19.12.2011 / 10:29
2

O protocolo de compartilhamento de arquivos mais rápido do mundo não conseguirá compensar o fato de que alguns aplicativos não são gravados com sistemas de arquivos remotos em mente, então eles enviam muitas leituras ou gravações pequenas e aguardam uma operação para concluir antes de iniciar a próxima. Isso está bem na latência relativamente baixa de um disco local, mas é doloroso em uma rede, onde a latência é muito maior.

Se você quiser que a varredura de uma biblioteca de mídia remota seja rápida, você precisa ter o código em execução no servidor fazendo a varredura e relatar os resultados de volta ao processo do cliente em um grande bloco.

    
por 19.12.2011 / 08:19