I'm a sysadmin for a multi-user server, where students in our department have shell accounts. One of our users has requested that we install sshfs
on it. I'm debating whether it would be wise to install sshfs
as suggested.
My main concern is whether a FUSE mount could make our server less reliable. In my experience, bad things can happen to servers when an NFS server suddenly becomes unavailable — the load average shoots up, and you might not be able to unmount it cleanly, to the point where a hard reboot might be necessary. If a FUSE-mounted server suddenly disappears, how hard might it be to clean up the mess? Are there any other likely catastrophes or gotchas I should consider?
At least with NFS, only root can mount, and we can choose to mount NFS servers that we consider to be reasonably reliable.
Let's assume that our users have no hostile intentions, but might do stupid things accidentally. Also, I'm not really worried about the contents of the filesystems they might mount, since our users already have shell access and can copy anything they want to their home directory.
I have used FUSE with both sshfs and HDFS. sshfs seems to be very reliable, I've not seen a panic or hard crash at all. HDFS otoh has caused numerous crashes. This was investigated tuned, so long as we don't see heavy usage of hdfs everything is stable.
I've seen sshfs's host systems disappear with no ill effects. HDFS caused all kinds of problems. This leaves me with the impression that sshfs is quite stable.
I would suggest testing lots of I/O and see how sshfs handles it, I expect it would handle it like a champ.
It appears (correct me if I'm wrong) that you're considering installing FUSE-sshfs on your server. You might be confused about the way it works: FUSE-sshfs should be installed on client machines. The server does need any more than it already has: the SSH server.
The "potential for a FUSE mount to destabilize a Linux server" is "some".
It will pay to understand the nature of FUSE. FUSE it not itself intrinsically unstable. It is (relatively mature) kernel code that provides a way of running user space 'drivers' for various filesystems. It is intended for testing or 'toy' filesystems, or those that don't 'belong' in the kernel, or those that are still in flux, i.e. that themselves might be unstable, however given that the driver runs in userspace, any problem in the user-land driver code is somewhat isolated from the kernel. It is in this way arguably more stable than running immature code in the kernel.
The exact stability depends more on which FUSE module you are using. I've used sshfs a little and have never once had a problem with stability. The filesystem stops responding if I lose connection to the SSH server, but that's expected, obviously.