É possível montar um espaço de troca pela rede, por ex. sshfs?

4

O seguinte - se esta é uma boa ideia à parte - parece não funcionar:

me@client:~ $ ssh host
me@host:~ $ cd /media/big-hdd
me@host:/media/big-hdd $ sudo fallocate -l 8g swapfile
me@host:/media/big-hdd $ sudo chown me swapfile
me@host:/media/big-hdd $ logout
me@client:~ $ sudo mkdir /media/big-hdd
me@client:~ $ sudo sshfs me@host:/media/big-hdd /media/big-hdd
me@client:~ $ sudo mkswap /media/big-hdd/swapfile
Setting up swapspace version 1, size = 8388604 KiB
no label, UUID=7d6b9704-7692-4463-b0c7-8a94668d715f
me@client:~ $ sudo swapon /media/big-hdd/swapfile
swapon: /media/big-hdd/swapfile: insecure permissions 0644, 0600 suggested.
swapon: /media/big-hdd/swapfile: insecure file owner 1002, 0 (root) suggested.
swapon: /media/big-hdd/swapfile: swapon failed: Invalid argument

Foi sugerido outro lugar que esse problema Invalid argument é porque fallocate não aloca realmente, somente reserve a memória. Mas substituindo-o com o (muito mais lento)

me@host:/media/big-hdd $ sudo dd if=/dev/zero of=swapfile count=2048 bs=4MiB

também não muda nada.

Isso não é, em princípio, possível ou estou cometendo um erro que o impede de funcionar?

    
por leftaroundabout 02.04.2017 / 04:44

1 resposta

4

Isso não é possível em relação a sshfs devido à maneira como implementa o sistema de arquivos.

Essencialmente, ele mapeia o lado do cliente do sistema de arquivos para uma série de transferências de arquivos sftp . Você atualiza um arquivo localmente e sshfs copia esse arquivo (na sua totalidade) remotamente. Veja o que a página do manual tem a dizer:

On the local computer where the SSHFS is mounted, the implementation makes use of the FUSE (Filesystem in Userspace) kernel module. The practical effect of this is that the end user can seamlessly interact with remote files being securely served over SSH just as if they were local files on his/her computer. On the remote computer the SFTP subsystem of SSH is used.

Além disso, tenha em mente que o FUSE é implementado no espaço do usuário e, portanto, está sujeito a troca. Considere o efeito em um sistema que já está trocando, onde o subsistema FUSE é chamado, mas para executá-lo precisa trocar outro processo (ou pior, trocar novamente) ...

Isso seria possível em um sistema de arquivos baseado em blocos, como o NFS, e, na verdade, isso era usado em sistemas sem disco nos anos 80/90.

    
por 02.04.2017 / 09:46