https://twitter.com/dchest/status/963536947699486721
- Raspberry Pi 3 + heatsinks + power adapter — $42 https://www.aliexpress.com/item/2016-NEW-Original-Raspberry-Pi-3-Model-B-Board-1GB-LPDDR2-BCM2837-64-bit-Quad-Core/32626862737.html
- Case for RPi — $4 https://www.aliexpress.com/item/Model-R2-Original-Official-Raspberry-PI-3-Case-Black-Box-Cover-Shell-Enclosure-Housing-ABS-Plastic/32642712541.html
- Powered USB hub — $9 https://www.aliexpress.com/item/ORICO-High-Speed-USB3-0-Hub-with-AUX-MIC-USB-Micro-Port-HUB-Charging-Hub-USB/32831871287.html 0.3m 4 USB3.0 ports model. I'm not sure it can sustain power for 2 HDD... It's powered by microUSB. First attempt at creating RAID-1 failed, I suspect it was related to power, so I replugged one HDD into another USB port, and it worked. After replugging, I measured if it consumes any power at all from its microUSB, and it does, and so far it works, but probably you should find a better powered USB hub. Raspberry Pi 3 only supports USB 2.0, but I bought USB 3.0 hub in case I need it for something else in the future. Note: this USB hub doesn't come with power supply or microUSB cord, so you need to have one.
- Two 4 TB Seagate USB drives — $168 * 2 = $336 https://www.aliexpress.com/item/Seagate-Expansion-HDD-Disk-4TB-3TB-2TB-1TB-500GB-USB-3-0-2-5-4TB-Portable/32806069384.html According to Backblaze, Seagate sucks, but they are cheap, so we'll see how it goes.
- 32 GB Samsung microSD card — $13 — https://www.aliexpress.com/item/SAMSUNG-Memory-Card-32G-SDHC-SDXC-TF80M-Grade-EVO-MicroSD-Class-10-Micro-SD-C10-UHS/32676225311.html Note: 16 GB would be totally fine (maybe even 8 GB), but I bought 32 GB in case I need it for something.
- Some locally bought double-sided tape, PVC tape, and furniture protector pads (which I glued to the bottom of HDDs and RPi and then glued double-sided tape on them to stick everything together) ~ a few euros.
Total (without shipping, which is cheap): $404
- OpenMediaVault — http://www.openmediavault.org/
- Performance: over the network (SMB), uploads are ~ 2 minutes per gigabyte. Good enough for my purposes, but of course, very slow compared to a "real NAS".
- I read that RPi shares USB bus with LAN port, so wi-fi may be faster... will check this later.
- Local writes to HDD are ~20 MiB/s.
- The purpose of two drives is for redundancy, not for more space. If one drive fails, my data is still safe on the other drive. At first, I wanted to create RAID-1 (easy with OpenMediaVault, but >2 days to resync 4 TB drive), but then decided that I also care about software failures, so I plan to have one drive as a primary, which is rsync'ed overnight to another drive. This way, if some bug or my mistake leads to deletion of something on one drive, I can unplug that drive and restore data from another drive before it resyncs. This is not perfect (not a proper backup, since there's no historical data snapshots), but allows me to use all 4 TB and have some time window where I can recover from an accident. (I also have SMB configured with recycle bin — deleting a file actually moves it to .recycle directory, which is cleaned every 30 days. Just a few clicks in OpenMediaVault.)
- It needs two power cords: one for Raspberry Pi, one for USB hub.
- Powered USB hub is needed because RPi, while having 4 USB ports, has not enough power for two HDDs (two SSDs will probably work though).