SSHFS for Shared Storage

Summary

Effective sharing of data between clients has all kinds of benefits. Instead of each client having its own copy of the data, you can operate with just one copy. In this way, you reduce capacity and data skew, improve data management, and really make life a lot easier. In addition to the several shared storage options, some options have been overlooked. FUSE can be a great option in many scenarios, including the desire for shared storage.

In this article I covered, albeit at a high level, SSHFS, which is an SSH-based filesystem. SSHFS is really simple to build, install, and use. Because it is in userspace, any user can use it to mount a remote filesystem with only SSH. Therefore, you only need to have one open port on the client: port 22. Moreover, because users can take advantage of the shared filesystem whenever it is needed or wanted, the admin does not need to intervene.

Combining SSHFS with encrypted filesystems at either end allows a fully encrypted storage solution. The encrypted filesystem at the source stores the data securely, SSHFS transfers the data by SSH protocols, and the target encrypted filesystem stores the data securely.

SSHFS is a very underestimated filesystem that more people should be using and that would be useful in a great many scenarios. On the basis of past tests, the performance can be quite good – comparable to NFS. The performance is good enough that I would seriously consider using it in HPC.