Is RAID1 over USB Reliable?
I have an 11th gen Framework mainboard which I would like to repurpose as a server. Unfortunately, (unless I do some super janky stuff) I can only connect 1 drive to it over M.2 and any additional ones must be over USB.
I am thinking of just using some portable hard drives and plugging them in over USB. I plan to RAID1 them and use them as boot drives and data storage, and use the M.2 slot for something unrelated.
In your experiences, is USB reliable enough nowadays to run a RAID array for a server like this? If it is, does it depend on the specific drive used?
In my experience, noooooo.
I've had too many momentary disconnects with USB devices to trust that on a 24/7 server.
An early server I built had a large USB backup drive for a RAID5 array and every month there was usually something that went wrong.
Agreed. You’re at the mercy of your USB controllers as well as southbridge in that case.
You’re adding more things that can go wrong.
Generally HBA/RAID cards are usually built for enterprise rather than consumer so they’re usually more reliable as well.
Today's CPUs usually expose some USB connections directly. Ryzen 7000 desktop CPUs expose 4 USB 3.2 Gen 2 directly on their on-package I/O die for example. So if you connect your USB drives directly to the ports your mainboard connects directly to the CPU, the chipset ("southbridge") and any third-party USB controllers are out of the equation.
This is just information, I'm not advising to use USB for fixed storage.
I've been doing USB with raid on several servers for 10 years. No random disconnects.
Why though?
Because I have a total of 28 drives and it works really well and is flexible.
12 of them are in a Synology though
Sata extension cards aren't expensive you should know.
Well, nothing is reliable over USB type A. If you don't want to DIY you can get a USB JBOD with type-c like this one or that one or this cheaper one. They'll get the job done for a price. :)
However, there are easy ways to get reliable SATA ports from m2 slots that your framework has. NVME to 6 SATA ports: https://www.aliexpress.com/item/1005004263885851.html
To power the disks you can use ANY standard ATX power supply (get something brand-gold second hand for 20$). To make sure the PSU stays ON, just plug a wire between the green and any black wire.
Another option for power is to get a cheap 12V power supply and a step down DC/DC to provide 5V. If you don't have it a SATA cable like this is helpful. Simply cut the white plug and attach the red cable (5v) to the output of the DC/DC and the yellow one (12V) directly to the power supply.
There's also these dual output power supplies that you can regulate to 12v+5v but frankly I would just go for the option above as it will be safer.
Make sure you check every voltage and polarity before plugging anything into your power supply!!
I do not recommend it. I ran two USB hard drives for over a year in BTRFS RAID1, and I had millions of errors repaired every month when I scrubbed it.
There should be an m.2 port for the wifi chip,you can buy sata expansion cards there, sthg like this:
Search for "m.2 key e sata". Use wired net on a usb dongle, if it doesn't have an ethernet port
Any way to power the drives if you don't have any more free power cables? Just have to buy a new PSU?
You can get splitters for power cables.
Friendly reminder: Molex to SATA, Lose all of your data
Molded plugs are dangerous, crimped plugs are fine.
https://pbs-prod.linustechtips.com/monthly_2022_06/molded-sata.png.a8f706c9da7d6604b888586955c6eb70.png
Thanks, bought one!
You can find an external SATA power supply
I’ve been running some external drives on my server for about a year now. In my experience, hard drives with an external power supply suffer less from random disconnects. The specific PC also makes quite a large difference in reliability. My server is just a regular desktop and has very little problem staying connected and powering my 3 external drives. My seedbox is an old laptop, and has been having almost constant problems with random disconnects and power issues. Maybe test how well your framework does with some external drives before committing to the plan?
This will not work unless the mainboard is handling the RAID control in firmware. If you are doing software RAID then the OS must boot before the array can be accessed.
If you just want to set up a NAS, you can get a used PowerEdge tower for very little money, and it will work a lot better than what you have planned.
This isn't true. You can boot from raid without issue.
In the past I have used Proxmox with ZFS raid on a basic mini PC. With ZFS raid it syncs everything except /boot. Proxmox has a tool called "proxmox-boot-tool-refresh" which will syncs /boot between drives. ZFS kernel module can be loaded in the initramfs so it will boot fine, even if missing a drive.
For this project I do not plan to use ZFS, but AFAIK software raid is now standard. Here is a popular video from Level1Techs talking about the flaws of hardware RAID: https://youtu.be/l55GfAwa8RI
Here is an alternative Piped link(s):
https://piped.video/l55GfAwa8RI
Piped is a privacy-respecting open-source alternative frontend to YouTube.
I'm open-source; check me out at GitHub.
The big factor is the chip make in the USB enclosure/adapter. Realtek is most reliable, followed by Asmedia. JMicron is garbage (will get hot and drop connection).
What's your goal by using RAID1? Do you really need redundancy — keep the system alive if the main drive good down?
If you only need backup then you don't need RAID, and that should fare much better — just take an incremental snapshot to the USB drive periodically and let it sleep the rest of the time.
You should probably only do this if you’re using an enclosure that connects all the disks over a single cable. That way if it gets unplugged or otherwise disconnected, all the disks get disconnected, and they remain in sync. Otherwise, get very familiar with resyncing drives.
Been running raid1 on USB for over a decade. Avoid chaeap USB stuff, get foot brand USB boxes and preferably a JBOD multi-disk enclosure, since they tend to be the best quality.
Never had a disconnect.
Beware to properly label your driver tough, as Linux software raid (I use that) tend to hiccup on boot if the kernel reassign USB devices after a reboot.
You are quite likely to regret going down this route. Should do what you have to to get the drives properly connected.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:
[Thread #760 for this sub, first seen 25th May 2024, 08:25] [FAQ] [Full list] [Contact] [Source code]
Erasure coding may be a better option than RAID.
I did see a m.2 based expansion card based on ASM1166 chipset, or failing that a sata port multiplier, but those depend on the data port supporting it
I have minipc that only has one drive slot. I use an external thunderbolt enclosure with a eNVM drive in it
It works ok for me but don't expect great performance and reliability.
I am using a terramaster d6-320 connected with usb-c.
It has been running zfs disks for proxmox via a geekom a5 mini pc since February. It has lost contact with the drives twice so far, more than a month between each time so I don't know the cause. I am mostly happy with the setup, but of course it is annoying when it fails
Check the kernel logs
No. USB is not designed to be reliable. It's designed to be plug and play. Don't plug and play with your data.
Plug and play means you don't have to fiddle with drivers or IRQs or whatever.
That sentence does not make any sense whatsoever. SATA and SAS are hot pluggable as well.
Plug and play alone is not the reason. Nvme is plug and play.
Plug and play is not any reason at all.
USB-storage isn't reliable.
Period.
ANY fscking thing that bumps any connection, can break the dam link.
Then your kernel can re-label the device when it re-connects,
and you've got to reassemble your RAID.
just my experience.
use ANY other method you can, other than USB.
stick a SATA adaptor on there somewhere, if you can.
Get a different motherboard.
ANYthing, but not USB.
Always use /dev/disk/* (I use by-id) for RAID, as those links will stay constant even if a disk is renamed (for example, from sdb to sdd).