A tecnologia que eles estão usando para fazer isso acontecer é chamada de NFS - Network File System . Eles também podem estar usando outra tecnologia com NFS chamada automontagens, especificamente Autofs se for Linux.
NFS
O NFS permite que pastas de uma máquina sejam acessíveis a outra. Não há nada de mágico nisso. Existe um cliente e um servidor que facilitam essa conexão. Quando você acessa um desses diretórios que foram montados em seu sistema através do cliente NFS, são feitas chamadas de seu sistema para retransmitir as informações relativas ao diretório e seu conteúdo.
Se um dos clientes acessa um arquivo dentro do diretório, o servidor NFS também retransmite o conteúdo desse arquivo para o cliente NFS.
Autofs
A montagem automática é uma tecnologia que permite que um sistema cliente acesse um recurso remoto compartilhado, como o NFS, temporariamente. Isso quer dizer que o sistema cliente NFS tem acesso a esse compartilhamento NFS remoto. Mas não está ativamente "usando" até que alguém tente acessar o diretório compartilhado. Só então o cliente NFS tenta "montar" este diretório remoto e seu conteúdo.
Ciclo de vida do conteúdo do arquivo
Em ambos os casos, não há transferência implícita dos arquivos para os clientes NFS. Isso quer dizer que eles não são copiados fisicamente para os clientes a longo prazo. Os arquivos são transmitidos para os clientes quando eles tentam acessá-los. Depois do uso, eles se foram; eles não persistem nos clientes em qualquer forma de longo prazo.
Só para dar uma ideia aproximada, você pode usar o programa strace
para ver algumas das chamadas do sistema feitas à medida que um programa é executado. Então, usando este comando por exemplo:
$ strace echo "hello world" > afile
Podemos ver como um arquivo é gravado no sistema. Também poderíamos usar este formulário para gravar em um diretório montado do NFS:
$ strace echo "hello world" > /home/sam/afile
Ambos os traços são praticamente idênticos.
### Gravação local
$ cat strace_wr_local.log
execve("/bin/echo", ["echo", "hello world"], [/* 33 vars */]) = 0
...
fstat64(1, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f80000
write(1, "hello world\n", 12) = 12
close(1) = 0
### gravação NFS
$ cat strace_wr_remote.log
execve("/bin/echo", ["echo", "hello world"], [/* 33 vars */]) = 0
...
fstat64(1, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7fbe000
write(1, "hello world\n", 12) = 12
close(1) = 0
A leitura é apenas um pouco mais interessante, mas basicamente idêntica.
### Leitura local
$ cat strace_rd_local.log
execve("/bin/cat", ["cat", "afile"], [/* 33 vars */]) = 0
...
fstat64(1, {st_mode=S_IFREG|0644, st_size=1761, ...}) = 0
open("afile", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=12, ...}) = 0
read(3, "hello world\n", 4096) = 12
write(1, "hello world\n", 12hello world
) = 12
read(3, "", 4096) = 0
close(3) = 0
### leitura do NFS
$ cat strace_rd_remote.log
execve("/bin/cat", ["cat", "/home/sam/afile"], [/* 33 vars */]) = 0
...
fstat64(1, {st_mode=S_IFREG|0644, st_size=1771, ...}) = 0
open("/home/sam/afile", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=12, ...}) = 0
read(3, "hello world\n", 4096) = 12
write(1, "hello world\n", 12hello world
) = 12
read(3, "", 4096) = 0
close(3) = 0
Entrando na piscina
Se você está curioso sobre o protocolo NFS, pode ler mais sobre como ele funciona aqui, na seção intitulada: Noções básicas do protocolo NFS . Geralmente, é fácil obter os conceitos básicos de como funciona e há um exemplo de solicitação de NFS, apenas para dar uma ideia geral de como as coisas funcionam.
Mergulho mais profundo
Se você realmente quiser espiar atrás da cortina, provavelmente precisará trazer um conjunto de ferramentas para coletar o tráfego da rede, de modo que possa ver o fluxo de bits entre o servidor NFS e um de seus clientes. Ferramentas como tcpdump
ou wireshark
provavelmente serão seus amigos nesse mergulho mais profundo.
Eu o aconselharia a não perder seu tempo, a menos que você seja realmente do tipo curioso, pois mergulhos profundos como esse exigem muita habilidade e familiaridade com um conjunto de ferramentas Unix que eu consideraria apenas alguém que usava o Unix cerca de uma dúzia de anos.
Este site irá ajudá-lo com este esforço, se você estiver realmente curioso: