NAS/SATA for Rock 5

Nope more or less anyone who has tried USB Sata for Raid unless a pseudo raid such as snapraid will tell you its a pretty awful experience.

JMB585 should be fine but you are still stuck with the Rockchip BSP kernel.
What NAS/SATA for Rock 5 did is a great example and you can get simple low cost acrylic towers where the disks themselves create the structure.

Rock5 would make a great NAS but so would the Rock3, but just a shame it got that Pi format as its images are new but definately more mature.
I would let others trail blaze a path 1st.
PS Cockpit has some great interfaces for Samba/NFS

thank you for thoughts and yes, agreed that @gee’s setup above is really cool.

but could you and @abbeswag expand on your bad experiences? Are we talking performance? Reliability? Both?

Totally understand it’s preferable to get closer to the rails with the JMB585 but if there aren’t performance gains with a non-ssd raid 5 setup, I have to consider the off-the-shelf option.

FWIW, this review of the enclosure indicates that he’s hitting the theoretical limit I calculated in my previous post.

Currently I have an odroid xu4 with a 3.0 enclosure that does hit the drive’s 120MBps limit and have had no issues.

Another advantage is that I’d get to run off an ssd in the m.2 slot rather than the slower emmc.

All of this is for a media server + backups so this specific use case may also play into best route for me.

When I get my Ameridroid-ordered Rock 5, I am using a Mini-PCIE to PCIe adaptor to run a Sas3008 HBA for my NAS. You can find the boards for cheap on ebay and are as reliable as you can probably get for a consumer grade storage device.

I plan on running eMMC, I think you are overselling how much slower it is. The eMMC on my Odroid N2 runs in the 120-130 Mb/sec on benchmarks and is more than fast enough for Linux to boot and be ready in seconds. I bought another one for my future 5b.

I doubt it as many of those are BIOS cards which on Arm isn’t a thing and only dumb pcie adapters can be guaranteed to work.
eMMC though can be much faster on the Rock5b with no added wattage.

/dev/mmcblk1p14:
 HDIO_DRIVE_CMD(identify) failed: Invalid argument
 Timing buffered disk reads: 948 MB in  3.00 seconds = 315.64 MB/sec

That the Android partition on the eMMC 16gb module I got via linux.

I’ll find out when I get my board, but I was pretty sure BIOS support is only needed to boot off of a drive on the HBA. For JBOD / IT mode the kernel driver takes over and initializes all the drives. On my current board (x86, admittedly) the BIOS support is actually disabled to speed up the boot process.

The NAS is just part of how I intend to use the Rock 5 – I’ll also be running various services on it (pihole, sabnzbd, sonarr, custom code, etc.)

So in my case, having a fast 2TB 4GBps system ssd (maybe overkill?), alongside my slow HDD’s that are shared on the network is where I think I’m heading.

Excited to see how other folks use the board and will be following along here.

I built a DIY NAS with Rock Pi 4B and this hat from Allnet (the 12V barrel jack input with efficient 5V converter is some really good design, this way this hat can operate also on 3.5" HDDs which require 12V power): https://shop.allnetchina.cn/products/penta-sata-hat-for-rock-pi-4?_pos=11&_sid=660b46d8b&_ss=r

Does anyone know if it will work with Rock 5B? Or do I have to test myself?

Its just a JMB585 just like NAS/SATA for Rock 5 posted.
But I am not sure about the end polarity of the m.2 riser you have as do the connections means it swaps around to what a standard jmb585 board will do?

Ah yes, the M.2 cable geometry is now different with Rock 5B. I had no idea it’s also based on JMB585 chip. And yes, the SATA data connection was basically through the M.2, so it works exactly like the linked adapter card. The hat just did a couple other nice things like provide both the base board and drives with proper power (5V for Rock Pi and drives, 12V for drives).

Still would fit on the Rock3a as that is also Pci3.0 and also needs the riser which presume will fit.
But yeah due to riser the polarity is all shifted for direct m.2 connection.

Hi :slight_smile:
I am also looking forward to build a NAS using the Rock 5B. I was thinking about using something like the key a/e to key m adapter like below in order to be able to connect a 5 prot JMB585 via the M.2 E-key slot. Ok theory the single line of PCIe 2.0 there should still have sufficient bandwidth for the 2.5Gbit Ethernet to be the bottleneck during normal operation. The advantage in this case would be that I can still fit a standard nvme ssd in the m key slot without issues.
What do you guys think about this?
https://www.ebay.de/itm/185476059656?mkcid=16&mkevt=1&mkrid=707-127634-2357-0&ssspo=GO5VrnexQBG&sssrc=2349624&ssuid=&var=693287619517&widget_ver=artemis&media=COPY

Pcie 2.0 * x1: 500 MB/s so enjoy. Also theoretical max its about 15% less, so enjoy having 5 sata ports on that…

Sounds good to me as long as bandwidth is the only limitation. According to this article, Ethernet tops out at around 275MByte/s (ignoring duplex access) and adding 25% overhead for parity in a Raid 5 setup, I only require ~350Mbyte/s of the ~430MByte/s you mentioned. This even leaves some headroom for some parallel reads and writes though in practice I would mostly only do one of both.

Let’s try by testing the 2.5GbE port with iperf3 first.

Download to Rock 5B:
$ iperf3 -t 60 -c 192.168.31.93 -i 10
Connecting to host 192.168.31.93, port 5201
[  5] local 192.168.31.85 port 39384 connected to 192.168.31.93 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-10.00  sec  2.73 GBytes  2.35 Gbits/sec    0   1.06 MBytes       
[  5]  10.00-20.00  sec  2.74 GBytes  2.35 Gbits/sec    0   1.59 MBytes       
[  5]  20.00-30.00  sec  2.74 GBytes  2.35 Gbits/sec    0   1.59 MBytes       
[  5]  30.00-40.00  sec  2.73 GBytes  2.35 Gbits/sec    0   2.39 MBytes       
[  5]  40.00-50.00  sec  2.74 GBytes  2.35 Gbits/sec    0   2.39 MBytes       
[  5]  50.00-60.00  sec  2.74 GBytes  2.35 Gbits/sec    0   2.39 MBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-60.00  sec  16.4 GBytes  2.35 Gbits/sec    0             sender
[  5]   0.00-60.05  sec  16.4 GBytes  2.35 Gbits/sec                  receiver
 
iperf Done.
Upload:
 iperf3 -t 60 -c 192.168.31.93 -i 10 -R
Connecting to host 192.168.31.93, port 5201
Reverse mode, remote host 192.168.31.93 is sending
[  5] local 192.168.31.85 port 39388 connected to 192.168.31.93 port 5201
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  2.74 GBytes  2.35 Gbits/sec                  
[  5]  10.00-20.00  sec  2.74 GBytes  2.35 Gbits/sec                  
[  5]  20.00-30.00  sec  2.74 GBytes  2.35 Gbits/sec                  
[  5]  30.00-40.00  sec  2.73 GBytes  2.35 Gbits/sec                  
[  5]  40.00-50.00  sec  2.74 GBytes  2.35 Gbits/sec                  
[  5]  50.00-60.00  sec  2.74 GBytes  2.35 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-60.05  sec  16.4 GBytes  2.35 Gbits/sec   81             sender
[  5]   0.00-60.00  sec  16.4 GBytes  2.35 Gbits/sec                  receiver

2.35 Gbps in both directions, that’s the best we can usually achieve. So let’s be naughty with a full-duplex test:
$ iperf3 -t 60 -c 192.168.31.93 -i 10 --bidir
Connecting to host 192.168.31.93, port 5201
[  5] local 192.168.31.85 port 39392 connected to 192.168.31.93 port 5201
[  7] local 192.168.31.85 port 39394 connected to 192.168.31.93 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-10.00  sec  2.73 GBytes  2.34 Gbits/sec    0   2.15 MBytes       
[  7][RX-C]   0.00-10.00  sec  2.63 GBytes  2.26 Gbits/sec                  
[  5][TX-C]  10.00-20.00  sec  2.72 GBytes  2.34 Gbits/sec    0   2.26 MBytes       
[  7][RX-C]  10.00-20.00  sec  2.41 GBytes  2.07 Gbits/sec                  
[  5][TX-C]  20.00-30.00  sec  2.73 GBytes  2.34 Gbits/sec    0   2.26 MBytes       
[  7][RX-C]  20.00-30.00  sec  2.45 GBytes  2.11 Gbits/sec                  
[  5][TX-C]  30.00-40.00  sec  2.73 GBytes  2.34 Gbits/sec    0   2.26 MBytes       
[  7][RX-C]  30.00-40.00  sec  2.50 GBytes  2.15 Gbits/sec                  
[  5][TX-C]  40.00-50.00  sec  2.73 GBytes  2.34 Gbits/sec    0   2.26 MBytes       
[  7][RX-C]  40.00-50.00  sec  2.48 GBytes  2.13 Gbits/sec                  
[  5][TX-C]  50.00-60.00  sec  2.73 GBytes  2.34 Gbits/sec    0   2.26 MBytes       
[  7][RX-C]  50.00-60.00  sec  2.60 GBytes  2.23 Gbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-60.00  sec  16.4 GBytes  2.34 Gbits/sec    0             sender
[  5][TX-C]   0.00-60.05  sec  16.4 GBytes  2.34 Gbits/sec                  receiver
[  7][RX-C]   0.00-60.00  sec  15.1 GBytes  2.16 Gbits/sec  145             sender
[  7][RX-C]   0.00-60.05  sec  15.1 GBytes  2.16 Gbits/sec                  receiver
 
iperf Done.

2.34 Gbps and 2.16 Gbps, so Rock 5B handled 2.5GbE networking is really outstanding.

Are you missing that you are using x5 disks in your calcs? Maybe 64MB/s per disk even if Gbits to bytes reduces approx 300Mbytes?
You could do the same with a CM4 unit and some have but even with a fanatical pi fan base they are very rarely mentioned. The math generally makes my head spin and yeah it would work, but pretty sure results are going to be pretty poor without thinking any more. Have a hunch its a theoretical yes and when employed a yep that sucks.

1 Like

Thank you for your answers. Just ordered my Rock 5 with 8GB ram :slight_smile:
Also looking to self-host most common services, including passsword manager, file store, some monitoring stuff, kodi etc.
Looking forward to creating an interesting NAS solution.

Did the JMB585 work out of the box for you? On armbian or another image?
Mine is just blinking red on startup, with no drives detected.
Also a lot of errors in dmesg(see my post for details)

It worked out of the box on my Rock 4. :sob:
EDIT the device was broken, the new jmb585 does work.

What is a good way to power 3.5 drives? I’m trying to figure out how to power external drives but it’s not easy. Barrel Plug -> Molex -> Sata? Or a regular psu only?

Thanks a lot for your information.

I wonder: Since the 2.5" SDD is fine with 5V, is it possible that only get power supply for sata-ssd disks by a PD charger?

For example, a PD charger with 2 ports, one for Rock-5b, the other for SSD-disks.
Because USB-C PD chargers normally output 3 amps total at any voltage. At 5V, the cap is 3A meaning 15 watts. Thus 5V3A is enough for 2 SSD disks ( by a 2-port JMB58X via the M.2 E-key slot).

This is not a perfect NAS solutions, but may be useful sometimes.

Thank you again.

I’ve a Rock 4 NAS running with a JMB585 M.2 5x SATA adapter , so nothing of interested for you folks here. Except maybe the power setup since it should works fine work a Rock 5 too.

I’m using a 12v AC bricks plugged into an ATX Pico PSU. The PSU itself is plugged into a breakout board with an on/off switch, 8x 4-pins MOLEX connectors and 2x 6-pins connectors. This make it easy to power the drives with regular MOLEX-Sata power cable. For the Rock 4 itself, I’m using an USB step-down converter with support for PD, QC3 and QC2.

The PSU and breakout board are overkill for a single Rock 5. But they gives me solid 12v, 5v and 3.3v rails for my little SBC-based homelab.

3 Likes