Two years ago, I built my first Raspberry Pi based NAS drive. NAS-pi – cutely named box has been serving the media via Plex, Samba, DLNA locally and externally ever since. The brains for this device had been Raspberry Pi 2 – mostly because I didn’t need the WiFi and the Ethernet speed between Raspberry Pi 3B and Raspberry Pi 2 is limited to 100Mbits/sec. The new Raspberry Pi 3B+ comes with the promise of “superfast” up to 300Mbits/sec interface – a tasty upgrade.

NAS – Raspberry Pi 3B+ “upgrade”

First off, I’m happy with my NAS-pi performance. Streaming has never caused issues, and the NAS drive in RAID0 configuration, while NAS drive is not fast enough for video editing, is perfect for storing the images. If you want to build one yourself – you can read about it below:

Building NAS – Raspberry Pi 3B+

I got the Raspberry Pi 3B+ earlier on this year and encouraged by my initial network tests, I planned the update once I have a spare board to use. I’d love to almost triple the speed in which I could access the local files. To make the upgrade I had to do a couple of things first:

Remove one of the USB sockets and replace it with a custom connector

Add power connector

Update the OMV software and keep the data and arrays intact

I set out an optimistic 3h to get this done. Turned out, my estimate hasn’t been even close to the actual time I spent on this upgrade. I’m sitting here feeling defeated after two days even though the NAS-pi has the Raspberry Pi 3B+ inside.

The hardware

I actually didn’t have many troubles, other than the USB socket, which had proven to be more difficult to remove than I anticipated. It took a combination of the heat gun (didn’t work well), soldering iron cranked to 420ºC and wire cutters to forcefully remove the socket and desolder the pins making space for my custom connector.

Adding power, and the reboot/shutdown button only took a couple of minutes. I cleverly hid the button underneath the logo, and now I can shut down (hold 5 sec) or reboot (hold 2 sec) the NAS-pi without opening the web interface. All this thanks to these instructions.

The software

Here, I got into a pickle, I have not run:

sudo apt-get distro-upgrade

prior to changing the boards and I ended up with a rainbow screen. There are 2 ways of dealing with this issue. I could put my SDcard into the Raspberry Pi to and run the upgrade, or start with the fresh installation of OMV. Even though upgrading worked, I decided to complete a fresh installation as the transfer speeds weren’t impressive.

After adding the drives and rebuilding the RAID0 array, I had the NAS-pi running the latest OMV image on Raspberry Pi 3B+. A perfect time to do some tests.

NAS – Raspberry Pi 3B+ benchmarks

The updates to Linux, kernel and network driver improved the speeds of the drive – please read this post for the latest speed benchmarks . EDIT: 24/06/2019 – Raspberry Pi 4 release is a game changer now!

Since I’m not interested in synthetic benchmarks, (you are about to find out why) I send a 2GB file and a folder with 186 pictures (1.86GB) across my 1Gbit network. The Raspberry Pi 2 was able to complete this in:

2GB file – 3min 04sec

Folder with pictures – 3min 18sec

It was time to do the exact test with Raspberry Pi 3B+ enabled NAS-pi. This is what has been giving me a headache for the past 2 days. The latest board performs worse! The same file and folder have been tested multiple times and the results are:

2GB file – 3min 20sec

Folder with pictures – 3min 39sec

The transfer speed was all over the place, ranging from 3Mbit/s to 22Mbit/s. There was no consistent transfer making the process really unreliable. I have tried different network configurations, even tested a USB Ethernet adapter, just to get the same results. The Raspberry Pi 3B+ is useless. The promising benchmarks done with iperf3 are not even close to the real-life performance.

After a day of looking for a solution, I found none. The only workable option is to limit the Ethernet back to 10/100 mode programmatically, which makes the network interface perform once again on par with Raspberry Pi 2.

sudo ethtool -s eth0 speed 100 duplex full

Then set a cron job to run it at each reboot.

Conclusion

I can only hope that with time, there will be a software solution to this, but after reading an interesting thread about the issue, I have very little hope. Looks like some people got banned from the forum for calling this out. If it wasn’t for the same price, Raspberry Pi 3B+ would be a terrible upgrade. I’m forced to limit the network speed, despite the promised 300Mbit/s. I’d consider putting the Raspberry Pi 2 back to the NAS-pi, but I have plans for that board, and frankly speaking, I don’t want to waste more time. I already sacrificed 3 writeups over this. I will revise the driver issues in a couple of months to see if I can finally benefit from the 300Mbit/s interface.