We’ve spent the last 5 years building umbrelOS to make self-hosting accessible. Yesterday, we launched our dream hardware: Umbrel Pro.
Specs:
- 4x NVMe SSD slots for storage (tool-less operation)
- Intel N300 CPU (8 cores, 3.8GHz)
- 16GB LPDDR5 RAM
- 64GB onboard eMMC with umbrelOS
The chassis is milled from a single block of aluminum and framed with real American Walnut wood.
Here is a video of the manufacturing process if you want to nerd out on the machining details: https://youtu.be/4IAXfgBnRe8
Also, we built a "FailSafe" mode in umbrelOS, powered by ZFS raidz1. The coolest part is the flexibility: you can start with a single SSD and enable RAID later when you add the second drive (without wiping data), or enable it from day one if you start with multiple drives.
We also really obsessed over the thermal design. The magnetic lid on the bottom has a thermal pad that makes direct contact with all 4 NVMe SSDs, transferring heat into the aluminum. Air is pulled through the side vents on the lid, flows over the SSDs, then the motherboard/CPU, and exits the back. It runs whisper quiet.
Lots more details on our website, but we’ll be hanging out in the comments to answer any questions :)
FWIW, this is what Gemini thinks you are likely doing. Is this correct, or close?
The Trick: The "Sparse File" Loopback
Since ZFS doesn't allow you to convert a single disk vdev to RAID-Z1, Umbrel's "FailSafe" mode almost certainly uses a sparse file to lie to the system.
Phase 1 (Single Drive): When you set up Umbrel with one 2TB SSD, they don't just create a simple ZFS pool. They likely create a RAID-Z1 pool consisting of your physical SSD and two "fake" virtual disks (large files on the same SSD).
The "Degraded" State: They immediately "offline" or "remove" the fake disks. The pool stays in a DEGRADED state but remains functional. To you, the UI just shows "1 Drive."
Phase 2 (Adding the 2nd Drive): When you plug in the second drive, umbrelOS likely runs a zpool replace command, replacing one of those "fake" virtual disks with your new physical SSD.
Resilvering: ZFS then copies the parity data onto the second disk.
If you start with one SSD, how can you later make that into a raidz1 of two? Also, a raidz1 of two block devices does not seem like a really great idea.
Hey HN, I’m one of the founders of Umbrel.
We’ve spent the last 5 years building umbrelOS to make self-hosting accessible. Yesterday, we launched our dream hardware: Umbrel Pro.
Specs: - 4x NVMe SSD slots for storage (tool-less operation) - Intel N300 CPU (8 cores, 3.8GHz) - 16GB LPDDR5 RAM - 64GB onboard eMMC with umbrelOS
The chassis is milled from a single block of aluminum and framed with real American Walnut wood.
Here is a video of the manufacturing process if you want to nerd out on the machining details: https://youtu.be/4IAXfgBnRe8
Also, we built a "FailSafe" mode in umbrelOS, powered by ZFS raidz1. The coolest part is the flexibility: you can start with a single SSD and enable RAID later when you add the second drive (without wiping data), or enable it from day one if you start with multiple drives.
We also really obsessed over the thermal design. The magnetic lid on the bottom has a thermal pad that makes direct contact with all 4 NVMe SSDs, transferring heat into the aluminum. Air is pulled through the side vents on the lid, flows over the SSDs, then the motherboard/CPU, and exits the back. It runs whisper quiet.
Lots more details on our website, but we’ll be hanging out in the comments to answer any questions :)
FWIW, this is what Gemini thinks you are likely doing. Is this correct, or close?
The Trick: The "Sparse File" Loopback
Since ZFS doesn't allow you to convert a single disk vdev to RAID-Z1, Umbrel's "FailSafe" mode almost certainly uses a sparse file to lie to the system.
Phase 1 (Single Drive): When you set up Umbrel with one 2TB SSD, they don't just create a simple ZFS pool. They likely create a RAID-Z1 pool consisting of your physical SSD and two "fake" virtual disks (large files on the same SSD).
The "Degraded" State: They immediately "offline" or "remove" the fake disks. The pool stays in a DEGRADED state but remains functional. To you, the UI just shows "1 Drive."
Phase 2 (Adding the 2nd Drive): When you plug in the second drive, umbrelOS likely runs a zpool replace command, replacing one of those "fake" virtual disks with your new physical SSD.
Resilvering: ZFS then copies the parity data onto the second disk.
If you start with one SSD, how can you later make that into a raidz1 of two? Also, a raidz1 of two block devices does not seem like a really great idea.
Another question: the hardware looks pretty nice. Can I run FreeBSD on it?