The Wiretrustee SATA Pi board is a true SATA NAS
jeffgeerling.com
jeffgeerling.com
I can see it work well as a sink for automated replicated snapshots, where I/O performance is not that critical.
it's quite happy with a 40tb array I have on a 2010 server with 4GB of ram
(and I've run ZFS on every laptop I've owned in the last decade or so)
Meanwhile, you're still a lot better off, data-integrity-wise, with ZFS and non-ECC memory than you are with most other filesystems with non-ECC memory.
Not exactly the same, but did you ever try ZFS on a commodity USB stick? It can get really bad when circumstances are not in favor.
With not too much concurrency it can perform quite well even under constraints, though!
however as you point out, 4gigs is more than enough to surface a 1gig connection. Especially on a bunch of SSDs
Comparable to RPi at compute power, but with vastly better I/O and, again, ECC RAM, because I don't want my data to have a chance to be silently corrupted.
I think there can be a niche for a system board like that, only open and based on ARM. IDK if any smaller ARM processors support ECC, though.
Of course all these CPUs are very old, 7-9 years since introduction. But it's ok by me, they are reasonably cold, have 4 or 8 cores, and I'm looking for a cold, silent, and reliable system, not a screaming fast system. At worst, a 10GbE card can be installed into the lone PCIe slot, but I don't expect my rig to saturate even the 1GbE built-in interface. (My board has four of these anyway.)
As of motherboard producers, SuperMicro makes the right kind: passive cooling, most / all ports wired, internal USB and / or m.2. Gigabyte made more consumer-oriented variants, but also serviceable.
See: https://jrs-s.net/2015/02/03/will-zfs-and-non-ecc-ram-kill-y...
Quote the OP,
> With ZFS allowing for very robust data integrity on disk, the weak point in most budget NAS setups these days is going to be memory errors.
You see, it didn't say "no ECC, no ZFS." It merely says: if your goal is to eliminate data corruption, once you've removed filesystem errors from the equation by using ZFS, the next term to eliminate is memory errors - which is entirely correct.
I use a HPE ProLiant MicroServer Gen8 as a (very) budget home/home-office NAS, I'm really not convinced that memory errors are its weak point(!)
It has the default (horrible) Celeron G1610T processor, was upgraded on delivery to 16G of memory, but has 60TB of storage - four internal SATA drives plus additional external USB drives.
I've tried and so far failed to get it to run stable 10GbE networking. Just sourced a new (old) ConnectX-3 card from eBay to try again...
I tried a couple of 10gbit cards, but ended up getting a half dozen used Intel X520-DA2 cards for dirt cheap. I've not had any issue with these, and my NAS can easily saturate at least one link. The cards have been reliable in every machine I've tried and can be found for $75-100 - not too bad for dual port 10gbit!
As a side note, I was surprised to find that i3 supports ECC.
I agree that the CPU is the weak point (mine has a turion n40l which is slow as hell).
Heh, I have two of those older models lurking in the garage from some older experimental stuff.
They were at one point configured as a DRBD two-node cluster, which was fun, although performance was dire.
(and issues would be detectable with the monthly scrub)
obviously ECC is better but you're no worse off than you would be with mdraid or some awful hardware controller
Depends where the corruption happened. Scrub can’t detect data that got corrupted before the checksum was taken.
but its way more powerful so can do more stuff.
Many commenters have stated that it would be better to go with a Ryzen/ECC or some server-grade Atom board. While that may be true from a performance standpoint, it is not true if your priorities are low power usage and saving space.
I have several big beefy servers to run ZFS on my network. What I am missing is something tiny and quiet that can do the same job at a small scale just as well while the big machines are turned off.
I am not concerned about maintaining fast I/O or running some RAM-hogging zraid6. I just want 4 separate SSDs running 4 separate spools that I can read/write to anytime and later sync with the big machines when they're online. The even the 4GB RPi would perform that fine - I just don't see a point if the RAM is not ECC.
How about turning the NAS on-and-off as you need it? There's no need to run an "always on" computer unless you want to.
If you want to run an IRC bouncer or a webserver, then buy a Rasp. Pi for that. The NAS is primarily storage, which doesn't necessarily need to be always on. (Besides, turning the computer off is the ultimate security move. You can't get that data hacked if the computer isn't even on)
------------
> I have several big beefy servers to run ZFS on my network. What I am missing is something tiny and quiet that can do the same job at a small scale just as well while the big machines are turned off.
Ever try just... sticking multiple small-and-cheap hard drives into the clients?
Its not too hard to make redundant RAID1-like storage spaces (Windows-clients) or RAID1-like LVM (Linux-clients).
In practice, the weak point in most budget NAS setups (1) no backups "because RAID" and then getting hit by a cryptolocker (2) drives dying
Is that really a problem?
I'm still able to find 1TB new hard drives at my local microcenter for just $30. So its not really that expensive to set up a 4x drive RAID10 or RAID6 array.
4x 1TB in RAID10 or RAID6 == 2TB with redundancy for $120ish. Go up to 4TB drives ($100 each) and you'll get 8TB capacity for maybe $400ish.
Prices suck right now, even for hard drives. (I used to get 6TB hard drives for $150... but the 4TB point still seems reasonable).
> (1) no backups and cryptolockers
That seems to be easily solved by regular ZFS-snapshots.
Avoiding these is hard. Ideally, you want to get drives from different batches and offset power on times by about a week per drive. Assuming you will notice a failure, obtain a replacement, and replace the failed drive within a week. If that's not realistic, you should wait even longer between drive power on, which makes setup a very long process. It's also hard to ensure drives are from different batches unless you buy in person or get different brands, but there's not four brands to buy from anymore.
It's a little easier to do best practices when you replace drives (to get more capacity for example)... Buy one new drive once every other month, and you probably will get different batches, and you'll most likely have sufficient time to replace drives without running into the same firmware bug on all the drives.
For online backups: ZFS snapshots ought to handle the common cryptolocker case (where cryptolocker infects the client machine and encrypts all the data). However, if the virus stops there, the ZFS snapshot (which is controlled on the NAS) can restore your data from the last snapshot no problem.
I'm sure that criminal gangs are willing to go one step further and maybe attack the NAS and delete the ZFS snapshots, but its still a 2nd step that must occur before you have a significant failure.
---------------------
Its not a magic bullet, but its a significant defense mechanism that seems to handle the current, common case.
For drives dying, I just ordered the 3 drives in my zpool from 3 different websites (Newegg, Amazon, and someone I forget) so they’d be different batches.
the weak point in home based geographically unique off-site backups (like, put a small zfs box in your family member's house) is that while the ordinary residential internet user might have cablemodem service with 500 Mbps down, you may also have only 16-20Mbps up. Good luck backing up 15-20TB over 16Mbps upstream and possible 1TB/month quotas from an ISP.
from looking at https://pcengines.ch/apu2.htm , perhaps one could bridge from the miniPCI express to a SAN eSATA tower? (rough example: https://hobo.house/2016/02/03/replacing-failed-linux-raid-di... )
Even if a few bits are flipped in a media file once during transfer or even permanently... or if the OS state of my storage box gets corrupted and I have to reboot it... so what?
What are the outcomes you think are going to happen which you are trying to avoid?
The "error rate" of, say, a dust mote on my TV screen would seem to be orders of magnitude higher than a few flipped bits per GB*year. I have quite a bit of doubt about how many bit errors would ever hit A) during a time in which I am actually retrieving data (or much much less likely saving) and B) actually hits the surface the data is resident in memory and C) has an impact that raises to a perceptual level.
One step up in price and Kobol Helios64 looks really nice as well (also unavailable, though).
I hope this current component shortage and crypto bull market both end soon.
Maybe specifically for SBCs and NUCs, I can be wrong and people running their own nodes are actually making a difference. I doubt it, since manufacturers and vendors are all citing shortage upstream rather than increased demand, but if that's the case I think That's Just A Good Thing, setting the stage for more digital independence and decentralization in general.
Usually they are <$100 and better all around than a Pi like device for this application.
The argument can be made quite well that there are better alternatives to the Pi for a low-end NAS, but the HP slimline thin clients don't look like it.
USB3 connected enclosure and/or an internal SSD is a pretty great solution.
IMO, if you’re building more than that, it’s kind of silly to limit it to Pi-like price point.
Cryptsetup
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 465.5 MiB/s 654.0 MiB/s
OpenSSL Speed for ChaCha
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
chacha20-poly1305 85242.48k 144024.55k 265936.64k 309418.33k 317977.94k 317658.45k
vs Pi4 Cryptsetup
# Algorithm | Key | Encryption | Decryption
aes-cbc 128b 18.9 MiB/s 31.9 MiB/s
OpenSSL Speed for ChaCha
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes 16384 bytes
chacha20-poly1305 24833.53k 55555.22k 90574.34k 99022.17k 102659.41k 100592.30kIdeally we start using 5 or 10Gbit ethernet for these cases. We could continue to treat these drives like they are direct attached, even though they are network attached, and either have one computer running RAID, or have Ceph and a bunch of computers running it's distributed system to tap the drives.
Ideally though, we need new clustered file-systems, where any computer can read the drives. That is, I'd guess, a long way off. Legacy devices (home media players) would need to go through some kind of legacy gateway.
[1] https://business.kioxia.com/en-us/news/2020/ssd-20200922-2.h...
[2] https://www.snia.org/sites/default/files/MayurShelty_Seagate...
"The day I finished editing the video for the Wiretrustee SATA, the folks behind the board announced they were postponing production because of the component shortage—some parts, most notably the SATA controller chip, had increased in price dramatically, and would only be available in small quantities."
Just more rPI vapourware. Maybe repost when someone can actually get their hands on this?
For very large companies, stock still exists, especially if built over the last year or two, but as shortages continue, in the near future, you may, in fact, not be able to leave a Ford dealership with a new car.