Qual usar NFS ou Samba?


75

Estou configurando uma caixa para ser um servidor de arquivos em casa. Ele será usado principalmente para compartilhar músicas, fotos, filmes com outras caixas Linux na rede e uma máquina OS X. Pelo que li, o NFS e o samba funcionariam na minha situação e, como tal, não tenho certeza de qual escolher. O que é importante para mim é a velocidade de transferência entre as caixas e a dificuldade de configurar.

O que você recomendaria e por quê?

Respostas:


71

Em uma rede fechada (onde você conhece todos os dispositivos), o NFS é uma ótima opção. Com uma boa rede, a taxa de transferência é repugnantemente rápida e, ao mesmo tempo, menos intensiva da CPU no servidor. É muito simples de configurar e você pode alternar readonlyentre compartilhamentos que não precisam ser graváveis.

Eu discordo de Anders. v4 pode ser tão simples quanto v3. Isso só se torna complicado se você deseja iniciar as camadas de segurança através do LDAP / gssd. É capaz de mecanismos de segurança muito complexos e completos ... Mas você não precisa deles. Eles estão realmente desativados por padrão.

sudo apt-get install nfs-kernel-server

Em seguida, edite /etc/exportspara configurar seus compartilhamentos. Aqui está uma linha da minha versão ao vivo que compartilha minha música:

/media/ned/music        192.168.0.0/255.255.255.0(ro,sync,no_subtree_check)

Isso compartilha esse caminho com qualquer pessoa em 192.168.0. * De uma maneira readonly(observe a ro).

Quando você terminar de editar, reinicie o NFS:

sudo /etc/init.d/nfs-kernel-server restart

Para conectar um cliente, você precisa dos gubbins NFS (não instalados por padrão):

sudo apt-get install nfs-common

E depois adicione uma linha a /etc/fstab

192.168.0.4:/media/ned/music  /media/music  nfs ro,hard,intr 0 0

Na verdade, este é o cliente NVSv3 ainda porque sou preguiçoso, mas é compatível nesse cenário. 192.168.0.4é o servidor NFS (neste caso, minha área de trabalho). E você precisará garantir que o caminho de montagem ( /media/musicaqui) exista.


Para um Mac, siga este: http://www.techrepublic.com/blog/apple-in-the-enterprise/mounting-nfs-volumes-in-os-x/

É muito mais simples do que você imagina em alguns tutoriais mais antigos.


Pode parecer mais complicado do que realmente é, mas é sólido, previsível e rápido. Algo que você não pode enfrentar contra o Samba ... Pelo menos na minha experiência.


Obrigado por todos os detalhes. Acho que estou pronto para tentar este fim de semana agora.
Jacob Schoen

Como você consegue que isso seja persistente (para o cliente) na reinicialização do servidor? Eu tenho uma configuração semelhante funcionando bem ( /etc/fstabconfigurada para montar, no meu caso, uma pasta NAS), mas quando o servidor é reiniciado, repito umounte mount -agiro repetidamente no terminal para recuperar minha montagem. Principalmente bem para mim (exceto para aborrecimentos como o Picasa limpando o DB local quando a pasta de fotos rede de repente ausente :(), mas isso impulsiona a minha mulher até a parede ...
Russ

@Russ Parece que sua conexão de rede leva muito tempo para começar. Considere adicionar auto,_netdevao fragmento de opções uma aparência semelhante a: auto,_netdev,ro,hard,intrIsso deve forçar o sistema de arquivos a aguardar uma conexão de rede.
Oli

1
Obrigado por suas explicações! Mais algumas perguntas: por que não usar o FTP? Ouvi dizer que os UIDs precisam ser únicos ... Isso me parece realmente complicado. Como o NFS lida com permissões de arquivo?
Lumbric

@lumbric Super resposta tardia, desculpe. O FTP é transacional e, como resultado, é realmente desajeitado e lento. Ele tem uma taxa de transferência bastante boa, mas tudo o que importa em um sistema de arquivos para uso real (declaração, listagem, etc.) é tedioso. As permissões podem ser personalizadas e os usuários mapeados com as várias configurações LDAP / gssd, mas elas estão além das minhas necessidades (e atualmente estão além do meu conhecimento).
11133 Oli

11

Testei recentemente a conexão via SMB e NFS à minha estação NAS Synology. Para mim, a conexão NFS funciona duas vezes mais rápido que a conexão SMB. Especialmente se você tiver que lidar com 100 GByte de fotos e arquivos de música em 1000 diretórios, irá adorar a velocidade do NFS.


6

O NFS (versão 3) oferece um desempenho mais alto e é bastante fácil de configurar. O principal problema é a completa falta de segurança decente.

O NFS (versão 4) oferece segurança, mas é quase impossível de configurar.

O Samba provavelmente será um pouco mais lento, mas é fácil de usar e funcionará também com clientes Windows.


10
mas é quase impossível de configurar : você pode apoiar isso com alguma evidência ou isso é apenas baseado no seu sentimento subjetivo?
Lanoxx #

2
Eu nunca tive um problema com a v4, então qual é o problema?
KingCrunch

Não achei o NFSv4 mais difícil que o NFSv3. Claro, isso sem o Kerberos.
MountainX

4

Recentemente, configurei um servidor NFS local no servidor Ubuntu 10.04, mas meu MacBook Pro (OS X 10.6.X) não pôde se conectar. Para que o Mac pudesse se conectar, eu tive que adicionar inseguros ao /etc/exports.

Meu / etc / exportações:

/mnt/sdcard *(rw,sync,no_subtree_check,insecure,all_squash)

4

Execute testes do mundo real antes de dedicar os próximos X anos e Y TB a um protocolo específico, nunca percebendo que havia uma opção melhor.

Você encontrará opiniões sobre todas as quais são mais rápidas com o pessoal do Samba alegando que estão a par do NFS. Dependendo de suas necessidades, a melhor coisa a fazer seria configurar um compartilhamento Samba e NFS e executar vários testes de leitura / gravação / CPU do mundo real na rede. Se você tiver necessidades semelhantes às minhas (máquinas Windows), poderá se surpreender ao descobrir que o Samba é 20% mais rápido que o NFS.

Siga o que oferece os melhores resultados em sua configuração e ignore o que as pessoas dizem ser o mais rápido.


+1 nos pontos "X anos e Y TB" sozinho! :-)
kkm
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.