Multiple nodes on a raspberry pi 4?

So I am running my 16TB node off of my rpi 4 8GB (USB 3.0). The OS, DB, and identities are on an SSD (USB 3.0). I have 2 USB 2.0 ports left. Will the pi 4 8GB be powerful enough to handle another 16TB node once this one is full? In terms of powerful enough, I mean the CPU, USB bandwidth, and USB 2.0 speeds.

If not, I have 2x rpi 3 model b+ that I can use (They have 1GB RAM only).

Why don’t you try it out and let us know? Now is a good time, you’ll start getting a lot of traffic from Salt Lake as soon as you spin it up (the vetting requirement has temporarily been removed on that satellite whilst network performance testing is ongoing)
Sounds like a bit of a Franken-node to me, though! :sweat_smile:

(1GB RAM on a Pi3 sounds a tad unlikely to have any decent performance, not sure it’s worth the bother unless you’re bored)

1 Like

I was thinking about migrating my node to a pi5 with 8GB RAM to reduce electricity costs. Now that the code is more optimized that might be possible.

I have one concern. How do you all speed up the file walker? Currently I just finish any filewalker process in minutes thanks to ZFS. The Pi5 doesn’t has enough memory for ZFS. So it needs to be ext4 I guess. How do you make it fast?

I reduced retain.concurrency to 1 and enabled lazy filewalker.
Seems to be coping just fine. Gets a bit hammered during garbage collection, but most of that is IOWait from the USB spinning rust. The nodes I have running on Pi5s with SSDs are doing perfectly fine (will never turn a profit but I have more money than sense…)

I would also suggest a large-ish, high endurance SD card. The logging is quite extensive when there is a lot of traffic. Or just boot from a NVMe drive using a NVMe HAT (I will gradually install NVMEs for boot drives on all my “potatoes”)

1 Like

I’m running 3 nodes (1.7TB, 1.7TB, and 6TB) on a RPi3, the 4 and 5 should be more than capable of a second node. This is also just running each node on individual HDDs and everything else on the Pi’s MicroSD. The 1GB of memory on the RPi3 is probably the main bottleneck, followed by the SATA to USB dock I’ve got for the drives. I forget the dock’s chipset but I know it has some I/O wait issues. The filewalker operations give me grief but I haven’t DQ’d yet. I’ve got a gifted RPi4 (4GB I think?) that I’m going to swap in at some point and also set up (at minimum) the DBs on an external M.2 drive attached to USB. Probably going to go a long way for my rig.

Edit to add that I’ve been running this for… 3 years now I think? Drives are basically full.

1 Like

I have 2x 10 TB running on a Pi4B with 4 GB and struggling with file walker. That must be due to RAM and USB limitations. It’s a mess, but I’m not convinced to invest in new hardware.

So you think a pi 4 8GB would be able to keep up with 2x 16tb drives?

Compare USB specs - if they are similar : NO.

On my Syno 1GB, these impruvements work:

  • disable lazzy FW;
  • run FW only once and than disable it;
  • ext4 + noatime;
  • move db to USB flashdrive;
  • use custom log level to reduce noise;
  • if you want to speed FW run, you can reduce the allocated space to stop ingress.
  • I didn’t tried changing concurencies, but those might help aswell.
    2 drives with 5TB each + ingress took 5 days to finish the FW, no lazzy.
    The main bottleneck for pi nodes is the USB connection, not the RAM or CPU.
1 Like

What do you mean?

For USB on the pi 4 I have the following:
2x USB 3.0
2x USB 2.0

OS and DB drive (SSD): plugged into USB 3.0
16TB Node: plugged into USB 3.0

2x USB 2.0 ports remain.

The Pi is limited to 10 MB/s transfer rate, on USB3.

I do not have it at hand, but that’s an issue.

1 Like

That doesn’t sound right…

1 Like

Is there no other way? How about a caching SSD. Would that help?

Did a bit of digging, it seems one problem I’m having is that the external dock doesn’t support UAS with the current firmware. It is a JMicron JMS567 chipset and I know there are many discussions around about this not properly providing UAS on Linux although it does work in Windows I think? Looks like if you’re going to go with something with a JMicron bridge chipset you’d want to find a JMS568.

You could use something like LVM cache or bcache.

I wonder how well ZFS special metadata device works when under low RAM too.

But if you haven’t purchased the Pi 5, consider buying an N100 mini PC, you could put in a 32GB SODIMM.

2 Likes
1 Like

Don’t know, but should help. If the RAM can’t cache the entire filesystem, which would be ideal, than a SSD cache would be next best thing.

2 Likes

Hi.

i bump the post because I am having power issues with 3.5" hdds attached to raspberry pi´s USB (undervoltage and overcurrent).

I am using this cables:

I think the issues are not with 12v but with 5v. The power supply is the official one of raspberry.

What are you using? Thanks for your help.

Do the drives work properly via that adapter (appears to be this one, although either could be a clone of something else) when hooked up to a normal PC? I assume you are using the included power brick for that adapter in order to power the drive, right? Does that adapter and power brick pair indicate any limitation of maximum allowed draw from the drive?

I think I’m using this Orico enclosure which has a decent built-in power supply. Since I already had 3 drives to attach I figured might as well invest in a decent multi-drive enclosure and specifically one that has a toggle power switch rather than a momentary switch. I wanted to make sure I could remotely reboot everything via smart outlets if needed and not need to change the power on state of the enclosure via a momentary switch. As mentioned prior I can get some I/O contention because of the enclosure’s chipset but I haven’t had a problem with that at all recently. When I set up badger cache (which I might now be deprecated in favor of hashstore? I’ll admit I haven’t been paying close attention.) on an M.2 drive I think that was the last of my I/O contention issues. My rig is 3 nodes (1.73TB/1.73TB/6.97TB) on a 2GB RPi4. Originally on an RPi3 but when the RPi4 freed up I swapped it in so I’d have an extra gig of RAM.