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 implementated 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 previous mount point on the fly

That said, what are we testing?, well building up on the fly multiple mountpoints across servers to keep files synced on the fly, fast and with some encryption as its going to be mainly 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. Secacucus, New Jersey USA. Los Angeles, USA.]

So by this we’re saying we’ll be running this setup in all of this 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 lets 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 pick 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 transfering can be compressed, otherwise can be a hugeeee 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]).

You may also like

LUKS Drive Encryption

Leave a Reply

Recent Comments