April 09, 2014PfSense with video cache.
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:
- Convenience: Save your time to create/clean many mount points of sshfs for each host
- Performance: Better aggregate I/O throughput, especially when FUSE implementation of unionfs is used
- 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?
cd /opt mkdir sshfsmux
There upload the contents of the zip file.
cd sshfsmux ./configure make make install ===> Wait...
make: 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: 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.
sshfsm hostA:dirA hostB:/dirB hostC: mountpoint
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
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]).