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?
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.
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.
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
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?
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.
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.
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.
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