SSHFS-MUX TakeLAN Now testing on its servers this package with some patches to meet our own “Cloud” requirements.

Background to what is SSHFS-MUX:

SSHFS-MUX is an extension of SSHFS (SSH Filesystem)(link is external), it can mount many remote hosts to a local mount point at the same time over SSH channels.

Although the functionality of SSHFS-MUX can be also implemented by SSHFS and UnionFS combination, SSHFS-MUX has advantages over them on:

  1. Convenience: Save your time to create/clean many mount points of sshfs for each host
  2. Performance: Better aggregate I/O throughput, especially when FUSE implementation of unionfs is used
  3. Flexibility: Append/Remove remote hosts to a previous mount point on the fly

That said, what are we testing? It will be built up on the fly multiple mount points across servers to keep files synced on the fly, fast and with some encryption as it will mainly be working over the web.

Patches added to SSHFS-MUX will not be realeased until tested, feel free to drop a message asking for information.

Where is it going to be running?:

TakeLAN has 3 main locations [Montevideo, Uruguay. Secaucus, New Jersey USA. Los Angeles, USA.]

So by this, we’re saying we’ll be running this setup in all of these locations, testing performance and stability.

Okay! show me the money, how do I test it myself?!

On Debian 7.0 [Our main operating system.]

First of all, we need some dependencies, so go into root shell and execute:

apt-get install libfuse2 libfuse-dev fuse-utils libglib2.0-dev

Yes yes, next, yes, next, install, yes, done?

Okay, now let’s do some compiling, download the zip file linked below [those are the sources], get them to where you normally compile stuff; I did it in opt but picked your choice yourself.

cd /opt
mkdir sshfsmux

There upload the contents of the zip file.

cd sshfsmux
make install
===> Wait...

make[1]: Entering directory `/opt/sshfsmux’test -z “/usr/local/bin” || /bin/mkdir -p “/usr/local/bin”  /usr/bin/install -c sshfsm ‘/usr/local/bin’test -z “/usr/local/share/man/man1” || /bin/mkdir -p “/usr/local/share/man/man1” /usr/bin/install -c -m 644 sshfsm.1 ‘/usr/local/share/man/man1’make[1]: Leaving directory `/opt/sshfsmux’

#sshfs (if the options appear then everything went fine…)

Okay SSHFS is available for use! it should work in OpenVZ, KVM, normal Debian kernel… etc.

Usage (Mount):

sshfsm  hostA:dirA  hostB:/dirB  hostC:  mountpoint

Usage (Unmount):

fusermount -u mountpoint

Need to squish it a bit more, regardless of security?: 
There’s a parameter to mount the directories “-o Ciphers=arcfour” you should be fine with that.

I’ve been using this over the local network and I get about 85% of 100Mbps Ethernet or about 10.625MB/s

Undergoing investigation…

sshfsm -o reconnect -C -o workaround=all -o Ciphers=arcfour = This worked okay for us… the -C means compression… this can be good… if what we’ll be transferring can be compressed, otherwise it can be a huge drawback…

With -C we tried to transfer a gig of zero’s [using DD] it transfered in 286 seconds… 

dd if=/dev/zero of=/home/montohomemvd/test1GBmb.iso bs=1073741820 count=1
1+0 records in
1+0 records out
1073741820 bytes (1.1 GB) copied, 285.642 s, 3.8 MB/s

(We where not able to correlate those numbers at our router or server at main location [iftop showed at main location ~400 Kb/sec]).

Now lets try without Compression.

dd if=/dev/zero of=/home/montohomemvd/test1GBmb.iso bs=1073741820 count=11+0 records in1+0 records out1073741820 bytes (1.1 GB) copied, 1498.39 s, 717 kB/s  (We where able to correlate this with our router and server at main location [iftop showed at main location ~5 Mb/sec]).

Download “sshfsmux” – Downloaded 123 times – 150.45 KB


Sr. Software Engineer with over 10 years of experience. Hobbist photographer and mechanic. Tinkering soul in an endeavor to better understand this world. Love traveling, drinking coffee, and investments.

You may also like

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: