If you've not noticed by all my blog posts the past several months, I've been slightly obsessed with building the biggest, baddest, fastest home server possible. What started as a simple curiosity one night has lead to a long, difficult journey.

Before I continue I want to make mention that I was able to get NFS working, with moderate-decent speeds as well. Unfortunately, there were bugs galore, and whenever I tried to copy to the server it would hang about thirty seconds in and completely stall, causing the file browser to hang up as well. For me, NFS just isn't the right solution.

Which brings me to the story of how I came full circle. From the beginning, I was a big fan of Samba. It was dead-simple, it had great support baked in, and it worked well. The only issue, and the cause of so much grief, was that speeds were abysmal and my Blu-ray rips would stutter to the point of not being watchable. Of course, I also wanted to be able to back-up/copy data to my server at fast speeds.

Hours of configuration, two different hard disks, and an entirely fresh start on my server later, I learned many things. Tonight, I had the breakthrough I have been searching for, and at long last my Samba saga comes to an end. As it turns out, it wasn't a configuration issue, it wasn't under-powered hardware, and it wasn't a limitation on the protocol. Everything had been set-up correctly since the get-go.

No, the problem, as it turns out, was all in the client implementation. While Ubuntu/Gnome/Pantheon-Files have support for easily connecting to a server, it uses cifs to mount it and mounts it using GVFS/FUSE. I will point you to the Wikipedia article, as I still have some studying to do before you can take my word on any of this. Mounting in the traditional manner gives me the previous speeds, typically ~2.5MB/s.

However, using smbmount instead of the method above, I am able to achieve incredible speeds. I've read that using smbclient to manipulate files is the absolute fastest, but I need to be able to just mount it and use it with my file browser, and I have been very impressed with the speeds I am now getting with smbmount. I'll post the few screenshots below.

<p>So why is smbmount any different than the default method/cifs/smbfs? I’ve read several different posts, and will link to them at the bottom of the post. However, the following quote seems to make sense to me: </p><p></p>

This is almost certainly due to Volker’s pipelining work with smbclient and the async client libraries. The same work needs doing in cifsfs (as smbfs is deprecated it won’t get done there).
— http://lists.samba.org/archive/samba-technical/2009-December/068484.html

</figure><p>I will paste more sources below as I find them and clarify the specific issues if I am able to discover anything else. I will also test this on Mac OS X to see if this is localized to Linux.</p><p></p><p></p><p></p><p></p><p></p><p></p><p></p><p>http://lists.samba.org/archive/samba-technical/2009-December/068484.html</p><p>http://lists.samba.org/archive/linux-cifs-client/2004-December/000580.html</p><p>https://bugs.launchpad.net/ubuntu/+source/gvfs/+bug/854959</p><p></p><p></p><p></p><p></p>