Transferência entre dois compartilhamentos NFS na mesma máquina

4

Eu tenho uma máquina que exporta dois diretórios, cada um em um disco rígido físico.

Quando os arquivos são movidos entre esses dois compartilhamentos, os dados transitam totalmente na rede? Em caso afirmativo, existe uma maneira de fazer com que a transferência se comporte mais como mv na máquina remota?

    
por alecail 21.10.2013 / 19:58

3 respostas

2

Se você iniciar a transferência em um host do cliente, então sim, todos os dados percorrerão o fio. Se você iniciar no servidor nfs, se você usar os caminhos do diretório local ou os pontos de montagem, ele não atingirá o fio. Você pode ver isso para você mesmo executando o tcpdump, em ambos os casos. O netstat pode ajudá-lo um pouco a ver isso, mas o tcpdump mostrará a quantidade real de tráfego.

A razão disso é que o mv não sabe nada sobre o NFS, ele usa chamadas do sistema no kernel local e o kernel não sabe que os pontos de montagem A e B são ambos exportados do mesmo servidor. Ele trata os dados da mesma forma.

A única maneira de obter o comportamento desejado é emitindo um comando shell no servidor remoto para fazer a transferência.

    
por 22.10.2013 / 00:52
7

Cópia do lado do servidor NFS é uma extensão proposta para < href="http://tools.ietf.org/html/draft-ietf-nfsv4-minorversion2-20"> NFSv4.2 .
Embora o suporte inicial tenha entrado no kernel do Linux 3.11 , você pode esperar um pouco por isso.

    
por 22.10.2013 / 02:00
1

Depende de qual sistema e de qual aplicativo você está se movendo.

Se você estiver fazendo isso por meio da máquina onde esses compartilhamentos estão, ele será transferido localmente pelo sistema operacional. Exemplo: ssh para servidor e usando o comando MV ou abrindo um Navegador de Arquivos e transferindo arquivos de um Navegador de Arquivos para o próximo (desde que ambos os Navegadores de Arquivos sejam abertos para recursos no mesmo servidor).

A razão para isto, se você estiver usando dois Navegadores de Arquivos em uma sessão remota, é porque o que você faz no seu final, é traduzido no servidor primeiro. O servidor analisa a solicitação e determina o caminho mais curto até o destino e, como ele vê a origem e o destino, o tráfego nunca sai do servidor (fora das informações de rastreamento atualizadas que você vê para a transferência de arquivos).

Se você estiver fazendo isso por meio de uma sessão remota complexa em alguns computadores, em que você encapsula o tráfego forçadamente, a transferência ocorrerá pela conexão de rede.

    
por 21.10.2013 / 21:18

Tags