02-08-2020, 10:04 AM
(This post was last modified: 02-08-2020, 11:48 PM by matosys.
Edit Reason: Head -> Hat
)
so, after spending quite a few hours (like 20 or so !?!) on this, i figured out how to approach this topic.
as said before, there are 2 main areas that need to be balanced out. security and speed.
single board computers and solutions worth mentioning in this area are:
Marvell Espressobin, 49$, 3x 1gbit eth, 1x sata, quite suitable for a small Minio cluster (replicated object storage with 3 SBCs). the built-in switch ASIC and multiple gigabit ethernet ports allow for speedy reliable replication and bonding. http://espressobin.net/tech-spec/
In addition to that, we can add a miniPCIe SATA Card, expanding the total sata ports to 5.
Marvell Macchiatobin, ~500$, 2x 10gbe sfp+, 1x 2.5 gbe, 3x sata port, PCIe 3.0 x4 port for an expansion card . If you want more than this, you'll end up with an embedded AMD Epyc 3000 board or other server boards. http://macchiatobin.net/
Rock Pi 64 with a Penta SATA HAT (5x SATA) = Radxa offers a 2x, 4x and 5x SATA Hat https://wiki.radxa.com/SATA_HAT
Keep in mind, that the penta hat is based on a PCIe to SATA Controller (JMICRON JMB585), instead of a USB3 to SATA Controller in the other Heads. The JMB585 is fairly solid and for software RAID, PCIe is better than USB based connections from my experience.
FriendlyELEC's 4x SATA HAT for the NanoPi M4 (https://www.friendlyarm.com/index.php?ro...uct_id=254)
PCIE based and a HIGHLY RECOMMENDABLE Marvell 88SE9215 SATA Controller. This controller is Server/Workstation grade. Sharing PCIe 2.0 x2 lanes gives roughly 1GB/s throughput, not quite enough for SATA SSDs, but absolutely fine for saturating HDDs. At this price point, it's a really good deal.~25$+80$
Apart from the GPIO Hats, there are modular solutions for m.2 and mPCIe, as well as full size PCIe Cards for boards that support it. These modules appear under different brands and naming patterns. To make sure, you're selecting the correct one, I'm including the Controller type.
Marvell's 88SE9215 and 88SE9235 Controllers are pure interface controllers, while 88SE9230 is a RAID controller. The RAID controller might work only with limited SBCs out of the box and Flashing a config directly to SPI is .... not recommended ... at all! Marvell's 88SE92xx Controllers are supported by FreeBSD since 9.2 and linux since kernel 3.2, so it's in general a safe choice, but JMICRON's JMB585 should be covered with AHCI-ATA as well on FreeBSD while Linux is officially supported since 2.6
m.2 with PCIe 2.0 interface
IO-M2F9230-4lR m.2 B+M Key to 4x SATA3 with Marvell 88SE9230 hardware RAID controller (0,1,10) and HyperDuo Support (that's Marvell's SSD-HDD Hybrid Acceleration solution) for boards with weak CPUs and/or little RAM
IO-M2F9235-4l m.2 B+M Key to 4x SATA3 with Marvell 88SE9235 SATA IO Controller
m.2 with PCIe 3.0 interface
SI-ADA40141 m.2 B+M Key (PCIe 3.0 x2) to 5x SATA3 with JMICRON JMB585 SATA IO Controller.
miniPCIE Cards
IO-mPCE9215-4l mPCIe to 4xSATA3 with Marvell 88SE9215 SATA IO Controller
Full PCIe Cards
I'm skipping most of these. there are many out there in too many forms to cover them all. And keep in mind, that software raid solutions prefer Host Bus Controllers, because RAID Controllers mask HDD access, while RAID Controllers might be valuable for boards with weaker CPUs or limitations in RAM throughput. Plan ahead to get the most out of your investment.
Typically I usually go for LSI/Broadcom based Cards, but this depends heavily on what you're willing to pay. Some Adaptec Cards have issues under *BSD.
Conclusion:
Prices are WITH(!) RAM and a possible expansion card.
50$-100$:
Espressobin! 1-5 SATA ports, expandable, powerful networking capabilities, 64bit CPU, 2GB DDR3.
100$-170$:
multiple alternatives: NanoPi M4V2 with 4x SATA HAT, RaspberryPi 4 with 1+4x SATA HAT (1 eSATA, 4 internal SATA) or a RockPRO64 with PCIe Card (PCIe 2.1 x4 provides ~20Gbit, SI-PEX40097 is a 16 port SATA3 PCIe 2.0 x4 Card - if you decide to spend 300$ on it, but SI-PEX40139 sounds a bit more healthy with 5 ports for 50$). The Helios64 Board should slot in somewhere in the 170$ price range.
170$-250$
PC Engines APU2 4GB RAM, 5 SATA Ports, 1mSATA port (ssd)
250$-400$
AMD Athlon (3000G, 200Ge, 220Ge, 240Ge, just grab a random one with a white box. it's like 15$ price difference), 2x4GB ECC RAM, ~8 SATA Ports, on a not-totally-trash ITX AM4 Board (B450 or whatever). Not really a SBC but I don't care, it's somewhere in the 300-350$ price range. Alternatives are Embedded Atom Boards in the same price region but with worse power/features, so, i'm rolling with the Athlon build for this price region.
400$-500$
Macchiatobin SingleShot with 4GB ECC RAM, 3-8 SATA ports and 10gbit ethernet.
Udoo Bolt V3, 8GB ECC RAM, but trash ethernet (1x 1gbe), ~8SATA + Cache-SSD
500$-600$
Macchiatobin DoubleShot with 16GB ECC RAM, Cache SSDs, HDDs and double 10gbit ethernet.
Udoo Bolt V8, 16-32GB ECC RAM, ~8SATA + Cache-SSD. Same trash ethernet as V3, single 1gbit port
All in all, we can see a pretty clear picture: SATA ports and multi-NIC gigabit-ethernet is cheap to get, so there's enough speed focussed solutions with reasonable pricing. what we're missing, though, is an entry level security focussed solution in the 120-170$ range for a viable NAS solution.
a fairly modular approach with m.2 and miniPCIe slots for a general purpose board would be fine, since there are many adapter cards available. The big question for me is: is it possible to build a board with ECC for 70-120$ without a module? That's the only uncovered area. I would expect ~20$ more expenses for CPU+ECC RAM (NXP i.XM 8M Plus = 30$, as opposed to like 25$ for a RK3399). Of course we will have to sacrifice a good bit of compute power, but i guess, that's the price. Maybe there are other solutions? Would love to hear opinions.
That took a while. Tired as heck. Good Night, PEACE!
as said before, there are 2 main areas that need to be balanced out. security and speed.
single board computers and solutions worth mentioning in this area are:
Marvell Espressobin, 49$, 3x 1gbit eth, 1x sata, quite suitable for a small Minio cluster (replicated object storage with 3 SBCs). the built-in switch ASIC and multiple gigabit ethernet ports allow for speedy reliable replication and bonding. http://espressobin.net/tech-spec/
In addition to that, we can add a miniPCIe SATA Card, expanding the total sata ports to 5.
Marvell Macchiatobin, ~500$, 2x 10gbe sfp+, 1x 2.5 gbe, 3x sata port, PCIe 3.0 x4 port for an expansion card . If you want more than this, you'll end up with an embedded AMD Epyc 3000 board or other server boards. http://macchiatobin.net/
Rock Pi 64 with a Penta SATA HAT (5x SATA) = Radxa offers a 2x, 4x and 5x SATA Hat https://wiki.radxa.com/SATA_HAT
Keep in mind, that the penta hat is based on a PCIe to SATA Controller (JMICRON JMB585), instead of a USB3 to SATA Controller in the other Heads. The JMB585 is fairly solid and for software RAID, PCIe is better than USB based connections from my experience.
FriendlyELEC's 4x SATA HAT for the NanoPi M4 (https://www.friendlyarm.com/index.php?ro...uct_id=254)
PCIE based and a HIGHLY RECOMMENDABLE Marvell 88SE9215 SATA Controller. This controller is Server/Workstation grade. Sharing PCIe 2.0 x2 lanes gives roughly 1GB/s throughput, not quite enough for SATA SSDs, but absolutely fine for saturating HDDs. At this price point, it's a really good deal.~25$+80$
Apart from the GPIO Hats, there are modular solutions for m.2 and mPCIe, as well as full size PCIe Cards for boards that support it. These modules appear under different brands and naming patterns. To make sure, you're selecting the correct one, I'm including the Controller type.
Marvell's 88SE9215 and 88SE9235 Controllers are pure interface controllers, while 88SE9230 is a RAID controller. The RAID controller might work only with limited SBCs out of the box and Flashing a config directly to SPI is .... not recommended ... at all! Marvell's 88SE92xx Controllers are supported by FreeBSD since 9.2 and linux since kernel 3.2, so it's in general a safe choice, but JMICRON's JMB585 should be covered with AHCI-ATA as well on FreeBSD while Linux is officially supported since 2.6
m.2 with PCIe 2.0 interface
IO-M2F9230-4lR m.2 B+M Key to 4x SATA3 with Marvell 88SE9230 hardware RAID controller (0,1,10) and HyperDuo Support (that's Marvell's SSD-HDD Hybrid Acceleration solution) for boards with weak CPUs and/or little RAM
IO-M2F9235-4l m.2 B+M Key to 4x SATA3 with Marvell 88SE9235 SATA IO Controller
m.2 with PCIe 3.0 interface
SI-ADA40141 m.2 B+M Key (PCIe 3.0 x2) to 5x SATA3 with JMICRON JMB585 SATA IO Controller.
miniPCIE Cards
IO-mPCE9215-4l mPCIe to 4xSATA3 with Marvell 88SE9215 SATA IO Controller
Full PCIe Cards
I'm skipping most of these. there are many out there in too many forms to cover them all. And keep in mind, that software raid solutions prefer Host Bus Controllers, because RAID Controllers mask HDD access, while RAID Controllers might be valuable for boards with weaker CPUs or limitations in RAM throughput. Plan ahead to get the most out of your investment.
Typically I usually go for LSI/Broadcom based Cards, but this depends heavily on what you're willing to pay. Some Adaptec Cards have issues under *BSD.
Conclusion:
Prices are WITH(!) RAM and a possible expansion card.
50$-100$:
Espressobin! 1-5 SATA ports, expandable, powerful networking capabilities, 64bit CPU, 2GB DDR3.
100$-170$:
multiple alternatives: NanoPi M4V2 with 4x SATA HAT, RaspberryPi 4 with 1+4x SATA HAT (1 eSATA, 4 internal SATA) or a RockPRO64 with PCIe Card (PCIe 2.1 x4 provides ~20Gbit, SI-PEX40097 is a 16 port SATA3 PCIe 2.0 x4 Card - if you decide to spend 300$ on it, but SI-PEX40139 sounds a bit more healthy with 5 ports for 50$). The Helios64 Board should slot in somewhere in the 170$ price range.
170$-250$
PC Engines APU2 4GB RAM, 5 SATA Ports, 1mSATA port (ssd)
250$-400$
AMD Athlon (3000G, 200Ge, 220Ge, 240Ge, just grab a random one with a white box. it's like 15$ price difference), 2x4GB ECC RAM, ~8 SATA Ports, on a not-totally-trash ITX AM4 Board (B450 or whatever). Not really a SBC but I don't care, it's somewhere in the 300-350$ price range. Alternatives are Embedded Atom Boards in the same price region but with worse power/features, so, i'm rolling with the Athlon build for this price region.
400$-500$
Macchiatobin SingleShot with 4GB ECC RAM, 3-8 SATA ports and 10gbit ethernet.
Udoo Bolt V3, 8GB ECC RAM, but trash ethernet (1x 1gbe), ~8SATA + Cache-SSD
500$-600$
Macchiatobin DoubleShot with 16GB ECC RAM, Cache SSDs, HDDs and double 10gbit ethernet.
Udoo Bolt V8, 16-32GB ECC RAM, ~8SATA + Cache-SSD. Same trash ethernet as V3, single 1gbit port
All in all, we can see a pretty clear picture: SATA ports and multi-NIC gigabit-ethernet is cheap to get, so there's enough speed focussed solutions with reasonable pricing. what we're missing, though, is an entry level security focussed solution in the 120-170$ range for a viable NAS solution.
a fairly modular approach with m.2 and miniPCIe slots for a general purpose board would be fine, since there are many adapter cards available. The big question for me is: is it possible to build a board with ECC for 70-120$ without a module? That's the only uncovered area. I would expect ~20$ more expenses for CPU+ECC RAM (NXP i.XM 8M Plus = 30$, as opposed to like 25$ for a RK3399). Of course we will have to sacrifice a good bit of compute power, but i guess, that's the price. Maybe there are other solutions? Would love to hear opinions.
That took a while. Tired as heck. Good Night, PEACE!