Goal:
- 16TB mirrored on 2 drives (raid 1)
- Hardware raid?
- Immich, Jellyfin and Nextcloud. (All docker)
- N100, 8+ GB RAM
- 500gb boot drive ssd
- 4 HDD bays, start with using 2
Questions:
- Which os?
- My though was to use hardware raid, and just set that up for the 2 hdds, then boot off an ssd with Debian (very familiar, and use it for current server which has 30+ docker containers. Basically I like and am good at docker so would like to stick to Debian+docker. But if hardware raid isn’t the best option for HDDs now a days, I’ll learn the better thing)
- Which drives? Renewed or refurb are half the cost, so should I buy extra used ones, and just be ready to swap when the fail?
- Which motherboard?
- Which case?
You don’t want hardware raid. Some options you can research:
- Mdadm - Linux software raid
- ZFS - Combo raid and filesystem
- Btrfs - A filesystem that can also do raid things
Some OS options to consider:
- Debian - good if you want to learn to do everything yourself
- Truenas Scale - Comercial NAS OS. I bit of work to get started, but very stable once going.
- Unraid - Enthusiast focused NAS OS. Not as stable as Truenas, but easier to get started and a lot of community support.
There are probably other software/OS’s to consider, but those are the ones I have any experience with. I personally use ZFS on Truenas with a lot of help from this YouTube channel. https://youtube.com/@lawrencesystems?si=O1Z4BuEjogjdsslF
Ditto on hardware raid. Adding a hardware controller just inserts a potentially catastrophic point of failure. With software raid and raid-likes, you can probably recover/rebuild, and it’s not like the overhead is the big burden it was back in the 90s.
I got a server from ewaste because the RAID card did fail and having SAS drives they couldn’t even pull data from it with anything else. It was the domain controller and NAS so as you can imagine, very disruptive to the business. As they should they had an offsite backup of the system and so we just restored onto a gaming PC as a temporary solution until we moved them to M365 instead.
I just use software RAID on it now and so far so good for about 180 days.
Just want to mention that TrueNAS is FOSS and unRAID is not. And I wouldn’t necessarily say that unRAID is much easier.
I would add LVM to the list of software raids, and remove btrfs as poorly engineered.
I’d recommend BTRFS in RAID1 over hardware or mdadm raid. You get FS snapshotting as a feature, which would be nice before running a system update.
For disk drives, I’d recommend new if you can afford them. You should look into shucking: It’s where you buy an external drive and then remove (shuck) the HDD from inside. You can get enterprise grade disks for cheaper than buying that same disk on its own. The website https://shucks.top tracks the price of various disk drives, letting you know when there are good deals.
I second this. I use BTRFS over ZFS for its reduced footprint but has always been very reliable. With a couple of commands I replaced a disk and btrfs scrub on a monthly basis makes me sleep peacefully (relatively)
How does the replacing of a HDD work on btrfs? Like if one failed and I’m using Debian, how do I rebuild the raid 1?
Or should I use an actual raid os?
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters DNS Domain Name Service/System LVM (Linux) Logical Volume Manager for filesystem mapping LXC Linux Containers NAS Network-Attached Storage NUC Next Unit of Computing brand of Intel small computers PCIe Peripheral Component Interconnect Express PSU Power Supply Unit Plex Brand of media server package RAID Redundant Array of Independent Disks for mass storage SATA Serial AT Attachment interface for mass storage SSD Solid State Drive mass storage VPN Virtual Private Network VPS Virtual Private Server (opposed to shared hosting) ZFS Solaris/Linux filesystem focusing on data integrity
[Thread #872 for this sub, first seen 15th Jul 2024, 16:35] [FAQ] [Full list] [Contact] [Source code]